iswalnum(0x345)=1,
однако, здесь утверждается, что это диакритик. Цитирую:
"The iota subscript is a diacritic mark in the Greek alphabet..."
Вопрос: функция iswalnum работает с ошибкой? Если да, то как это можно исправить? Куда обратиться, чтобы в будущих дистрибутивах Linux эта ошибка была исправлена?
Для теста функции iswalnum создал код - test4iswalnum.c:
- Code: Select all
#include <stdio.h>
#include <locale.h>
#include <wctype.h>
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
#define HAVE_CONFIG_H 1
int main (int argc, char** argv)
{
if (!setlocale(LC_CTYPE, "")){
perror("setlocale(3) failed");
return 1;
}
wchar_t wc;
mbtowc (NULL, NULL, 0);
mbtowc(&wc, argv[1], strlen(argv[1]));
printf("iswalnum(0x%" PRIxMAX ")=%d\n", (intmax_t) wc, iswalnum(wc));
return 0;
}
Компилировал:
- Code: Select all
gcc -Wall -o test4iswalnum test4iswalnum.c
- Code: Select all
$ LC_CTYPE='C.UTF-8' ./test4iswalnum ͅ
iswalnum(0x345)=1
Тест производился в Debian.