From: Nil A 2:5015/46 02 Feb 2023 21:30 +0200
To: Vitaliy Aksyonov 1:104/117
Subject: Странности в коде
Hello, Vitaliy! Wednesday February 01 2023 22:07, from Vitaliy Aksyonov -> All: VA> Копаюсь в исходниках эхотага. Анализатор памяти нашел несколько мест, VA> где память выделяется через new[], а освобождается через delete. Багу нашёл, как починить знаешь, пулреквесты в хаски вон уже закинул, так и флаг тебе в руки! Best Regards, Nil
From: Vitaliy Aksyonov 1:104/117 02 Feb 2023 07:07 +0200
To: All
Subject: Странности в коде
Привет, All! Копаюсь в исходниках эхотага. Анализатор памяти нашел несколько мест, где память выделяется через new[], а освобождается через delete. Решил поправить и нашел вот такое место: gfile.h uint8_t *c = new uint8_t[__size]; [...skipped...] #ifdef unix delete[] c; #else delete(c); #endif То есть тут явно сознательно так делают. Зачем? Неужели есть какой-то компилятор C++, который не умеет в delete[]? Best regards, Vitaliy Aksyonov. ... Need for спирт.
From: Moderator 2:5080/102 02 Feb 2023 03:28 +0200
To: All
Subject: RU.GOLDED rules
Правила эхоконференции RU.GOLDED. Редакция от 16.01.2012. RU.Golded - Эхоконференция сети Fidonet, посвящённая редакторам сообщений FTN семейства "GoldEd": Golded, Golded-asa, Golded+, Golded-NSF" и др. (В дальнейшем словосочетание "эхоконференция RU.Golded" сокращено до "эха".) Область распространения эхи - сеть Fidonet, другие сети FTN, BBS, возможно гейтование в сеть Internet и представление эхи на различных серверах. Участники (подписчики) эхоконференции, подписавшись на эху, тем самым соглашаются соблюдать правила нетикета, уважать других подписчиков и обсуждать только вопросы, связанные с редакторами семейства Golded. Технические требования: - в сообщениях должны быть использованы русский и/или английский языки; - для русского языка можно использовать любую восьмибитную кодировку; - замены букв (символов) на символы схожего начертания не допускаются; - технические и другие специальные строки в тексте ограничены 79 знаками; - цитируемые при ответе строки должны начинаться префиксом по шаблону " NF> ", где "F" - первая буква фамилии и "N" - имени автора строки. Типичные модераториалы: [*] - предупреждение за однократные небольшие нарушения (технические, офтопик, оверквотинг, оверскриптинг, переписка с модератором и т. п.); [+] - серьёзное нарушение либо многократные предупреждения (хамство, брань, персональная атака, три и более предупреждений); [!] - режим "только чтение" за злостные или многократные нарушения (три [+]). Модераторский состав эхи формируется текущим ментейнером проекта Golded+, на конец 2011 года: Stas Degteff 2:5080/102 - модератор. История эхи. Модератор до середины 1998 года: Roman Furman, 2:5007/7.10 aka 2:5007/13.22 Модератор в 1998-2002 годах: Andrew Voronin 2:5060/19 Модератор в 2003-2007 годах: Sergey Ozerov 2:5020/348 aka 2.5020/348.3
From: Vitaliy Aksyonov 1:104/117 01 Feb 2023 01:41 +0200
To: Alexander Kruglikov 2:5053/58
Subject: Код в golded-plus
Привет, Alexander! 01 Feb 23 03:29, ты писал(а) мне: VA>> И если уж писать с нуля - тогда уж или Qt/GTK AK> Неплохо, кроссплатформено... а как там с cli? Никак. В cli логичнее переделать существующее рещение. И это не должно быть очень сложно, на самом деле. VA>> или вообще на Java/JavaFX. AK> whooyjava (простите) Каждый имеет право на свое мнение. :) Best regards, Vitaliy Aksyonov. ... Пройдете по этомy мостy до середины и сразy направо...
From: Alexander Kruglikov 2:5053/58 01 Feb 2023 01:29 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Код в golded-plus
Привет, Vitaliy! 26 янв 23 21:45, Vitaliy Aksyonov писал(а) к Nil A: VA> И если уж писать с нуля - тогда уж или Qt/GTK Неплохо, кроссплатформено... а как там с cli? VA> или вообще на Java/JavaFX. whooyjava (простите) С наилучшими пожеланиями, Alexander.
From: Vitaliy Aksyonov 2:5023/24.4107 27 Jan 2023 06:45 +0200
To: Nil A 2:5015/46
Subject: Код в golded-plus
Hello Nil! 27 Jan 23 07:04, you wrote to me: VA>> Ncurses под DOS или OS/2 будет работать? Я сомневаюсь. NA> Юникодный голдед-фор-дос - это недостижимо. Проще дропнуть поддержку. NA> Хотите голдеда - юзайте классику, а не новодел на C++20 ;) Тогда проще форкнуть и выпилить всё легаси. Вроде такие попытки были? С нуля писать - слишком много работы. В деде за годы накопилось много вкусного функционала. И если уж писать с нуля - тогда уж или Qt/GTK или вообще на Java/JavaFX. NA> В ДОСе же текстмода натуральная, две таблицы шрифтов можно загрузить. NA> Кагбэ стопицот разных символов из юникода не покажешь. Хотя, если NA> помнишь, были утилитки, в них применялся хак, динамически меняли эти NA> фонты, и получались разные интересные украшения, тени, и курсор мышки NA> ещё такой графический поверх текста мог ездить. Было дело. Люди умели использовать ограниченные ресурсы на полную. NA> Можно извернуться, найти ДОСовый фреймбуфер, под каким-нибудь dos4gw, NA> и затащить туда FreeType, и прям отрисовывать, как будто текстмода, и NA> будет тебе все символы юникода. Кстати, однажды же мы проснулись, и в NA> линуксе при загрузки стал показываться пингвинчик лого, а дальше вроде NA> бы как обычная текст-модная консоль, но там уже был фреймбуфер, а не NA> знакогенератор из видеокарты. Только это уже не будет тем самым NA> ламповым голдедом. Это как голдед переписать на Qt, и там какой-нибудь NA> terminal шрифт фиксированный пихать. Вот и я о том же. Если ламповый голдед оставлять, но с юникодом, то просто переделать внутреннее представление. А что под досом не сможет отобразить все символы - не проблема. Ведь в основном там будет один набор символов. Vitaliy ... Лысый может причесываться, не снимая шляпы.
From: Nil A 2:5015/46 27 Jan 2023 06:04 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Код в golded-plus
Hello, Vitaliy! Thursday January 26 2023 20:34, from Vitaliy Aksyonov -> Nil A: VA> Ncurses под DOS или OS/2 будет работать? Я сомневаюсь. Юникодный голдед-фор-дос - это недостижимо. Проще дропнуть поддержку. Хотите голдеда - юзайте классику, а не новодел на C++20 ;) В ДОСе же текстмода натуральная, две таблицы шрифтов можно загрузить. Кагбэ стопицот разных символов из юникода не покажешь. Хотя, если помнишь, были утилитки, в них применялся хак, динамически меняли эти фонты, и получались разные интересные украшения, тени, и курсор мышки ещё такой графический поверх текста мог ездить. Можно извернуться, найти ДОСовый фреймбуфер, под каким-нибудь dos4gw, и затащить туда FreeType, и прям отрисовывать, как будто текстмода, и будет тебе все символы юникода. Кстати, однажды же мы проснулись, и в линуксе при загрузки стал показываться пингвинчик лого, а дальше вроде бы как обычная текст-модная консоль, но там уже был фреймбуфер, а не знакогенератор из видеокарты. Только это уже не будет тем самым ламповым голдедом. Это как голдед переписать на Qt, и там какой-нибудь terminal шрифт фиксированный пихать. Best Regards, Nil
From: Vitaliy Aksyonov 2:5023/24.4107 27 Jan 2023 05:39 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Shift/Ctrl в Linux + Putty
Hello Vitaliy! 26 Jan 23 08:10, I wrote to all: VA> Сейчас у меня эхотах работает в linux. Запускаю в ru_RU.koi8-r. VA> Подключаюсь через ssh (putty). Там, соответственно, тоже выставлена VA> кодировка koi8-r и тим терминала - linux. Все нормально отображается, VA> могу вводить текст без проблем. VA> Одна проблема - не работают нормально комбинации с Shift/Ctrl. VA> Например, не работает выделение строк через Shift+Up/Down. Или VA> удаление слова через Ctrl+Backspace. VA> Shift+Up/Down просто перемещает курсор, но без выделения. VA> Ctrl+Backspace удаляет один символ, а не слово целиком. VA> Подскажите, пожалуйста, где надо подкрутить, чтобы это работало VA> нормально? VA> Скорее всего проблема именно в настройках putty, т. к. когда я захожу VA> через lxde terminal - выделение с Shift работает. В общем, дело точно в Putty. Или его настройках. Локализовал место, где возникает проблема. Для определения нажатого Shift, используется такой код в файле goldlib/gcui/gkbdbase.cpp (строка 1855): // Under Linux we could use TIOCLINUX fn. 6 to read shift states on console // Of course it is very unportable but should produce good results :-) key = 6; if(ioctl(fileno(stdin), TIOCLINUX, &key) == -1) И ioctl возвращает ошибку ENOTTY "inappropriate ioctl for device". Как поборот - пока не нашел. :( Vitaliy ... Яблоко от лошади недалеко падает!
From: Vitaliy Aksyonov 2:5023/24.4107 27 Jan 2023 05:34 +0200
To: Nil A 2:5015/46
Subject: Код в golded-plus
Hello Nil! 27 Jan 23 03:52, you wrote to me: VA>> Как раз буферы там местами выделяются, учитывая размер окна. В VA>> этом году залили патч. У тебя исходники свежие? Проверь. NA> Ааа.. вижу пул-реквест от lamskoy принят в мастер голдеда. Кстати, NA> Eugene Lamskoy не пробивается по нодлисту-историй, видимо поент. NA> https://github.com/golded-plus/golded-plus/commit/c8c7f069398a165b281d NA> d75be1724db381769bc8 NA> Ну окей, char buf[256] --> на макрос с MAXCOL или MAXCOL*2 кагбэ NA> лучше, чем предлагали до этого char buf[2560], но это всё до ресайза NA> терминалки. char buf[2560] - грязненький хак, конечно. Новое решение лучше, чем ничего. Правда, ведь? Падать не будет. Просто ширина окна останется такая же. VA>> Динамически изменять размер окна - было бы круто. Но это вряд ли VA>> кто-то сейчас будет делать. NA> Потому что надо сразу на какие-то стринги заменять, а не char buf, и NA> динамически строчки меняли свой размер, при этом там бы хорошо было бы NA> хранить utf8. Хотя, виндовому коду нужны wchar_t везде, тот ещё NA> геморой. Ещё для целей редактора надо понимать сколько там NA> отображаемых фигней на экране, а не просто юникодных код-поинтов, и NA> каждый раз запускать функцию пересчёта из utf8 не очень рационально. NA> Был бы какой-нибудь Qt, тамошний QString внутри UTF-16, и прям NA> какой-нибудь QTextEdit и всё само случается. Я думал, для голдеда NA> может ICU библиотеку затащить, и тамошний стринг умеет и хранить, и NA> количество символов печатуемых выдавать. Если уж делать юникодный - лучше UTF-8 или уже UTF-32. В UTF-16 не все влазит. :) ИМХО, ICU было бы хорошо. Ща договоримся.... Придется пилить. :) NA> Но в голдеде исторически слишком много способов вывода, и через ДОС NA> (наверное можно забить), и свой ANSI даже есть, и через ncurses, и под NA> вендой консольный вариант (который надо с codepage на UNICODE NA> переводить). Мне симпатизирует rtin проект, он красиво так всё рисует, NA> внутри utf8 у него, на libiconv перекодировку просто делает, и NA> печатает через ncurses, и ресайз срабатывает хорошо. Вроде rtin есть NA> под венду, и там есть вендовый ncurses. Я про то, что если в голдеде NA> всё на стринги заменить, и вывод только через ncurses сделать, то NA> задача уже имеет какой-то законченный скоп. Ncurses под DOS или OS/2 будет работать? Я сомневаюсь. Vitaliy ... Объявление в общественном мyжском тyалете: "Мимо писсyаров не СРАТЬ!!!".
From: Nil A 2:5015/46 27 Jan 2023 02:52 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Код в golded-plus
Hello, Vitaliy! Thursday January 26 2023 16:08, from Vitaliy Aksyonov -> Nil A: VA> Как раз буферы там местами выделяются, учитывая размер окна. В этом VA> году залили патч. У тебя исходники свежие? Проверь. Ааа.. вижу пул-реквест от lamskoy принят в мастер голдеда. Кстати, Eugene Lamskoy не пробивается по нодлисту-историй, видимо поент. https://github.com/golded-plus/golded-plus/commit/c8c7f069398a165b281dd75be1724db381769bc8 Ну окей, char buf[256] --> на макрос с MAXCOL или MAXCOL*2 кагбэ лучше, чем предлагали до этого char buf[2560], но это всё до ресайза терминалки. VA> Динамически изменять размер окна - было бы круто. Но это вряд ли VA> кто-то сейчас будет делать. Потому что надо сразу на какие-то стринги заменять, а не char buf, и динамически строчки меняли свой размер, при этом там бы хорошо было бы хранить utf8. Хотя, виндовому коду нужны wchar_t везде, тот ещё геморой. Ещё для целей редактора надо понимать сколько там отображаемых фигней на экране, а не просто юникодных код-поинтов, и каждый раз запускать функцию пересчёта из utf8 не очень рационально. Был бы какой-нибудь Qt, тамошний QString внутри UTF-16, и прям какой-нибудь QTextEdit и всё само случается. Я думал, для голдеда может ICU библиотеку затащить, и тамошний стринг умеет и хранить, и количество символов печатуемых выдавать. Но в голдеде исторически слишком много способов вывода, и через ДОС (наверное можно забить), и свой ANSI даже есть, и через ncurses, и под вендой консольный вариант (который надо с codepage на UNICODE переводить). Мне симпатизирует rtin проект, он красиво так всё рисует, внутри utf8 у него, на libiconv перекодировку просто делает, и печатает через ncurses, и ресайз срабатывает хорошо. Вроде rtin есть под венду, и там есть вендовый ncurses. Я про то, что если в голдеде всё на стринги заменить, и вывод только через ncurses сделать, то задача уже имеет какой-то законченный скоп. Best Regards, Nil