Page 1 of 1

Является ли символ COMBINING GREEK YPOGEGRAMMENI диакритиком

PostPosted: Sun Apr 19, 2015 9:01 pm
by Michael72
Функция iswalnum для символа COMBINING GREEK YPOGEGRAMMENI возвращает 1:
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.