mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +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:
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user