diff options
43 files changed, 1751 insertions, 242 deletions
@@ -1,3 +1,85 @@ +Wed May 22 01:48:54 1996 Ulrich Drepper <drepper@cygnus.com> + + * stdlib/strtol.c [!QUAD] (ULONG_MAX, LONG_MAX): Define these + macros if they are not available. + (WEAKNAME): New macro to declare argument as weak. + Define function with __ prefix and add normal name as weak alias. + + * sysdeps/posix/euidaccess.c (S_IROTH, S_IWOTH, S_IXOTH): Defines + these macros if not already available based on R_OK, W_OK, and + X_OK. + +Tue May 21 18:48:46 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + + * misc/sys/syslog.h (__need___va_list): Define this instead of + __need_va_list before including <stdarg.h>. + + * Makerules (o-iterator): Use $(object-suffixes-left) instead + of $(object-suffixes) to produce repetitions; this is used for other + lists than just that one. + [versioned]: Use $(o-iterator) properly. + + * sysdeps/unix/sysv/linux/Implies: Include `gnu'. + * sysdeps/mach/hurd/Implies: Likewise. + +Sat May 18 02:57:46 1996 Ulrich Drepper <drepper@cygnus.com> + + * login/Makefile: New file. This directory contains functions + for user administration. + * Makefile (subdirs): Add login. + + * misc/Makefile (headers): Remove utmp.h. Now in login/utmp.h. + (extra-libs, libutil-routines): Ditto. + * misc/login.c, misc/login_tty.c, misc/logout.c, misc/logwtmp.c, + misc/utmp.h: Moved to misc/. + * login/login.c, login/login_tty.c, login/logout.c, + login/logwtmp.c, login/utmp.h: Moved to here from misc/. + + * login/utmp.h: Split file. Definitions of data structures + and constants are now in the system dependent utmpbits.h file. + + * login/setutent_r.c, login/setutent.c, login/endutent_r.c, + login/endutent.c, login/getutent_r.c, login/getutent.c, + login/getutid_r.c, login/getutid.c, login/getutline_r.c, + login/getutline.c, login/pututline_r.c, login/pututline.c: + New files. Routines to handle utmp-style files. + + * sysdeps/gnu/utmpbits.h: New file. Contains GNU/Linux + specific definitions of utmp data structures and constants. + + * sysdeps/unix/sysv/utmpbits.h: Renamed from sysdeps/unix/sysv/utmp.h. + + * sysdeps/generic/utmpbits.h: New file. Generic (BSDish) version of + definitions of utmp data structures and constants. + +Fri May 17 00:01:31 1996 Ulrich Drepper <drepper@cygnus.com> + + * locale/C-monetary.c: Default value for mon_decimal_point should be + '.'. + + * stdio-common/printf.h: Remove Linux libc compatibility stuff. + Add `extra' flag. Currently used in __printf_fp. + + * stdio-common/printf_fp.c (__guess_grouping): Renamed from + `guess_grouping' and extend visibility to extern. This function + is now used in `strfmon'. + (__printf_fp): Recognize new bit flag in info struct. This + triggers to use the grouping information and decimal point from + the LC_MONETARY category instead of the LC_NUMERIC category. + + * stdio-common/vfprintf.c (process_arg): Correct major bug. In + `complicated' loop we must not use the varargs because the args + are already available in the ARGS_VALUE array. + + * stdlib/Makefile (headers): Add monetary.h. + (routines): Add strfmon. + * stdlib/monetary.h: New file. Header for strfmon function. + * stdlib/strfmon.c: New file. Implement strfmon function to print + monetary amounts according to current locale's rules. + + * sysdeps/unix/sysv/linux/i386/sys/vm86.h: The kernel header is + now (>= Linux-1.3.100) called <asm/vm86.h>. + Thu May 16 00:31:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> * Makerules [versioned]: Make symlinks in the build directory, because @@ -53,7 +53,7 @@ endif # These are the subdirectories containing the library source. subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \ stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd\ - posix io termios resource misc socket sysvipc gmon gnulib \ + posix io termios resource misc login socket sysvipc gmon gnulib \ wctype $(wildcard crypt) manual $(sysdep-subdirs) elf po export subdirs := $(subdirs) # Benign, useless in GNU make before 3.63. diff --git a/config.sub b/config.sub index 9542fb28ef..27a3689f78 100755 --- a/config.sub +++ b/config.sub @@ -307,6 +307,7 @@ case $basic_machine in basic_machine=m68k-hp os=-hpux ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) diff --git a/locale/C-monetary.c b/locale/C-monetary.c index b661a57493..542e5c30d1 100644 --- a/locale/C-monetary.c +++ b/locale/C-monetary.c @@ -27,7 +27,7 @@ const struct locale_data _nl_C_LC_MONETARY = { { string: "" }, { string: "" }, - { string: "" }, + { string: "." }, { string: "" }, { string: "\177" }, { string: "" }, diff --git a/login/Makefile b/login/Makefile new file mode 100644 index 0000000000..d3e6ac8aa5 --- /dev/null +++ b/login/Makefile @@ -0,0 +1,38 @@ +# Copyright (C) 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 +# modify it under the terms of the GNU Library General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public +# License along with the GNU C Library; see the file COPYING.LIB. If +# not, write to the Free Software Foundation, Inc., +# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# +# Sub-makefile for login portion of the library. +# + +subdir := login + +headers := utmp.h utmpbits.h + +routines := setutent endutent getutent getutid getutline pututline \ + setutent_r endutent_r getutent_r getutid_r getutline_r \ + pututline_r + +# Build the -lutil library with these extra functions. +extra-libs := libutil +libutil-routines:= login login_tty logout logwtmp pty + + +include ../Rules + +override CFLAGS += -D_THREAD_SAFE diff --git a/login/endutent.c b/login/endutent.c new file mode 100644 index 0000000000..9aed00d7a7 --- /dev/null +++ b/login/endutent.c @@ -0,0 +1,31 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include <utmp.h> + + +/* The global data defined in setutent.c. */ +extern struct utmp_data __utmp_data; + + +void +endutent (void) +{ + endutent_r (&__utmp_data); +} diff --git a/login/endutent_r.c b/login/endutent_r.c new file mode 100644 index 0000000000..b15f57a964 --- /dev/null +++ b/login/endutent_r.c @@ -0,0 +1,32 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include <unistd.h> +#include <utmp.h> + + +void +endutent_r (struct utmp_data *utmp_data) +{ + if (utmp_data->ut_fd != -1) + { + close (utmp_data->ut_fd); + utmp_data->ut_fd = -1; + } +} diff --git a/login/getutent.c b/login/getutent.c new file mode 100644 index 0000000000..36411469a0 --- /dev/null +++ b/login/getutent.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include <utmp.h> + + +/* The global data defined in setutent.c. */ +extern struct utmp_data __utmp_data; + + +struct utmp * +getutent (void) +{ + struct utmp *result; + + if (getutent_r (&result, &__utmp_data) < 0) + return NULL; + + return result; +} diff --git a/login/getutent_r.c b/login/getutent_r.c new file mode 100644 index 0000000000..ad8e9eb7c2 --- /dev/null +++ b/login/getutent_r.c @@ -0,0 +1,50 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include <unistd.h> +#include <utmp.h> + + +int +getutent_r (struct utmp **utmp, struct utmp_data *utmp_data) +{ + /* Open utmp file if not already done. */ + if (utmp_data->ut_fd == -1) + { + setutent_r (utmp_data); + if (utmp_data->ut_fd == -1) + return -1; + } + + /* Position file correctly. */ + if (lseek (utmp_data->ut_fd, utmp_data->loc_utmp, SEEK_SET) == -1) + return -1; + + /* Read the next entry. */ + if (read (utmp_data->ut_fd, &utmp_data->ubuf, sizeof (struct utmp)) + != sizeof (struct utmp)) + return -1; + + /* Update position pointer. */ + utmp_data->loc_utmp += sizeof (struct utmp); + + *utmp = &utmp_data->ubuf; + + return 0; +} diff --git a/login/getutid.c b/login/getutid.c new file mode 100644 index 0000000000..6b29d38fd0 --- /dev/null +++ b/login/getutid.c @@ -0,0 +1,36 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +#include <utmp.h> + + +/* The global data defined in setutent.c. */ +extern struct utmp_data __utmp_data; + + +struct utmp * +getutid (const struct utmp *id) +{ + struct utmp *result; + + if (getutid_r (id, &result, &__utmp_data) < 0) + return NULL; + + return (struct utmp *) result; +} diff --git a/login/getutid_r.c b/login/getutid_r.c new file mode 100644 index 0000000000..351f96e65e --- /dev/null +++ b/login/getutid_r.c @@ -0,0 +1,61 @@ +/* Copyright (C) 1996 Free Software Foundation, Inc. +This file is part of the GNU C Library. +Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. + +The GNU C Library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +The GNU C Library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with the GNU C Library; see the file COPYING.LIB. If +not, wri |
