iswcntrl() regression

Thomas Wolff towo@towo.net
Fri Jan 11 01:07:00 GMT 2019


Am 06.01.2019 um 23:39 schrieb Thomas Wolff:
> Am 06.01.2019 um 21:21 schrieb Corinna Vinschen:
>> On Dec 19 21:57, Bruno Haible wrote:
>>> Hello Thomas,
>>>
>>> Oops 1: I forgot to add the reference to POSIX:
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswcntrl.html
>>>
>>> Oops 2:
>>> The relevant expression is iswcntrl (WEOF), not iswcntrl (EOF).
>>>
>>>>> Are there any other special requirements concerning EOF?
>>> WEOF is a special value. The difference between wint_t and wchar_t is
>>> essentially that WEOF fits into wint_t but is not guaranteed to fit 
>>> in wchar_t.
>>> (Like EOF fits into 'int' but usually does not fit in 'unsigned char'.)
>>>
>>> WEOF is special for all functions declared in <wctype.h>, see
>>>
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswalnum.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswalpha.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswblank.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswcntrl.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswdigit.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswgraph.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswlower.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswprint.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswpunct.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswspace.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswupper.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswxdigit.html 
>>>
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/iswctype.html
>>>
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/towlower.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/towupper.html
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/towctrans.html 
>>>
>>>
>>>> this could be fixed in iswcntrl_l.c as a special condition, or
>>>> injected as a special case in the categories.t table.
>>> Probably, yes.
>> Thomas, any input?  Are you going to provide patches?
> Well, yes, now I'm assuming that this is the only WEOF special case 
> and I'll look after it this week.
> Thomas
The fix should be as attached.
However, I don't seem to be able to produce a git format patch; when I 
`git format-patch -1` (after `git pull` and modifying only the affected 
file) it produces a patch file

Subject: [PATCH] Cygwin: try_to_bin: don't check recycler filename all 
the time
...
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
---
  winsup/cygwin/syscalls.cc | 71 +++++++++++++++++++++------------------
...

which is weird.
Thomas
-------------- next part --------------
--- newlib/libc/ctype/categories.c~	2018-08-18 09:50:16.397997100 +0200
+++ newlib/libc/ctype/categories.c	2019-01-11 01:56:39.155736700 +0100
@@ -19,7 +19,7 @@ bisearch_cat(wint_t ucs, const struct _c
   int mid;
 
   if (ucs < table[0].first || ucs > table[max].first + table[max].delta)
-    return 0;
+    return -1;
   while (max >= min)
     {
       mid = (min + max) / 2;
-------------- next part --------------

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


More information about the Cygwin mailing list