MinTTY Unicode Поддержка и ошибка сборки - PullRequest
0 голосов
/ 19 июня 2011

Я пытаюсь использовать MinTTY с MSYS (скачано с здесь ), и я заметил, что у него нет Unicodeподдержка.

т.е.:

  1. Я не могу вставить текст Unicode в него (получается мусор).

  2. Если я cat файл Unicode на терминал (будь то UTF-8 или UTF-16), я получаю обратно мусор.

  3. Если я использую ls и файл имя - Unicode, оно выводит мусор.Передача результата в файл не помогает - это все еще мусор даже при просмотре в текстовом редакторе с поддержкой Unicode.

  4. Iне могу понять, как работает настройка UTF-8 в настройках.Кажется, это ничего не меняет.

  5. Когда я пытаюсь загрузить исходный код и собрать его, я получаю ошибки сборки, которые не могу устранить:

    Makefile:117: charset.d: No such file or directory
    Makefile:117: child.d: No such file or directory
    Makefile:117: config.d: No such file or directory
    Makefile:117: ctrls.d: No such file or directory
    Makefile:117: minibidi.d: No such file or directory
    Makefile:117: std.d: No such file or directory
    Makefile:117: term.d: No such file or directory
    Makefile:117: termclip.d: No such file or directory
    Makefile:117: termline.d: No such file or directory
    Makefile:117: termmouse.d: No such file or directory
    Makefile:117: termout.d: No such file or directory
    Makefile:117: winclip.d: No such file or directory
    Makefile:117: winctrls.d: No such file or directory
    Makefile:117: windialog.d: No such file or directory
    Makefile:117: wininput.d: No such file or directory
    Makefile:117: winmain.d: No such file or directory
    Makefile:117: winprint.d: No such file or directory
    Makefile:117: wintext.d: No such file or directory
    Makefile:117: wintip.d: No such file or directory
    Makefile:117: xcwidth.d: No such file or directory
    Makefile:117: res.d: No such file or directory
    windres --preprocessor 'gcc -E -xc-header -DRC_INVOKED -MMD -MP 'res.rc res.o
    gcc xcwidth.c -c -MMD -MP  -include std.h -std=gnu99 -Wall -Wextra -Werror
        -Wundef -march=i586 -mtune=pentium-m -DNDEBUG -fomit-frame-pointer -Os
    In file included from <command-line>:0:0:
    ./std.h:4:28: fatal error: cygwin/version.h: No such file or directory
    compilation terminated.
    make: *** [xcwidth.d] Error 1
    

Вопросы:

  1. Возможно ли каким-то образом получить поддержку Unicode в MSYS / MinTTY (похоже, проблема с Оба )?

  2. Если не , то где мне взять все эти файлы, например charset.d, и как мне собрать MinTTY для MSYS?

1 Ответ

3 голосов
/ 19 июня 2011

Mintty поддерживает UTF-8. Вы можете включить его на странице «Текст» его параметров.

MSYS действительно не поддерживает его, хотя. Вместо этого он использует системную кодовую страницу "ANSI", например, CP1252 на системах США и Западной Европы. Следовательно, это то же самое, что и MSYS по умолчанию.

Кроме того, MSYS bash настроен так, что он интерпретирует старший бит каждого символа как мета-флаг, поэтому по умолчанию он не может обрабатывать ничего, кроме ASCII. Чтобы изменить это, поместите в ~/.inputrc следующее:

set input-meta on
set output-meta on
set convert-meta off

Для полной поддержки Unicode (из коробки) вам нужно использовать Cygwin 1.7 вместо Cygwin 1.3, которая является MSYS.

MSYS mintty необходимо собрать с версиями gcc для MSYS и make вместо MinGW, поскольку для этого требуется функциональность POSIX, не предоставляемая MinGW. Установите их с помощью mingw-get install msys-gcc msys-make и вставьте исполняемые файлы MSYS в начало пути при запуске: PATH=/bin:$PATH make.

...