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


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 02 Jul 24 03:28:00, всего сообщений: 3581
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 2770 из 3581 ======================================== RU.GOLDED =
От   : Vitaliy Aksyonov                 1:104/117          04 Oct 23 07:06:34
Кому : Semen Panevin                                       04 Oct 23 07:06:34
Тема : Re: Еще один крэш
FGHI : area://RU.GOLDED?msgid=1:104/117+651d655e
На   : area://RU.GOLDED?msgid=2:5025/121+651d2607
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.GOLDED?msgid=2:5025/121+651d70e6
==============================================================================
Привет, Semen!

04 Oct 23 11:35, ты писал(а) мне:

VA>>> Там есть заезд по памяти в одном месте точно. В файле
VA>>> goldlib\gall\gespell.cpp в функции void
VA>>> CSpellLang::RecodeText(const char *srcText, std::string
VA>>> &dstText, bool flag) найди строку char *dstbuffer = new
VA>>> char[srcLen+1]; и сделай буффер побольше, например вот так char
VA>>> *dstbuffer = new char[srcLen * 4 + 1];
SP> Видимо после фикса таблицы перекодировки я наступил именно на это :)

SP> Сразу после создания сообщения-ответа со включенным спеллчекером
SP> теперь упало.

SP> malloc(): invalid size (unsorted)' ^
SP> Привет, Semen!                   /home/fido/bin/golded: строка 4:
SP> 30315 Аварийный останов       gedlnx $*

Такое я пару раз ловил, но не понял, в чем причина. С однобайтовой кодировкой таких проблем не было.

VA>> Это была адская подстава. :) Оказалось, что таблица перекодировки
VA>> из koi8-r в uft-8 - это, на самом деле копия таблицы cp866 ->
VA>> utf-8.
SP> А я-то глупый искал таблицы перекодировки в utf8 по utf и utf8 но не
SP> по u8 и думал что их у меня нет :)

Хуже когда они есть, но работают неправильно. Я убил несколько часов, пока не понял, в чем подстава. :)

VA>> завелась. Но все равно с такими словарями это мало практично,
VA>> ведь эхотаг не умеет преобразовать назад из utf-8 в локальную
VA>> кодировку.
SP> Это типа чтобы suggestions заработали?

Они самые. Если подсказки не нужны, то мой патч с увеличением буфера решает проблему и можно использовать utf-8 словари. Я пока не отправляю его в мастер, т. к. делаю более полноценное решение, которое закроет еще ряд вопросов с потенциальными заездами по памяти.

VA>>  Я все равно поправлю там заезды по памяти, но никому не
VA>> рекомендую использовать словари в многобайтных кодировках.
SP> Ну не перекодировать же после каждого обновления hunspell словари. В
SP> поставке идут UTF-8, надо подружить с ними.

Я просто скопировал их в отдельный каталог и дело с концом. Зато у меня отлично работает проверка орфографии. Мало того, я нашел словарь на 300К+ слов, но для него нужен новый hunspell. Это сделаю тоже. :)

VA>>> А вообще, попробуй ради эксперимента преобразовать свои словари
VA>>> в KOI8-R и попробуй с "родным" hunspell и с твоим патчем. 99%,
VA>>> что взлетит. У меня точно работает.
SP> Наверное да... Если заезд по памяти пофиксить.
SP> Будет чучуть времени - попробую патчик наложить на gespell.cpp
SP> временный по твоему совету и проверить.

Работает. Проверено. Так что накладывай и пользуйся. Скоро будет более полноценный патч.

SP>>>> Понять бы, почему логи не пишутся...
VA>>> Логи у меня пишутся.
SP> Ну вот у меня нет :) Пустота, чёрт побери :)

Очень странно. Значит, что-то в конфиге не так. Тут я тебе кроме как вдумчиво покурить конфиги, а лучше отладчиком посмотреть в том месте, где он пытается (или не пытается) открыть лог.

VA>>> Хуже всего то, что некоторый код весело пишет в stdout/stderr и
VA>>> портит картинку.
SP> Ммм, в "штатном" режиме работы я такого не наблюдал.

В штатном конечно нет. Но как только вылазит ошибка какая-то - портит экран. Я ведь как раз повторяю какие-то ошибочные сценарии.

SP> Там другая проблема есть. Если при старте есть ошибки какие-то,
SP> которые льются в stderr/stdout, то их невозможно прочитать, т.к.
SP> где-то инициализируется ncurses и фсё, консоль больше не консолит.
SP> Единственный способ - запускать с перенаправлением вывода в файл, но
SP> тогда втуда же и ncurses уходит, если не только stderr но и stdout
SP> перенаправить :)

Факт. И у меня есть идея, как это поправить. Чтобы хотя бы справку нормально выдавал.

VA>>> ЗЫ. Вот и нашел себе следущую задачу. :) Переделать XlatStr,
VA>>> чтобы не было заездов по памяти. Как минимум - передавать размер
VA>>> выходного буфера.
VA>> Вот займусь этим пока.
SP> Эх, я уже тоже почти совсем увлёкся и почти полез ковырять код
SP> голдеда... Сложно это, когда C/C++ знаешь довольно поверхностно :)
SP> Особенно в плане работы с разными разновидностями строк и прочими
SP> юникодами...

Плюсы, особенно современные - не самый простой язык. А ты на чем пишешь?

Best regards,
Vitaliy Aksyonov.

... Дайте мне исходники вселенной и хороший дебаггер!
--- GoldED+/LNX 1.1.5-b20230920
* Origin: Aurora, Colorado (1:104/117)

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