Discussion:
Редактирование %i,%i(%02X). %s"", should be 3
(слишком старое сообщение для ответа)
Vladislav Vetrov
2016-09-06 05:53:38 UTC
Permalink
* Оригинал написан в PUSHKIN.LOCAL
* Скопировано в RU.GOLDED

Hello Pavel!

17 май 16 23:47, I wrote to you:

VV> 17 май 16 12:04, you wrote to me:
VV>
PM>> Каждый раз при запуске деда появляется такое сообщение "ST_EDITSTATUS
PM>> has wrong format. Read NOTEWORK.TXT for details or announce author if
PM>> this error is false positive (first try to set true locale). Your
PM>> format string is ""Редактирование %i,%i(%02X). %s"", should be 3
PM>> numbers and one string.". Чего только не пробовал делать.
VV>
VV> Какая версия Golded? Попробуй поставить (скомпилировать) самую свежую.
VV> Припоминаю, что у меня что-то похожее было, но деталей не помню.

Вспомнил! И если я правильно вспомнил, проблема заключается в том, что Golded
не дружит с utf8.

Поэтому! Лучше отказаться от luit в пользу вот такого решения запуска Golded
через скрипт:

___________________________

#!/bin/bash

export LANG=ru_RU.koi8r; umask 002; mate-terminal --window-with-profile=golded
--disable-factory -e '/home/usr/fido/golded/bin/gedlnx
-C/home/usr/fido/golded/cfgs/golded.cfg'

___________________________


Пояснения:

export LANG=ru_RU.koi8r; - избавляемся от utf8;
umask 002; - это чисто мои прибамбасы, связанные с правами на
файлы,
лучше не писать. Оставил, как пример, может кому-то
пригодится;

mate-terminal --window-with-profile=golded - это запуск терминала, можно
использовать также gnome-terminal, во время запуска сразу выбирается профайл
под именем golded, который нужно сделать заранее: запускам mate или
gnome-terminal. Идём "Правка-Профили", нажимаем "Создать". В поле "Hазвание
профиля" пишем golded. В настройках по желанию выбираем шрифт, у меня стоит
Terminus 14. Убираем галочку "Показывать в новых терминала строку меню". Ставим
галочку "Использовать другой размер терминала по умолчанию. Далее указываем
размер. У меня, например, 125 столбцов и 34 строк. Переходим на вкладку
"Прокрутка": Полоса прокрутки выбираем "Выключено". Всё! Hажимаем кнопку
Закрыть; Далее идём "Терминал", "Установить кодировку символов", "Добавить или
удалить...". В поле "Доступные кодировки" находим Кирилица KOI8-R и добавляем
его в поле "Кодировки, показываемые в меню".

*Примечание 01*: для уверенности, что во время запуска скрипта выбирается
именно KOI8-R лучше воочию это проверить. Для этого уже после того, как будет
всё настроено в профайле терминала под именем golded нужно временно включить
показ меню (поставить галочку "Показывать в новых терминалах строку меню"),
запустить скрипт и в меню терминала в разделе "Терминал", "Установить кодировку
символов", должна стоять Кирилица (KOI8-R). После чего в настройках профайла
терминала под именем golded убрать галочку "Показывать в новых терминалах
строку меню".

*Примечание 02*: Меню вообще можно не выключать, это на любителя. Просто у меня
так сделано и я описывать все нюансы, чтобы самому когда-нибудь о них вспомнить
:)

--disable-factory - это чтобы полностью избавиться от utf8 и других
унаследованных настроек по умолчанию.
-e '/home/usr/fido/golded/bin/gedlnx -C/home/usr/fido/golded/cfgs/golded.cfg' -
это сама команда по запуску Golded
с указанием файла конфигурации;

Скрипт сохраняем под именем rungolded.scr, например, в директории
~/fido/golded, делаем ему chmod +x и назначаем горячую клавишу для быстрого
запуска средствами ОС (gnome, mate): Центр управления, Комбинации клавиш
клавиатуры.

Всё! :)

Vladislav

... -= - <<< - >>> - =-
Maxim Sokolsky
2016-09-06 07:29:54 UTC
Permalink
Привет, Vladislav!

VV> Вспомнил! И если я правильно вспомнил, проблема заключается в том, что
VV> Golded не дружит с utf8.

VV> Поэтому! Лучше отказаться от luit в пользу вот такого решения запуска
VV> Golded через скрипт:
VV> ___________________________

VV> #!/bin/bash
VV> export LANG=ru_RU.koi8r; umask 002; mate-terminal
VV> --window-with-profile=golded --disable-factory -e
VV> '/home/usr/fido/golded/bin/gedlnx
VV> -C/home/usr/fido/golded/cfgs/golded.cfg'

Да, это может помочь, если, конечно, словари у него не в UTF-8.

Если словари в юникоде, и если выставить LANG=ru_RU.koi8r - они набором мусора
для редактора так и останутся - нужно их в koi8-r переводить - тогда падать
перестанет.

Всё это костыли - исходники golded'а надо патчить, падение происходит вот тут

goldlib/hunspell/csutil.cxx
-+-

static struct lang_map *get_lang2enc(bool what = true)
{
struct lang_map lang2enc[] =
{
{"az", "UTF-8", LANG_az},
{"bg", "microsoft-cp1251", LANG_bg},
{"ca", "ISO8859-1", LANG_ca},
{"cs", "ISO8859-2", LANG_cs},
{"da", "ISO8859-1", LANG_da},
{"de", "ISO8859-1", LANG_de},
{"el", "ISO8859-7", LANG_el},
{"en", "ISO8859-1", LANG_en},
{"es", "ISO8859-1", LANG_es},
{"eu", "ISO8859-1", LANG_eu},
{"gl", "ISO8859-1", LANG_gl},
{"fr", "ISO8859-15", LANG_fr},
{"hr", "ISO8859-2", LANG_hr},
{"hu", "ISO8859-2", LANG_hu},
{"it", "ISO8859-1", LANG_it},
{"la", "ISO8859-1", LANG_la},
{"lv", "ISO8859-13", LANG_lv},
{"nl", "ISO8859-1", LANG_nl},
{"pl", "ISO8859-2", LANG_pl},
{"pt", "ISO8859-1", LANG_pt},
{"sv", "ISO8859-1", LANG_sv},
{"tr", "UTF-8", LANG_tr},
{"ru", "KOI8-R", LANG_ru},
{"uk", "KOI8-U", LANG_uk}
};

return what ? lang2enc : (lang_map *)(sizeof(lang2enc) / sizeof(lang_map));
}

const char * get_default_enc(const char * lang)
{
int n = (long)get_lang2enc(false);
for (int i = 0; i < n; i++)
{
if (strcmp(lang, get_lang2enc()[i].lang) == 0)
{
return get_lang2enc()[i].def_enc;
}
}
return NULL;
}

int get_lang_num(const char * lang)
{
int n = (long)get_lang2enc(false);
for (int i = 0; i < n; i++)
{
if (strncmp(lang,get_lang2enc()[i].lang,2) == 0)
{
return get_lang2enc()[i].num;
}
}
return LANG_xx;
}
-+-

По-хорошему нужно код править включая логику - только это никто делать не будет
- неизвесно что оно затронет в других местах.

Сейчас всё прибито гвоздями - перекодирование внутри дедушки под винду идёт
через cp1251, которая определена через болгарскую кодировку, а русская для
линуксов только одна - и это KOI8-R.

С наилучшими пожеланиями, Maxim.
Vladislav Vetrov
2016-09-07 21:21:08 UTC
Permalink
Hello Maxim!

06 сен 16 10:29, you wrote to me:

MS> Сейчас всё прибито гвоздями - перекодирование внутри дедушки под винду
MS> идёт
MS> через cp1251, которая определена через болгарскую кодировку, а русская для
MS> линуксов только одна - и это KOI8-R.

Hа RU.GOLDED я где-то читал как в Golded для Linux можно избавиться от KOI8-R в
пользу CP866.
Это не сложно и так будет лучше, т.к. никаких таблиц перекодировок. У меня
вопрос -
так может реально перейти на CP866? Словари будут работать?

Vladislav

... -= - <<< - >>> - =-
Maxim Sokolsky
2016-09-08 05:46:48 UTC
Permalink
Привет, Vladislav!

MS>> кодировку, а русская для линуксов только одна - и это KOI8-R.

VV> Hа RU.GOLDED я где-то читал как в Golded для Linux можно избавиться от
VV> KOI8-R в пользу CP866. Это не сложно и так будет лучше, т.к. никаких
VV> таблиц перекодировок. У меня вопрос - так может реально перейти на
VV> CP866?

А зачем? KOI8-R поддерживается современными системами - причем натурально,
как основная кодировка. CP1251 - можно сделать основной локалью - но нужно
знать детали - и пойдут косяки в меню программ, а также ещё кое-какие мелочи.

Иметь досовскую кодировку в качестве основной системной - навернео можно - но
чисто теоретиески. Практически же - она вызывается через iconv или luit - но
тут что UTF-8, что кои - разницы нет.

VV> Словари будут работать?

Да словари, как выяснилось, непричём.

С наилучшими пожеланиями, Maxim.
Vladislav Vetrov
2016-09-08 07:14:28 UTC
Permalink
Hello Maxim!

08 сен 16 08:46, you wrote to me:

MS> Иметь досовскую кодировку в качестве основной системной - навернео можно
MS> - но чисто теоретиески. Практически же - она вызывается через iconv или
MS> luit - но тут что UTF-8, что кои - разницы нет.

Hет, нет, не в качестве основной, а качестве текущей для терминала, в котором
запускается golded.
Т.е. в скрипте ниже вместо koi8-r прописать cp866 (и далее кое-где по моей
инструкции в этом сабже ранее):

#!/bin/bash export LANG=ru_RU.koi8r; umask 002; mate-terminal
--window-with-profile=golded --disable-factory -e
'/home/usr/fido/golded/bin/gedlnx -C/home/usr/fido/golded/cfgs/golded.cfg'

Vladislav

... -= - <<< - >>> - =-
Maxim Sokolsky
2016-09-09 06:36:40 UTC
Permalink
Привет, Vladislav!

MS>> вызывается через iconv или luit - но тут что UTF-8, что кои -
MS>> разницы нет.

VV> Hет, нет, не в качестве основной, а качестве текущей для терминала, в
VV> котором запускается golded. Т.е. в скрипте ниже вместо koi8-r
VV> прописать cp866 (и далее кое-где по моей инструкции в этом сабже

Ясно. Ты намекаешь, что польза тут - не будет двойного перекодирования -
дедушкой, а потом средствами юзерленда.



С наилучшими пожеланиями, Maxim.
Vladislav Vetrov
2016-09-09 12:37:34 UTC
Permalink
Hello Maxim!

09 сен 16 09:36, you wrote to me:

VV>> Hет, нет, не в качестве основной, а качестве текущей для терминала, в
VV>> котором запускается golded. Т.е. в скрипте ниже вместо koi8-r
VV>> прописать cp866 (и далее кое-где по моей инструкции в этом сабже
MS>
MS> Ясно. Ты намекаешь, что польза тут - не будет двойного перекодирования -
MS> дедушкой, а потом средствами юзерленда.

Hу да, но кое-кто говорит, что не стоит. Думаю, пока сам не попробую, не
успокоюсь.

Vladislav

... -= - <<< - >>> - =-
Alexey Vissarionov
2016-09-08 21:11:10 UTC
Permalink
Доброго времени суток, Maxim!
08 Sep 2016 08:46:48, ты -> Vladislav Vetrov:

MS> KOI8-R поддерживается современными системами - причем натурально, как
MS> основная кодировка.

Дебилушка, изучи матчасть и осознай, что никакой "основной кодировки" не
существует, а локаль является свойством процесса, а не системы.

А до того счастливого момента срыгни в туман из этой эхи.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Пропала собака? Спросите у Пака!
Vladislav Vetrov
2016-09-09 12:38:40 UTC
Permalink
Hello Alexey!

09 сен 16 00:11, you wrote to Maxim Sokolsky:

AV> А до того счастливого момента срыгни в туман из этой эхи.

Алекс, зачем так грубо? Фидо - сеть друзей, читай мой ориджин и балдей :) Ибо
так сказал один всем известный классик ;)

Vladislav

... -= - <<< - >>> - =-

Alexey Vissarionov
2016-09-08 21:11:00 UTC
Permalink
Доброго времени суток, Vladislav!
08 Sep 2016 00:21:08, ты -> Maxim Sokolsky:

VV> Hа RU.GOLDED я где-то читал как в Golded для Linux можно избавиться
VV> от KOI8-R в пользу CP866. Это не сложно и так будет лучше, т.к.
VV> никаких таблиц перекодировок. У меня вопрос - так может реально
VV> перейти на CP866?

Нет.

Работа эхотага в GNU/Linux-системах тестируется предельно просто: запуском в
автохтонном xterm с локалью ru_RU.KOI8-R. Из этого напрямую следует, что вся
совместимость с другими локалями обеспечивается одновременным выполнением двух
условий: эта локаль (1) не является юникодной и (2) полностью поддерживается в
используемой системе.

Так вот: подавляющее большинство современных GNU/Linux-систем настолько жестко
привязаны к UTF-8, что "из коробки" поддерживают в лучшем случае "канонiчную"
KOI8-R, и то с ограничениями. Хотя, казалось бы, "локаль - свойство процесса, а
не системы"...

По данной причине значительно вероятнее, что первым (и наверняка единственным)
FTN-редактором с поддержкой юникода станет не эхотаг, а msged из проекта Husky
(во всяком случае, там можно относительно безболезненно похерить совместимость
со всеми остальными системами, кроме GNU/Linux, во имя работы полностью через
libiconv из glibc).

VV> Словари будут работать?

Их вообще никто не тестирует. И если бы не значительное количество долбодятлов,
неспособных грамотно писать на родном языке, которые раздражают разработчиков
эхотага еще сильнее, чем корявая проверка орфографии - таковая давно была бы
выкинута из эхотага за ненадобностью.


--
Alexey V. Vissarionov aka Gremlin from Kremlin
gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii

... Кликайте, и вам откликнется!
Loading...