LINUX.ORG.RU
ФорумTalks

Motif, terminus и UTF-8

 ,


0

5

Есть старый ребус про Motif и UTF-8. Motif UTF-8 поддерживает, но как задействовать эту поддержку, по ходу, знают единицы. Частично она включается через локаль UTF-8, но это только часть дела. Код тоже должен быть приведён к соответствующему виду.

Вот рабочий пример helloworld'а на Motif'е, который при локали UTF-8 выведет строку в UTF-8 terminus'ом:

#include <Xm/PushB.h>

int main(argc, argv)
int argc;
char *argv[];
{
    Widget        toplevel, button;
    XtAppContext  app;
    void          button_pushed();
    XmString 	  label;

    String mydefaults[] = { "*fontList:-xos4-terminus-bold-r-normal--28-*-*-*-*-*-iso10646-1", NULL };

    XtSetLanguageProc (NULL, NULL, NULL);

    toplevel = XtVaAppInitialize (&app, "Hello", NULL, 0,
        &argc, argv, mydefaults, NULL);

    label = XmStringCreateLocalized ("Push здесь to say hello"); 
    button = XtVaCreateManagedWidget ("pushme",
        xmPushButtonWidgetClass, toplevel,
        XmNlabelString, label,
        NULL);
    XmStringFree (label);
    XtAddCallback (button, XmNactivateCallback, button_pushed, NULL);

    XtRealizeWidget (toplevel);
    XtAppMainLoop (app);
}

void button_pushed(widget, client_data, call_data)
Widget widget;
XtPointer client_data;
XtPointer call_data;
{
    printf ("Hello Yourself!\n");
}
Собирать, напоминаю, так:
gcc -o hello hello.c -lXm -lXt -lX11

★★★★★

Motif UTF-8 поддерживает, но как задействовать эту поддержку, по ходу, знают единицы

Не всем нужен UTF-8.

h578b1bde ★☆
()

Верните аккаунт владельцу, изверги!!!!

Ygor ★★★★★
()

Саах теперь будет троллить с помощью UTF-8?

awesomebuntu
()
Ответ на: комментарий от intelfx
String mydefaults[] = { "*fontList:-xos4-terminus-bold-r-normal--28-*-*-*-*-*-iso10646-1", NULL };

...

toplevel = XtVaAppInitialize (&app, "Hello", NULL, 0,
        &argc, argv, mydefaults, NULL);

Без явного указания шрифта таким образом Motif выбирает шрифты по своей логике, и дефолтный шрифт скорее всего не поддерживает юникод. А многие, судя по гуглу, дальше

toplevel = XtVaAppInitialize (&app, "Hello", NULL, 0,
        &argc, argv, NULL, NULL);
этот ребус не проходили.

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

Тут нет магии. Простой Xressource в виде

Hello*fontList: …
даст тебе тоже самое.

А вот XmStringCreateLocalized уже интерессней.

beastie ★★★★★
()

Да кому вообще этот UTF нужен? Ты лучше расскажи как там KOI8-R заставить нормально работать

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

Точно также. Выставить локаль KOI8-R и подключить koi8-r шрифты.

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

Вирус, который выставляет локаль на koi8-r без возможности ее поменять?

А за смену локали обратно на UTF-8 требует биткоины.

Unicode4all ★★★★★
()

Где скриншоты с примерами, как Motif выводит символы разных языков в одной строчке? А то мы не поверим так

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

Люди пользуются облаками чтобы не забивать ограниченное дисковое пространство на хостинге. Однако, при расшаривании через облака, а особенно картинок, без GUI браузеров с JS обойтись сложно. Поэтому без иксов нет такого большого выбора куда именно выложить.

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

Его изнасиловал японец. Ему понравилось, теперь пытается списаться, а в koi8-r иероглифов нет.

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

А ты можешь на saahriktu.org текстовый файлик с содержимым «UTF-8 rulez» положить? Он ограниченное дисковое пространство на хостинге не особо займёт. Вдруг ты это не ты :)

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

Я всё-таки настаиваю на изнасиловании японцем. Это так романтично.

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

UTF-8 не rulez. KOI8-R гораздо лучше. Но, и UTF-8 можно юзать. А скриншот Слаки с локалью UTF-8 я и раньше выкладывал: 64-битная Слака на ноутбуке Irbis NB43 с неотключаемым Secure Boot и 32-битным UEFI .

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

А ты можешь на saahriktu.org текстовый файлик с содержимым «UTF-8 rulez» положить? Он ограниченное дисковое пространство на хостинге не особо займёт. Вдруг ты это не ты :)

Лучше пусть сделает <meta http-equiv=«content-type» content=«text/html; charset=UTF-8»> на глагне.

petrosyan ★★★★★
()
Ответ на: комментарий от saahriktu

ладно-ладно, верим :)

но вот если бы этот текст был подписан PGP-ключом, в использовании которого ты был замечен раньше, то было бы совсем замечательно

Harald ★★★★★
()

Я понял! Саах решил перейти на юникод, потому что таки выучил все символы и научился набирать с одной гигантской клавиатуры! Без этого же юникодом пользоваться нельзя.

petrosyan ★★★★★
()
13 августа 2017 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.