1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00
1997-05-24 03:51  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/Makefile (routines): Add strtol_l, strtoul_l, strtoll_l,
	strtoull_l, strtof_l, strtod_l, and strtold_l.
	* stdlib/stdlib.h: Add prototypes for new functions.
	* stdlib/strtod.c: Change for compiling as strtoX_l.
	* stdlib/strtol.c: Likewise.
	* stdlib/strtof.c: Likewise.
	* stdlib/strtold.c: Likewise.
	* stdlib/strtod_l.c: New file.
	* stdlib/strtof_l.c: New file.
	* stdlib/strtold_l.c: New file.
	* stdlib/strtol_l.c: New file.
	* stdlib/strtoul_l.c: New file.
	* stdlib/strtoll_l.c: New file.
	* stdlib/strtoull_l.c: New file.
	* string/Makefile (routines): Add strcasecmp_l and strncase_l.
	* string/string.h: Add prototypes for new functions.
	* sysdeps/generic/strcasecmp.c: Change for compiling as strcasecmp_l.
	* sysdeps/generic/strncase.c: Change for compiling as strncasecmp_l.
	* sysdeps/generic/strcasecmp_l.c: New file.
	* sysdeps/generic/strncase_l.c: New file.
	* wcsmbs/Makefile (routines): Add wcstol_l, wcstoul_l, wcstoll_l,
	wcstoull_l, wcstod_l, wcstold_l, wcstof_l, wcscasecmp_l, and
	wcsncase_l.
	* wcsmbs/wchar.h: Add prototypes for new functions.
	* wcsmbs/wcscasecmp.c: Change for compiling as wcscasecmp_l.
	* wcsmbs/wcsncase.c: Change for compiling as wcsncasecmp_l.
	* wcsmbs/wcscasecmp_l.c: New file.
	* wcsmbs/wcsncase_l.c: New file.
	* wcsmbs/wcstof.c: Change for compiling as wcstof_l.c
	* wcsmbs/wcstold.c: Change for compiling as wcstold_l.c
	* wcsmcs/wcstod_l.c: New file.
	* wcsmcs/wcstof_l.c: New file.
	* wcsmcs/wcstold_l.c: New file.
	* wcsmcs/wcstol_l.c: New file.
	* wcsmcs/wcstoul_l.c: New file.
	* wcsmcs/wcstoll_l.c: New file.
	* wcsmcs/wcstoull_l.c: New file.

	* Makeconfig (binfmt-subdir): New variable.  Set to `elf' if
	$(elf) is defined.  More to come later when other binary formats
	are supported.
	* Makefile (subdirs): Remove elf.  Add $(binfmt-subdir).
	Suggested by Philip Blundell.

	* stdlib/Makefile (headers): Add fmtmsg.h.
	(routines): Add fmtmsg.
	* stdlib/fmtmsg.c: New file.
	* stdlib/fmtmsg.h: New file.
	* manual/stdio.texi: Add description of fmtmsg and addseverity.
	* manual/examples/fmtmsgexpl.c: Example program for fmtmsg
	documentation.

1997-05-23 15:26  Philip Blundell  <pjb27@cam.ac.uk>

	* resolv/res_query.c (res_querydomain): Avoid potential buffer
	overrun.  Reported by Dan A. Dickey <ddickey@transition.com>.

1997-05-22 18:36  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* elf/dl-support.c (_dl_sysdep_open_zero_fill,
	_dl_sysdep_read_whole_file): Moved functions to ...
	* elf/dl-misc.c: This new file.
	* sysdeps/generic/dl-sysdepio.c: Delete file and move functions...
	* elf/dl-misc.c: ... here.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill,
	_dl_sysdep_read_whole_file): Delete functions; they now come from
	elf/dl-misc.c (dl-support.c had contained identical versions).
	* sysdeps/mach/hurd/dl-sysdepio.c: Delete file; move functions...
	* sysdeps/mach/hurd/dl-sysdep.c: ... here, but mark them weak so
	that the regular ones in dl-misc work once we've initialized.
	* elf/Makefile (dl-routines): Remove dl-sysdepio.c.  Add dl-misc.c.

1997-05-22 21:55  Philip Blundell  <pjb27@cam.ac.uk>

	* inet/Makefile (headers): Add netinet/inbits.h.
	* inet/netinet/in.h: New file.
	* sysdeps/generic/netinet/inbits.h: Likewise.
	* sysdeps/unix/sysv/linux/netinet/inbits.h: Likewise.
	* sysdeps/generic/netinet/ip6.h: Move to...
	* inet/netinet/ip6.h: ... here.
	* sysdeps/generic/netinet/icmp6.h: Move to...
	* inet/netinet/icmp6.h: ... here.
	* sysdeps/unix/sysv/linux/netinet/in.h: Remove.
	* sysdeps/generic/netinet/in.h: Remove.

1997-05-22 05:40  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/dl-machine.h (elf_machine_runtime_setup): If we are
	not looking at the new thread-safe .plt, don't be lazy about relocs.
	(_dl_runtime_resolve): Fix up arithmetic for new .plt layout.
	(elf_alpha_fix_plt): Insert wmb as appropriate to ensure safety.
	* elf/dynamic-link.h (ELF_DYNAMIC_RELOCATE): Let
	elf_machine_runtime_setup() decide if we can actually be lazy.
	* elf/rtld.c (_dl_start): So don't call it.
	* elf/dl-reloc.c (_dl_relocate_object): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_runtime_setup): Return lazy.
	* sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/powerpc/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/sparc/dl-machine.h (elf_machine_runtime_setup): Likewise.
	* sysdeps/stub/dl-machine.h (elf_machine_runtime_setup): Update
	skeleton definition.

1997-05-22 18:45  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/fpu/__math.h (logb): Remove second value placed on
	stack by fxtract.

1997-05-22 13:07  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sunrpc/rpcsvc/rusers.x: Provide and correct prototypes,
	add cast to (xdrproc_t) where necessary to prevent warnings.

1997-05-22 12:18  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Remove I/O functions.

	* sunrpc/rpcinfo.c (get_inet_address): Use INADDR_NONE and INADDR_ANY
	* sysdeps/libm-ieee754/s_cexp.c: Fix typo: string_alias ->
	* nss/XXX-lookup.c: Add missing explanation.
This commit is contained in:
Ulrich Drepper
1997-05-24 02:30:09 +00:00
parent bfbc57545a
commit 0501d60367
68 changed files with 2287 additions and 792 deletions

View File

@ -25,9 +25,17 @@
# define FLOAT double
# define FLT DBL
# ifdef USE_WIDE_CHAR
# define STRTOF wcstod
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define STRTOF __wcstod_l
# else
# define STRTOF wcstod
# endif
# else
# define STRTOF strtod
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define STRTOF __strtod_l
# else
# define STRTOF strtod
# endif
# endif
# define MPN2FLOAT __mpn_construct_double
# define FLOAT_HUGE_VAL HUGE_VAL
@ -40,30 +48,6 @@
u.ieee.mantissa1 = (mant) & 0xffffffff; \
} while (0)
#endif
#ifdef USE_WIDE_CHAR
# include <wctype.h>
# include <wchar.h>
# define STRING_TYPE wchar_t
# define CHAR_TYPE wint_t
# define L_(Ch) L##Ch
# define ISSPACE(Ch) iswspace (Ch)
# define ISDIGIT(Ch) iswdigit (Ch)
# define ISXDIGIT(Ch) iswxdigit (Ch)
# define TOLOWER(Ch) towlower (Ch)
# define STRNCASECMP(S1, S2, N) __wcsncasecmp ((S1), (S2), (N))
# define STRTOULL(S, E, B) wcstoull ((S), (E), (B))
#else
# define STRING_TYPE char
# define CHAR_TYPE char
# define L_(Ch) Ch
# define ISSPACE(Ch) isspace (Ch)
# define ISDIGIT(Ch) isdigit (Ch)
# define ISXDIGIT(Ch) isxdigit (Ch)
# define TOLOWER(Ch) tolower (Ch)
# define STRNCASECMP(S1, S2, N) __strncasecmp ((S1), (S2), (N))
# define STRTOULL(S, E, B) strtoull ((S), (E), (B))
#endif
/* End of configuration part. */
#include <ctype.h>
@ -88,6 +72,65 @@
#include <assert.h>
/* We use this code also for the extended locale handling where the
function gets as an additional argument the locale which has to be
used. To access the values we have to redefine the _NL_CURRENT
macro. */
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
# undef _NL_CURRENT
# define _NL_CURRENT(category, item) \
(current->values[_NL_ITEM_INDEX (item)].string)
# define LOCALE_PARAM , loc
# define LOCALE_PARAM_DECL __locale_t loc;
#else
# define LOCALE_PARAM
# define LOCALE_PARAM_DECL
#endif
#ifdef USE_WIDE_CHAR
# include <wctype.h>
# include <wchar.h>
# define STRING_TYPE wchar_t
# define CHAR_TYPE wint_t
# define L_(Ch) L##Ch
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
# define ISDIGIT(Ch) __iswdigit_l ((Ch), loc)
# define ISXDIGIT(Ch) __iswxdigit_l ((Ch), loc)
# define TOLOWER(Ch) __towlower_l ((Ch), loc)
# define STRNCASECMP(S1, S2, N) __wcsncasecmp_l ((S1), (S2), (N), loc)
# define STRTOULL(S, E, B) __wcstoull_l ((S), (E), (B), loc)
# else
# define ISSPACE(Ch) iswspace (Ch)
# define ISDIGIT(Ch) iswdigit (Ch)
# define ISXDIGIT(Ch) iswxdigit (Ch)
# define TOLOWER(Ch) towlower (Ch)
# define STRNCASECMP(S1, S2, N) __wcsncasecmp ((S1), (S2), (N))
# define STRTOULL(S, E, B) wcstoull ((S), (E), (B))
# endif
#else
# define STRING_TYPE char
# define CHAR_TYPE char
# define L_(Ch) Ch
# ifdef USE_IN_EXTENDED_LOCALE_MODEL
# define ISSPACE(Ch) __isspace_l ((Ch), loc)
# define ISDIGIT(Ch) __isdigit_l ((Ch), loc)
# define ISXDIGIT(Ch) __isxdigit_l ((Ch), loc)
# define TOLOWER(Ch) __tolower_l ((Ch), loc)
# define STRNCASECMP(S1, S2, N) __strncasecmp_l ((S1), (S2), (N), loc)
# define STRTOULL(S, E, B) __strtoull_l ((S), (E), (B), loc)
# else
# define ISSPACE(Ch) isspace (Ch)
# define ISDIGIT(Ch) isdigit (Ch)
# define ISXDIGIT(Ch) isxdigit (Ch)
# define TOLOWER(Ch) tolower (Ch)
# define STRNCASECMP(S1, S2, N) __strncasecmp ((S1), (S2), (N))
# define STRTOULL(S, E, B) strtoull ((S), (E), (B))
# endif
#endif
/* Constants we need from float.h; select the set for the FLOAT precision. */
#define MANT_DIG PASTE(FLT,_MANT_DIG)
#define DIG PASTE(FLT,_DIG)
@ -354,10 +397,11 @@ __mpn_lshift_1 (mp_limb_t *ptr, mp_size_t size, unsigned int count,
return 0.0. If the number is too big to be represented, set `errno' to
ERANGE and return HUGE_VAL with the appropriate sign. */
FLOAT
INTERNAL (STRTOF) (nptr, endptr, group)
INTERNAL (STRTOF) (nptr, endptr, group LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
int group;
LOCALE_PARAM_DECL
{
int negative; /* The sign of the number. */
MPN_VAR (num); /* MP representation of the number. */
@ -400,6 +444,10 @@ INTERNAL (STRTOF) (nptr, endptr, group)
in the format described in <locale.h>. */
const char *grouping;
#ifdef USE_IN_EXTENDED_LOCALE_MODEL
struct locale_data *current = loc->__locales[LC_NUMERIC];
#endif
if (group)
{
grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
@ -1352,9 +1400,10 @@ FLOAT
#ifdef weak_function
weak_function
#endif
STRTOF (nptr, endptr)
STRTOF (nptr, endptr LOCALE_PARAM)
const STRING_TYPE *nptr;
STRING_TYPE **endptr;
LOCALE_PARAM_DECL
{
return INTERNAL (STRTOF) (nptr, endptr, 0);
return INTERNAL (STRTOF) (nptr, endptr, 0 LOCALE_PARAM);
}