diff -U 3 -H -d -r -N -- doxygen-1.6.0/src/util.cpp doxygen-1.6.0-warnings/src/util.cpp --- doxygen-1.6.0/src/util.cpp 2009-08-20 14:13:51.000000000 +0200 +++ doxygen-1.6.0-warnings/src/util.cpp 2009-08-21 15:07:16.000000000 +0200 @@ -4760,9 +4760,9 @@ { static bool caseSenseNames = Config_getBool("CASE_SENSE_NAMES"); QCString result; - char c; + unsigned char c; const char *p=name; - while ((c=*p++)!=0) + while ((c=(unsigned char)*p++)!=0) { switch(c) { @@ -4789,11 +4789,11 @@ case '+': result+="_09"; break; case '=': result+="_0A"; break; default: - if (c<0) + if (c>0x7f) { static char map[] = "0123456789ABCDEF"; char ids[5]; - unsigned char id = (unsigned char)c; + unsigned char id = c; ids[0]='_'; ids[1]='x'; ids[2]=map[id>>4];