Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Vlasov                        2:5020/400     10 Mar 2005  15:47:32
 To : Sergey Mudry
 Subject : Re: А программирование под X тут обсуждают? (ion2)
 -------------------------------------------------------------------------------- 
 
 On Wed, 9 Mar 2005 21:53:05 +0000 (UTC) Sergey Mudry wrote:
 
 > === Cut ===
 >      XTextProperty prop;
 >      char **list=NULL;
 >      int n=0;
 >      Status st=0;
 > 
 >      st=XGetTextProperty(wglobal.dpy, win, &prop, a);
 > 
 >      if(nret)
 >          *nret=(!st ? 0 : -1);
 >      if(!st)
 >          return NULL;
 > 
 >      if(!wglobal.use_mb){
 >        st=XTextPropertyToStringList(&prop, &list, &n);
 >      }else{
 >        st=XmbTextPropertyToTextList(wglobal.dpy, &prop, &list, &n);
 >        st=!st;
 >      }
 > 
 >      XFree(prop.value);
 > === Cut ===
 > 
 > Выяснил, что обламывается функция XTextPropertyToStringList.
 > Если в заголовке только латинница, то XGetTextProperty возвращает prop
 > как положено, c prop.encoding==31 (XA_STRING) и prop.format==8, а в 
 > prop.value лежит собственно текст.
 > А если есть кириллица, то получаем prop.encoding==277 (такого кода в 
 > Xatom.h нет, что это?), функция XTextPropertyToStringList такое не 
 > переваривает. prop.value при этом тоже содержит текст, но обрамлённый 
 > непечатными символами и текстом 'koi8-r'.
 
 COMPOUND_TEXT это.
 
 > Вопрос: можно сие пофиксить? Чтобы русская надпись всё же появилась в 
 > заголовке окна.
 
 В man XTextPropertyToStringList написано:
 
   The data in text_prop must be of type STRING and format 8.
 
 А STRING - это по определению ISO-8859-1, где никаких русских букв
 быть не может.  Т.е., функция XTextPropertyToStringList для данных
 целей непригодна.  Для работы с другими кодировками нужно использовать
 XmbTextPropertyToTextList, XwcTextPropertyToTextList,
 Xutf8TextPropertyToTextList.  Поскольку в приведённом коде есть ветка,
 где используется XmbTextPropertyToTextList, нужно добиться, чтобы она
 использовалась - т.е., выставить флаг wglobal.use_mb.
 
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 А программирование под X тут обсуждают? (ion2)   Sergey Mudry   10 Mar 2005 01:53:05 
 Re: А программирование под X тут обсуждают? (ion2)   Sergey Vlasov   10 Mar 2005 15:47:32 
 Re: А программирование под X тут обсуждают? (ion2)   Sergey Mudry   10 Mar 2005 20:18:38 
 Re: А программирование под X тут обсуждают? (ion2)   Andrey Slusar   10 Mar 2005 20:42:48 
Архивное /ru.linux/3672777d76a9.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional