Subject: Re: isprint() and isblank()
To: None <>
From: Christos Zoulas <>
List: tech-userlevel
Date: 01/20/2001 19:18:47
In article <>,  <> wrote:
>>: This breaks the ABI.  "Binaries need to be recompiled" is not an acceptable
>>: solution for libc; old binaries must continue to work as they have been.
>	IMHO the problem mainly reside in expanded isprint() macro.
>	i don't think this can be fixed by versioning structure.

Yes, it can; you keep the old _ctype_ array and you make a new _ctype13_
one and you use it in <ctype.h>.

Another less intrusive/uglier technique is to change isblank(c) to have
|| ((c) == '\t') with a comment that we will fix it properly in libc for
the next version. But we all know that the next version of libc will not
happen :-)

Unfortunately this has the nasty side effect that c will be evaluated twice,
in isblank().