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
From: Vitaliy Aksyonov 2:5023/24.4107 27 Jan 2023 01:08 +0200
To: Nil A 2:5015/46
Subject: Код в golded-plus
Hello Nil! 27 Jan 23 00:58, you wrote to me: NA> Hello, Vitaliy! NA> Thursday January 26 2023 13:47, from Vitaliy Aksyonov -> All: VA>> Пожалуй, выделю немного времени и погоняю его с valgrind, заодно VA>> починю такие места. NA> Та char buf[80] сплошные, а окно терминала может быть ширши, писал NA> уже, и конечно же не проверяется выход за границы. Есть патчик, я свой NA> такой делал, где тупо на большое число изменили все эти буфера, но это NA> dirty hack, сам понимаешь, а по уму это долго чинить. Ещё надо бы на NA> SIGWINCH играл реагировать, чтобы динамически менять эти буфера и NA> перерисовывать окошечко. Кстати, какой-нибудь tin/rtin из-коробки NA> через ncurses будет всё это правильно отрисовывать, ещё и в utf8 NA> внутри себя всё перегонять. Как раз буферы там местами выделяются, учитывая размер окна. В этом году залили патч. У тебя исходники свежие? Проверь. Динамически изменять размер окна - было бы круто. Но это вряд ли кто-то сейчас будет делать. Vitaliy ... Ищу психиатра для работы с C++.
From: Nil A 2:5015/46 26 Jan 2023 23:58 +0200
To: Vitaliy Aksyonov 2:5023/24.4107
Subject: Код в golded-plus
Hello, Vitaliy! Thursday January 26 2023 13:47, from Vitaliy Aksyonov -> All: VA> Пожалуй, выделю немного времени и погоняю его с valgrind, заодно VA> починю такие места. Та char buf[80] сплошные, а окно терминала может быть ширши, писал уже, и конечно же не проверяется выход за границы. Есть патчик, я свой такой делал, где тупо на большое число изменили все эти буфера, но это dirty hack, сам понимаешь, а по уму это долго чинить. Ещё надо бы на SIGWINCH играл реагировать, чтобы динамически менять эти буфера и перерисовывать окошечко. Кстати, какой-нибудь tin/rtin из-коробки через ncurses будет всё это правильно отрисовывать, ещё и в utf8 внутри себя всё перегонять. Best Regards, Nil
From: Vitaliy Aksyonov 2:5023/24.4107 26 Jan 2023 22:47 +0200
To: All
Subject: Код в golded-plus
Hello everybody! * Originally in pvt.luna.local * Crossposted in ru.golded Ради интереса собрал дебажный билд голдеда. И когда запустил, он у меня тут же упал в некоторых местах с порчей памяти. Залез в исходники и... Не буду описывать гамму эмоций. Конечно же, это легаси, но даже в то время с памятью работали более аккуратно. Вот пример: CREATEBUFFER(char, buf, MAXCOL); const size_t buflen=MAXCOL; buf[buflen]='\0'; Внимательные читатели берут печеньку. Для невнимательных - мы пишем вне буфера и весело портим память. Пожалуй, выделю немного времени и погоняю его с valgrind, заодно починю такие места. Vitaliy ... Ты что, думаешь ты дурак, а я нет?