about summary refs log tree commit diff
path: root/stdlib
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-05-30 16:12:42 +0000
committerRoland McGrath <roland@gnu.org>1996-05-30 16:12:42 +0000
commit76060ec0b8b5d6f0a860a94f100dc6e48041bac3 (patch)
treeb4ff1b5370a30a16705239598cb8e98f4b80b9ca /stdlib
parentc3352e623384fe221743a6d2212c17d9619041ef (diff)
downloadglibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.tar.gz
glibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.tar.xz
glibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.zip
Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> cvs/libc-960602 cvs/libc-960601 cvs/libc-960531
	* po/header.pot: Replace with exact boilerplate pinard dictates.

	* sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set
	errno and the check that jumped to it.

	* sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx).

Thu May 30 03:21:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ: Document need of gperf program for developers.

	* elf/elf.h: Fix typos in comments.

	* libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add
        prototypes for `ctermid' and `cuserid'.

	* locale/programs/locale.c: Switch to user selected locale
	before printing variables.

	* math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines
        and long-c-routines.  Only if the `long double' data type is
        available we need to compile the functions.
	(libm-routines): Add $(long-m-routines).
	(routines): Remove isinfl, isnanl.  Use new file s_isinfl and
	s_isnanl instead if `long double' is available.

	* math/math.h: Include <mathcalls.h> again to define `long double'
        functions.

	* math/math_private.h: Define data types, prototypes and access
        macros for `long double'.

	* stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'.
	[GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which
	calls __strto{,u}q_internal.

	* stdlib/strfmon.c: Replace PTR by `void *'.

	* stdlib/strtoq.c: Define strtoll as weak alias.
	* stdlib/strtouq.c: Define strtoull as weak alias.

	* string/tester.c: Correct `strsep' test.

	* sysdeps/generic/strsep.c: Make compatible with BSD version.
        Trailing characters of skip set are not skipped.  In this case
        empty tokens are returned.

	* sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c,
        sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c,
        sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed.  We
        now use the versions part of libm.

	* sysdeps/i386/strsep.S: Removed.  Generic C version is of
	similar speed.
	* sysdeps/i386/strtok.S: Remove support for `strsep'.

	* sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S,
        sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S,
        sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c,
        sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c,
        sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S:
        New i387 specific math functions implementing `long double'
        versions.

	* sysdeps/libm-ieee754/s_ceill.c,
        sysdeps/libm-ieee754/s_copysignl.c,
        sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c,
        sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c,
        sysdeps/libm-ieee754/s_isnanl.c,
        sysdeps/libm-ieee754/s_nextafterl.c,
        sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c,
        sysdeps/libm-ieee754/s_significandl.c: New generic `long double'
        versions of libm functions.

	* sysdeps/libm-i387/e_exp.S: Add a few comments to explain the
        Intel FPU nonsense.

	* sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S,
        sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct
        handling of local variables.  The old version created a stack
        frame but stored the values outside.

	* sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c
        [!NO_LONG_DOUBLE]: Define alias with `long double' versions name.

	* login/pututline_r.c: Include sys/stat.h.  Fix typos.

        according to currently used locale for category LC_CTYPE by
	inet_nsap_ntoa.  Now in <arpa/inet.h>.
        _IO_dup2 to contain complete parameter list.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/stdlib.h19
-rw-r--r--stdlib/strfmon.c18
-rw-r--r--stdlib/strtoq.c4
-rw-r--r--stdlib/strtouq.c4
4 files changed, 34 insertions, 11 deletions
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index d34f56256a..876fcc2bb8 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -107,6 +107,16 @@ extern unsigned long long int strtouq __P ((__const char *__nptr,
 					    char **__endptr, int __base));
 #endif /* GCC and use BSD.  */
 
+#if defined (__GNUC__) && defined (__USE_MISC)
+/* Convert a string to a quadword integer.  */
+extern long long int strtoll __P ((__const char *__nptr, char **__endptr,
+				   int __base));
+/* Convert a string to an unsigned quadword integer.  */
+extern unsigned long long int strtoull __P ((__const char *__nptr,
+					     char **__endptr, int __base));
+#endif /* GCC and use MISC.  */
+
+
 
 /* The internal entry points for `strtoX' take an extra flag argument
    saying whether or not to parse locale-dependent number grouping.  */
@@ -160,6 +170,15 @@ extern __inline unsigned long long int strtouq (__const char *__nptr,
 { return __strtouq_internal (__nptr, __endptr, __base, 0); }
 #endif
 
+#ifdef __USE_MISC
+extern __inline long long int strtoll (__const char *__nptr, char **__endptr,
+				       int __base)
+{ return __strtoq_internal (__nptr, __endptr, __base, 0); }
+extern __inline unsigned long long int strtoull (__const char *__nptr,
+						 char **__endptr, int __base)
+{ return __strtouq_internal (__nptr, __endptr, __base, 0); }
+#endif
+
 extern __inline double atof (__const char *__nptr)
 { return strtod (__nptr, (char **) NULL); }
 extern __inline int atoi (__const char *__nptr)
diff --git a/stdlib/strfmon.c b/stdlib/strfmon.c
index 2074f29e46..3b8c7d602a 100644
--- a/stdlib/strfmon.c
+++ b/stdlib/strfmon.c
@@ -255,7 +255,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 	  ++fmt;
 	  is_long_double = 1;
 	}
-      
+
       /* Handle format specifier.  */
       switch (*fmt++)
 	{
@@ -288,7 +288,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 				       _NL_CURRENT (LC_MONETARY, MON_GROUPING),
 				       *_NL_CURRENT (LC_MONETARY,
 						     MON_THOUSANDS_SEP));
-      
+
       /* Now it's time to get the value.  */
       if (is_long_double == 1)
 	{
@@ -348,7 +348,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 	sep_by_space = 0;
       if (left_prec == -1)
 	left_prec = 0;
-	
+
 
       /* Perhaps we'll someday make these things configurable so
 	 better start using symbolic names now.  */
@@ -356,7 +356,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 #define right_paren ')'
 
       startp = dest;		/* Remember start so we can compute lenght.  */
-      
+
       if (sign_posn == 0)
 	out_char (left_paren);
       if (sign_posn == 5)	/* This is for positive number and ( flag.  */
@@ -371,7 +371,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 	      if (sep_by_space == 2)
 		out_char (' ');
 	    }
-	  
+
 	  if (print_curr_symbol)
 	    {
 	      out_string (currency_symbol);
@@ -398,7 +398,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
       _IO_JUMPS ((_IO_FILE *) &f) = &_IO_str_jumps;
       _IO_str_init_static ((_IO_FILE *) &f, dest, (s + maxsize) - dest, dest);
 #else
-      memset((PTR) &f, 0, sizeof(f));
+      memset((void *) &f, 0, sizeof(f));
       f.__magic = _IOMAGIC;
       f.__mode.__write = 1;
       /* The buffer size is one less than MAXLEN
@@ -443,7 +443,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 	return -1;
 
       dest += done;
-      
+
       if (!cs_precedes)
 	{
 	  if (sign_posn == 3)
@@ -467,7 +467,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 	      out_char (' ');
 	    out_char (sign_char);
 	  }
-      
+
       if (sign_posn == 0)
 	out_char (right_paren);
       if (sign_posn == 5)
@@ -497,7 +497,7 @@ strfmon (char *s, size_t maxsize, const char *format, ...)
 
   /* Terminate the string.  */
   out_char ('\0');
-  
+
   va_end (ap);
 
   return dest - s - 1;
diff --git a/stdlib/strtoq.c b/stdlib/strtoq.c
index be1f723b13..5a9510bf52 100644
--- a/stdlib/strtoq.c
+++ b/stdlib/strtoq.c
@@ -1,5 +1,5 @@
 /* strtoq -- Function to parse a `long long int' from text.
-Copyright (C) 1995 Free Software Foundation, Inc.
+Copyright (C) 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -20,3 +20,5 @@ Cambridge, MA 02139, USA.  */
 #define	QUAD	1
 
 #include <strtol.c>
+
+weak_alias (strtoq, strtoll)
diff --git a/stdlib/strtouq.c b/stdlib/strtouq.c
index 4eea0b22ee..e4d817f7f7 100644
--- a/stdlib/strtouq.c
+++ b/stdlib/strtouq.c
@@ -1,5 +1,5 @@
 /* strtouq -- Function to parse an `unsigned long long int' from text.
-Copyright (C) 1995 Free Software Foundation, Inc.
+Copyright (C) 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -20,3 +20,5 @@ Cambridge, MA 02139, USA.  */
 #define	QUAD	1
 
 #include <strtoul.c>
+
+weak_alias (strtouq, strotull)