Почему GNU Readline портит цветовые коды ANSI? - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь использовать GNU Readline с цветным приглашением.Сведенный к минимальному тестовому случаю, мой readline() вызов выглядит следующим образом:

readline("\x1b[34m" "prompt>" "\x1b[m");

Я ожидал увидеть приглашение вроде этого (просто представьте, что оно синее):

prompt>

но вместо этого я вижу:

[34mprompt>[m

Я читал о быстром расширении в документах и ​​думал, что там может происходить что-то странное.Но расширенная подсказка в порядке, и это работает как ожидалось:

rl_set_prompt("\x1b[34m" "prompt>" "\x1b[m");
printf("%s", rl_prompt); // Prints "prompt>" in blue

Это происходит как в Gnome Terminal, так и в Xterm.Я использую libreadline 7 в Ubuntu 18.04.Я не могу понять, что здесь происходит, и ни у кого в сети, похоже, нет этой проблемы.

1 Ответ

0 голосов
/ 11 мая 2019

Я никогда не узнаю, что происходит не так.Во время тестирования я несколько раз полностью очищал сборку своего проекта (восстанавливая целое дерево сборки CMake и т. Д.), Но простое удаление и повторная загрузка собственного репозитория исправили это.

...