Errno should be defined in the c start up code, crt0.c (It is in most
ports) otherwise the sys_errlst table will be linked into binaries
where it is not used.
If a user compiling in a strict ANSI or strict POSIX environment uses his
own function named cfree (which is legal, since cfree is not in a restricted
namespace) and calloc, the link will fail due to the cfree in calloc.c.
argument is a colon.
Updated the manpage to reflect the above change, and expanded the example to
the one used by the POSIX.2 rationale, as it more clearly explains how
the new behavior is to be used.
The manpage should be rewritten --- it is much more confusing than it
should be.
This saves three cycles per character, and reduces the size of the
function by eight bytes (the loop is unrolled eight times).
Thanks to davidg for pointing this out.
Since ints and longs are both 32 bits on a i386, we could alias abs()
and labs() together as mycroft did with memmove()/memcpy(), but I'm
waiting on an interpretation ruling to see if it is legal.
Since perror is not permitted to change strerror()'s static buffer, I have
changed both functions to pass their own buffers to the new library-internal
function _strerror() that actually does the error message string look up.
Split strerror manpage into strerror and perror manpages.
This version is only slightly faster than the code generated by gcc on
my i486, but it is almost twice as small. My i386 timing chart indicates
that this should be significantly faster than the gcc code on a i386.
Surprisingly, none of the code in the source tree actually use this routine.
But I optimized this routine for some image processing programs I wrote, and
I see no reason why everyone else shouldn't share the (admittedly) modest
benifits.
remove the _B attribute from the "horizontal tab" position, and change
the isblank function to explicitly test against space and tab.
When I finish merging the 4.4 runes code, this table will have to grow
to 16 bit entries, as several more attributes have been introduced.
I'm making this change so existing libraries will continue working
for the next (little) while.