LINUX.ORG.RU

lisp lambda-gtk unicode


0

0

Не дает выводить русские буквы в виждетах, у меня русская юникодная локаль. Пишет что мол символ с кодом 10?? не есть unsigned byte что в общем-то справедливо.

Вопросов собственно 2: 1. Можно ли вообще? 2. Подумал разложить русский символ на 2 байта сам, char-int и char-code на русскую букву всегда дают 63 видимо префикс языка. Советы? Ссылки на clhs?


возможное решение???

в lambda-gtk.asd в зависимости от используемого лиспа идет компиляция и загрузка различных файлов, если добиться загрузки по умолчанию файла gtkffi-cffi.lisp и взять пакет cffi из ветки cffi-newtypes ( http://common-lisp.net/~loliveira/darcs/cffi-newtypes/ ) возможно что-то и получится.

Эта ветка cffi лучше работает с уникодными строками, для передачи во внешние функции строк нужно будет указать ваше представление символов (по умолчанию latin-1), но это представление должно быть однобайтовым (koi, cp1251 и т.д.).

anonymous
()
Ответ на: комментарий от codebuger

Скачал clg версии 0.92.1 она у меня не собирается (debian etch sbcl 0.9.16) падает при сборке gtype, gobject  и т.д., если игнорируешь то все равно не работает. В чем смысл установки путей:
(setf (logical-pathname-translations "clg") 
         '(("**;*.*.*" "/home/espen/src/clg/**/")))
на что они должны указывать?

maximo
() автор топика
Ответ на: комментарий от maximo

например, мой домашний каталог /home/krivetko, а clg закинут в work, значит нужно "/home/krivetko/work/clg/**/", тогда при выполняя допустим (translate-logical-pathname "clg:systems;") получим #P"/home/krivetko/work/clg/systems/"

не забываем выполнить
(push
(translate-logical-pathname "clg:systems;")
asdf:*central-registry*)

заранее надо создать каталог systems в каталоге clg и сделать симлинки на asd файлы:

$ cd /home/krivetko/work/clg
$ mkdir systems && cd systems
$ find .. -name '*.asd' -exec ln -s {} . \;

еще версия 0.92.1 довольно старая, лучше взять из последнюю cvs репозитария. sbcl тоже старый, последняя версия 1.0.8, можно собрать имеющимся sbcl

anonymous
()
Ответ на: комментарий от anonymous

Попробовал clg из cvs - тоже собрался с ошибками, но зато показывает русский текст, что радует. Вытянул сейчас sbcl новый в исходниках, буду собирать. Вопрос, а как его(sbcl) при необходимости корректно снести потом?

maximo
() автор топика
Ответ на: комментарий от codebuger

У тебя есть рабочая связка sbcl + clg? Собирал новый лисп 1.0.7 и clg из CVS - не работает. Полез в примерчики посмотреть - да, clg действительно приятнее. Выкрутился сейчас с лямбдой при помощи string-to-octets.

maximo
() автор топика
Ответ на: комментарий от maximo

> У тебя есть рабочая связка sbcl + clg?

у меня гарантированно работает sbcl 1.0.4 и последний clg из cvs. после 1.0.6 версии sbcl начались проблемы и некогда разобраться в чем дело...

codebuger
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.