Время от времени civclient падает с сообщением: (civclient:6333): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text() Pango-ERROR **: file pango-layout.c: line 3286 (pango_layout_check_lines): assertion failed: (end <= (layout->text + layout->length)) aborting... Trace/breakpoint trap Система: x86_64, последний Sisyphus, локаль ru_RU.UTF-8
Created attachment 1424 [details] civgame+0680.sav.gz save, на открытии которого падает freeciv. Вылезает это где-то в районе переводов. С отладкой, добавленной в pango, видно, что ему не нравится текст "Босния и Герцеговина". text:Компьютер text:Filipovic Nikola text:Босния и Герцего� (civclient:13292): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text() Pango-ERROR **: file pango-layout.c: line 3287 (pango_layout_check_lines): assertion failed: (end <= (layout->text + layout->length)) aborting... Trace/breakpoint trap
В локали C не воспроизводится, в локали ru_RU.KOI8-R тоже падает.
Всё дело в размере Nation в структуре packet_game_load способ воспроизведения 100%: начать игру под Босния и Герцеговина, сохранить, выйти и загрузить сохранённую игру.
MAX_LEN_NAME is too short?
я пробовал увеличить. кончилось это плохо Хотя если честно я пробовал увеличить только в клиенте.. наверное потому и было плохо (там пакет формируется на сервере). на досуге проверю. Кстати, увеличение этого значения не повлияет на связь с другими freeciv серверами ?
Что-то изменилось ?
Воспроизводится ли с текущей (2.1.0-alt0.b4) версией? Вроде в апстриме что-то на эту тему фиксили.
Fixed in 2.1.0-alt0.b4 > Хотя если честно я пробовал увеличить только в клиенте.. наверное потому и было плохо (там пакет формируется на сервере). Формируется на сервере, разбирается на клиенте, описания пакетов на сервере и клиенте должны совпадать. При изменении описания какого-либо пакета необходимо также изменить строку "network capabilities" - упрощённо говоря, версию протокола сетевого обмена. > Кстати, увеличение этого значения не повлияет на связь с другими freeciv серверами ? Повлияет, у клиента и сервера будут разные версии протокола обмена под одним именем -> segfaults expected.