Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!clyde!cuae2!ihnp4!inuxc!pur-ee!j.cc.purdue.edu!pur-ee!uiucdcs!uiucuxc!gswd-vms!aglew From: aglew@gswd-vms.UUCP Newsgroups: comp.lang.c Subject: Re: Signed char - What Foolishness Is T Message-ID: <13200006@gswd-vms> Date: Wed, 5-Nov-86 23:46:00 EST Article-I.D.: gswd-vms.13200006 Posted: Wed Nov 5 23:46:00 1986 Date-Received: Sun, 16-Nov-86 04:34:10 EST References: <8719@duke.duke.UUCP> Lines: 22 Nf-ID: #R:duke.duke.UUCP:8719:gswd-vms:13200006:000:1023 Nf-From: gswd-vms.UUCP!aglew Nov 5 22:46:00 1986 > I hope you both remember that isANYTHING(x) is only defined to work > if isascii(x) is true! isascii(u-umlaut) is FALSE! Thus, isupper(u-umlaut) > does not NEED to work. > > John Plocher First, quoting my out-of-date XJ311/86-017 (which people on the committee hate us doing, but anyway, because they are reasonably well thought out rules): "The isupper function tests for any upper case letter... or any of an implementation defined set of characters for which none of iscntrl, isdigit, ispunct, or isspace is true" I don't know why they didn't say isalpha, except that it would be defined circularly here. Second, requiring isascii above demonstrates two sorts of chauvinism. One, character set chauvinism - what about EBCDIC users? Two, linguistic chauvinism - isupper(u-umlaut) == FALSE, isupper(U-umlaut) == TRUE is perfectly reasonable behaviour. True, it is not required; but then if I was working in a language that did not have Y then isalpha('y') == FALSE would be reasonable, and almost squeaks by.