Summary: | Не позволяет ввод нелатинских символов для gecos в локали.UTF-8 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> |
Component: | shadow-utils | Assignee: | Mikhail Efremov <sem> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P2 | CC: | lav, ldv, sem, shaba, sin |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | |||
Bug Blocks: | 10446 |
Description
Sergey V Turchin
2005-05-03 14:41:28 MSD
Подтверждаю. Действительно именно в UTF-ной локали такое. Может быть поправить определение, что символ управляющий? А то он коды >=0x80 к ним относит... $ diff -urN fields.c.o fields.c --- fields.c.o 2005-10-13 11:37:27 +0400 +++ libmisc/fields.c 2005-10-13 11:38:04 +0400 @@ -37,7 +37,7 @@ #include "prototypes.h" #define fixed_iscntrl(c) \ - (((c) & 0x7f) < 0x20 || (c) == 0x7f) + ((c) < 0x20 || (c) == 0x7f) #define MAX_FIELD_SIZE 0x80 char оказался знаковым, так что вот так: $diff -urN fields.c.o fields.c --- fields.c.o 2005-10-13 11:37:27 +0400 +++ libmisc/fields.c 2005-10-13 11:56:54 +0400 @@ -37,7 +37,7 @@ #include "prototypes.h" #define fixed_iscntrl(c) \ - (((c) & 0x7f) < 0x20 || (c) == 0x7f) + (((unsigned)(c)) < 0x20 || (c) == 0x7f) #define MAX_FIELD_SIZE 0x80 Дима, а это нормально, что меньше чем через 4 месяца мы отметим 3 года этой баги? (In reply to comment #3) > Дима, а это нормально, что меньше чем через 4 месяца мы отметим 3 года этой > баги? Попробуй вывести на неюникодную консоль символы из диапазона 0x80..0xa0, и тогда станет понятно, что проблема не одномерна. Мне кажется это проблема консоли, а в программах не должно быть таких американских хаков, как-либо изменяющих поток данных. И может быть когда-нибудь мы доживём-таки до юникодной консоли :) chfn -f "Алексей Шабалин" chfn: имя «Алексей Шабалин» содержит не ASCII-символы Может уже пришло время юникодных консолей? (В ответ на комментарий №4) > Попробуй вывести на неюникодную консоль символы из диапазона 0x80..0xa0, В неадекватном неюникодной консоли отображении текста на экране я проблем не вижу. В shadow-utils-4.5 юникодный gecos не запрещается, хоть и выводится предупреждение: # chfn -f 'Сергей' foobar chfn: имя «Сергей» содержит не ASCII-символы # grep foobar /etc/passwd foobar:x:502:502:Сергей,,,:/home/foobar:/bin/bash Работает. |