= Сообщение: 2924 из 3580 ======================================== RU.GOLDED = От : Vitaliy Aksyonov 1:104/117 24 Oct 23 09:40:32 Кому : Nil A 24 Oct 23 09:40:32 Тема : Re: Широкие терминалы и char buf[сколько не жалко].. StyleCodeHighlight FGHI : area://RU.GOLDED?msgid=1:104/117+6537e7b0 На : area://RU.GOLDED?msgid=2:5015/46+65371724 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.GOLDED?msgid=2:5015/46+6538780e Ответ: area://RU.GOLDED?msgid=2:5020/1042+653a747f ============================================================================== Привет, Nil!
24 Oct 23 03:37, ты писал(а) мне:
VA>> Там дело хуже. Когда URL длиннее строки, то подсвечивается только VA>> первая строка. И это не айс. И я не вижу нормального способа это VA>> починить. Ведь с новой строки может быть как продолжение ссылки, VA>> так и просто текст. NA> Там в деде есть много каких-то интернетовских делов, которые мне NA> ниразу не понятны кстати. То, якобы емейлы он умеет читать писать, NA> только по smtp/pop3 не ходит, хотя не проверял. То URLы парсит как не NA> в себя, но зачем? Вроде какие-то виндовые голдеды позволяют тыкать NA> мышью в ссылки, и откроется в браузере, но я могу гнать.
Парсит, так как можно настроить обработчик URL и открывать браузер прямо из деда. Ты, например, можешь открыть lynx.
VA>> Далее. Список схем, которые понимает эхотаг, там жестко зашит.
NA> [GoldED-NSF](https://fido.g0x.ru/golded/index.php) умеет и не только NA> RFC схемы, но и area:// схемы. Кстати, ты глянул на патч, его можно NA> влить в наш меинстрим-голдед?
Смотрел на него и даже почти влил. Но код там не самый красивый. Они прикрутили это сбоку, хотя никто не мешал встроить в существующую инфраструктуру. Если это реально кому-то нужно, то лучше просто взять их код за основу, но переделать красивее.
VA>> Там ещё другое есть. Это overlap при копировании строк. Когда VA>> oldMsg и msg - это тот же объект. :) Вообще весело. NA> На собеседовании надо спрашивать потому что, чем отличается memcpy от NA> memmove. Хотя в голдеде всё через strcpy, который во всех современных NA> компилятора в buildin превращается по-любому, а не в либси ходит.
Если тебя такое спрашивают на собеседовании, то стоит задуматься, хочешь ли ты там работать. :) В современном C++ эти функции не используются. Что не отменяет того, что разбираться в таком не помешает. А вообще - это скилл чтения манов. Там чёрным по белому написано, какое поведение у функции.
NA>>> Вот теперь в них падает. Их что теперь, все в CREATEBUFFER(char, NA>>> buf, MAXCOL) ? VA>> Нет. Нельзя бездумно все. Лучше потихоньку переводить на VA>> std::string NA> -std=c++11 минимум только включите сначала, чтобы lvalue понимали, и NA> move случался где надо, без копирований, и разные RVO и NRVO случались NA> (хотя они и так случаются в современном компиляторе, даже со старыми NA> стандартами, ибо никто не запрещает же). -std=c++17 яб на минималке NA> включил, и общался там не через const std::string& везде, если ты уж NA> будешь заменять, а на std::string_view.
Ты опять спутал lvalue и rvalue. И насколько я помню, гарантированный copy elision появился только в C++17. А вот мув может помочь в некоторых местах.
VA>> (в котором, кстати, тот же UTF-8 прекрасно хранится, если не надо VA>> делать посимвольных операций, конечно), меняя алгоритмы. NA> В том то и дело, что std::string хранит просто байты, и ему пофиг что NA> там, он такой же std::vector почти. Для нужд редактора нужно знать.. я NA> щас не буду про поддержку еврита справо-налево и потом тут же NA> английский и русский, справа налево, или какие-то азиатские языки, где NA> вниз пишут.. Для нужд редактора нужно знать сколько графем..да блин, NA> опять не смогу объяснить на пальцах.. и как минимум надо NA> нормализовывать эти акценты, а то код сразу с акцентом, или буква А и NA> к ней палочка с боку другим юникод символом, который не занимает NA> знакоместо.
NA> Такшта, не углубляясь в дебри, рекомендую не std::string, а NA> какой-нибудь icu::UnicodeString. Ну окей, icu - это оверкилл, можно NA> договориться, что в std::string мы ложим только utf8. Но тогда к нему NA> надо функции посчитать сколько это символов в строке. Ну и тогда iconv NA> сюда тупо зафигачить, и конвертить всё в utf8, а обратно с флажком NA> //TRANSLIT.
Для всяких шаблонов и прочего придётся сильно переделывать код. Ведь там часто идут проходы посимвольно. С utf-8 работать такое не будет. Короче, переход на юникод - это огромный проект. И там много о чем надо задуматься.
Для начала хочу сделать адекватное использование iconv. Но там есть свои подводные камни. Например, всякие escape последовательности и обработка нашей замечательной *Н*. :)
В общем, не все сразу. Не гоните коней, поручик.
Best regards, Vitaliy Aksyonov.
... Спасение рядового Райана от прапорщика Пилипчука. --- GoldED+/LNX 1.1.5-b20231021 * Origin: Aurora, Colorado (1:104/117) |