1999-01-23  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has
	at least two bytes (not one).  Correct buflen parameter type.
	* nss/nss_files/files-alias.c (get_next_alias): Make sure buffer
	has at least two bytes.  Use fgets_unlocked instead of fgets.

	* ctype/ctype.h: Don't user __tolower directly for tolower
	implementation.  Use inline function which tests for the range
	first.  Make _tolower equivalent to old tolower macros.
	Likewise for toupper.
	* ctype/ctype.c: Change tolower/toupper definition accordingly.

	* argp/argp-help.c: Use _tolower instead of tolower if possible.
	* inet/ether_aton_r.c: Likewise.
	* inet/ether_line.c: Likewise.
	* inet/rcmd.c: Likewise.
	* intl/l10nflist.c: Likewise.
	* locale/programs/ld-collate.c: Likewise.
	* locale/programs/linereader.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* posix/regex.c: Likewise.
	* resolv/inet_net_pton.c: Likewise.
	* stdio-common/printf_fp.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* sysdeps/generic/strcasestr.c: Likewise.

	* math/bits/mathcalls.h: Fix typo.
This commit is contained in:
Ulrich Drepper 1999-01-23 22:17:17 +00:00
parent 8831788577
commit 4caef86ca6
19 changed files with 114 additions and 68 deletions

View File

@ -1,3 +1,34 @@
1999-01-23 Ulrich Drepper <drepper@cygnus.com>
* nss/nss_files/files-XXX.c (internal_getent): Make sure the buffer has
at least two bytes (not one). Correct buflen parameter type.
* nss/nss_files/files-alias.c (get_next_alias): Make sure buffer
has at least two bytes. Use fgets_unlocked instead of fgets.
* ctype/ctype.h: Don't user __tolower directly for tolower
implementation. Use inline function which tests for the range
first. Make _tolower equivalent to old tolower macros.
Likewise for toupper.
* ctype/ctype.c: Change tolower/toupper definition accordingly.
* argp/argp-help.c: Use _tolower instead of tolower if possible.
* inet/ether_aton_r.c: Likewise.
* inet/ether_line.c: Likewise.
* inet/rcmd.c: Likewise.
* intl/l10nflist.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/linereader.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nis/nss_nis/nis-alias.c: Likewise.
* nis/nss_nis/nis-network.c: Likewise.
* posix/regex.c: Likewise.
* resolv/inet_net_pton.c: Likewise.
* stdio-common/printf_fp.c: Likewise.
* stdio-common/vfscanf.c: Likewise.
* sysdeps/generic/strcasestr.c: Likewise.
* math/bits/mathcalls.h: Fix typo.
1999-01-23 Roland McGrath <roland@baalperazim.frob.com> 1999-01-23 Roland McGrath <roland@baalperazim.frob.com>
* sysdeps/gnu/errlist.awk: Add comment. * sysdeps/gnu/errlist.awk: Add comment.

View File

@ -1,5 +1,5 @@
/* Hierarchial argument parsing help output /* Hierarchial argument parsing help output
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>. Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -759,7 +759,11 @@ hol_entry_cmp (const struct hol_entry *entry1,
{ {
char first1 = short1 ? short1 : long1 ? *long1 : 0; char first1 = short1 ? short1 : long1 ? *long1 : 0;
char first2 = short2 ? short2 : long2 ? *long2 : 0; char first2 = short2 ? short2 : long2 ? *long2 : 0;
#ifdef _tolower
int lower_cmp = _tolower (first1) - _tolower (first2);
#else
int lower_cmp = tolower (first1) - tolower (first2); int lower_cmp = tolower (first1) - tolower (first2);
#endif
/* Compare ignoring case, except when the options are both the /* Compare ignoring case, except when the options are both the
same letter, in which case lower-case always comes first. */ same letter, in which case lower-case always comes first. */
return lower_cmp ? lower_cmp : first2 - first1; return lower_cmp ? lower_cmp : first2 - first1;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -33,12 +33,12 @@ ether_aton_r (const char *asc, struct ether_addr *addr)
unsigned int number; unsigned int number;
char ch; char ch;
ch = tolower (*asc++); ch = _tolower (*asc++);
if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f')) if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
return NULL; return NULL;
number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10); number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
ch = tolower (*asc); ch = _tolower (*asc);
if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch))) if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
{ {
++asc; ++asc;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996 Free Software Foundation, Inc. /* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -34,12 +34,12 @@ ether_line (const char *line, struct ether_addr *addr, char *hostname)
unsigned int number; unsigned int number;
char ch; char ch;
ch = tolower (*line++); ch = _tolower (*line++);
if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f')) if ((ch < '0' || ch > '9') && (ch < 'a' || ch > 'f'))
return -1; return -1;
number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10); number = isdigit (ch) ? (ch - '0') : (ch - 'a' + 10);
ch = tolower (*line); ch = _tolower (*line);
if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch))) if ((cnt < 5 && ch != ':') || (cnt == 5 && ch != '\0' && !isspace (ch)))
{ {
++line; ++line;

View File

@ -574,7 +574,7 @@ __ivaliduser2(hostf, raddr, luser, ruser, rhost)
} }
for (;*p && !isspace(*p); ++p) { for (;*p && !isspace(*p); ++p) {
*p = tolower (*p); *p = _tolower (*p);
} }
/* Next we want to find the permitted name for the remote user. */ /* Next we want to find the permitted name for the remote user. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of This file is part of the GNU C Library. Its master source is NOT part of
@ -384,7 +384,7 @@ _nl_normalize_codeset (codeset, name_len)
for (cnt = 0; cnt < name_len; ++cnt) for (cnt = 0; cnt < name_len; ++cnt)
if (isalpha (codeset[cnt])) if (isalpha (codeset[cnt]))
*wp++ = tolower (codeset[cnt]); *wp++ = _tolower (codeset[cnt]);
else if (isdigit (codeset[cnt])) else if (isdigit (codeset[cnt]))
*wp++ = codeset[cnt]; *wp++ = codeset[cnt];

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@ -1764,12 +1764,12 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
int base; int base;
++runp; ++runp;
if (tolower (*runp) == 'x') if (_tolower (*runp) == 'x')
{ {
++runp; ++runp;
base = 16; base = 16;
} }
else if (tolower (*runp) == 'd') else if (_tolower (*runp) == 'd')
{ {
++runp; ++runp;
base = 10; base = 10;
@ -1777,7 +1777,7 @@ collate_simple_weight (struct linereader *lr, struct localedef_t *locale,
else else
base = 8; base = 8;
dp = strchr (digits, tolower (*runp)); dp = strchr (digits, _tolower (*runp));
if (dp == NULL || (dp - digits) >= base) if (dp == NULL || (dp - digits) >= base)
{ {
illegal_char: illegal_char:
@ -1789,7 +1789,7 @@ illegal character constant in string"));
wch = dp - digits; wch = dp - digits;
++runp; ++runp;
dp = strchr (digits, tolower (*runp)); dp = strchr (digits, _tolower (*runp));
if (dp == NULL || (dp - digits) >= base) if (dp == NULL || (dp - digits) >= base)
goto illegal_char; goto illegal_char;
wch *= base; wch *= base;
@ -1798,7 +1798,7 @@ illegal character constant in string"));
if (base != 16) if (base != 16)
{ {
dp = strchr (digits, tolower (*runp)); dp = strchr (digits, _tolower (*runp));
if (dp != NULL && (dp - digits < base)) if (dp != NULL && (dp - digits < base))
{ {
wch *= base; wch *= base;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996. Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@ -300,7 +300,7 @@ get_toplvl_escape (struct linereader *lr)
if (isdigit (ch)) if (isdigit (ch))
byte = ch - '0'; byte = ch - '0';
else else
byte = tolower (ch) - 'a' + 10; byte = _tolower (ch) - 'a' + 10;
ch = lr_getc (lr); ch = lr_getc (lr);
if ((base == 16 && !isxdigit (ch)) if ((base == 16 && !isxdigit (ch))
@ -311,7 +311,7 @@ get_toplvl_escape (struct linereader *lr)
if (isdigit (ch)) if (isdigit (ch))
byte += ch - '0'; byte += ch - '0';
else else
byte += tolower (ch) - 'a' + 10; byte += _tolower (ch) - 'a' + 10;
ch = lr_getc (lr); ch = lr_getc (lr);
if (base != 16 && isdigit (ch)) if (base != 16 && isdigit (ch))

View File

@ -558,7 +558,7 @@ normalize_codeset (codeset, name_len)
for (cnt = 0; cnt < name_len; ++cnt) for (cnt = 0; cnt < name_len; ++cnt)
if (isalpha (codeset[cnt])) if (isalpha (codeset[cnt]))
*wp++ = tolower (codeset[cnt]); *wp++ = _tolower (codeset[cnt]);
else if (isdigit (codeset[cnt])) else if (isdigit (codeset[cnt]))
*wp++ = codeset[cnt]; *wp++ = codeset[cnt];

View File

@ -275,7 +275,7 @@ __MATHDECL (int,ilogb,, (_Mdouble_ __x));
/* Return X times (2 to the Nth power). */ /* Return X times (2 to the Nth power). */
__MATHCALL (scalbln,, (_Mdouble_ __x, long int __n)); __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n));
/* Round X to integral valuein floating-point format using current /* Round X to integral value in floating-point format using current
rounding direction, but do not raise inexact exception. */ rounding direction, but do not raise inexact exception. */
__MATHCALL (nearbyint,, (_Mdouble_ __x)); __MATHCALL (nearbyint,, (_Mdouble_ __x));

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996. Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -245,7 +245,7 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
/* Convert name to lowercase. */ /* Convert name to lowercase. */
for (i = 0; i < namlen; ++i) for (i = 0; i < namlen; ++i)
name2[i] = tolower (name[i]); name2[i] = _tolower (name[i]);
name2[i] = '\0'; name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "mail.aliases", name2, namlen, retval = yperr2nss (yp_match (domain, "mail.aliases", name2, namlen,

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. /* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996. Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -195,7 +195,7 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
int i; int i;
for (i = 0; i < namlen; ++i) for (i = 0; i < namlen; ++i)
name2[i] = tolower (name[i]); name2[i] = _tolower (name[i]);
name2[i] = '\0'; name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "networks.byname", name2, retval = yperr2nss (yp_match (domain, "networks.byname", name2,

View File

@ -1,5 +1,5 @@
/* Common code for file-based databases in nss_files module. /* Common code for file-based databases in nss_files module.
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -162,14 +162,14 @@ CONCAT(_nss_files_end,ENTNAME) (void)
static enum nss_status static enum nss_status
internal_getent (struct STRUCTURE *result, internal_getent (struct STRUCTURE *result,
char *buffer, int buflen, int *errnop H_ERRNO_PROTO) char *buffer, size_t buflen, int *errnop H_ERRNO_PROTO)
{ {
char *p; char *p;
struct parser_data *data = (void *) buffer; struct parser_data *data = (void *) buffer;
int linebuflen = buffer + buflen - data->linebuffer; int linebuflen = buffer + buflen - data->linebuffer;
int parse_result; int parse_result;
if (buflen < (int) sizeof *data + 1) if (buflen < sizeof *data + 2)
{ {
*errnop = ERANGE; *errnop = ERANGE;
H_ERRNO_SET (NETDB_INTERNAL); H_ERRNO_SET (NETDB_INTERNAL);

View File

@ -1,5 +1,5 @@
/* Mail alias file parser in nss_files module. /* Mail alias file parser in nss_files module.
Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -148,10 +148,15 @@ get_next_alias (const char *match, struct aliasent *result,
size_t room_left = buflen - (buflen % __alignof__ (char *)); size_t room_left = buflen - (buflen % __alignof__ (char *));
char *line; char *line;
/* Check whether the buffer is large enough for even trying to
read something. */
if (room_left < 2)
goto no_more_room;
/* Read the first line. It must contain the alias name and /* Read the first line. It must contain the alias name and
possibly some alias names. */ possibly some alias names. */
first_unused[room_left - 1] = '\xff'; first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, stream); line = fgets_unlocked (first_unused, room_left, stream);
if (line == NULL) if (line == NULL)
/* Nothing to read. */ /* Nothing to read. */
break; break;
@ -245,7 +250,8 @@ get_next_alias (const char *match, struct aliasent *result,
while (! feof (listfile)) while (! feof (listfile))
{ {
first_unused[room_left - 1] = '\xff'; first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, listfile); line = fgets_unlocked (first_unused, room_left,
listfile);
if (line == NULL) if (line == NULL)
break; break;
if (first_unused[room_left - 1] != '\xff') if (first_unused[room_left - 1] != '\xff')
@ -345,7 +351,7 @@ get_next_alias (const char *match, struct aliasent *result,
/* The just read character is a white space and so /* The just read character is a white space and so
can be ignored. */ can be ignored. */
first_unused[room_left - 1] = '\xff'; first_unused[room_left - 1] = '\xff';
line = fgets (first_unused, room_left, stream); line = fgets_unlocked (first_unused, room_left, stream);
if (first_unused[room_left - 1] != '\xff') if (first_unused[room_left - 1] != '\xff')
goto no_more_room; goto no_more_room;
cp = strpbrk (line, "#\n"); cp = strpbrk (line, "#\n");

View File

@ -2,7 +2,7 @@
version 0.12. version 0.12.
(Implements POSIX draft P1003.2/D11.2, except for some of the (Implements POSIX draft P1003.2/D11.2, except for some of the
internationalization features.) internationalization features.)
Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc. Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as modify it under the terms of the GNU Library General Public License as
@ -254,6 +254,12 @@ init_syntax_once ()
#define ISUPPER(c) (ISASCII (c) && isupper (c)) #define ISUPPER(c) (ISASCII (c) && isupper (c))
#define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) #define ISXDIGIT(c) (ISASCII (c) && isxdigit (c))
#ifdef _tolower
# define TOLOWER(c) _tolower(c)
#else
# define TOLOWER(c) tolower(c)
#endif
#ifndef NULL #ifndef NULL
# define NULL (void *)0 # define NULL (void *)0
#endif #endif
@ -5628,7 +5634,7 @@ regcomp (preg, pattern, cflags)
/* Map uppercase characters to corresponding lowercase ones. */ /* Map uppercase characters to corresponding lowercase ones. */
for (i = 0; i < CHAR_SET_SIZE; i++) for (i = 0; i < CHAR_SET_SIZE; i++)
preg->translate[i] = ISUPPER (i) ? tolower (i) : i; preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
} }
else else
preg->translate = NULL; preg->translate = NULL;

View File

@ -107,8 +107,7 @@ inet_net_pton_ipv4(src, dst, size)
src++; /* skip x or X. */ src++; /* skip x or X. */
while ((ch = *src++) != '\0' && while ((ch = *src++) != '\0' &&
isascii(ch) && isxdigit(ch)) { isascii(ch) && isxdigit(ch)) {
if (isupper(ch)) ch = _tolower(ch);
ch = tolower(ch);
n = strchr(xdigits, ch) - xdigits; n = strchr(xdigits, ch) - xdigits;
assert(n >= 0 && n <= 15); assert(n >= 0 && n <= 15);
*dst |= n; *dst |= n;

View File

@ -1,5 +1,5 @@
/* Floating point output for `printf'. /* Floating point output for `printf'.
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995. Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
@ -709,7 +709,7 @@ __printf_fp (FILE *fp,
int dig_max; int dig_max;
int significant; int significant;
if (tolower (info->spec) == 'e') if (_tolower (info->spec) == 'e')
{ {
type = info->spec; type = info->spec;
intdig_max = 1; intdig_max = 1;

View File

@ -844,7 +844,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
ADDW (c); ADDW (c);
c = inchar (); c = inchar ();
if (width != 0 && tolower (c) == 'x') if (width != 0 && _tolower (c) == 'x')
{ {
if (base == 0) if (base == 0)
base = 16; base = 16;
@ -883,9 +883,9 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
we must recognize "(nil)" as well. */ we must recognize "(nil)" as well. */
if (wpsize == 0 && read_pointer && (width < 0 || width >= 0) if (wpsize == 0 && read_pointer && (width < 0 || width >= 0)
&& c == '(' && c == '('
&& tolower (inchar ()) == 'n' && _tolower (inchar ()) == 'n'
&& tolower (inchar ()) == 'i' && _tolower (inchar ()) == 'i'
&& tolower (inchar ()) == 'l' && _tolower (inchar ()) == 'l'
&& inchar () == ')') && inchar () == ')')
/* We must produce the value of a NULL pointer. A single /* We must produce the value of a NULL pointer. A single
'0' digit is enough. */ '0' digit is enough. */
@ -980,46 +980,46 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
negative = 0; negative = 0;
/* Take care for the special arguments "nan" and "inf". */ /* Take care for the special arguments "nan" and "inf". */
if (tolower (c) == 'n') if (_tolower (c) == 'n')
{ {
/* Maybe "nan". */ /* Maybe "nan". */
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'a') if (inchar () == EOF || _tolower (c) != 'a')
input_error (); input_error ();
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'n') if (inchar () == EOF || _tolower (c) != 'n')
input_error (); input_error ();
ADDW (c); ADDW (c);
/* It is "nan". */ /* It is "nan". */
goto scan_float; goto scan_float;
} }
else if (tolower (c) == 'i') else if (_tolower (c) == 'i')
{ {
/* Maybe "inf" or "infinity". */ /* Maybe "inf" or "infinity". */
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'n') if (inchar () == EOF || _tolower (c) != 'n')
input_error (); input_error ();
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'f') if (inchar () == EOF || _tolower (c) != 'f')
input_error (); input_error ();
ADDW (c); ADDW (c);
/* It is as least "inf". */ /* It is as least "inf". */
if (inchar () != EOF) if (inchar () != EOF)
{ {
if (tolower (c) == 'i') if (_tolower (c) == 'i')
{ {
/* No we have to read the rest as well. */ /* No we have to read the rest as well. */
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'n') if (inchar () == EOF || _tolower (c) != 'n')
input_error (); input_error ();
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'i') if (inchar () == EOF || _tolower (c) != 'i')
input_error (); input_error ();
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 't') if (inchar () == EOF || _tolower (c) != 't')
input_error (); input_error ();
ADDW (c); ADDW (c);
if (inchar () == EOF || tolower (c) != 'y') if (inchar () == EOF || _tolower (c) != 'y')
input_error (); input_error ();
ADDW (c); ADDW (c);
} }
@ -1036,7 +1036,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
{ {
ADDW (c); ADDW (c);
c = inchar (); c = inchar ();
if (tolower (c) == 'x') if (_tolower (c) == 'x')
{ {
/* It is a number in hexadecimal format. */ /* It is a number in hexadecimal format. */
ADDW (c); ADDW (c);
@ -1060,7 +1060,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
else if (got_e && wp[wpsize - 1] == exp_char else if (got_e && wp[wpsize - 1] == exp_char
&& (c == '-' || c == '+')) && (c == '-' || c == '+'))
ADDW (c); ADDW (c);
else if (wpsize > 0 && !got_e && tolower (c) == exp_char) else if (wpsize > 0 && !got_e && _tolower (c) == exp_char)
{ {
ADDW (exp_char); ADDW (exp_char);
got_e = got_dot = 1; got_e = got_dot = 1;

View File

@ -1,5 +1,5 @@
/* Return the offset of one string within another. /* Return the offset of one string within another.
Copyright (C) 1994, 1996, 1997, 1998 Free Software Foundation, Inc. Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -52,7 +52,7 @@ __strcasestr (phaystack, pneedle)
haystack = (const unsigned char *) phaystack; haystack = (const unsigned char *) phaystack;
needle = (const unsigned char *) pneedle; needle = (const unsigned char *) pneedle;
b = tolower (*needle); b = _tolower (*needle);
if (b != '\0') if (b != '\0')
{ {
haystack--; /* possible ANSI violation */ haystack--; /* possible ANSI violation */
@ -62,9 +62,9 @@ __strcasestr (phaystack, pneedle)
if (c == '\0') if (c == '\0')
goto ret0; goto ret0;
} }
while (tolower (c) != b); while (_tolower (c) != b);
c = tolower (*++needle); c = _tolower (*++needle);
if (c == '\0') if (c == '\0')
goto foundneedle; goto foundneedle;
++needle; ++needle;
@ -80,40 +80,40 @@ __strcasestr (phaystack, pneedle)
a = *++haystack; a = *++haystack;
if (a == '\0') if (a == '\0')
goto ret0; goto ret0;
if (tolower (a) == b) if (_tolower (a) == b)
break; break;
a = *++haystack; a = *++haystack;
if (a == '\0') if (a == '\0')
goto ret0; goto ret0;
shloop: } shloop: }
while (tolower (a) != b); while (_tolower (a) != b);
jin: a = *++haystack; jin: a = *++haystack;
if (a == '\0') if (a == '\0')
goto ret0; goto ret0;
if (tolower (a) != c) if (_tolower (a) != c)
goto shloop; goto shloop;
rhaystack = haystack-- + 1; rhaystack = haystack-- + 1;
rneedle = needle; rneedle = needle;
a = tolower (*rneedle); a = _tolower (*rneedle);
if (tolower (*rhaystack) == a) if (_tolower (*rhaystack) == a)
do do
{ {
if (a == '\0') if (a == '\0')
goto foundneedle; goto foundneedle;
++rhaystack; ++rhaystack;
a = tolower (*++needle); a = _tolower (*++needle);
if (tolower (*rhaystack) != a) if (_tolower (*rhaystack) != a)
break; break;
if (a == '\0') if (a == '\0')
goto foundneedle; goto foundneedle;
++rhaystack; ++rhaystack;
a = tolower (*++needle); a = _tolower (*++needle);
} }
while (tolower (*rhaystack) == a); while (_tolower (*rhaystack) == a);
needle = rneedle; /* took the register-poor approach */ needle = rneedle; /* took the register-poor approach */