By code inspection I found one more place where the code incorrectly
assumes that chars are nonnegative.  This code is executed only on
VMS.  Here's a patch.

2000-06-26  Paul Eggert  <[EMAIL PROTECTED]>

        * dir.c (vms_hash): Ensure ctype macro args are nonnegative.

===================================================================
RCS file: dir.c,v
retrieving revision 3.79.1.0
retrieving revision 3.79.1.1
diff -pu -r3.79.1.0 -r3.79.1.1
--- dir.c       2000/05/08 18:26:00     3.79.1.0
+++ dir.c       2000/06/26 17:08:43     3.79.1.1
@@ -159,7 +159,8 @@ vms_hash (name)
 
   while (*name)
     {
-      h = (h << 4) + (isupper (*name) ? tolower (*name) : *name);
+      unsigned char uc = *name;
+      h = (h << 4) + (isupper (uc) ? tolower (uc) : uc);
       name++;
       g = h & 0xf0000000;
       if (g)

Reply via email to