If an argument of a ctype function is outside "unsigned char"
and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to
be used to check a value was valid for other ctype functions in
ancient systems. On modern systems, the ctype functions take
all values of "unsigned char", and this check is obsolete and
even wrong for non-ASCII systems. However, we leave the isascii()
untouched for now, so as not to change the current behavior.
be NULL (part of the interface definition!) unless errcode is REG_ATOI, which
is a non-portable extension.
Also, remove assertions from the local regatoi() function, as they are either
redundant or will never fail due to the buffer allocation for that argument in
regerror().
descriptors against -1 (as appropriate).
* add actual checks which to detect stuff that would trigger_DIAGASSERT(),
and attempt to return a sane error condition.
* knf some code
* remove some `register' decls.
the first two items result in the addition of code similar to the
following in various functions:
_DIAGASSERT(path != NULL)
#ifdef _DIAGNOSTIC
if (path == NULL) {
errno = EFAULT;
return (-1);
}
#endif
btw: the maximum length of an RE is limited by the "int" range, also
on the alpha. "sopno" is "int", and "int"s are used as counters within
the code, so it would need some work to change this. I only don't know
how one could test it...
so instead of off_t. This makes some casts unnecessary.
We can't change the definition now due to binary compatibility, so
prepare for the next libc major version.
sizeof(u_int32_t) != sizeof(*)), at least in cases with re->re_g->nstates
between 32 and 64.
Primary reason for the breakage was that the "states1" definition didn't
work as expected. (It didn't work before either, but this was not noticed
due to sizeof(long)==sizeof(*).)
The alpha can handle larger problems with the "small" state machine model
if a "long" is used as state variable, so it is better to keep the old
definition here. (u_int32_t is left for the "operator" variables.)
Use "int" as "sopno" - this is used as index into the states field, there
is no point in using a fized-size type.
identifier namespace by renaming non standard functions and variables
such that they have a leading underscore. The library will use those
names internally. Weak aliases are used to provide the original names
to the API.
This is only the first part of this change. It is most of the functions
which are implemented in C for all NetBSD ports. Subsequent changes are
to add the same support to the remaining C files, to assembly files, and
to the automagically generated assembly source used for system calls.
When all of the above is done, ports with weak alias support should add
a definition for __weak_alias to <sys/cdefs.h>.
!= 32 bits. This might need a bit more thought (i.e. why use long here to
begin with, when int32_t might be a better choice), but for now it's good
enough. From Ross Harvey in PR 3450, extended by me to cover the rest of
the opcode constants and masks.
a copyright file. I'm checking it in now, rather than waiting for the
next "real" release, since the rest of the files do not have their own
copyright notices.