Snusmumriken
Вообще, в именах папок слеш запрещён. А точка нет!
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Snusmumriken
Тут есть очень много правил, и у разных ОС разные. Например под вендой запрещены имена для файлов и папок COM и ещё несколько других, потому что это резервные имена.
Блин, просто открываешь RFC венды/линекса и делаешь по ним. А потом адаптируешь.
... Или берёшь готовую либу, где это сделали за тебя и для тебя.
Hello, World! 🎄
Snusmumriken
Берёшь и вставляешь содержимое библиотеки себе в файл со скриптом, или только нужную его часть. Но вообще лучше отдельно.
Hello, World! 🎄
Snusmumriken
ДАААА
Hello, World! 🎄
Не, это называется украсть код
Snusmumriken
Hello, World! 🎄
Я привык писать сам стараюсь писать сам где это возможно
Hello, World! 🎄
А что такого?
Использовав библиотеку я просто буду использовать её api.
А сделав сам с нуля я пойму как это работает изнутри.
Snusmumriken
И так очевидно как оно работает. Берёт и типично потрошит строчки учитывая всякие мелкие хернюшки конкретных ос. Ничему не научишься, и тем более не поймёшь почему пока не начнёшь всё прогугливать. Тупа унылый бойлерплейт.
Hello, World! 🎄
Hello, World! 🎄
Snusmumriken
Ладно )
Hello, World! 🎄
Ладно )
Лучше зацени мой редактор кода, в Love2d беседу скинул love архив
Snusmumriken
Видел )
Hello, World! 🎄
Я только, что минут 10 скинул обновленный
Snusmumriken
У него правда с первого же запуска был косячок
Snusmumriken
Он умеет только енглиш
Snusmumriken
Snusmumriken
Да, крайне желательно адаптировать под юникод
Hello, World! 🎄
Адаптирую попозже, у меня щас были баги с переносом строк, указателем на символ и т.д.
Вроде всё пофиксил.
Hello, World! 🎄
Ну и самая важная проблема я написал спагетти код, надо будет потом в отдельные файлы переместить функции.
Snusmumriken
Базовый вариант —
local utf8 = require'utf8'
function utf8.sub(self, a, b)
a = a and utf8.offset(self, a)
b = b and utf8.offset(self, b + 1)
a = a or 1; b = b and b - 1 or #self
return self:sub(a, b)
end
Hello, World! 🎄
Hello, World! 🎄
А вот ещё интересный вопрос, как лучше сделать запуск кода в редакторе, через корутины?
Snusmumriken
Нет )
Snusmumriken
Через os.execute разумеется.
Snusmumriken
Конечно
Hello, World! 🎄
Нужно как-то консоль читать
Snusmumriken
Тут ты приходишь к огромному пласту ОС-специфичной ерунды и сишки.
Igor
io.popen
Snusmumriken
Это то же самое буквально, для редактора.
Snusmumriken
Карочи, для начала у тебя есть start/fork для os.execute/io.popen.
usernameak
Hello, World! 🎄
io.popen
У меня щас ls выполняется через него (для получения файлов в директории)
Hello, World! 🎄
Snusmumriken
usernameak
usernameak
но я в итоге его выбросил, потому что от этого лезли какие-то непонятные баги
Snusmumriken
У меня на работе луа работает стандартными регулярками с 1251. Оно конечно однобайтное, но в регулярках шаблоны тянут кириллицу. Это кек.
Захар
Захар
1251 ещё не вымер
usernameak
Snusmumriken
1251 ещё не вымер
Он всё ещё крайне удобен в куче мест, и за счёт однобайтности с ним крайне высокая скорость работы. Как с ascii.
usernameak
usernameak
он путь и не однобайтный, но символы фиксированной длины :)
Snusmumriken
Когда ты делаешь базу данных в utf32, тебя убьёт начальник за сжирание всего места )
Захар
Лучше один раз переписать все на юникод, и забыть
usernameak
Snusmumriken
На самом деле не важно. Юникод тянет за собой огро-о-о-омный пласт своих юникодных проблем, о которых ты даже не услышишь не работая с ним плотно. А на моей работе норм и 1251, вообще пофигу, всё что надо влезает, проблем нет. Наружу в utf8.
usernameak
Snusmumriken
Это только одна из проблем.
usernameak
Snusmumriken
Другая проблема — композиция-декомпозиция, нормализация, попытки реверснуть комбинированные символы автоматически приводят к писосу, ещё много чего.
Захар
Копец в группе реакций нет
Захар
Как лайк поставить
usernameak
usernameak
точнее она чаще не нужна, чем нужна
Snusmumriken
полная поддержка юникода нужна далеко не везде :)
Например, ты пишешь бота для телеги и хочешь фильтровать спам с сайтами. Пишешь регулярку.
ОПАЧКИ СПАМЕР ЗАМЕНИЛ ТОЧКУ НА ПОХОЖУЮ ТОЧКУ ИЗ ДРУГОГО ЯЗЫКА и твой бот обсирается, потому что не умеет нормализовывать. А браузер её автоматом заменяет на нормальную и переходит куда надо спамеру.
usernameak
Luсky
Snusmumriken
Урлы сейчас легко состоят из юникода.
usernameak
Snusmumriken
Браузер его превращает автоматически. Ты переходишь по ссылке а ля ☃️.com и браузер делает остальную работу.
Snusmumriken
Прошу заметить, даже телега распознала ссылку.
usernameak
но распарсит ли оно не ту точку?
Snusmumriken
Распасит разумеется, потому что нормализует подобный текст. Если твой бот этого не умеет — он не справится с фильтрацией.
Snusmumriken
Карочи, это дичайше тёмная тема. В неё без подготовки не лезть.
usernameak
google․com
Snusmumriken
Хмм, эту точку браузер не распознал. Сейчас проверну с другими символами.
Snusmumriken
Так и происходит, пока тебя не пытаются хакнуть.