update from main archvie 961022
authordrepper <drepper>
Tue, 22 Oct 1996 23:28:17 +0000 (23:28 +0000)
committerdrepper <drepper>
Tue, 22 Oct 1996 23:28:17 +0000 (23:28 +0000)
30 files changed:
nss/nss_files/files-grp.c
nss/nss_files/files-pwd.c
pwd/fgetpwent_r.c
sysdeps/generic/_strerror.c
sysdeps/generic/sysdep.h
sysdeps/i386/__longjmp.S
sysdeps/i386/bsd-_setjmp.S
sysdeps/i386/bsd-setjmp.S
sysdeps/i386/i486/strcat.S
sysdeps/i386/i486/strlen.S
sysdeps/i386/i586/memset.S
sysdeps/i386/i586/strchr.S
sysdeps/i386/i586/strlen.S
sysdeps/i386/memchr.S
sysdeps/i386/memcmp.S
sysdeps/i386/setjmp.S
sysdeps/i386/stpcpy.S
sysdeps/i386/stpncpy.S
sysdeps/i386/strchr.S
sysdeps/i386/strcspn.S
sysdeps/i386/strlen.c
sysdeps/i386/strpbrk.S
sysdeps/i386/strrchr.S
sysdeps/i386/strspn.S
sysdeps/i386/strtok.S
sysdeps/i386/sysdep.h
sysdeps/m68k/bsd-_setjmp.S
sysdeps/m68k/bsd-setjmp.S
sysdeps/mach/_strerror.c
sysdeps/posix/getaddrinfo.c

index 8e047b6..20a723b 100644 (file)
@@ -32,12 +32,14 @@ struct grent_data {};
 
 DB_LOOKUP (grnam, 1 + strlen (name), (".%s", name),
           {
-            if (! strcmp (name, result->gr_name))
+            if (name[0] != '-' && name[0] != '+'
+                && ! strcmp (name, result->gr_name))
               break;
           }, const char *name)
 
 DB_LOOKUP (grgid, 20, ("=%lu", (unsigned long int) gid),
           {
-            if (result->gr_gid == gid)
+            if (result->gr_gid == gid && result->gr_name[0] != '+'
+                && result->gr_name[0] != '-')
               break;
           }, gid_t gid)
index a778d01..3000855 100644 (file)
@@ -32,12 +32,14 @@ struct pwent_data {};
 
 DB_LOOKUP (pwnam, 1 + strlen (name), (".%s", name),
           {
-            if (! strcmp (name, result->pw_name))
+            if (name[0] != '+' && name[0] != '-'
+                && ! strcmp (name, result->pw_name))
               break;
           }, const char *name)
 
 DB_LOOKUP (pwuid, 20, ("=%lu", (unsigned long int) uid),
           {
-            if (result->pw_uid == uid)
+            if (result->pw_uid == uid && result->pw_name[0] != '+'
+                && result->pw_name[0] != '-')
               break;
           }, uid_t uid)
index 9b58e61..bd380bd 100644 (file)
@@ -32,8 +32,16 @@ LINE_PARSER
 (,
  STRING_FIELD (result->pw_name, ISCOLON, 0);
  STRING_FIELD (result->pw_passwd, ISCOLON, 0);
- INT_FIELD (result->pw_uid, ISCOLON, 0, 10,);
- INT_FIELD (result->pw_gid, ISCOLON, 0, 10,);
+ if (result->pw_name[0] == '+' || result->pw_name[0] == '-')
+   {
+     INT_FIELD_MAYBE_NULL (result->pw_uid, ISCOLON, 0, 10, , 0)
+     INT_FIELD_MAYBE_NULL (result->pw_gid, ISCOLON, 0, 10, , 0)
+   }
+ else
+   {
+     INT_FIELD (result->pw_uid, ISCOLON, 0, 10,)
+     INT_FIELD (result->pw_gid, ISCOLON, 0, 10,)
+   }
  STRING_FIELD (result->pw_gecos, ISCOLON, 0);
  STRING_FIELD (result->pw_dir, ISCOLON, 0);
  result->pw_shell = line;
index 45fc8ca..e88d6d6 100644 (file)
@@ -26,19 +26,22 @@ Cambridge, MA 02139, USA.  */
 #define _sys_nerr sys_nerr
 #endif
 
-/* Set if startup process finished.  */
-extern int _dl_starting_up;
+/* It is critical here that we always use the `dcgettext' function for
+   the message translation.  Since <libintl.h> only defines the macro
+   `dgettext' to use `dcgettext' for optimizing programs this is not
+   always guaranteed.  */
+#ifndef dgettext
+# include <locale.h>           /* We need LC_MESSAGES.  */
+# define dgettext(domainname, msgid) dcgettext (domainname, msgid, LC_MESSAGES)
+#endif
 
 /* Return a string describing the errno code in ERRNUM.  */
 char *
-_strerror_internal (int errnum,
-                   char *buf,
-                   size_t buflen)
+_strerror_internal (int errnum, char *buf, size_t buflen)
 {
   if (errnum < 0 || errnum >= _sys_nerr)
     {
-      static const char unk_orig[] = N_("Unknown error ");
-      const char *unk = _dl_starting_up ? unk_orig : _(unk_orig);
+      const char *unk = _("Unknown error ");
       const size_t unklen = strlen (unk);
       char *p = buf + buflen;
       *--p = '\0';
@@ -46,6 +49,5 @@ _strerror_internal (int errnum,
       return memcpy (p - unklen, unk, unklen);
     }
 
-  return (char *) (_dl_starting_up ? _sys_errlist[errnum]
-                  : _(_sys_errlist[errnum]));
+  return (char *) _(_sys_errlist[errnum]);
 }
index def2d18..6b5cc68 100644 (file)
@@ -35,3 +35,7 @@ Cambridge, MA 02139, USA.  */
 #endif
 
 #endif
+
+/* Mark the end of function named SYM.  This is used on some platforms
+   to generate correct debugging information.  */
+#define END(sym)
index fd02205..cb33a89 100644 (file)
@@ -33,4 +33,4 @@ ENTRY (__longjmp)
        /* Jump to saved PC.  */
        movl (JB_PC*4)(%ecx), %ecx
        jmp *%ecx
-PSEUDO_END (__longjmp)
+END (__longjmp)
index b08a74f..a7ee5db 100644 (file)
@@ -30,4 +30,4 @@ ENTRY (_setjmp)
        pushl %ecx              /* Push back first argument.  */
        pushl %eax              /* Push back return PC.  */
        jmp JUMPTARGET (C_SYMBOL_NAME (__sigsetjmp))
-PSEUDO_END (_setjmp)
+END (_setjmp)
index 5c8dd67..239a8c4 100644 (file)
@@ -30,4 +30,4 @@ ENTRY (setjmp)
        pushl %ecx              /* Push back first argument.  */
        pushl %eax              /* Push back return PC.  */
        jmp JUMPTARGET (C_SYMBOL_NAME (__sigsetjmp))
-PSEUDO_END (setjmp)
+END (setjmp)
index e82b1c4..f705f42 100644 (file)
@@ -258,4 +258,4 @@ L8: movl 8(%esp), %eax      /* start address of destination is result */
        popl %edi               /* restore saved register */
 
        ret
-PSEUDO_END (strcat)
+END (strcat)
index 1a7ab7a..a92067a 100644 (file)
@@ -130,4 +130,4 @@ L3: testb %cl, %cl          /* is first byte NUL? */
 L2:    subl 4(%esp), %eax      /* compute difference to string start */
 
        ret
-PSEUDO_END (strlen)
+END (strlen)
index 0dabad2..1e8a9c2 100644 (file)
@@ -99,4 +99,4 @@ L2:   shrl    $2, %ecx        /* convert byte count to longword count */
        popl    %edi
 
        ret
-PSEUDO_END (memset)
+END (memset)
index 8a6691f..1477350 100644 (file)
@@ -326,7 +326,7 @@ L3: xorl %eax, %eax         /* set return value = NULL */
        popl %edi
 
        ret
-PSEUDO_END (strchr)
+END (strchr)
 
 #undef index
 weak_alias (strchr, index)
index cce750c..ba24981 100644 (file)
@@ -180,4 +180,4 @@ L2: subl 4(%esp), %eax      /* now compute the length as difference
                                   character */
 
        ret
-PSEUDO_END (strlen)
+END (strlen)
index 7d2779b..fcf873e 100644 (file)
@@ -313,4 +313,4 @@ L9: popl %edi               /* pop saved registers */
        popl %esi
 
        ret
-PSEUDO_END (memchr)
+END (memchr)
index 4bf9b23..73714b7 100644 (file)
@@ -63,7 +63,7 @@ L1:   popl %esi               /* Restore registers.  */
        movl %edx, %edi
 
        ret
-PSEUDO_END (memcmp)
+END (memcmp)
 
 #undef bcmp
 weak_alias (memcmp, bcmp)
index e877ae3..23e2b74 100644 (file)
@@ -53,4 +53,4 @@ here: popl %ecx
 #else
        jmp __sigjmp_save
 #endif
-PSEUDO_END (__sigsetjmp)
+END (__sigsetjmp)
index 46f64b5..9df0e33 100644 (file)
@@ -83,6 +83,6 @@ L4:   incl %eax
 L3:    incl %eax
 L2:
        ret
-PSEUDO_END (__stpcpy)
+END (__stpcpy)
 
 weak_alias (__stpcpy, stpcpy)
index 7590e57..b76f617 100644 (file)
@@ -139,6 +139,6 @@ L3: decl %ecx               /* all bytes written? */
 L9:    popl %esi               /* restore saved register content */
 
        ret
-PSEUDO_END (__stpncpy)
+END (__stpncpy)
 
 weak_alias (__stpncpy, stpncpy)
index 50c3d7b..1c91c40 100644 (file)
@@ -274,6 +274,6 @@ L7: testb %cl, %cl          /* is first byte C? */
 L6:    popl %edi               /* restore saved register content */
 
        ret
-PSEUDO_END (strchr)
+END (strchr)
 
 weak_alias (strchr, index)
index 1e80225..387d4ae 100644 (file)
@@ -174,4 +174,4 @@ L4: subl %edx, %eax         /* we have to return the number of valid
        addl $256, %esp         /* remove stopset */
 
        ret
-PSEUDO_END (strcspn)
+END (strcspn)
index 3c1398b..6305d36 100644 (file)
@@ -1,6 +1,6 @@
 /* strlen -- determine the length of a string.
    For Intel 80x86, x>=3.
-   Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
    Contributed by Torbjorn Granlund (tege@sics.se).
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -18,11 +18,10 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-#include <ansidecl.h>
 #include <string.h>
 
 size_t
-DEFUN(strlen, (str), CONST char *str)
+strlen (const char *str)
 {
   int cnt;
 
index 41769b0..5d0dfec 100644 (file)
@@ -175,4 +175,4 @@ L4: addl $256, %esp         /* remove stopset */
        xorl %eax, %eax         /* return NULL */
 
 L7:    ret
-PSEUDO_END (strpbrk)
+END (strpbrk)
index 8cad7e5..f47bf94 100644 (file)
@@ -321,6 +321,6 @@ L2: popl %esi               /* restore saved register content */
        popl %edi
 
        ret
-PSEUDO_END (strrchr)
+END (strrchr)
 
 weak_alias (strrchr, rindex)
index fbba811..508aa7f 100644 (file)
@@ -174,4 +174,4 @@ L4: subl %edx, %eax         /* we have to return the number of valid
        addl $256, %esp         /* remove stopset */
 
        ret
-PSEUDO_END (strspn)
+END (strspn)
index a510e18..19f62cf 100644 (file)
@@ -282,4 +282,4 @@ LreturnNULL:
 # endif
 #endif
        ret
-PSEUDO_END (FUNCTION)
+END (FUNCTION)
index 9d21342..a11aa72 100644 (file)
@@ -52,6 +52,10 @@ Cambridge, MA 02139, USA.  */
   C_LABEL(name)                                                                      \
   CALL_MCOUNT
 
+#undef END
+#define END(name)                                                            \
+  ASM_SIZE_DIRECTIVE(name)
+
 /* If compiled for profiling, call `mcount' at the start of each function.  */
 #ifdef PROF
 /* The mcount code relies on a normal frame pointer being on the stack
@@ -80,7 +84,7 @@ lose: SYSCALL_PIC_SETUP                                                             \
 
 #undef PSEUDO_END
 #define        PSEUDO_END(name)                                                      \
-  ASM_SIZE_DIRECTIVE(name)
+  END (name)
 
 #ifdef PIC
 #define JUMPTARGET(name)       name##@PLT
index 32d25e4..dc1f52c 100644 (file)
@@ -46,4 +46,4 @@ ENTRY (_setjmp)
 #else
        jmp C_SYMBOL_NAME (__sigsetjmp)
 #endif
-PSEUDO_END (_setjmp)
+END (_setjmp)
index a4053bd..7158907 100644 (file)
@@ -44,4 +44,4 @@ ENTRY (setjmp)
 #else
        jmp C_SYMBOL_NAME (__sigsetjmp)
 #endif
-PSEUDO_END (setjmp)
+END (setjmp)
index 8b32f05..eae43bd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 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
@@ -22,6 +22,15 @@ Cambridge, MA 02139, USA.  */
 #include <errorlib.h>
 #include "../stdio-common/_itoa.h"
 
+/* It is critical here that we always use the `dcgettext' function for
+   the message translation.  Since <libintl.h> only defines the macro
+   `dgettext' to use `dcgettext' for optimizing programs this is not
+   always guaranteed.  */
+#ifndef dgettext
+# include <locale.h>           /* We need LC_MESSAGES.  */
+# define dgettext(domainname, msgid) dcgettext (domainname, msgid, LC_MESSAGES)
+#endif
+
 /* Return a string describing the errno code in ERRNUM.  */
 char *
 _strerror_internal (int errnum, char *buf, size_t buflen)
index 823335d..32b050e 100644 (file)
@@ -50,7 +50,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include <netinet6/in6.h>
 #endif /* INET6 */
 #include <netdb.h>
-
+#include <arpa/inet.h>
+#include <string.h>
 
 #define GAIH_OKIFUNSPEC 0x0100
 #define GAIH_EAI        ~(GAIH_OKIFUNSPEC)
@@ -90,7 +91,7 @@ static struct gaih_addrtuple nulladdr;
 struct gaih_typeproto {
   int socktype;
   int protocol;
-  char *name;
+  const char *name;
 };
 
 static struct gaih_typeproto gaih_inet_typeproto[] = {
@@ -121,7 +122,6 @@ static int gaih_inet_serv(char *servicename, struct gaih_typeproto *tp, struct g
 static int gaih_inet(const char *name, const struct gaih_service *service,
                     const struct addrinfo *req, struct addrinfo **pai)
 {
-  struct hostent *h = NULL;
   struct gaih_typeproto *tp = gaih_inet_typeproto;
   struct gaih_servtuple *st = &nullserv;
   struct gaih_addrtuple *at = &nulladdr;
@@ -412,7 +412,8 @@ static struct gaih gaih[] = {
 int getaddrinfo(const char *name, const char *service,
                const struct addrinfo *req, struct addrinfo **pai)
 {
-  int i, j = 0;
+  int i = 0;
+  int j = 0;
   struct addrinfo *p = NULL, **end = &p;
   struct gaih *g = gaih, *pg = NULL;
   struct gaih_service gaih_service, *pservice;
@@ -446,7 +447,7 @@ int getaddrinfo(const char *name, const char *service,
       j++;
       if (!((pg && (pg->gaih == g->gaih)))) {
        pg = g;
-       if (i = g->gaih(name, pservice, req, end)) {
+       if ((i = g->gaih(name, pservice, req, end))) {
          if (!req->ai_family && (i & GAIH_OKIFUNSPEC))
            continue;
          goto gaih_err;