Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.GOLDED
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 27 Jun 24 12:59:36, всего сообщений: 3580
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 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)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.038121 секунды