mirror of
https://sourceware.org/git/glibc.git
synced 2025-12-15 17:05:51 +03:00
Update.
1998-09-21 10:00 Ulrich Drepper <drepper@cygnus.com> * string/bits/string2.h: Add mempcpy optimization. * sysdeps/generic/mempcpy.c: Undefined __mempcpy. * intl/localealias.c: Define mempcpy only if not already defined. * sysdeps/i386/i486/bits/string.h: Define ffsl only if not already defined. 1998-09-20 10:48 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> * csu/abi-note.S: Emit the note directly instead of defining a preprocessor macro that's only used once. Don't include sysdep.h. * abi-tags: Generalize Solaris entry. 1998-09-18 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/bsd/getpt.c (__libc_ptyname1, __libc_ptyname2): Change to array to avoid runtime relocation. * sysdeps/unix/sysv/linux/ptsname.c: Update declarations. 1998-09-21 12:22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/Makefile ($(objpfx)libmcheck.a): Fix use of $(LN_S). * math/Makefile ($(objpfx)libieee.a): Likewise. 1998-09-21 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/getpt.c: Fix order of argument to weak_alias. Patch by John Tobey <jtobey@banta-im.com>.
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user