Bug 1709 - definitions of certain matched words can\'t be retrieven
: definitions of certain matched words can\'t be retrieven
Status: REOPENED
: Sisyphus
(All bugs in Sisyphus/dict)
: unstable
: all Linux
: P5 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2002-12-12 18:29 by
Modified: 2008-09-06 23:23 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2002-12-12 18:29:34
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&gt; &lt;<a href="mailto:50.10966.1039706374@arrakis.zephyrous&gt"
target="_new">50.10966.1039706374@arrakis.zephyrous&gt</a>;
* Status = 220
* Processed 2
* Read: 250 ok
* Status = 250
* Processed 3
* Processed 4
* Read: 152 1 matches found
* Status = 152
* Text: deu-eng \&quot;ц╪brigens\&quot;
* 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 \&quot;?brigens\&quot;
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 \&quot;?brigens\&quot;
* 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
------- Comment #1 From 2006-03-07 10:45:54 -------
$ dict -s suffix brigens -r 
dict: mbrtowc.c:79: mbrtowc: Assertion `(__ctype_get_mb_cur_max ()) > 1' 
failed. 
Aborted 
 
------- Comment #2 From 2006-12-16 17:52:06 -------
I guess #1672 is rather about this...
------- Comment #3 From 2006-12-16 17:53:59 -------
reassign...
------- Comment #4 From 2006-12-17 00:01:48 -------
В нашем клиенте dict, который лежит в Сизифе, используется libnatspec и 
символы, которые не могут быть отображены в текущей кодировке консоли, 
транслитерируются.
Что с запросами, надо проверить. Нужен более понятный (мне) testcase.
------- Comment #5 From 2006-12-29 09:48:09 -------
Пока не покажете пример, я буду считать что эта четырёхлетняя бага уже не 
воспроизводима.
------- Comment #6 From 2008-09-05 01:32:26 -------
(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"
$ 

А должен был показать.
------- Comment #7 From 2008-09-05 01:33:58 -------
(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).
------- Comment #8 From 2008-09-05 01:36:39 -------
(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"
> $ 
> 
> А должен был показать.
------- Comment #9 From 2008-09-06 11:47:15 -------
Иван, а не хотите заняться dict?  У нас он последние годы неухоженный...
------- Comment #10 From 2008-09-06 21:12:09 -------
Что значит неухоженный? См. changelog?
И нет ли здесь того, кто голосовал за прекращение борьбы за koi8-r?
------- Comment #11 From 2008-09-06 21:31:18 -------
(In reply to comment #10)
> Что значит неухоженный? См. changelog?
> И нет ли здесь того, кто голосовал за прекращение борьбы за koi8-r?
> 

Разве koi8-r в данном случае имеет значение?
------- Comment #12 From 2008-09-06 23:23:05 -------
Что-то добавление ключа -n не решает проблему.
Похоже всё-таки локаль тут ни при чём.