Subject: Re: isprint() and isblank()
To: None <firstname.lastname@example.org>
From: Christos Zoulas <email@example.com>
Date: 01/20/2001 19:18:47
In article <firstname.lastname@example.org>, <email@example.com> 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
Unfortunately this has the nasty side effect that c will be evaluated twice,