about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog22
-rw-r--r--libio/iovsscanf.c1
-rw-r--r--libio/vsnprintf.c1
-rw-r--r--misc/getpass.c11
-rw-r--r--stdio-common/asprintf.c4
-rw-r--r--stdio-common/dprintf.c4
-rw-r--r--stdio-common/printf.c4
-rw-r--r--stdio-common/scanf.c4
-rw-r--r--stdio-common/snprintf.c5
-rw-r--r--stdio-common/sprintf.c4
-rw-r--r--stdio-common/sscanf.c4
-rw-r--r--stdio-common/vfscanf.c10
-rw-r--r--stdio-common/vprintf.c4
-rw-r--r--sysdeps/i386/dl-machine.h2
14 files changed, 41 insertions, 39 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f9e250141..bc2d878212 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+Wed Nov 29 12:30:50 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* libio/vsnprintf.c (__vsnprintf): Define as alias.
+	* libio/iovsscanf.c (__vsscanf): Define as alias.
+	* asprintf.c: Remove libio adaptation code added by drepper.
+	* dprintf.c: Likewise.
+	* printf.c: Likewise.
+	* scanf.c: Likewise.
+	* snprintf.c: Likewise.
+	* sprintf.c: Likewise.
+	* sscanf.c: Likewise.
+	* vprintf.c: Likewise.
+	* stdio-common/vfscanf.c [USE_IN_LIBIO] (__vfscanf): New wrapper
+	function.
+	(vfscanf): Define unconditionally.
+
+	* sysdeps/i386/dl-machine.h (elf_machine_rel): If SYM is null, use
+	zero for value.
+
+	* misc/getpass.c: Write a newline after reading the unechoed
+	password.
+
 Mon Nov 27 19:24:18 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
 	* posix/Makefile (routines): Add getsid.
diff --git a/libio/iovsscanf.c b/libio/iovsscanf.c
index 61eeed2f3e..dcd3e92902 100644
--- a/libio/iovsscanf.c
+++ b/libio/iovsscanf.c
@@ -35,4 +35,5 @@ DEFUN(_IO_vsscanf, (string, format, args),
   _IO_str_init_static ((_IO_FILE*)&sf, (char*)string, 0, NULL);
   return _IO_vfscanf((_IO_FILE*)&sf, format, args, NULL);
 }
+weak_alias (_IO_vsscanf, __vsscanf)
 weak_alias (_IO_vsscanf, vsscanf)
diff --git a/libio/vsnprintf.c b/libio/vsnprintf.c
index a04da8242a..38f91c9c07 100644
--- a/libio/vsnprintf.c
+++ b/libio/vsnprintf.c
@@ -41,4 +41,5 @@ _IO_vsnprintf (string, maxlen, format, args)
   *((_IO_FILE *) &sf)->_IO_write_ptr = '\0';
   return ret;
 }
+weak_alias (_IO_vsnprintf, __vsnprintf)
 weak_alias (_IO_vsnprintf, vsnprintf)
diff --git a/misc/getpass.c b/misc/getpass.c
index ec535c1cca..bea2ac0d08 100644
--- a/misc/getpass.c
+++ b/misc/getpass.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1993, 1994, 1995 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
@@ -77,8 +77,13 @@ getpass (prompt)
   if (nread < 0 && buf != NULL)
     buf[0] = '\0';
   else if (buf[nread - 1] == '\n')
-    /* Remove the newline.  */
-    buf[nread - 1] = '\0';
+    {
+      /* Remove the newline.  */
+      buf[nread - 1] = '\0';
+      if (echo_off)
+	/* Write the newline that was not echoed.  */
+	putc ('\n', out);
+    }
 
   /* Restore echoing.  */
   if (echo_off)
diff --git a/stdio-common/asprintf.c b/stdio-common/asprintf.c
index dd9eec5ba1..b5820fd09f 100644
--- a/stdio-common/asprintf.c
+++ b/stdio-common/asprintf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define vasprintf _IO_vasprintf
-#endif
-
 /* Write formatted output from FORMAT to a string which is
    allocated with malloc and stored in *STRING_PTR.  */
 /* VARARGS2 */
diff --git a/stdio-common/dprintf.c b/stdio-common/dprintf.c
index 611a6030a1..5728c56df7 100644
--- a/stdio-common/dprintf.c
+++ b/stdio-common/dprintf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define vdprintf _IO_vdprintf
-#endif
-
 /* Write formatted output to D, according to the format string FORMAT.  */
 /* VARARGS2 */
 int
diff --git a/stdio-common/printf.c b/stdio-common/printf.c
index d8aa895a77..edb13da439 100644
--- a/stdio-common/printf.c
+++ b/stdio-common/printf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define vprintf _IO_vprintf
-#endif
-
 /* Write formatted output to stdout from the format string FORMAT.  */
 /* VARARGS1 */
 int
diff --git a/stdio-common/scanf.c b/stdio-common/scanf.c
index cf43363958..3c35fa3691 100644
--- a/stdio-common/scanf.c
+++ b/stdio-common/scanf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define vscanf _IO_vscanf
-#endif
-
 /* Read formatted input from stdin according to the format string FORMAT.  */
 /* VARARGS1 */
 int
diff --git a/stdio-common/snprintf.c b/stdio-common/snprintf.c
index ca0b60aed6..e4f8e1e193 100644
--- a/stdio-common/snprintf.c
+++ b/stdio-common/snprintf.c
@@ -19,11 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# include <libioP.h>
-# define __vsnprintf _IO_vsnprintf
-#endif
-
 /* Write formatted output into S, according to the format
    string FORMAT, writing no more than MAXLEN characters.  */
 /* VARARGS3 */
diff --git a/stdio-common/sprintf.c b/stdio-common/sprintf.c
index 9cfc89cb84..c1fb5b30a2 100644
--- a/stdio-common/sprintf.c
+++ b/stdio-common/sprintf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define vsprintf _IO_vsprintf
-#endif
-
 /* Write formatted output into S, according to the format string FORMAT.  */
 /* VARARGS2 */
 int
diff --git a/stdio-common/sscanf.c b/stdio-common/sscanf.c
index 794a3ce628..d9c31bf32f 100644
--- a/stdio-common/sscanf.c
+++ b/stdio-common/sscanf.c
@@ -19,10 +19,6 @@ Cambridge, MA 02139, USA.  */
 #include <stdarg.h>
 #include <stdio.h>
 
-#ifdef USE_IN_LIBIO
-# define __vsscanf _IO_vsscanf
-#endif
-
 /* Read formatted input from S, according to the format string FORMAT.  */
 /* VARARGS2 */
 int
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index a0bb63281c..b0e48df4f8 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -724,6 +724,12 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
   return ((c == EOF || ungetc (c, s)), done);
 }
 
-#ifndef USE_IN_LIBIO
-weak_alias (__vfscanf, vfscanf)
+#ifdef USE_IN_LIBIO
+int
+__vfscanf (FILE *s, const char *format, va_list argptr)
+{
+  return _IO_vfscanf (s, format, argptr, NULL);
+}
 #endif
+
+weak_alias (__vfscanf, vfscanf)
diff --git a/stdio-common/vprintf.c b/stdio-common/vprintf.c
index 77f1da47e2..e2da2605b8 100644
--- a/stdio-common/vprintf.c
+++ b/stdio-common/vprintf.c
@@ -22,10 +22,6 @@ Cambridge, MA 02139, USA.  */
 
 #undef	vprintf
 
-#ifdef USE_IN_LIBIO
-# define vfprintf _IO_vfprintf
-#endif
-
 /* Write formatted output to stdout according to the
    format string FORMAT, using the argument list in ARG.  */
 int
diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
index bdca6bec3b..7c22305307 100644
--- a/sysdeps/i386/dl-machine.h
+++ b/sysdeps/i386/dl-machine.h
@@ -77,7 +77,7 @@ elf_machine_rel (struct link_map *map,
 		 Elf32_Addr sym_loadaddr, const Elf32_Sym *sym)
 {
   Elf32_Addr *const reloc_addr = (void *) (map->l_addr + reloc->r_offset);
-  const Elf32_Addr sym_value = sym_loadaddr + sym->st_value;
+  const Elf32_Addr sym_value = sym ? sym_loadaddr + sym->st_value : 0;
 
   switch (ELF32_R_TYPE (reloc->r_info))
     {