Nп/п : 24 из 100
 От   : Vitaliy Aksyonov                    1:104/117         15 авг 24 11:20:48
 К    : Nil A                                                 15 авг 24 20:28:03
 Тема : Re: golded.devel
----------------------------------------------------------------------------------
                                                                                 
@MSGID: 1:104/117 66be3a84
@REPLY: 2:5015/46 66be2be6
@CHRS: CP866 2
@TZUTC: -0600
@TID: hpt/lnx 1.9 2024-03-02
Привет, Nil!

15 Aug 24 19:12, ты писал(а) мне:

 KK>>> Помню я тот мрак и ужас в голдеде. ^_^ Ещё в 2009м когда с ним
 KK>>> ковырялся можно уже тогда было треть кода смело выкидывать как
 KK>>> давно неактуальную, треть нуждалась в полном переписывании, а
 KK>>> оставшееся в тотальном причесывании.

 NA> Там не плюсы изначально, а голый си с классами. Там переиспользуют
 NA> объекты методом memset(нули) и memcpy() поверх объекта ваще. Потом
 NA> когда голдед стал с плюсом, а не кошерный-Одиннский, то туда начали
 NA> добавлять std::vector, std::string, и они текут, потому никто через
 NA> деструктор правильно не идёт, см.выше.

 Ты что! Там в каждом файле комментарий, что это выглядит, как си,
но это плюсы. :))) Это я так, поржать. Там почти голые плюсы в 90%
мест.

 KK>>> Я когда-то пробовал в своем форке переделать перекодирование на
 KK>>> использование с xlat на iconv, добавить поддержку юникода и
 KK>>> выкинуть повсеместное использование фиксированных C-шных буферов
 KK>>> и добавить корректную реакцию на изменение размера терминала. Hо
 KK>>> так и забил на полпути...

 NA> Я тоже думал, но потом глянул, работы много, если по-уму делать. Ещё
 NA> бы я выкинул вендовый порт, собирал бы курсыс и под венду. Например,
 NA> tin/rtin и под вендой пашет на курсысе, и тоже iconv всё гонит.

Вот если я дорефакторю, то может вместе и накинемся? ;)

 Проблема даже не в этом. Проблема юникода в том, что будет сложно
поддержать его на старых системах. Придется либо втащить iconv в деда,
наподобие, как это сделано с hunspell, либо делать условную компиляцию, чтобы
оно работало и с юникодом, и без. А это не так просто, хоть и
возможно. Пример - тот же tin, на который ты намекаешь. :)

 VA>> Я как раз хочу сделать корректную работу с iconv. Вот сейчас
 VA>> рефакторю.

 NA> Прикольно, если ты на это можешь время выделить, и до какого-то
 NA> логического конца прошагать.

Постараюсь. Очень хочется доделать.

 VA>> Сначала вынесу код перекодировок в отдельную либу, потом сделаю
 VA>> отдельный класс конвертера для текста, потом туда прикручу iconv.

 NA> Хороший план. Даже если ты бросишь на этой стадии, то следующий
 NA> энтузиаст сможет подхватить, и не сильно плеваться на какие-то
 NA> простыни каких-то char* указателей, хер поссышь что там эти алгоритмы
 NA> делают.

 Угу... Я поэтому во многих местах уже переделал на std::string. Ещё
нужно нормальные конструкторы везде сделать вместо memset. Это ж лютый
позор. :)

 VA>> Потом можно браться за юникод. Но это уже гораздо большая
 VA>> задача.

 NA> Если ты введёшь понятие стринг чего-то, и что на экране у тебя некие
 NA> знакоместы, хотябы через std::mblen().. но хотя уже да, это какие-то
 NA> multibyte characters..

 Там надо в некоторых местах считать именно число байт, а при выводе
на экран - именно число знакомест. Я смотрел, как в tin это сделано.
Всё реально, но займёт мнооооого времени. :) Так что iconv я точно
осилю, а вот с юникодом помощь нужна. :) Надо собрать конференцию
разработчиков голого деда и составить road map.

 VA>> Может возьмёшься ревьювить мои коммиты? ;)
 NA> Подналяжем!

 Ты аккаунт-то на гитхабе заведи. ;) Ну или хотя бы делай ревью
мимо гитхаба. Можно прямо в golded.devel слать комментарии по Pull
Request.

Best regards,
Vitaliy Aksyonov.

... Стыдно за вчерашнее, но не помню перед кем...
--- GoldED+/LNX 1.1.5-b20240309
 * Origin: Aurora, Colorado (1:104/117)
SEEN-BY: 104/117 460/58 5001/100 5005/49 5015/46
255 5020/715 830 848 1042
SEEN-BY: 5020/4441 12000 5030/49 1081 5053/58
5058/104 5061/133
@PATH: 104/117 5020/1042 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх