Web lists-archives.com

Re: iswcntrl() regression




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@xxxxxxxxxxx>
---
 winsup/cygwin/syscalls.cc | 71 +++++++++++++++++++++------------------
...

which is weird.
Thomas
--- 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;
--
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