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