diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/getpt.c | 2 | ||||
-rw-r--r-- | sysdeps/generic/mempcpy.c | 3 | ||||
-rw-r--r-- | sysdeps/i386/i486/bits/string.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/bsd/getpt.c | 25 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ptsname.c | 12 |
5 files changed, 24 insertions, 22 deletions
diff --git a/sysdeps/generic/getpt.c b/sysdeps/generic/getpt.c index 6dee1e12df..4260d5fd34 100644 --- a/sysdeps/generic/getpt.c +++ b/sysdeps/generic/getpt.c @@ -28,7 +28,7 @@ __getpt () __set_errno (ENOSYS); return -1; } -weak_alias (getpt, __getpt) +weak_alias (__getpt, getpt) stub_warning (getpt) #include <stub-tag.h> diff --git a/sysdeps/generic/mempcpy.c b/sysdeps/generic/mempcpy.c index 43873405c5..6117e1503a 100644 --- a/sysdeps/generic/mempcpy.c +++ b/sysdeps/generic/mempcpy.c @@ -1,7 +1,7 @@ /* Copy memory to memory until the specified number of bytes has been copied, return pointer to following byte. Overlap is NOT handled correctly. - Copyright (C) 1991, 1997 Free Software Foundation, Inc. + Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -25,6 +25,7 @@ #include <pagecopy.h> #undef mempcpy +#undef __mempcpy void * __mempcpy (dstpp, srcpp, len) diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h index 134f117377..9c4bb525cc 100644 --- a/sysdeps/i386/i486/bits/string.h +++ b/sysdeps/i386/i486/bits/string.h @@ -1582,7 +1582,9 @@ __strstr_g (__const char *__haystack, __const char *__needle) : "rm" (word), "1" (-1)); \ __cnt + 1; })) -# define ffsl(word) ffs(word) +# ifndef ffsl +# define ffsl(word) ffs(word) +# endif # endif /* i686 */ #endif /* BSD || X/Open */ diff --git a/sysdeps/unix/bsd/getpt.c b/sysdeps/unix/bsd/getpt.c index ec339c8335..55d87fa2bc 100644 --- a/sysdeps/unix/bsd/getpt.c +++ b/sysdeps/unix/bsd/getpt.c @@ -31,13 +31,13 @@ #ifndef PTYNAME1 #define PTYNAME1 "pqrsPQRS" #endif -const char *__libc_ptyname1 = PTYNAME1; +const char __libc_ptyname1[] = PTYNAME1; /* Letters indicating the position within a series. */ #ifndef PTYNAME2 #define PTYNAME2 "0123456789abcdefghijklmnopqrstuv"; #endif -const char *__libc_ptyname2 = PTYNAME2; +const char __libc_ptyname2[] = PTYNAME2; /* Open a master pseudo terminal and return its file descriptor. */ @@ -47,32 +47,31 @@ __getpt (void) char buf[sizeof (_PATH_PTY) + 2]; const char *p, *q; char *s; - - s = __stpcpy (buf, _PATH_PTY); - s[0] = '?'; - s[1] = '?'; - s[2] = 0; - for (p = __libc_ptyname1; *p; p++) + s = __mempcpy (buf, _PATH_PTY, sizeof (_PATH_PTY) - 1); + /* s[0] and s[1] will be filled in the loop. */ + s[2] = '\0'; + + for (p = __libc_ptyname1; *p != '\0'; ++p) { s[0] = *p; - for (q = __libc_ptyname2; *q; q++) + for (q = __libc_ptyname2; *q != '\0'; ++q) { int fd; - + s[1] = *q; - + fd = __open (buf, O_RDWR); if (fd != -1) { if (__isatty (fd)) return fd; - + __close (fd); continue; } - + if (errno != EIO) return -1; } diff --git a/sysdeps/unix/sysv/linux/ptsname.c b/sysdeps/unix/sysv/linux/ptsname.c index 048ac96551..d852fb3658 100644 --- a/sysdeps/unix/sysv/linux/ptsname.c +++ b/sysdeps/unix/sysv/linux/ptsname.c @@ -33,8 +33,8 @@ #define _PATH_DEVPTS "/dev/pts/" /* The are declared in getpt.c. */ -extern const char *__libc_ptyname1; -extern const char *__libc_ptyname2; +extern const char __libc_ptyname1[]; +extern const char __libc_ptyname2[]; /* Static buffer for `ptsname'. */ static char buffer[sizeof (_PATH_DEVPTS) + 20]; @@ -59,7 +59,7 @@ __ptsname_r (int fd, char *buf, size_t buflen) int save_errno = errno; struct stat st; int ptyno; - + if (buf == NULL) { __set_errno (EINVAL); @@ -97,7 +97,7 @@ __ptsname_r (int fd, char *buf, size_t buflen) #endif { char *p; - + if (buflen < strlen (_PATH_TTY) + 3) { __set_errno (ERANGE); @@ -116,13 +116,13 @@ __ptsname_r (int fd, char *buf, size_t buflen) __set_errno (ENOTTY); return ENOTTY; } - + p = __stpcpy (buf, _PATH_TTY); p[0] = __libc_ptyname1[ptyno / 16]; p[1] = __libc_ptyname2[ptyno % 16]; p[2] = '\0'; } - + if (__stat (buf, &st) < 0) return errno; |