Avoid possible problems with signed/unsigned char comparisons. And
functions like toupper must be called with an unsigned char.


diff -ur tvision-0.8-orig/lib/TButton.cc lib/TButton.cc
--- tvision-0.8-orig/lib/TButton.cc	Thu Jul 26 09:59:19 2001
+++ lib/TButton.cc	Wed Jul 28 20:44:03 2004
@@ -202,7 +202,7 @@
             if( event.keyDown.keyCode == getAltCode(c) ||
                 ( owner->phase == phPostProcess &&
                   c != 0 &&
-                  toupper(event.keyDown.charScan.charCode) == c
+                  toupper(event.keyDown.charScan.charCode) == (uchar)c
                 ) ||
                 ( (state & sfFocused) != 0 &&
                   event.keyDown.charScan.charCode == ' '
diff -ur tvision-0.8-orig/lib/TCluster.cc lib/TCluster.cc
--- tvision-0.8-orig/lib/TCluster.cc	Thu Jul 26 09:59:19 2001
+++ lib/TCluster.cc	Wed Jul 28 20:44:16 2004
@@ -271,7 +271,7 @@
                             (state & sfFocused) != 0
                           ) &&
                           c != 0 &&
-                          toupper(event.keyDown.charScan.charCode) == c
+                          toupper(event.keyDown.charScan.charCode) == (uchar)c
                         )
                       )
                         {
diff -ur tvision-0.8-orig/lib/TFileList.cc lib/TFileList.cc
--- tvision-0.8-orig/lib/TFileList.cc	Wed Jul 28 18:52:17 2004
+++ lib/TFileList.cc	Wed Jul 28 20:45:21 2004
@@ -80,7 +80,7 @@
 
     /* SS: changed */
 
-    for (char *p = sR.name; *p != '\0'; p++) *p = toupper(*p);
+    for (unsigned char *p = (unsigned char *)sR.name; *p != '\0'; p++) *p = toupper(*p);
     return &sR;
 }
 
diff -ur tvision-0.8-orig/lib/TInputLine.cc lib/TInputLine.cc
--- tvision-0.8-orig/lib/TInputLine.cc	Thu Jul 26 09:59:20 2001
+++ lib/TInputLine.cc	Wed Jul 28 20:45:56 2004
@@ -29,7 +29,7 @@
     char *p;
 
     if( (p = strchr( (char *) s, '~' )) != 0 )
-        return toupper(p[1]);
+        return toupper((uchar)(p[1]));
     else
         return 0;
 }
diff -ur tvision-0.8-orig/lib/TLabel.cc lib/TLabel.cc
--- tvision-0.8-orig/lib/TLabel.cc	Thu Jul 26 09:59:20 2001
+++ lib/TLabel.cc	Wed Jul 28 20:46:18 2004
@@ -86,7 +86,7 @@
         char c = hotKey( text );
         if( getAltCode(c) == event.keyDown.keyCode ||
                 ( c != 0 && owner->phase == TGroup::phPostProcess &&
-                toupper(event.keyDown.charScan.charCode) ==  c )
+                toupper(event.keyDown.charScan.charCode) ==  (uchar)c )
           )
 	    focusLink(event);
         }
diff -ur tvision-0.8-orig/lib/TMenuView.cc lib/TMenuView.cc
--- tvision-0.8-orig/lib/TMenuView.cc	Wed Jul 28 18:52:17 2004
+++ lib/TMenuView.cc	Wed Jul 28 20:47:15 2004
@@ -339,14 +339,14 @@
 
 TMenuItem *TMenuView::findItem( char ch )
 {
-    ch = toupper(ch);
+    ch = toupper((uchar)ch);
     TMenuItem *p = menu->items;
     while( p != 0 )
         {
         if( p->name != 0 && !p->disabled )
             {
             char *loc = strchr( (char *) p->name, '~' );
-            if( loc != 0 && (uchar)ch == toupper( loc[1] ) )
+            if( loc != 0 && (uchar)ch == toupper( (uchar)(loc[1]) ) )
                 return p;
             }
         p =  p->next;
diff -ur tvision-0.8-orig/lib/TValidator.cc lib/TValidator.cc
--- tvision-0.8-orig/lib/TValidator.cc	Thu Jul 26 09:59:22 2001
+++ lib/TValidator.cc	Wed Jul 28 20:49:31 2004
@@ -388,10 +388,10 @@
         if (! isLetter(ch))
             return prError;
                 else 
-            consume(toupper(ch), input);
+            consume(toupper((uchar)ch), input);
         break;
         case  '!': 
-        consume(toupper(ch), input);
+        consume(toupper((uchar)ch), input);
         break;
         case  '@':
         consume(ch, input);
@@ -427,7 +427,7 @@
 
           if (pic[index] == ';')
           index++;
-          if (toupper(pic[index]) != toupper(ch))
+          if (toupper((uchar)(pic[index])) != toupper((uchar)ch))
 #ifndef __UNPATCHED
 	if (ch != ' ')
 	    return rScan;
diff -ur tvision-0.8-orig/lib/asm.cc lib/asm.cc
--- tvision-0.8-orig/lib/asm.cc	Wed Jul 28 18:52:18 2004
+++ lib/asm.cc	Wed Jul 28 20:51:59 2004
@@ -137,8 +137,8 @@
   long	patternHash	= 0;
   long	testHash	= 0;
 
-  register const char*  testP= (const char*)block;
-  register const char*  patP = str;
+  register const unsigned char*  testP= (const unsigned char*)block;
+  register const unsigned char*  patP = (const unsigned char*)str;
   register long   x = 1;
   int             i = patternLength-1;
   while(i--) x =  (x<<5)%q;
@@ -148,13 +148,13 @@
     testHash    = ( (testHash   <<5) + toupper(*testP++) ) % q;
   }
 
-  testP = (const char*)block;
-  const char* end = testP + testLength - patternLength;
+  testP = (const unsigned char*)block;
+  const unsigned char* end = testP + testLength - patternLength;
 
   while (1) {
 
      if(testHash == patternHash)
-	 return testP-(const char*)block;
+	 return testP-(const unsigned char*)block;
 
      if (testP >= end) break;
 
diff -ur tvision-0.8-orig/lib/tvtext.cc lib/tvtext.cc
--- tvision-0.8-orig/lib/tvtext.cc	Thu Jul 26 09:59:22 2001
+++ lib/tvtext.cc	Wed Jul 28 20:40:13 2004
@@ -64,7 +64,7 @@
             return '\xF0';      // special case to handle alt-Space
 
         else if( tmp >= 0x10 && tmp <= 0x32 )
-            return altCodes1[tmp-0x10];     // alt-letter
+            return altCodes1[tmp - 0x10];     // alt-letter
 
         else if( tmp >= 0x78 && tmp <= 0x83 )
             return altCodes2[tmp - 0x78];   // alt-number
@@ -78,7 +78,7 @@
     if( c == 0 )
         return 0;
 
-    c = toupper(c);
+    c = toupper((unsigned char) c);
 
     /* SS: this makes g++ happy */
 
