I\'m working in a Russian environment. I want to see the definition for the German word uebrigens. I\'m not able to enter the first letter. Therefore, i decide to use suffix matching. It matches the required word, but can\'t retrieve the definition, because it transmits the request with a ? as the first letter. The same problem in gnome-dictionary. After all, it would be nice to have a matching algorithm that would match \"ae\" and the corresponding letter and the like. Now there is none such. --- $ dict -s suffix brigens -r * Send/2: client \"dict 1.8.0/rf on Linux 2.4.20-alt0.1-adv-up\" match * suffix \"brigens\" * Read: 220 arrakis.zephyrous dictd 1.8.0/rf on Linux 2.4.20-alt0.1-adv-up <auth .mime> <<a href="mailto:50.10966.1039706374@arrakis.zephyrous>" target="_new">50.10966.1039706374@arrakis.zephyrous></a>; * Status = 220 * Processed 2 * Read: 250 ok * Status = 250 * Processed 3 * Processed 4 * Read: 152 1 matches found * Status = 152 * Text: deu-eng \"ц╪brigens\" * Text: . * Read: 250 ok [d/m/c = 0/1/1055598; 1.000r 0.000u 0.000s] * Status = 250 * Processed 10 * Send/13 * Processed 13 * Send/14: define deu-eng \"?brigens\" quit * Read: 552 no match [d/m/c = 0/0/16; 0.000r 0.000u 0.000s] * Status = 552 * Processed 11 No definitions found for \"?brigens\" * Processed 1 * Read: 221 bye [d/m/c = 0/0/0; 1.000r 0.000u 0.000s] * Status = 221 * Processed 14 --- dict-deu-eng-0.2-alt1 dict-1.8.0-alt1 dictd-1.8.0-alt1
$ dict -s suffix brigens -r dict: mbrtowc.c:79: mbrtowc: Assertion `(__ctype_get_mb_cur_max ()) > 1' failed. Aborted
I guess #1672 is rather about this...
reassign...
В нашем клиенте dict, который лежит в Сизифе, используется libnatspec и символы, которые не могут быть отображены в текущей кодировке консоли, транслитерируются. Что с запросами, надо проверить. Нужен более понятный (мне) testcase.
Пока не покажете пример, я буду считать что эта четырёхлетняя бага уже не воспроизводима.
(In reply to comment #5) > Пока не покажете пример, я буду считать что эта четырёхлетняя бага уже не > воспроизводима. Да всё тот же пример. Вот, на dict-1.9.15-alt5, dictd-1.9.15-alt5, dict-deu-eng-0.2-alt2.1.1. Дело в кривости dict внутри: он перекодирует для пользователя слишком рано, а не должен. Он не должен перекодировать как для пользователя то, что посылает серверу на втором раунде (а получил на первом раунде переговоров). Пример, когда всё хорошо (потому что перекодировка не мешает: нашёл по образцу, показал, что нашёл по образцу): $ dict -s suffix leicherweise -r -m deu-eng: gleicherweise $ dict -s suffix leicherweise -r From German-English Freedict dictionary [deu-eng]: gleicherweise [glaic,rvaiz@] alike $ Пример, когда плохо: $ dict -s suffix brigens -r -m deu-eng: u:brigens $ dict -s suffix brigens -r No definitions found for "u:brigens" $ А должен был показать.
(In reply to comment #2) > I guess #1672 is rather about this... No, it's different (or rather: it's opposite -- that kind of recoding interferes here into dict's sane operation).
(In reply to comment #6) $ locale LANG=ru_RU.KOI8-R LC_CTYPE="ru_RU.KOI8-R" LC_NUMERIC="ru_RU.KOI8-R" LC_TIME="ru_RU.KOI8-R" LC_COLLATE="ru_RU.KOI8-R" LC_MONETARY="ru_RU.KOI8-R" LC_MESSAGES=POSIX LC_PAPER="ru_RU.KOI8-R" LC_NAME="ru_RU.KOI8-R" LC_ADDRESS="ru_RU.KOI8-R" LC_TELEPHONE="ru_RU.KOI8-R" LC_MEASUREMENT="ru_RU.KOI8-R" LC_IDENTIFICATION="ru_RU.KOI8-R" LC_ALL= $ > Пример, когда плохо: > $ dict -s suffix brigens -r -m > deu-eng: u:brigens > $ dict -s suffix brigens -r > No definitions found for "u:brigens" > $ > > А должен был показать.
Иван, а не хотите заняться dict? У нас он последние годы неухоженный...
Что значит неухоженный? См. changelog? И нет ли здесь того, кто голосовал за прекращение борьбы за koi8-r?
(In reply to comment #10) > Что значит неухоженный? См. changelog? > И нет ли здесь того, кто голосовал за прекращение борьбы за koi8-r? > Разве koi8-r в данном случае имеет значение?
Что-то добавление ключа -n не решает проблему. Похоже всё-таки локаль тут ни при чём.