Return to BSD News archive
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!uunet!mcsun!fuug!kiae!demos!newsserv From: "Andrew A. Chernov, Black Mage" <ache@astral.msk.su> Newsgroups: comp.unix.bsd Subject: [386BSD] patch: ctype.h non-ANSI behaviour Date: Sun, 06 Dec 92 23:58:15 +0300 Distribution: world Organization: Ha-oh-lahm Yetzirah Message-ID: <HGdbc8hesR@astral.msk.su> Sender: news-service@newcom.kiae.su Reply-To: ache@astral.msk.su Lines: 40 Hi, it is a really bug, man programs do something like: #include <ctype.h> .... for (s = string; *s; s++) *s = tolower(*s); and got very strange results on non-alpha characters. I saw fix for library functions, but didn't saw it for macros, here it is: *** /usr/include/ctype.h.was Sat Feb 29 03:13:14 1992 --- /usr/include/ctype.h Sun Dec 6 23:49:03 1992 *************** *** 59,66 **** #define isgraph(c) ((_ctype_ + 1)[c] & (_P|_U|_L|_N)) #define iscntrl(c) ((_ctype_ + 1)[c] & _C) #define isascii(c) ((unsigned)(c) <= 0177) ! #define toupper(c) ((c) - 'a' + 'A') ! #define tolower(c) ((c) - 'A' + 'a') #define toascii(c) ((c) & 0177) #endif /* !_CTYPE_H_ */ --- 59,68 ---- #define isgraph(c) ((_ctype_ + 1)[c] & (_P|_U|_L|_N)) #define iscntrl(c) ((_ctype_ + 1)[c] & _C) #define isascii(c) ((unsigned)(c) <= 0177) ! #define _toupper(c) ((c) - 'a' + 'A') ! #define _tolower(c) ((c) - 'A' + 'a') ! #define toupper(c) (islower(c) ? _toupper(c) : (c)) ! #define tolower(c) (isupper(c) ? _tolower(c) : (c)) #define toascii(c) ((c) & 0177) #endif /* !_CTYPE_H_ */ -- In-This-Life: Andrew A. Chernov | "Hay mas dicha, mas contento Internet: ache@astral.msk.su | "Que adorar una hermosura Organization: The RELCOM Corp., | "Brujuleada entre los lejos Moscow, Russia | "De lo imposible?!" (Calderon)