Dear Maintainer,
In Greek traditional text analysis, the iota subscript (U+0345) is often talked about as a "diacritic", see:
"http://en.wikipedia.org/wiki/Iota_subscript"
In the recourse: http://www.unicode.org/ucd/
I found two documents:
1. http://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf
2. http://www.unicode.org/Public/UCD/latest/ucd/PropList.txt
In the first document in the section: "Combining Diacritical Marks" I found this character in the table. See at the screenshot https://yadi.sk/i/F_A04mo7gRMvd.
In the second document in line 752 we have:
0300..034E ; Diacritic # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
As a result, I think, it is pretty clear that iswalnum(0x345) should not return 1, but rather 0.
To test the function iswalnum(), I created a simple code:
===
#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;
}
===
I put this code in a file test4iswalnum.c, then compiled:
$ gcc -Wall -o test4iswalnum test4iswalnum.c
Then I check the function iswalnum():
$ LC_CTYPE='C.UTF-8' ./test4iswalnum ͅ
iswalnum(0x345)=1