1997-08-02 21:00:51 +00:00
|
|
|
/* POSIX.2 wordexp implementation.
|
2019-01-01 00:11:28 +00:00
|
|
|
Copyright (C) 1997-2019 Free Software Foundation, Inc.
|
1997-02-15 04:31:36 +00:00
|
|
|
This file is part of the GNU C Library.
|
1997-08-02 21:00:51 +00:00
|
|
|
Contributed by Tim Waugh <tim@cyberelk.demon.co.uk>.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-02-15 04:31:36 +00:00
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 04:58:11 +00:00
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-02-15 04:31:36 +00:00
|
|
|
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
|
2001-07-06 04:58:11 +00:00
|
|
|
Lesser General Public License for more details.
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2001-07-06 04:58:11 +00:00
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-09 23:18:22 +00:00
|
|
|
License along with the GNU C Library; if not, see
|
|
|
|
<http://www.gnu.org/licenses/>. */
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2001-08-17 04:49:12 +00:00
|
|
|
#include <ctype.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <fnmatch.h>
|
|
|
|
#include <glob.h>
|
|
|
|
#include <libintl.h>
|
|
|
|
#include <paths.h>
|
|
|
|
#include <pwd.h>
|
1995-02-18 01:27:10 +00:00
|
|
|
#include <signal.h>
|
2012-07-30 23:09:11 +00:00
|
|
|
#include <stdbool.h>
|
2001-08-17 04:49:12 +00:00
|
|
|
#include <stdio.h>
|
1997-08-02 21:00:51 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
2001-08-17 04:49:12 +00:00
|
|
|
#include <sys/param.h>
|
|
|
|
#include <sys/stat.h>
|
1997-08-02 21:00:51 +00:00
|
|
|
#include <sys/time.h>
|
|
|
|
#include <sys/types.h>
|
2001-08-17 04:49:12 +00:00
|
|
|
#include <sys/types.h>
|
1997-08-02 21:00:51 +00:00
|
|
|
#include <sys/wait.h>
|
|
|
|
#include <unistd.h>
|
2011-09-10 18:34:15 +00:00
|
|
|
#include <wchar.h>
|
2001-08-17 04:49:12 +00:00
|
|
|
#include <wordexp.h>
|
2008-07-27 19:08:19 +00:00
|
|
|
#include <kernel-features.h>
|
2018-06-27 15:54:44 +00:00
|
|
|
#include <scratch_buffer.h>
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2015-09-08 21:11:03 +00:00
|
|
|
#include <libc-lock.h>
|
2012-03-20 23:00:23 +00:00
|
|
|
#include <_itoa.h>
|
1997-11-06 00:02:46 +00:00
|
|
|
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
/* Undefine the following line for the production version. */
|
|
|
|
/* #define NDEBUG 1 */
|
1997-08-02 21:00:51 +00:00
|
|
|
#include <assert.h>
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2000-09-26 07:56:19 +00:00
|
|
|
/* Get some device information. */
|
|
|
|
#include <device-nrs.h>
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/*
|
|
|
|
* This is a recursive-descent-style word expansion routine.
|
|
|
|
*/
|
|
|
|
|
1998-03-13 17:02:23 +00:00
|
|
|
/* These variables are defined and initialized in the startup code. */
|
Update.
* stdio-common/itowa-digits.c (_itowa_lower_digits): Define as hidden.
(_itowa_upper_digits): Likewise.
* libio/stdio.c (_IO_stdin, _IO_stdout, _IO_stderr): Define as hidden.
* libio/libio.h [_LIBC] (_IO_stdin, _IO_stdout, _IO_stderr): Declare
as hidden.
* libio/libioP.h: Declare _IO_file_jumps_mmap, _IO_wfile_jumps,
_IO_wfile_jumps_mmap, _IO_proc_jumps, _IO_old_proc_jumps,
_IO_str_jumps, _IO_wstr_jumps, _IO_file_jumps_internal,
_IO_wfile_jumps_internal, and _IO_list_all_internal as hidden.
* gmon/gmon.c (__bb_head): Define as hidden.
* gmon/bb_exit_func.c (__bb_head): Declare as hidden.
* argp/argp-parse.c (_argp_hang): Define as static.
* include/libc-symbols.h (_INTVARDEF): Adjust for visibility
handling in latest compilers.
* inet/in6_addr.c (in6addr_any): Use INTVARDEF not INTDEF to
define alias.
* libio/fileops.c (_IO_file_jumps): Likewise.
* libio/stdfiles.c (_IO_list_all): Likewise.
* libio/wfileops.c (_IO_wfile_jumps): Likewise.
* malloc/malloc.h: Move __libc_malloc_initialized declaration to
include/malloc.h.
* include/malloc.h: Add __libc_malloc_initialized declaration
here. Mark variable hidden.
* malloc/malloc.c: Include <malloc.h> not "malloc.h".
* elf/dl-open.c (__libc_argc): Declare as hidden.
(__libc_argv): Likewise.
* sysdeps/generic/wordexp.c (__libc_argc): Declare as hidden.
(__libc_argv): Likewise.
* sysdeps/mach/hurd/i386/init-first.c: Define __libc_argc and
__libc_argv as hidden.
* sysdeps/mach/hurd/mips/init-first.c: Likewise.
* sysdeps/mach/hurd/powerpc/init-first.c: Likewise.
* sysdeps/unix/sysv/aix/init-first.c: Likewise.
* sysdeps/unix/sysv/linux/init-first.c: Likewise.
2002-03-13 02:17:12 +00:00
|
|
|
extern int __libc_argc attribute_hidden;
|
|
|
|
extern char **__libc_argv attribute_hidden;
|
1998-03-11 15:33:24 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* Some forward declarations */
|
1997-08-20 03:53:21 +00:00
|
|
|
static int parse_dollars (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags,
|
1998-01-25 17:01:47 +00:00
|
|
|
wordexp_t *pwordexp, const char *ifs,
|
2017-08-31 16:25:55 +00:00
|
|
|
const char *ifs_white, int quoted);
|
1997-08-20 03:53:21 +00:00
|
|
|
static int parse_backtick (char **word, size_t *word_length,
|
|
|
|
size_t *max_length, const char *words,
|
1998-01-25 17:01:47 +00:00
|
|
|
size_t *offset, int flags, wordexp_t *pwordexp,
|
2017-08-31 16:25:55 +00:00
|
|
|
const char *ifs, const char *ifs_white);
|
1998-03-16 18:30:44 +00:00
|
|
|
static int parse_dquote (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags,
|
|
|
|
wordexp_t *pwordexp, const char *ifs,
|
2017-08-31 16:25:55 +00:00
|
|
|
const char *ifs_white);
|
|
|
|
static int eval_expr (char *expr, long int *result);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
Update.
1997-08-04 15:29 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/localedef.c (main): Set bit in avail for those
categories which are successfully read.
* locale/programs/locfile.c (check_all_categories): Don't check
categories if they are not available.
(write_all_categories): Don't write categories if they are not
available.
* login/setutent_r.c (setutent_unknown): Change return type to
int and return result of called function.
* manual/arith.texi: Mark floating-point test macro from ISO C 9X
as macros (not functions).
* manual/libc.texinfo (UPDATED): Update.
* manual/math.texi: Document exceptions, functions to handle
exceptions, mathematical constants, FP comparison functions
and several new functions from ISO C 9X.
Change parameter of drand48, lrand48, and mrand48 to void (not
empty).
* manual/pattern.texi: Remove paragraph which explained that wordexp
is executed by running a shell.
* manual/time.texi: Explain difficulties with strftime if the
functions returns 0 and no error occurred.
* math/math.h: Correct comment for some M_* constants.
(isgreater, isgreaterequal, isless, islessequal, islessgreater,
inunordered): Rewrite to make sure the arguments are evaluated
exactly once.
* nis/rpcsvc/nis.x: Undo last change.
* nis/rpcsvc/nis.h: Likewise.
* nis/rpcsvc/nislib.h: File moved back to here.
* posix/sys/types.h: Don't define socklen_t. Pretty print.
* socket/sys/socket.h (bind, getsockname, connect, sendto, recvfrom,
getsockopt, setsockopt, accept): Change size argument to type
socklen_t.
Pretty print.
* manual/socket.texi: Describe socklen_t and change prototypes of
socket functions to use socklen_t.
* sysdeps/generic/bits/socket.h: Define socklen_t.
(struct msghdr): Correct types to use socklen_t.
* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.
* stdio-common/printf_fp.c (__printf_fp): Correct rouding of number
1.0 < x < 8.0.
* stdio-common/tfformat.c: Add new tests for above bug.
* stdlib/strtod.c: Fix typo.
* string/Makefile (headers): Add bits/string.h.
(CFLAGS-*): Add -D__NO_STRING_INLINES.
* string/string.h: Include <bits/string.h> if optimizing and
__NO_STRING_INLINES is not defined.
* sysdeps/stub/bits/string.h: New file.
* sysdeps/powerpc/bits/fenv.h: Fix typos.
* sysdeps/unix/sysv/linux/if_index.c: Let functions return ENOSYS
if SIOGIFINDEX is not defined.
* sysdeps/wordsize-32/inttypes.h: Pretty print.
* sysdeps/wordsize-64/inttypes.h: Pretty print.
* termios/cfsetspeed.c: Rewrite loop to do what it shall do.
* wcsmbs/Makefile (tests): Add tst-wcstof.
* wcsmbs/tst-wcstof.c: New file.
1997-08-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/__longjmp.c: Replace call to abort by infinite
loop, to avoid dragging stdio into the dynamic linker.
1997-08-02 19:44 H.J. Lu <hjl@gnu.ai.mit.edu>
* nis/nis_findserv.c (xid, xid_seed, xid_lookup): Make them
u_int32_t.
1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/wordexp.c (parse_tilde): Fix calls to __getpwnam_r and
__getpwuid_r.
Include <stdio.h> to get prototypes of *printf.
(exec_comm): Remove unneeded variable *sh.
* libc.map: Add wordexp, wordfree.
* posix/Makefile (routines): Add wordexp.
1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/wordexp.c: Correct typo in comment.
(wordexp): Likewise.
* manual/errno.texi (Error Codes): Fix typo.
1997-08-03 15:28 Ulrich Drepper <drepper@cygnus.com>
* csu/initfini.c (SECTION): Don't put quotes around section name
since this is not understood by all assemblers.
Patch by Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de>.
1997-08-04 14:31:26 +00:00
|
|
|
/* The w_*() functions manipulate word lists. */
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
#define W_CHUNK (100)
|
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
/* Result of w_newword will be ignored if it's the last word. */
|
1998-03-24 20:51:53 +00:00
|
|
|
static inline char *
|
|
|
|
w_newword (size_t *actlen, size_t *maxlen)
|
|
|
|
{
|
|
|
|
*actlen = *maxlen = 0;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
2003-06-11 23:22:36 +00:00
|
|
|
static char *
|
1997-08-20 03:53:21 +00:00
|
|
|
w_addchar (char *buffer, size_t *actlen, size_t *maxlen, char ch)
|
|
|
|
/* (lengths exclude trailing zero) */
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
2003-06-11 23:22:36 +00:00
|
|
|
/* Add a character to the buffer, allocating room for it if needed. */
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
if (*actlen == *maxlen)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
char *old_buffer = buffer;
|
|
|
|
assert (buffer == NULL || *maxlen != 0);
|
|
|
|
*maxlen += W_CHUNK;
|
2003-06-11 23:22:36 +00:00
|
|
|
buffer = (char *) realloc (buffer, 1 + *maxlen);
|
1997-08-20 03:53:21 +00:00
|
|
|
|
|
|
|
if (buffer == NULL)
|
|
|
|
free (old_buffer);
|
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
if (buffer != NULL)
|
|
|
|
{
|
|
|
|
buffer[*actlen] = ch;
|
|
|
|
buffer[++(*actlen)] = '\0';
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
1997-08-20 03:53:21 +00:00
|
|
|
|
|
|
|
return buffer;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
static char *
|
1998-03-08 15:26:29 +00:00
|
|
|
w_addmem (char *buffer, size_t *actlen, size_t *maxlen, const char *str,
|
|
|
|
size_t len)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
/* Add a string to the buffer, allocating room for it if needed.
|
1997-08-02 21:00:51 +00:00
|
|
|
*/
|
1997-08-20 03:53:21 +00:00
|
|
|
if (*actlen + len > *maxlen)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
char *old_buffer = buffer;
|
|
|
|
assert (buffer == NULL || *maxlen != 0);
|
|
|
|
*maxlen += MAX (2 * len, W_CHUNK);
|
|
|
|
buffer = realloc (old_buffer, 1 + *maxlen);
|
|
|
|
|
|
|
|
if (buffer == NULL)
|
|
|
|
free (old_buffer);
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
if (buffer != NULL)
|
|
|
|
{
|
1997-11-06 00:02:46 +00:00
|
|
|
*((char *) __mempcpy (&buffer[*actlen], str, len)) = '\0';
|
1997-08-20 03:53:21 +00:00
|
|
|
*actlen += len;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
return buffer;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1998-03-08 15:26:29 +00:00
|
|
|
static char *
|
|
|
|
w_addstr (char *buffer, size_t *actlen, size_t *maxlen, const char *str)
|
|
|
|
/* (lengths exclude trailing zero) */
|
|
|
|
{
|
|
|
|
/* Add a string to the buffer, allocating room for it if needed.
|
|
|
|
*/
|
|
|
|
size_t len;
|
|
|
|
|
|
|
|
assert (str != NULL); /* w_addstr only called from this file */
|
|
|
|
len = strlen (str);
|
|
|
|
|
|
|
|
return w_addmem (buffer, actlen, maxlen, str, len);
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
|
|
|
w_addword (wordexp_t *pwordexp, char *word)
|
|
|
|
{
|
|
|
|
/* Add a word to the wordlist */
|
|
|
|
size_t num_p;
|
1998-03-16 18:30:44 +00:00
|
|
|
char **new_wordv;
|
2006-05-10 00:03:41 +00:00
|
|
|
bool allocated = false;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-09-12 08:42:05 +00:00
|
|
|
/* Internally, NULL acts like "". Convert NULLs to "" before
|
|
|
|
* the caller sees them.
|
|
|
|
*/
|
|
|
|
if (word == NULL)
|
|
|
|
{
|
|
|
|
word = __strdup ("");
|
|
|
|
if (word == NULL)
|
|
|
|
goto no_space;
|
2006-05-10 00:03:41 +00:00
|
|
|
allocated = true;
|
1998-09-12 08:42:05 +00:00
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
num_p = 2 + pwordexp->we_wordc + pwordexp->we_offs;
|
1998-03-16 18:30:44 +00:00
|
|
|
new_wordv = realloc (pwordexp->we_wordv, sizeof (char *) * num_p);
|
|
|
|
if (new_wordv != NULL)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-16 18:30:44 +00:00
|
|
|
pwordexp->we_wordv = new_wordv;
|
2000-02-24 07:36:39 +00:00
|
|
|
pwordexp->we_wordv[pwordexp->we_offs + pwordexp->we_wordc++] = word;
|
|
|
|
pwordexp->we_wordv[pwordexp->we_offs + pwordexp->we_wordc] = NULL;
|
1997-08-02 21:00:51 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2006-05-10 00:03:41 +00:00
|
|
|
if (allocated)
|
|
|
|
free (word);
|
|
|
|
|
1998-09-12 08:42:05 +00:00
|
|
|
no_space:
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* The parse_*() functions should leave *offset being the offset in 'words'
|
|
|
|
* to the last character processed.
|
|
|
|
*/
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_backslash (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised _at_ a backslash, not in quotes */
|
|
|
|
|
|
|
|
switch (words[1 + *offset])
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
/* Backslash is last character of input words */
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
case '\n':
|
1997-11-06 00:02:46 +00:00
|
|
|
++(*offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, words[1 + *offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
|
1997-11-06 00:02:46 +00:00
|
|
|
++(*offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_qtd_backslash (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised _at_ a backslash, inside quotes */
|
|
|
|
|
|
|
|
switch (words[1 + *offset])
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
/* Backslash is last character of input words */
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
case '\n':
|
|
|
|
++(*offset);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '$':
|
|
|
|
case '`':
|
|
|
|
case '"':
|
|
|
|
case '\\':
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, words[1 + *offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
++(*offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, words[*offset]);
|
|
|
|
if (*word != NULL)
|
|
|
|
*word = w_addchar (*word, word_length, max_length, words[1 + *offset]);
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
++(*offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_tilde (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, size_t wordc)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised _at_ a tilde */
|
Update.
1997-08-04 15:29 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/localedef.c (main): Set bit in avail for those
categories which are successfully read.
* locale/programs/locfile.c (check_all_categories): Don't check
categories if they are not available.
(write_all_categories): Don't write categories if they are not
available.
* login/setutent_r.c (setutent_unknown): Change return type to
int and return result of called function.
* manual/arith.texi: Mark floating-point test macro from ISO C 9X
as macros (not functions).
* manual/libc.texinfo (UPDATED): Update.
* manual/math.texi: Document exceptions, functions to handle
exceptions, mathematical constants, FP comparison functions
and several new functions from ISO C 9X.
Change parameter of drand48, lrand48, and mrand48 to void (not
empty).
* manual/pattern.texi: Remove paragraph which explained that wordexp
is executed by running a shell.
* manual/time.texi: Explain difficulties with strftime if the
functions returns 0 and no error occurred.
* math/math.h: Correct comment for some M_* constants.
(isgreater, isgreaterequal, isless, islessequal, islessgreater,
inunordered): Rewrite to make sure the arguments are evaluated
exactly once.
* nis/rpcsvc/nis.x: Undo last change.
* nis/rpcsvc/nis.h: Likewise.
* nis/rpcsvc/nislib.h: File moved back to here.
* posix/sys/types.h: Don't define socklen_t. Pretty print.
* socket/sys/socket.h (bind, getsockname, connect, sendto, recvfrom,
getsockopt, setsockopt, accept): Change size argument to type
socklen_t.
Pretty print.
* manual/socket.texi: Describe socklen_t and change prototypes of
socket functions to use socklen_t.
* sysdeps/generic/bits/socket.h: Define socklen_t.
(struct msghdr): Correct types to use socklen_t.
* sysdeps/unix/sysv/linux/bits/socket.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/socket.h: Likewise.
* stdio-common/printf_fp.c (__printf_fp): Correct rouding of number
1.0 < x < 8.0.
* stdio-common/tfformat.c: Add new tests for above bug.
* stdlib/strtod.c: Fix typo.
* string/Makefile (headers): Add bits/string.h.
(CFLAGS-*): Add -D__NO_STRING_INLINES.
* string/string.h: Include <bits/string.h> if optimizing and
__NO_STRING_INLINES is not defined.
* sysdeps/stub/bits/string.h: New file.
* sysdeps/powerpc/bits/fenv.h: Fix typos.
* sysdeps/unix/sysv/linux/if_index.c: Let functions return ENOSYS
if SIOGIFINDEX is not defined.
* sysdeps/wordsize-32/inttypes.h: Pretty print.
* sysdeps/wordsize-64/inttypes.h: Pretty print.
* termios/cfsetspeed.c: Rewrite loop to do what it shall do.
* wcsmbs/Makefile (tests): Add tst-wcstof.
* wcsmbs/tst-wcstof.c: New file.
1997-08-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/__longjmp.c: Replace call to abort by infinite
loop, to avoid dragging stdio into the dynamic linker.
1997-08-02 19:44 H.J. Lu <hjl@gnu.ai.mit.edu>
* nis/nis_findserv.c (xid, xid_seed, xid_lookup): Make them
u_int32_t.
1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/wordexp.c (parse_tilde): Fix calls to __getpwnam_r and
__getpwuid_r.
Include <stdio.h> to get prototypes of *printf.
(exec_comm): Remove unneeded variable *sh.
* libc.map: Add wordexp, wordfree.
* posix/Makefile (routines): Add wordexp.
1997-08-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* posix/wordexp.c: Correct typo in comment.
(wordexp): Likewise.
* manual/errno.texi (Error Codes): Fix typo.
1997-08-03 15:28 Ulrich Drepper <drepper@cygnus.com>
* csu/initfini.c (SECTION): Don't put quotes around section name
since this is not understood by all assemblers.
Patch by Klaus Espenlaub <kespenla@hydra.informatik.uni-ulm.de>.
1997-08-04 14:31:26 +00:00
|
|
|
size_t i;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (*word_length != 0)
|
|
|
|
{
|
|
|
|
if (!((*word)[*word_length - 1] == '=' && wordc == 0))
|
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
if (!((*word)[*word_length - 1] == ':'
|
|
|
|
&& strchr (*word, '=') && wordc == 0))
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, '~');
|
1997-08-02 21:00:51 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (i = 1 + *offset; words[i]; i++)
|
|
|
|
{
|
Break some lines before not after operators.
The GNU Coding Standards specify that line breaks in expressions
should go before an operator, not after one. This patch fixes various
code to do this. It only changes code that appears to be mostly
following GNU style anyway, not files and directories with
substantially different formatting. It is not exhaustive even for
files using GNU style (for example, changes to sysdeps files are
deferred for subsequent cleanups). Some files changed are shared with
gnulib, but most are specific to glibc. Changes were made manually,
with places to change found by grep (so some cases, e.g. where the
operator was followed by a comment at end of line, are particularly
liable to have been missed by grep, but I did include cases where the
operator was followed by backslash-newline).
This patch generally does not attempt to address other coding style
issues in the expressions changed (for example, missing spaces before
'(', or lack of parentheses to ensure indentation of continuation
lines properly reflects operator precedence).
Tested for x86_64, and with build-many-glibcs.py.
* benchtests/bench-memmem.c (simple_memmem): Break lines before
rather than after operators.
* benchtests/bench-skeleton.c (TIMESPEC_AFTER): Likewise.
* crypt/md5.c (md5_finish_ctx): Likewise.
* crypt/sha256.c (__sha256_finish_ctx): Likewise.
* crypt/sha512.c (__sha512_finish_ctx): Likewise.
* elf/cache.c (load_aux_cache): Likewise.
* elf/dl-load.c (open_verify): Likewise.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* elf/readelflib.c (process_elf_file): Likewise.
* elf/rtld.c (dl_main): Likewise.
* elf/sprof.c (generate_call_graph): Likewise.
* hurd/ctty-input.c (_hurd_ctty_input): Likewise.
* hurd/ctty-output.c (_hurd_ctty_output): Likewise.
* hurd/dtable.c (reauth_dtable): Likewise.
* hurd/getdport.c (__getdport): Likewise.
* hurd/hurd/signal.h (_hurd_interrupted_rpc_timeout): Likewise.
* hurd/hurd/sigpreempt.h (HURD_PREEMPT_SIGNAL_P): Likewise.
* hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise):
Likewise.
* hurd/hurdioctl.c (fioctl): Likewise.
* hurd/hurdselect.c (_hurd_select): Likewise.
* hurd/hurdsig.c (_hurdsig_abort_rpcs): Likewise.
(STOPSIGS): Likewise.
* hurd/hurdstartup.c (_hurd_startup): Likewise.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Likewise.
* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
* hurd/msgportdemux.c (msgport_server): Likewise.
* hurd/setauth.c (_hurd_setauth): Likewise.
* include/features.h (__GLIBC_USE_DEPRECATED_SCANF): Likewise.
* libio/libioP.h [IO_DEBUG] (CHECK_FILE): Likewise.
* locale/programs/ld-ctype.c (set_class_defaults): Likewise.
* localedata/tests-mbwc/tst_swscanf.c (tst_swscanf): Likewise.
* login/tst-utmp.c (do_check): Likewise.
(simulate_login): Likewise.
* mach/lowlevellock.h (lll_lock): Likewise.
(lll_trylock): Likewise.
* math/test-fenv.c (ALL_EXC): Likewise.
* math/test-fenvinline.c (ALL_EXC): Likewise.
* misc/sys/cdefs.h (__attribute_deprecated_msg__): Likewise.
* nis/nis_call.c (__do_niscall3): Likewise.
* nis/nis_callback.c (cb_prog_1): Likewise.
* nis/nis_defaults.c (searchaccess): Likewise.
* nis/nis_findserv.c (__nis_findfastest_with_timeout): Likewise.
* nis/nis_ismember.c (internal_ismember): Likewise.
* nis/nis_local_names.c (nis_local_principal): Likewise.
* nis/nss_nis/nis-rpc.c (_nss_nis_getrpcbyname_r): Likewise.
* nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r):
Likewise.
* nis/ypclnt.c (yp_match): Likewise.
(yp_first): Likewise.
(yp_next): Likewise.
(yp_master): Likewise.
(yp_order): Likewise.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nss/nss_compat/compat-pwd.c (copy_pwd_changes): Likewise.
(internal_getpwuid_r): Likewise.
* nss/nss_compat/compat-spwd.c (copy_spwd_changes): Likewise.
* posix/glob.h (__GLOB_FLAGS): Likewise.
* posix/regcomp.c (peek_token): Likewise.
(peek_token_bracket): Likewise.
(parse_expression): Likewise.
* posix/regexec.c (sift_states_iter_mb): Likewise.
(check_node_accept_bytes): Likewise.
* posix/tst-spawn3.c (do_test): Likewise.
* posix/wordexp-test.c (testit): Likewise.
* posix/wordexp.c (parse_tilde): Likewise.
(exec_comm): Likewise.
* posix/wordexp.h (__WRDE_FLAGS): Likewise.
* resource/vtimes.c (TIMEVAL_TO_VTIMES): Likewise.
* setjmp/sigjmp.c (__sigjmp_save): Likewise.
* stdio-common/printf_fp.c (__printf_fp_l): Likewise.
* stdio-common/tst-fileno.c (do_test): Likewise.
* stdio-common/vfprintf-internal.c (vfprintf): Likewise.
* stdlib/strfmon_l.c (__vstrfmon_l_internal): Likewise.
* stdlib/strtod_l.c (round_and_return): Likewise.
(____STRTOF_INTERNAL): Likewise.
* stdlib/tst-strfrom.h (TEST_STRFROM): Likewise.
* string/strcspn.c (STRCSPN): Likewise.
* string/test-memmem.c (simple_memmem): Likewise.
* termios/tcsetattr.c (tcsetattr): Likewise.
* time/alt_digit.c (_nl_parse_alt_digit): Likewise.
* time/asctime.c (asctime_internal): Likewise.
* time/strptime_l.c (__strptime_internal): Likewise.
* time/sys/time.h (timercmp): Likewise.
* time/tzfile.c (__tzfile_compute): Likewise.
2019-02-22 01:32:36 +00:00
|
|
|
if (words[i] == ':' || words[i] == '/' || words[i] == ' '
|
|
|
|
|| words[i] == '\t' || words[i] == 0 )
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
if (words[i] == '\\')
|
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, '~');
|
1997-08-02 21:00:51 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (i == 1 + *offset)
|
|
|
|
{
|
|
|
|
/* Tilde appears on its own */
|
2000-02-24 07:36:39 +00:00
|
|
|
char* home;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
/* POSIX.2 says ~ expands to $HOME and if HOME is unset the
|
|
|
|
results are unspecified. We do a lookup on the uid if
|
|
|
|
HOME is unset. */
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
home = getenv ("HOME");
|
|
|
|
if (home != NULL)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
2000-02-24 07:36:39 +00:00
|
|
|
*word = w_addstr (*word, word_length, max_length, home);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2018-06-27 15:54:44 +00:00
|
|
|
struct passwd pwd, *tpwd;
|
|
|
|
uid_t uid = __getuid ();
|
|
|
|
int result;
|
|
|
|
struct scratch_buffer tmpbuf;
|
|
|
|
scratch_buffer_init (&tmpbuf);
|
|
|
|
|
|
|
|
while ((result = __getpwuid_r (uid, &pwd,
|
|
|
|
tmpbuf.data, tmpbuf.length,
|
|
|
|
&tpwd)) != 0
|
2000-02-24 07:36:39 +00:00
|
|
|
&& errno == ERANGE)
|
2018-06-27 15:54:44 +00:00
|
|
|
if (!scratch_buffer_grow (&tmpbuf))
|
|
|
|
return WRDE_NOSPACE;
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
if (result == 0 && tpwd != NULL && pwd.pw_dir != NULL)
|
|
|
|
{
|
|
|
|
*word = w_addstr (*word, word_length, max_length, pwd.pw_dir);
|
|
|
|
if (*word == NULL)
|
2018-06-27 15:54:44 +00:00
|
|
|
{
|
|
|
|
scratch_buffer_free (&tmpbuf);
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
2000-02-24 07:36:39 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
*word = w_addchar (*word, word_length, max_length, '~');
|
|
|
|
if (*word == NULL)
|
2018-06-27 15:54:44 +00:00
|
|
|
{
|
|
|
|
scratch_buffer_free (&tmpbuf);
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
2000-02-24 07:36:39 +00:00
|
|
|
}
|
2018-06-27 15:54:44 +00:00
|
|
|
scratch_buffer_free (&tmpbuf);
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Look up user name in database to get home directory */
|
2001-06-05 22:46:07 +00:00
|
|
|
char *user = strndupa (&words[1 + *offset], i - (1 + *offset));
|
1997-08-02 21:00:51 +00:00
|
|
|
struct passwd pwd, *tpwd;
|
|
|
|
int result;
|
2018-06-27 15:54:44 +00:00
|
|
|
struct scratch_buffer tmpbuf;
|
|
|
|
scratch_buffer_init (&tmpbuf);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2018-06-27 15:54:44 +00:00
|
|
|
while ((result = __getpwnam_r (user, &pwd, tmpbuf.data, tmpbuf.length,
|
|
|
|
&tpwd)) != 0
|
1997-08-02 21:00:51 +00:00
|
|
|
&& errno == ERANGE)
|
2018-06-27 15:54:44 +00:00
|
|
|
if (!scratch_buffer_grow (&tmpbuf))
|
|
|
|
return WRDE_NOSPACE;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1999-07-01 21:13:35 +00:00
|
|
|
if (result == 0 && tpwd != NULL && pwd.pw_dir)
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addstr (*word, word_length, max_length, pwd.pw_dir);
|
1997-08-02 21:00:51 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
/* (invalid login name) */
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, '~');
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word != NULL)
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addstr (*word, word_length, max_length, user);
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
2018-06-27 15:54:44 +00:00
|
|
|
scratch_buffer_free (&tmpbuf);
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
*offset = i - 1;
|
|
|
|
}
|
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
|
|
|
|
static int
|
|
|
|
do_parse_glob (const char *glob_word, char **word, size_t *word_length,
|
|
|
|
size_t *max_length, wordexp_t *pwordexp, const char *ifs,
|
|
|
|
const char *ifs_white)
|
|
|
|
{
|
|
|
|
int error;
|
2001-01-12 17:03:52 +00:00
|
|
|
unsigned int match;
|
1998-03-24 20:51:53 +00:00
|
|
|
glob_t globbuf;
|
|
|
|
|
|
|
|
error = glob (glob_word, GLOB_NOCHECK, NULL, &globbuf);
|
|
|
|
|
|
|
|
if (error != 0)
|
|
|
|
{
|
|
|
|
/* We can only run into memory problems. */
|
|
|
|
assert (error == GLOB_NOSPACE);
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (ifs && !*ifs)
|
|
|
|
{
|
|
|
|
/* No field splitting allowed. */
|
|
|
|
assert (globbuf.gl_pathv[0] != NULL);
|
|
|
|
*word = w_addstr (*word, word_length, max_length, globbuf.gl_pathv[0]);
|
|
|
|
for (match = 1; match < globbuf.gl_pathc && *word != NULL; ++match)
|
|
|
|
{
|
|
|
|
*word = w_addchar (*word, word_length, max_length, ' ');
|
|
|
|
if (*word != NULL)
|
|
|
|
*word = w_addstr (*word, word_length, max_length,
|
|
|
|
globbuf.gl_pathv[match]);
|
|
|
|
}
|
|
|
|
|
|
|
|
globfree (&globbuf);
|
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
|
|
|
assert (ifs == NULL || *ifs != '\0');
|
|
|
|
if (*word != NULL)
|
|
|
|
{
|
|
|
|
free (*word);
|
|
|
|
*word = w_newword (word_length, max_length);
|
|
|
|
}
|
|
|
|
|
|
|
|
for (match = 0; match < globbuf.gl_pathc; ++match)
|
|
|
|
{
|
|
|
|
char *matching_word = __strdup (globbuf.gl_pathv[match]);
|
|
|
|
if (matching_word == NULL || w_addword (pwordexp, matching_word))
|
|
|
|
{
|
|
|
|
globfree (&globbuf);
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
globfree (&globbuf);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_glob (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags,
|
1998-01-25 17:01:47 +00:00
|
|
|
wordexp_t *pwordexp, const char *ifs, const char *ifs_white)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-11 15:33:24 +00:00
|
|
|
/* We are poised just after a '*', a '[' or a '?'. */
|
1998-03-24 20:51:53 +00:00
|
|
|
int error = WRDE_NOSPACE;
|
1998-03-11 15:33:24 +00:00
|
|
|
int quoted = 0; /* 1 if singly-quoted, 2 if doubly */
|
2002-09-24 04:24:25 +00:00
|
|
|
size_t i;
|
1998-03-24 20:51:53 +00:00
|
|
|
wordexp_t glob_list; /* List of words to glob */
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
glob_list.we_wordc = 0;
|
|
|
|
glob_list.we_wordv = NULL;
|
|
|
|
glob_list.we_offs = 0;
|
|
|
|
for (; words[*offset] != '\0'; ++*offset)
|
1998-03-11 15:33:24 +00:00
|
|
|
{
|
2006-05-10 14:48:09 +00:00
|
|
|
if (strchr (ifs, words[*offset]) != NULL)
|
1998-09-17 19:51:33 +00:00
|
|
|
/* Reached IFS */
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
1998-03-11 15:33:24 +00:00
|
|
|
/* Sort out quoting */
|
|
|
|
if (words[*offset] == '\'')
|
1998-09-09 11:53:19 +00:00
|
|
|
{
|
1998-03-11 15:33:24 +00:00
|
|
|
if (quoted == 0)
|
|
|
|
{
|
|
|
|
quoted = 1;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
else if (quoted == 1)
|
|
|
|
{
|
|
|
|
quoted = 0;
|
|
|
|
continue;
|
|
|
|
}
|
1998-09-09 11:53:19 +00:00
|
|
|
}
|
1998-03-11 15:33:24 +00:00
|
|
|
else if (words[*offset] == '"')
|
1998-09-09 11:53:19 +00:00
|
|
|
{
|
|
|
|
if (quoted == 0)
|
|
|
|
{
|
|
|
|
quoted = 2;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
else if (quoted == 2)
|
|
|
|
{
|
|
|
|
quoted = 0;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-11 15:33:24 +00:00
|
|
|
/* Sort out other special characters */
|
|
|
|
if (quoted != 1 && words[*offset] == '$')
|
|
|
|
{
|
1998-03-24 20:51:53 +00:00
|
|
|
error = parse_dollars (word, word_length, max_length, words,
|
|
|
|
offset, flags, &glob_list, ifs, ifs_white,
|
1998-09-17 19:51:33 +00:00
|
|
|
quoted == 2);
|
1998-03-11 15:33:24 +00:00
|
|
|
if (error)
|
1998-03-24 20:51:53 +00:00
|
|
|
goto tidy_up;
|
1998-03-11 15:33:24 +00:00
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
else if (words[*offset] == '\\')
|
|
|
|
{
|
|
|
|
if (quoted)
|
1998-03-24 20:51:53 +00:00
|
|
|
error = parse_qtd_backslash (word, word_length, max_length,
|
|
|
|
words, offset);
|
1998-03-11 15:33:24 +00:00
|
|
|
else
|
1998-03-24 20:51:53 +00:00
|
|
|
error = parse_backslash (word, word_length, max_length,
|
|
|
|
words, offset);
|
1998-03-11 15:33:24 +00:00
|
|
|
|
|
|
|
if (error)
|
1998-03-24 20:51:53 +00:00
|
|
|
goto tidy_up;
|
1998-03-11 15:33:24 +00:00
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
*word = w_addchar (*word, word_length, max_length, words[*offset]);
|
|
|
|
if (*word == NULL)
|
1998-03-24 20:51:53 +00:00
|
|
|
goto tidy_up;
|
1998-03-11 15:33:24 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
/* Don't forget to re-parse the character we stopped at. */
|
|
|
|
--*offset;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
/* Glob the words */
|
1998-09-17 19:51:33 +00:00
|
|
|
error = w_addword (&glob_list, *word);
|
1998-03-24 20:51:53 +00:00
|
|
|
*word = w_newword (word_length, max_length);
|
|
|
|
for (i = 0; error == 0 && i < glob_list.we_wordc; i++)
|
|
|
|
error = do_parse_glob (glob_list.we_wordv[i], word, word_length,
|
|
|
|
max_length, pwordexp, ifs, ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
/* Now tidy up */
|
|
|
|
tidy_up:
|
|
|
|
wordfree (&glob_list);
|
|
|
|
return error;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_squote (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after a single quote */
|
|
|
|
for (; words[*offset]; ++(*offset))
|
|
|
|
{
|
|
|
|
if (words[*offset] != '\'')
|
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, words[*offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
else return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Unterminated string */
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Functions to evaluate an arithmetic expression */
|
|
|
|
static int
|
1998-03-08 15:26:29 +00:00
|
|
|
eval_expr_val (char **expr, long int *result)
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1997-08-02 21:00:51 +00:00
|
|
|
char *digit;
|
|
|
|
|
|
|
|
/* Skip white space */
|
|
|
|
for (digit = *expr; digit && *digit && isspace (*digit); ++digit);
|
|
|
|
|
2003-09-18 02:54:32 +00:00
|
|
|
if (*digit == '(')
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* Scan for closing paren */
|
|
|
|
for (++digit; **expr && **expr != ')'; ++(*expr));
|
|
|
|
|
|
|
|
/* Is there one? */
|
|
|
|
if (!**expr)
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
*(*expr)++ = 0;
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
if (eval_expr (digit, result))
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2003-09-18 02:54:32 +00:00
|
|
|
/* POSIX requires that decimal, octal, and hexadecimal constants are
|
|
|
|
recognized. Therefore we pass 0 as the third parameter to strtol. */
|
|
|
|
*result = strtol (digit, expr, 0);
|
|
|
|
if (digit == *expr)
|
|
|
|
return WRDE_SYNTAX;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1998-03-08 15:26:29 +00:00
|
|
|
eval_expr_multdiv (char **expr, long int *result)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
long int arg;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
/* Read a Value */
|
1998-03-08 15:26:29 +00:00
|
|
|
if (eval_expr_val (expr, result) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
while (**expr)
|
|
|
|
{
|
|
|
|
/* Skip white space */
|
|
|
|
for (; *expr && **expr && isspace (**expr); ++(*expr));
|
|
|
|
|
|
|
|
if (**expr == '*')
|
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
++(*expr);
|
|
|
|
if (eval_expr_val (expr, &arg) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
*result *= arg;
|
|
|
|
}
|
|
|
|
else if (**expr == '/')
|
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
++(*expr);
|
|
|
|
if (eval_expr_val (expr, &arg) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
2015-03-23 15:12:38 +00:00
|
|
|
/* Division by zero or integer overflow. */
|
|
|
|
if (arg == 0 || (arg == -1 && *result == LONG_MIN))
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
*result /= arg;
|
|
|
|
}
|
|
|
|
else break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1998-03-08 15:26:29 +00:00
|
|
|
eval_expr (char *expr, long int *result)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
long int arg;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
/* Read a Multdiv */
|
1998-03-08 15:26:29 +00:00
|
|
|
if (eval_expr_multdiv (&expr, result) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
while (*expr)
|
|
|
|
{
|
|
|
|
/* Skip white space */
|
|
|
|
for (; expr && *expr && isspace (*expr); ++expr);
|
|
|
|
|
|
|
|
if (*expr == '+')
|
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
++expr;
|
|
|
|
if (eval_expr_multdiv (&expr, &arg) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
*result += arg;
|
|
|
|
}
|
|
|
|
else if (*expr == '-')
|
|
|
|
{
|
1998-03-08 15:26:29 +00:00
|
|
|
++expr;
|
|
|
|
if (eval_expr_multdiv (&expr, &arg) != 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
*result -= arg;
|
|
|
|
}
|
|
|
|
else break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_arith (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags, int bracket)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after "$((" or "$[" */
|
1995-02-18 01:27:10 +00:00
|
|
|
int error;
|
1997-08-02 21:00:51 +00:00
|
|
|
int paren_depth = 1;
|
1998-03-24 20:51:53 +00:00
|
|
|
size_t expr_length;
|
|
|
|
size_t expr_maxlen;
|
|
|
|
char *expr;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
expr = w_newword (&expr_length, &expr_maxlen);
|
1997-08-02 21:00:51 +00:00
|
|
|
for (; words[*offset]; ++(*offset))
|
|
|
|
{
|
|
|
|
switch (words[*offset])
|
|
|
|
{
|
|
|
|
case '$':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_dollars (&expr, &expr_length, &expr_maxlen,
|
1998-09-17 19:51:33 +00:00
|
|
|
words, offset, flags, NULL, NULL, NULL, 1);
|
1998-03-11 15:33:24 +00:00
|
|
|
/* The ``1'' here is to tell parse_dollars not to
|
1997-08-02 21:00:51 +00:00
|
|
|
* split the fields.
|
|
|
|
*/
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '`':
|
|
|
|
(*offset)++;
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_backtick (&expr, &expr_length, &expr_maxlen,
|
1998-01-25 17:01:47 +00:00
|
|
|
words, offset, flags, NULL, NULL, NULL);
|
|
|
|
/* The first NULL here is to tell parse_backtick not to
|
1997-08-02 21:00:51 +00:00
|
|
|
* split the fields.
|
|
|
|
*/
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '\\':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_qtd_backslash (&expr, &expr_length, &expr_maxlen,
|
|
|
|
words, offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
/* I think that a backslash within an
|
|
|
|
* arithmetic expansion is bound to
|
|
|
|
* cause an error sooner or later anyway though.
|
|
|
|
*/
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ')':
|
|
|
|
if (--paren_depth == 0)
|
|
|
|
{
|
1997-11-06 00:02:46 +00:00
|
|
|
char result[21]; /* 21 = ceil(log10(2^64)) + 1 */
|
1998-03-08 15:26:29 +00:00
|
|
|
long int numresult = 0;
|
|
|
|
long long int convertme;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (bracket || words[1 + *offset] != ')')
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
++(*offset);
|
|
|
|
|
|
|
|
/* Go - evaluate. */
|
1998-03-08 15:26:29 +00:00
|
|
|
if (*expr && eval_expr (expr, &numresult) != 0)
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-08 15:26:29 +00:00
|
|
|
if (numresult < 0)
|
|
|
|
{
|
|
|
|
convertme = -numresult;
|
|
|
|
*word = w_addchar (*word, word_length, max_length, '-');
|
|
|
|
if (!*word)
|
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
convertme = numresult;
|
|
|
|
|
1997-11-06 00:02:46 +00:00
|
|
|
result[20] = '\0';
|
2007-01-25 00:45:00 +00:00
|
|
|
*word = w_addstr (*word, word_length, max_length,
|
|
|
|
_itoa (convertme, &result[20], 10, 0));
|
1997-08-02 21:00:51 +00:00
|
|
|
free (expr);
|
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
1997-08-20 03:53:21 +00:00
|
|
|
expr = w_addchar (expr, &expr_length, &expr_maxlen, words[*offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (expr == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ']':
|
|
|
|
if (bracket && paren_depth == 1)
|
|
|
|
{
|
1997-11-06 00:02:46 +00:00
|
|
|
char result[21]; /* 21 = ceil(log10(2^64)) + 1 */
|
1998-03-08 15:26:29 +00:00
|
|
|
long int numresult = 0;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
/* Go - evaluate. */
|
|
|
|
if (*expr && eval_expr (expr, &numresult) != 0)
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
|
|
|
free (expr);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1997-11-06 00:02:46 +00:00
|
|
|
result[20] = '\0';
|
|
|
|
*word = w_addstr (*word, word_length, max_length,
|
|
|
|
_itoa_word (numresult, &result[20], 10, 0));
|
1997-08-02 21:00:51 +00:00
|
|
|
free (expr);
|
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
|
|
|
free (expr);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
|
|
|
|
case '\n':
|
|
|
|
case ';':
|
|
|
|
case '{':
|
|
|
|
case '}':
|
|
|
|
free (expr);
|
|
|
|
return WRDE_BADCHAR;
|
|
|
|
|
|
|
|
case '(':
|
|
|
|
++paren_depth;
|
2019-02-12 10:30:34 +00:00
|
|
|
/* Fall through. */
|
1997-08-02 21:00:51 +00:00
|
|
|
default:
|
1997-08-20 03:53:21 +00:00
|
|
|
expr = w_addchar (expr, &expr_length, &expr_maxlen, words[*offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (expr == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Premature end */
|
|
|
|
free (expr);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
/* Function called by child process in exec_comm() */
|
* sysdeps/generic/wordexp.c (exec_comm_child): Add inline keyword.
Patch by Dan Kegel <dank@kegel.com>.
* elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative,
elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
Add inline keyword.
* sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline
attribute.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Likewise. Change
static inline into auto inline.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
* sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela):
Likewise.
* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative,
elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
Likewise.
2005-03-15 Jakub Jelinek <jakub@redhat.com>
2005-03-15 22:57:31 +00:00
|
|
|
static inline void
|
2017-08-31 16:25:55 +00:00
|
|
|
__attribute__ ((always_inline))
|
2000-02-24 07:36:39 +00:00
|
|
|
exec_comm_child (char *comm, int *fildes, int showerr, int noexec)
|
|
|
|
{
|
|
|
|
const char *args[4] = { _PATH_BSHELL, "-c", comm, NULL };
|
|
|
|
|
|
|
|
/* Execute the command, or just check syntax? */
|
|
|
|
if (noexec)
|
|
|
|
args[1] = "-nc";
|
|
|
|
|
|
|
|
/* Redirect output. */
|
2014-02-10 13:45:42 +00:00
|
|
|
if (__glibc_likely (fildes[1] != STDOUT_FILENO))
|
2008-07-27 19:08:19 +00:00
|
|
|
{
|
|
|
|
__dup2 (fildes[1], STDOUT_FILENO);
|
|
|
|
__close (fildes[1]);
|
|
|
|
}
|
|
|
|
else
|
2017-04-18 12:56:51 +00:00
|
|
|
/* Reset the close-on-exec flag (if necessary). */
|
|
|
|
__fcntl (fildes[1], F_SETFD, 0);
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
/* Redirect stderr to /dev/null if we have to. */
|
|
|
|
if (showerr == 0)
|
|
|
|
{
|
2000-09-26 07:56:19 +00:00
|
|
|
struct stat64 st;
|
2000-02-24 07:36:39 +00:00
|
|
|
int fd;
|
2008-07-27 19:08:19 +00:00
|
|
|
__close (STDERR_FILENO);
|
2000-02-24 07:36:39 +00:00
|
|
|
fd = __open (_PATH_DEVNULL, O_WRONLY);
|
2008-07-27 19:08:19 +00:00
|
|
|
if (fd >= 0 && fd != STDERR_FILENO)
|
2000-02-24 07:36:39 +00:00
|
|
|
{
|
2003-09-02 07:14:15 +00:00
|
|
|
__dup2 (fd, STDERR_FILENO);
|
2000-02-24 07:36:39 +00:00
|
|
|
__close (fd);
|
|
|
|
}
|
2000-09-26 07:56:19 +00:00
|
|
|
/* Be paranoid. Check that we actually opened the /dev/null
|
2011-09-10 18:34:15 +00:00
|
|
|
device. */
|
2003-09-02 07:14:15 +00:00
|
|
|
if (__builtin_expect (__fxstat64 (_STAT_VER, STDERR_FILENO, &st), 0) != 0
|
2000-09-26 07:56:19 +00:00
|
|
|
|| __builtin_expect (S_ISCHR (st.st_mode), 1) == 0
|
|
|
|
#if defined DEV_NULL_MAJOR && defined DEV_NULL_MINOR
|
Fix -Os gnu_dev_* linknamespace, localplt issues (bug 15105, bug 19463).
Building with -Os produces linknamespace and localplt failures for,
among other functions, gnu_dev_major, gnu_dev_minor and
gnu_dev_makedev.
The issue is that those functions are not inlined when building with
-Os. While one could force them to be inlined in that case, it seems
more natural to fix this issue similarly to other namespace issues.
Thus, this patch makes gnu_dev_* into weak aliases for hidden symbols
__gnu_dev_*; __gnu_dev_* are then defined as inlines in the internal
include/sys/sysmacros.h, and uses of gnu_dev_* (often via the macros
major, minor and makedev) for which there are namespace issues are
changed to use __gnu_dev_*; where there are no namespace issues, use
of libc_hidden_proto serves to avoid unnecessary local PLT entry use.
Tested for x86_64, (a) without -Os, to verify the testsuite continues
to pass without problems and that the functions called under their new
names continue to be inlined as expected in that case; (b) with -Os,
to verify that the linknamespace and localplt failures in question go
away (but because of other such failures present, neither of the
relevant bugs can yet be closed).
[BZ #15105]
[BZ #19463]
* include/sys/sysmacros.h [!_ISOMAC]
(__SYSMACROS_NEED_IMPLEMENTATION): Define macro.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC]
(_SYS_SYSMACROS_H_WRAPPER): Likewise.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_major): Use
libc_hidden_proto.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_minor): Likewise.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (gnu_dev_makedev):
Likewise.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_DECL_TEMPL):
Undefine and redefine to add use __gnu_dev_ prefix.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__SYSMACROS_IMPL_TEMPL):
Likewise.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_major): Declare
and define as hidden inline function.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_minor):
Likewise.
[!_SYS_SYSMACROS_H_WRAPPER && !_ISOMAC] (__gnu_dev_makedev):
Likewise.
* misc/makedev.c (OUT_OF_LINE_IMPL_TEMPL): Use __gnu_dev_ prefix.
(gnu_dev_major): Use weak_alias and libc_hidden_weak.
(gnu_dev_minor): Likewise.
(gnu_dev_makedev): Likewise.
* csu/check_fds.c (check_one_fd): Use __gnu_dev_makedev instead of
makedev.
* posix/wordexp.c (exec_comm_child): Likewise.
* sysdeps/mach/hurd/xmknodat.c (__xmknodat): Use __gnu_dev_minor
instead of minor and __gnu_dev_major instead of major.
* sysdeps/unix/sysv/linux/device-nrs.h (DEV_TTY_P): Use
__gnu_dev_major instead of major.
* sysdeps/unix/sysv/linux/pathconf.c (distinguish_extX): Use
__gnu_dev_major instead of gnu_dev_major and __gnu_dev_minor
instead of gnu_dev_minor.
* sysdeps/unix/sysv/linux/ptsname.c (MASTER_P): Likewise.
(SLAVE_P): Likewise.
(__ptsname_internal): Use __gnu_dev_minor instead of minor.
* sysdeps/unix/sysv/linux/ttyname.h (is_pty): Use __gnu_dev_major
instead of major.
2018-02-07 14:57:31 +00:00
|
|
|
|| st.st_rdev != __gnu_dev_makedev (DEV_NULL_MAJOR, DEV_NULL_MINOR)
|
2000-09-26 07:56:19 +00:00
|
|
|
#endif
|
|
|
|
)
|
|
|
|
/* It's not the /dev/null device. Stop right here. The
|
2011-09-10 18:34:15 +00:00
|
|
|
problem is: how do we stop? We use _exit() with an
|
|
|
|
hopefully unusual exit code. */
|
2000-09-26 07:56:19 +00:00
|
|
|
_exit (90);
|
2000-02-24 07:36:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Make sure the subshell doesn't field-split on our behalf. */
|
2000-08-21 04:18:25 +00:00
|
|
|
__unsetenv ("IFS");
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
__close (fildes[0]);
|
|
|
|
__execve (_PATH_BSHELL, (char *const *) args, __environ);
|
|
|
|
|
|
|
|
/* Bad. What now? */
|
|
|
|
abort ();
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* Function to execute a command and retrieve the results */
|
|
|
|
/* pwordexp contains NULL if field-splitting is forbidden */
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
exec_comm (char *comm, char **word, size_t *word_length, size_t *max_length,
|
1998-01-25 17:01:47 +00:00
|
|
|
int flags, wordexp_t *pwordexp, const char *ifs,
|
|
|
|
const char *ifs_white)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
int fildes[2];
|
2005-01-20 19:47:10 +00:00
|
|
|
#define bufsize 128
|
1997-08-02 21:00:51 +00:00
|
|
|
int buflen;
|
1998-09-17 19:51:33 +00:00
|
|
|
int i;
|
2000-02-24 07:36:39 +00:00
|
|
|
int status = 0;
|
|
|
|
size_t maxnewlines = 0;
|
2005-01-20 19:47:10 +00:00
|
|
|
char buffer[bufsize];
|
1995-02-18 01:27:10 +00:00
|
|
|
pid_t pid;
|
2005-01-20 19:47:10 +00:00
|
|
|
int noexec = 0;
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2014-11-19 16:44:12 +00:00
|
|
|
/* Do nothing if command substitution should not succeed. */
|
|
|
|
if (flags & WRDE_NOCMD)
|
|
|
|
return WRDE_CMDSUB;
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* Don't fork() unless necessary */
|
|
|
|
if (!comm || !*comm)
|
|
|
|
return 0;
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2017-04-18 12:09:01 +00:00
|
|
|
if (__pipe2 (fildes, O_CLOEXEC) < 0)
|
|
|
|
return WRDE_NOSPACE;
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2005-01-20 19:47:10 +00:00
|
|
|
again:
|
1998-07-16 11:44:36 +00:00
|
|
|
if ((pid = __fork ()) < 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* Bad */
|
2008-07-27 19:08:19 +00:00
|
|
|
__close (fildes[0]);
|
|
|
|
__close (fildes[1]);
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
if (pid == 0)
|
2005-01-20 19:47:10 +00:00
|
|
|
exec_comm_child (comm, fildes, noexec ? 0 : flags & WRDE_SHOWERR, noexec);
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* Parent */
|
|
|
|
|
2005-01-20 19:47:10 +00:00
|
|
|
/* If we are just testing the syntax, only wait. */
|
|
|
|
if (noexec)
|
|
|
|
return (TEMP_FAILURE_RETRY (__waitpid (pid, &status, 0)) == pid
|
|
|
|
&& status != 0) ? WRDE_SYNTAX : 0;
|
|
|
|
|
1998-07-16 11:44:36 +00:00
|
|
|
__close (fildes[1]);
|
2005-01-20 19:47:10 +00:00
|
|
|
fildes[1] = -1;
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
if (!pwordexp)
|
2000-02-24 07:36:39 +00:00
|
|
|
/* Quoted - no field splitting */
|
|
|
|
{
|
1998-09-17 19:51:33 +00:00
|
|
|
while (1)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
2005-01-20 19:47:10 +00:00
|
|
|
if ((buflen = TEMP_FAILURE_RETRY (__read (fildes[0], buffer,
|
|
|
|
bufsize))) < 1)
|
1998-09-17 19:51:33 +00:00
|
|
|
{
|
2013-01-19 16:18:47 +00:00
|
|
|
/* If read returned 0 then the process has closed its
|
|
|
|
stdout. Don't use WNOHANG in that case to avoid busy
|
|
|
|
looping until the process eventually exits. */
|
|
|
|
if (TEMP_FAILURE_RETRY (__waitpid (pid, &status,
|
|
|
|
buflen == 0 ? 0 : WNOHANG))
|
|
|
|
== 0)
|
1998-09-17 19:51:33 +00:00
|
|
|
continue;
|
2005-01-20 19:47:10 +00:00
|
|
|
if ((buflen = TEMP_FAILURE_RETRY (__read (fildes[0], buffer,
|
|
|
|
bufsize))) < 1)
|
1998-09-17 19:51:33 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
maxnewlines += buflen;
|
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
*word = w_addmem (*word, word_length, max_length, buffer, buflen);
|
|
|
|
if (*word == NULL)
|
|
|
|
goto no_space;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
1998-09-17 19:51:33 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
/* Not quoted - split fields */
|
|
|
|
{
|
|
|
|
int copying = 0;
|
|
|
|
/* 'copying' is:
|
|
|
|
* 0 when searching for first character in a field not IFS white space
|
|
|
|
* 1 when copying the text of a field
|
|
|
|
* 2 when searching for possible non-whitespace IFS
|
2000-02-24 07:36:39 +00:00
|
|
|
* 3 when searching for non-newline after copying field
|
1998-09-17 19:51:33 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
{
|
2005-01-20 19:47:10 +00:00
|
|
|
if ((buflen = TEMP_FAILURE_RETRY (__read (fildes[0], buffer,
|
|
|
|
bufsize))) < 1)
|
1998-09-17 19:51:33 +00:00
|
|
|
{
|
2013-01-19 16:18:47 +00:00
|
|
|
/* If read returned 0 then the process has closed its
|
|
|
|
stdout. Don't use WNOHANG in that case to avoid busy
|
|
|
|
looping until the process eventually exits. */
|
|
|
|
if (TEMP_FAILURE_RETRY (__waitpid (pid, &status,
|
|
|
|
buflen == 0 ? 0 : WNOHANG))
|
|
|
|
== 0)
|
1998-09-17 19:51:33 +00:00
|
|
|
continue;
|
2005-01-20 19:47:10 +00:00
|
|
|
if ((buflen = TEMP_FAILURE_RETRY (__read (fildes[0], buffer,
|
|
|
|
bufsize))) < 1)
|
1998-09-17 19:51:33 +00:00
|
|
|
break;
|
|
|
|
}
|
1998-09-15 21:24:37 +00:00
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
for (i = 0; i < buflen; ++i)
|
|
|
|
{
|
|
|
|
if (strchr (ifs, buffer[i]) != NULL)
|
|
|
|
{
|
|
|
|
/* Current character is IFS */
|
|
|
|
if (strchr (ifs_white, buffer[i]) == NULL)
|
|
|
|
{
|
|
|
|
/* Current character is IFS but not whitespace */
|
|
|
|
if (copying == 2)
|
|
|
|
{
|
|
|
|
/* current character
|
|
|
|
* |
|
|
|
|
* V
|
|
|
|
* eg: text<space><comma><space>moretext
|
|
|
|
*
|
|
|
|
* So, strip whitespace IFS (like at the start)
|
|
|
|
*/
|
|
|
|
copying = 0;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
copying = 0;
|
|
|
|
/* fall through and delimit field.. */
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2000-02-24 07:36:39 +00:00
|
|
|
if (buffer[i] == '\n')
|
|
|
|
{
|
|
|
|
/* Current character is (IFS) newline */
|
1998-09-17 19:51:33 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
/* If copying a field, this is the end of it,
|
|
|
|
but maybe all that's left is trailing newlines.
|
|
|
|
So start searching for a non-newline. */
|
|
|
|
if (copying == 1)
|
|
|
|
copying = 3;
|
1998-09-17 19:51:33 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
continue;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Current character is IFS white space, but
|
|
|
|
not a newline */
|
|
|
|
|
|
|
|
/* If not either copying a field or searching
|
|
|
|
for non-newline after a field, ignore it */
|
|
|
|
if (copying != 1 && copying != 3)
|
|
|
|
continue;
|
|
|
|
|
|
|
|
/* End of field (search for non-ws IFS afterwards) */
|
|
|
|
copying = 2;
|
|
|
|
}
|
1998-09-17 19:51:33 +00:00
|
|
|
}
|
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
/* First IFS white space (non-newline), or IFS non-whitespace.
|
1998-09-17 19:51:33 +00:00
|
|
|
* Delimit the field. Nulls are converted by w_addword. */
|
|
|
|
if (w_addword (pwordexp, *word) == WRDE_NOSPACE)
|
|
|
|
goto no_space;
|
|
|
|
|
|
|
|
*word = w_newword (word_length, max_length);
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
maxnewlines = 0;
|
1998-09-17 19:51:33 +00:00
|
|
|
/* fall back round the loop.. */
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Not IFS character */
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
if (copying == 3)
|
|
|
|
{
|
|
|
|
/* Nothing but (IFS) newlines since the last field,
|
2011-09-10 18:34:15 +00:00
|
|
|
so delimit it here before starting new word */
|
2000-02-24 07:36:39 +00:00
|
|
|
if (w_addword (pwordexp, *word) == WRDE_NOSPACE)
|
|
|
|
goto no_space;
|
|
|
|
|
|
|
|
*word = w_newword (word_length, max_length);
|
|
|
|
}
|
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
copying = 1;
|
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
if (buffer[i] == '\n') /* happens if newline not in IFS */
|
|
|
|
maxnewlines++;
|
|
|
|
else
|
|
|
|
maxnewlines = 0;
|
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length,
|
|
|
|
buffer[i]);
|
|
|
|
if (*word == NULL)
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
/* Chop off trailing newlines (required by POSIX.2) */
|
|
|
|
/* Ensure we don't go back further than the beginning of the
|
|
|
|
substitution (i.e. remove maxnewlines bytes at most) */
|
Break some lines before not after operators.
The GNU Coding Standards specify that line breaks in expressions
should go before an operator, not after one. This patch fixes various
code to do this. It only changes code that appears to be mostly
following GNU style anyway, not files and directories with
substantially different formatting. It is not exhaustive even for
files using GNU style (for example, changes to sysdeps files are
deferred for subsequent cleanups). Some files changed are shared with
gnulib, but most are specific to glibc. Changes were made manually,
with places to change found by grep (so some cases, e.g. where the
operator was followed by a comment at end of line, are particularly
liable to have been missed by grep, but I did include cases where the
operator was followed by backslash-newline).
This patch generally does not attempt to address other coding style
issues in the expressions changed (for example, missing spaces before
'(', or lack of parentheses to ensure indentation of continuation
lines properly reflects operator precedence).
Tested for x86_64, and with build-many-glibcs.py.
* benchtests/bench-memmem.c (simple_memmem): Break lines before
rather than after operators.
* benchtests/bench-skeleton.c (TIMESPEC_AFTER): Likewise.
* crypt/md5.c (md5_finish_ctx): Likewise.
* crypt/sha256.c (__sha256_finish_ctx): Likewise.
* crypt/sha512.c (__sha512_finish_ctx): Likewise.
* elf/cache.c (load_aux_cache): Likewise.
* elf/dl-load.c (open_verify): Likewise.
* elf/get-dynamic-info.h (elf_get_dynamic_info): Likewise.
* elf/readelflib.c (process_elf_file): Likewise.
* elf/rtld.c (dl_main): Likewise.
* elf/sprof.c (generate_call_graph): Likewise.
* hurd/ctty-input.c (_hurd_ctty_input): Likewise.
* hurd/ctty-output.c (_hurd_ctty_output): Likewise.
* hurd/dtable.c (reauth_dtable): Likewise.
* hurd/getdport.c (__getdport): Likewise.
* hurd/hurd/signal.h (_hurd_interrupted_rpc_timeout): Likewise.
* hurd/hurd/sigpreempt.h (HURD_PREEMPT_SIGNAL_P): Likewise.
* hurd/hurdfault.c (_hurdsig_fault_catch_exception_raise):
Likewise.
* hurd/hurdioctl.c (fioctl): Likewise.
* hurd/hurdselect.c (_hurd_select): Likewise.
* hurd/hurdsig.c (_hurdsig_abort_rpcs): Likewise.
(STOPSIGS): Likewise.
* hurd/hurdstartup.c (_hurd_startup): Likewise.
* hurd/intr-msg.c (_hurd_intr_rpc_mach_msg): Likewise.
* hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Likewise.
* hurd/msgportdemux.c (msgport_server): Likewise.
* hurd/setauth.c (_hurd_setauth): Likewise.
* include/features.h (__GLIBC_USE_DEPRECATED_SCANF): Likewise.
* libio/libioP.h [IO_DEBUG] (CHECK_FILE): Likewise.
* locale/programs/ld-ctype.c (set_class_defaults): Likewise.
* localedata/tests-mbwc/tst_swscanf.c (tst_swscanf): Likewise.
* login/tst-utmp.c (do_check): Likewise.
(simulate_login): Likewise.
* mach/lowlevellock.h (lll_lock): Likewise.
(lll_trylock): Likewise.
* math/test-fenv.c (ALL_EXC): Likewise.
* math/test-fenvinline.c (ALL_EXC): Likewise.
* misc/sys/cdefs.h (__attribute_deprecated_msg__): Likewise.
* nis/nis_call.c (__do_niscall3): Likewise.
* nis/nis_callback.c (cb_prog_1): Likewise.
* nis/nis_defaults.c (searchaccess): Likewise.
* nis/nis_findserv.c (__nis_findfastest_with_timeout): Likewise.
* nis/nis_ismember.c (internal_ismember): Likewise.
* nis/nis_local_names.c (nis_local_principal): Likewise.
* nis/nss_nis/nis-rpc.c (_nss_nis_getrpcbyname_r): Likewise.
* nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r):
Likewise.
* nis/ypclnt.c (yp_match): Likewise.
(yp_first): Likewise.
(yp_next): Likewise.
(yp_master): Likewise.
(yp_order): Likewise.
* nscd/hstcache.c (cache_addhst): Likewise.
* nscd/initgrcache.c (addinitgroupsX): Likewise.
* nss/nss_compat/compat-pwd.c (copy_pwd_changes): Likewise.
(internal_getpwuid_r): Likewise.
* nss/nss_compat/compat-spwd.c (copy_spwd_changes): Likewise.
* posix/glob.h (__GLOB_FLAGS): Likewise.
* posix/regcomp.c (peek_token): Likewise.
(peek_token_bracket): Likewise.
(parse_expression): Likewise.
* posix/regexec.c (sift_states_iter_mb): Likewise.
(check_node_accept_bytes): Likewise.
* posix/tst-spawn3.c (do_test): Likewise.
* posix/wordexp-test.c (testit): Likewise.
* posix/wordexp.c (parse_tilde): Likewise.
(exec_comm): Likewise.
* posix/wordexp.h (__WRDE_FLAGS): Likewise.
* resource/vtimes.c (TIMEVAL_TO_VTIMES): Likewise.
* setjmp/sigjmp.c (__sigjmp_save): Likewise.
* stdio-common/printf_fp.c (__printf_fp_l): Likewise.
* stdio-common/tst-fileno.c (do_test): Likewise.
* stdio-common/vfprintf-internal.c (vfprintf): Likewise.
* stdlib/strfmon_l.c (__vstrfmon_l_internal): Likewise.
* stdlib/strtod_l.c (round_and_return): Likewise.
(____STRTOF_INTERNAL): Likewise.
* stdlib/tst-strfrom.h (TEST_STRFROM): Likewise.
* string/strcspn.c (STRCSPN): Likewise.
* string/test-memmem.c (simple_memmem): Likewise.
* termios/tcsetattr.c (tcsetattr): Likewise.
* time/alt_digit.c (_nl_parse_alt_digit): Likewise.
* time/asctime.c (asctime_internal): Likewise.
* time/strptime_l.c (__strptime_internal): Likewise.
* time/sys/time.h (timercmp): Likewise.
* time/tzfile.c (__tzfile_compute): Likewise.
2019-02-22 01:32:36 +00:00
|
|
|
while (maxnewlines-- != 0
|
|
|
|
&& *word_length > 0 && (*word)[*word_length - 1] == '\n')
|
1998-09-13 08:30:54 +00:00
|
|
|
{
|
|
|
|
(*word)[--*word_length] = '\0';
|
|
|
|
|
1998-09-14 15:22:40 +00:00
|
|
|
/* If the last word was entirely newlines, turn it into a new word
|
1998-09-13 08:30:54 +00:00
|
|
|
* which can be ignored if there's nothing following it. */
|
1998-09-14 15:22:40 +00:00
|
|
|
if (*word_length == 0)
|
1998-09-13 08:30:54 +00:00
|
|
|
{
|
|
|
|
free (*word);
|
|
|
|
*word = w_newword (word_length, max_length);
|
1998-09-14 15:22:40 +00:00
|
|
|
break;
|
1998-09-13 08:30:54 +00:00
|
|
|
}
|
|
|
|
}
|
1998-03-16 18:30:44 +00:00
|
|
|
|
1998-07-16 11:44:36 +00:00
|
|
|
__close (fildes[0]);
|
2005-01-20 19:47:10 +00:00
|
|
|
fildes[0] = -1;
|
2000-02-24 07:36:39 +00:00
|
|
|
|
|
|
|
/* Check for syntax error (re-execute but with "-n" flag) */
|
|
|
|
if (buflen < 1 && status != 0)
|
|
|
|
{
|
2005-01-20 19:47:10 +00:00
|
|
|
noexec = 1;
|
|
|
|
goto again;
|
2000-02-24 07:36:39 +00:00
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
return 0;
|
1998-09-13 13:37:57 +00:00
|
|
|
|
|
|
|
no_space:
|
|
|
|
__kill (pid, SIGKILL);
|
2005-01-20 19:47:10 +00:00
|
|
|
TEMP_FAILURE_RETRY (__waitpid (pid, NULL, 0));
|
1998-09-13 13:37:57 +00:00
|
|
|
__close (fildes[0]);
|
|
|
|
return WRDE_NOSPACE;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_comm (char **word, size_t *word_length, size_t *max_length,
|
1998-01-25 17:01:47 +00:00
|
|
|
const char *words, size_t *offset, int flags, wordexp_t *pwordexp,
|
|
|
|
const char *ifs, const char *ifs_white)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after "$(" */
|
|
|
|
int paren_depth = 1;
|
1998-03-17 17:27:52 +00:00
|
|
|
int error = 0;
|
|
|
|
int quoted = 0; /* 1 for singly-quoted, 2 for doubly-quoted */
|
1998-03-24 20:51:53 +00:00
|
|
|
size_t comm_length;
|
|
|
|
size_t comm_maxlen;
|
|
|
|
char *comm = w_newword (&comm_length, &comm_maxlen);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
for (; words[*offset]; ++(*offset))
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1997-08-02 21:00:51 +00:00
|
|
|
switch (words[*offset])
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1998-03-17 17:27:52 +00:00
|
|
|
case '\'':
|
|
|
|
if (quoted == 0)
|
|
|
|
quoted = 1;
|
|
|
|
else if (quoted == 1)
|
|
|
|
quoted = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '"':
|
|
|
|
if (quoted == 0)
|
|
|
|
quoted = 2;
|
|
|
|
else if (quoted == 2)
|
|
|
|
quoted = 0;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
case ')':
|
1998-03-17 17:27:52 +00:00
|
|
|
if (!quoted && --paren_depth == 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* Go -- give script to the shell */
|
1998-03-17 17:27:52 +00:00
|
|
|
if (comm)
|
|
|
|
{
|
2003-09-02 07:14:15 +00:00
|
|
|
#ifdef __libc_ptf_call
|
|
|
|
/* We do not want the exec_comm call to be cut short
|
|
|
|
by a thread cancellation since cleanup is very
|
|
|
|
ugly. Therefore disable cancellation for
|
|
|
|
now. */
|
|
|
|
// XXX Ideally we do want the thread being cancelable.
|
|
|
|
// XXX If demand is there we'll change it.
|
|
|
|
int state = PTHREAD_CANCEL_ENABLE;
|
2015-09-17 23:38:54 +00:00
|
|
|
__libc_ptf_call (__pthread_setcancelstate,
|
2003-09-02 07:14:15 +00:00
|
|
|
(PTHREAD_CANCEL_DISABLE, &state), 0);
|
|
|
|
#endif
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
error = exec_comm (comm, word, word_length, max_length,
|
|
|
|
flags, pwordexp, ifs, ifs_white);
|
2003-09-02 07:14:15 +00:00
|
|
|
|
|
|
|
#ifdef __libc_ptf_call
|
2015-09-17 23:38:54 +00:00
|
|
|
__libc_ptf_call (__pthread_setcancelstate,
|
|
|
|
(state, NULL), 0);
|
2003-09-02 07:14:15 +00:00
|
|
|
#endif
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
free (comm);
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* This is just part of the script */
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '(':
|
1998-03-17 17:27:52 +00:00
|
|
|
if (!quoted)
|
|
|
|
++paren_depth;
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
1998-03-17 17:27:52 +00:00
|
|
|
|
|
|
|
comm = w_addchar (comm, &comm_length, &comm_maxlen, words[*offset]);
|
|
|
|
if (comm == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
/* Premature end. */
|
|
|
|
free (comm);
|
1998-03-17 17:27:52 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
2015-03-09 21:41:35 +00:00
|
|
|
#define CHAR_IN_SET(ch, char_set) \
|
|
|
|
(memchr (char_set "", ch, sizeof (char_set) - 1) != NULL)
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_param (char **word, size_t *word_length, size_t *max_length,
|
1998-01-25 17:01:47 +00:00
|
|
|
const char *words, size_t *offset, int flags, wordexp_t *pwordexp,
|
1998-03-11 15:33:24 +00:00
|
|
|
const char *ifs, const char *ifs_white, int quoted)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after "$" */
|
1998-03-17 17:27:52 +00:00
|
|
|
enum action
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
1998-03-17 17:27:52 +00:00
|
|
|
ACT_NONE,
|
|
|
|
ACT_RP_SHORT_LEFT = '#',
|
|
|
|
ACT_RP_LONG_LEFT = 'L',
|
|
|
|
ACT_RP_SHORT_RIGHT = '%',
|
|
|
|
ACT_RP_LONG_RIGHT = 'R',
|
|
|
|
ACT_NULL_ERROR = '?',
|
|
|
|
ACT_NULL_SUBST = '-',
|
|
|
|
ACT_NONNULL_SUBST = '+',
|
|
|
|
ACT_NULL_ASSIGN = '='
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
};
|
1998-03-24 20:51:53 +00:00
|
|
|
size_t env_length;
|
|
|
|
size_t env_maxlen;
|
|
|
|
size_t pat_length;
|
|
|
|
size_t pat_maxlen;
|
1998-03-17 17:27:52 +00:00
|
|
|
size_t start = *offset;
|
1998-03-24 20:51:53 +00:00
|
|
|
char *env;
|
|
|
|
char *pattern;
|
1998-03-11 15:33:24 +00:00
|
|
|
char *value = NULL;
|
1998-03-17 17:27:52 +00:00
|
|
|
enum action action = ACT_NONE;
|
1997-08-02 21:00:51 +00:00
|
|
|
int depth = 0;
|
1998-03-17 17:27:52 +00:00
|
|
|
int colon_seen = 0;
|
1998-03-13 17:02:23 +00:00
|
|
|
int seen_hash = 0;
|
1998-03-14 09:27:24 +00:00
|
|
|
int free_value = 0;
|
1998-03-17 17:27:52 +00:00
|
|
|
int pattern_is_quoted = 0; /* 1 for singly-quoted, 2 for doubly-quoted */
|
1997-08-02 21:00:51 +00:00
|
|
|
int error;
|
1998-03-22 09:04:23 +00:00
|
|
|
int special = 0;
|
|
|
|
char buffer[21];
|
1998-03-17 17:27:52 +00:00
|
|
|
int brace = words[*offset] == '{';
|
|
|
|
|
1998-03-24 20:51:53 +00:00
|
|
|
env = w_newword (&env_length, &env_maxlen);
|
|
|
|
pattern = w_newword (&pat_length, &pat_maxlen);
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
if (brace)
|
|
|
|
++*offset;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
/* First collect the parameter name. */
|
|
|
|
|
|
|
|
if (words[*offset] == '#')
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
seen_hash = 1;
|
|
|
|
if (!brace)
|
|
|
|
goto envsubst;
|
|
|
|
++*offset;
|
|
|
|
}
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (isalpha (words[*offset]) || words[*offset] == '_')
|
|
|
|
{
|
|
|
|
/* Normal parameter name. */
|
|
|
|
do
|
|
|
|
{
|
|
|
|
env = w_addchar (env, &env_length, &env_maxlen,
|
|
|
|
words[*offset]);
|
|
|
|
if (env == NULL)
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
while (isalnum (words[++*offset]) || words[*offset] == '_');
|
|
|
|
}
|
|
|
|
else if (isdigit (words[*offset]))
|
|
|
|
{
|
|
|
|
/* Numeric parameter name. */
|
|
|
|
special = 1;
|
|
|
|
do
|
|
|
|
{
|
|
|
|
env = w_addchar (env, &env_length, &env_maxlen,
|
|
|
|
words[*offset]);
|
|
|
|
if (env == NULL)
|
|
|
|
goto no_space;
|
|
|
|
if (!brace)
|
|
|
|
goto envsubst;
|
|
|
|
}
|
|
|
|
while (isdigit(words[++*offset]));
|
|
|
|
}
|
2015-03-09 21:41:35 +00:00
|
|
|
else if (CHAR_IN_SET (words[*offset], "*@$"))
|
1998-03-22 09:04:23 +00:00
|
|
|
{
|
|
|
|
/* Special parameter. */
|
|
|
|
special = 1;
|
|
|
|
env = w_addchar (env, &env_length, &env_maxlen,
|
|
|
|
words[*offset]);
|
|
|
|
if (env == NULL)
|
|
|
|
goto no_space;
|
|
|
|
++*offset;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
if (brace)
|
|
|
|
goto syntax;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (brace)
|
|
|
|
{
|
|
|
|
/* Check for special action to be applied to the value. */
|
|
|
|
switch (words[*offset])
|
|
|
|
{
|
|
|
|
case '}':
|
1998-03-25 15:21:09 +00:00
|
|
|
/* Evaluate. */
|
1998-03-22 09:04:23 +00:00
|
|
|
goto envsubst;
|
|
|
|
|
|
|
|
case '#':
|
|
|
|
action = ACT_RP_SHORT_LEFT;
|
|
|
|
if (words[1 + *offset] == '#')
|
|
|
|
{
|
|
|
|
++*offset;
|
|
|
|
action = ACT_RP_LONG_LEFT;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '%':
|
|
|
|
action = ACT_RP_SHORT_RIGHT;
|
|
|
|
if (words[1 + *offset] == '%')
|
|
|
|
{
|
|
|
|
++*offset;
|
|
|
|
action = ACT_RP_LONG_RIGHT;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ':':
|
2015-03-09 21:41:35 +00:00
|
|
|
if (!CHAR_IN_SET (words[1 + *offset], "-=?+"))
|
1998-03-22 09:04:23 +00:00
|
|
|
goto syntax;
|
|
|
|
|
|
|
|
colon_seen = 1;
|
|
|
|
action = words[++*offset];
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '-':
|
|
|
|
case '=':
|
|
|
|
case '?':
|
|
|
|
case '+':
|
|
|
|
action = words[*offset];
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
goto syntax;
|
|
|
|
}
|
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
/* Now collect the pattern, but don't expand it yet. */
|
1998-03-22 09:04:23 +00:00
|
|
|
++*offset;
|
|
|
|
for (; words[*offset]; ++(*offset))
|
1998-03-17 17:27:52 +00:00
|
|
|
{
|
|
|
|
switch (words[*offset])
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-17 17:27:52 +00:00
|
|
|
case '{':
|
|
|
|
if (!pattern_is_quoted)
|
|
|
|
++depth;
|
|
|
|
break;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case '}':
|
|
|
|
if (!pattern_is_quoted)
|
|
|
|
{
|
|
|
|
if (depth == 0)
|
|
|
|
goto envsubst;
|
|
|
|
--depth;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case '\\':
|
1999-04-12 09:07:36 +00:00
|
|
|
if (pattern_is_quoted)
|
|
|
|
/* Quoted; treat as normal character. */
|
|
|
|
break;
|
|
|
|
|
|
|
|
/* Otherwise, it's an escape: next character is literal. */
|
|
|
|
if (words[++*offset] == '\0')
|
1998-03-17 17:27:52 +00:00
|
|
|
goto syntax;
|
1999-04-12 09:07:36 +00:00
|
|
|
|
|
|
|
pattern = w_addchar (pattern, &pat_length, &pat_maxlen, '\\');
|
|
|
|
if (pattern == NULL)
|
|
|
|
goto no_space;
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
break;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case '\'':
|
|
|
|
if (pattern_is_quoted == 0)
|
|
|
|
pattern_is_quoted = 1;
|
|
|
|
else if (pattern_is_quoted == 1)
|
|
|
|
pattern_is_quoted = 0;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
break;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case '"':
|
|
|
|
if (pattern_is_quoted == 0)
|
|
|
|
pattern_is_quoted = 2;
|
|
|
|
else if (pattern_is_quoted == 2)
|
|
|
|
pattern_is_quoted = 0;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
break;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
pattern = w_addchar (pattern, &pat_length, &pat_maxlen,
|
|
|
|
words[*offset]);
|
|
|
|
if (pattern == NULL)
|
|
|
|
goto no_space;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
/* End of input string -- remember to reparse the character that we
|
|
|
|
* stopped at. */
|
1997-08-02 21:00:51 +00:00
|
|
|
--(*offset);
|
|
|
|
|
|
|
|
envsubst:
|
|
|
|
if (words[start] == '{' && words[*offset] != '}')
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
goto syntax;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (env == NULL)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-03-13 17:02:23 +00:00
|
|
|
if (seen_hash)
|
|
|
|
{
|
|
|
|
/* $# expands to the number of positional parameters */
|
|
|
|
buffer[20] = '\0';
|
1998-03-22 09:04:23 +00:00
|
|
|
value = _itoa_word (__libc_argc - 1, &buffer[20], 10, 0);
|
|
|
|
seen_hash = 0;
|
1998-03-13 17:02:23 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Just $ on its own */
|
|
|
|
*offset = start - 1;
|
|
|
|
*word = w_addchar (*word, word_length, max_length, '$');
|
1998-03-22 09:04:23 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
1998-03-13 17:02:23 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
1998-03-24 20:51:53 +00:00
|
|
|
/* Is it a numeric parameter? */
|
1998-03-22 09:04:23 +00:00
|
|
|
else if (isdigit (env[0]))
|
|
|
|
{
|
|
|
|
int n = atoi (env);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (n >= __libc_argc)
|
|
|
|
/* Substitute NULL. */
|
|
|
|
value = NULL;
|
|
|
|
else
|
|
|
|
/* Replace with appropriate positional parameter. */
|
|
|
|
value = __libc_argv[n];
|
|
|
|
}
|
1998-03-13 17:02:23 +00:00
|
|
|
/* Is it a special parameter? */
|
1998-03-22 09:04:23 +00:00
|
|
|
else if (special)
|
1998-03-11 15:33:24 +00:00
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Is it `$$'? */
|
|
|
|
if (*env == '$')
|
1998-03-13 17:02:23 +00:00
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
buffer[20] = '\0';
|
1998-07-16 11:44:36 +00:00
|
|
|
value = _itoa_word (__getpid (), &buffer[20], 10, 0);
|
1998-03-13 17:02:23 +00:00
|
|
|
}
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Is it `${#*}' or `${#@}'? */
|
|
|
|
else if ((*env == '*' || *env == '@') && seen_hash)
|
1998-03-11 15:33:24 +00:00
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
buffer[20] = '\0';
|
|
|
|
value = _itoa_word (__libc_argc > 0 ? __libc_argc - 1 : 0,
|
|
|
|
&buffer[20], 10, 0);
|
|
|
|
*word = w_addstr (*word, word_length, max_length, value);
|
1998-03-13 17:02:23 +00:00
|
|
|
free (env);
|
2006-05-10 07:58:39 +00:00
|
|
|
free (pattern);
|
1998-03-13 17:02:23 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
/* Is it `$*' or `$@' (unquoted) ? */
|
|
|
|
else if (*env == '*' || (*env == '@' && !quoted))
|
|
|
|
{
|
1998-03-25 15:21:09 +00:00
|
|
|
size_t plist_len = 0;
|
1998-03-13 17:02:23 +00:00
|
|
|
int p;
|
1998-03-25 15:21:09 +00:00
|
|
|
char *end;
|
1998-03-13 17:02:23 +00:00
|
|
|
|
1998-03-11 15:33:24 +00:00
|
|
|
/* Build up value parameter by parameter (copy them) */
|
1998-03-25 15:21:09 +00:00
|
|
|
for (p = 1; __libc_argv[p]; ++p)
|
|
|
|
plist_len += strlen (__libc_argv[p]) + 1; /* for space */
|
|
|
|
value = malloc (plist_len);
|
|
|
|
if (value == NULL)
|
|
|
|
goto no_space;
|
|
|
|
end = value;
|
|
|
|
*end = 0;
|
1998-03-12 17:26:19 +00:00
|
|
|
for (p = 1; __libc_argv[p]; ++p)
|
1998-03-11 15:33:24 +00:00
|
|
|
{
|
1998-03-25 15:21:09 +00:00
|
|
|
if (p > 1)
|
|
|
|
*end++ = ' ';
|
|
|
|
end = __stpcpy (end, __libc_argv[p]);
|
1998-03-11 15:33:24 +00:00
|
|
|
}
|
|
|
|
|
1998-03-14 09:27:24 +00:00
|
|
|
free_value = 1;
|
1998-03-11 15:33:24 +00:00
|
|
|
}
|
1998-03-22 09:04:23 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Must be a quoted `$@' */
|
|
|
|
assert (*env == '@' && quoted);
|
1998-03-11 15:33:24 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Each parameter is a separate word ("$@") */
|
|
|
|
if (__libc_argc == 2)
|
1998-03-25 15:21:09 +00:00
|
|
|
value = __libc_argv[1];
|
1998-03-22 09:04:23 +00:00
|
|
|
else if (__libc_argc > 2)
|
|
|
|
{
|
|
|
|
int p;
|
1998-03-13 17:02:23 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Append first parameter to current word. */
|
|
|
|
value = w_addstr (*word, word_length, max_length,
|
|
|
|
__libc_argv[1]);
|
|
|
|
if (value == NULL || w_addword (pwordexp, value))
|
|
|
|
goto no_space;
|
1998-03-13 17:02:23 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
for (p = 2; __libc_argv[p + 1]; p++)
|
|
|
|
{
|
|
|
|
char *newword = __strdup (__libc_argv[p]);
|
|
|
|
if (newword == NULL || w_addword (pwordexp, newword))
|
|
|
|
goto no_space;
|
|
|
|
}
|
1998-03-11 15:33:24 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Start a new word with the last parameter. */
|
1998-03-24 20:51:53 +00:00
|
|
|
*word = w_newword (word_length, max_length);
|
1998-06-29 12:44:22 +00:00
|
|
|
value = __libc_argv[p];
|
1998-03-22 09:04:23 +00:00
|
|
|
}
|
|
|
|
else
|
1998-03-11 15:33:24 +00:00
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
free (env);
|
|
|
|
free (pattern);
|
|
|
|
return 0;
|
1998-03-11 15:33:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
1998-03-22 09:04:23 +00:00
|
|
|
else
|
1998-03-25 15:21:09 +00:00
|
|
|
value = getenv (env);
|
|
|
|
|
|
|
|
if (value == NULL && (flags & WRDE_UNDEF))
|
1998-03-22 09:04:23 +00:00
|
|
|
{
|
1998-03-25 15:21:09 +00:00
|
|
|
/* Variable not defined. */
|
1998-09-13 13:37:57 +00:00
|
|
|
error = WRDE_BADVAL;
|
|
|
|
goto do_error;
|
1998-03-22 09:04:23 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
if (action != ACT_NONE)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1999-04-12 09:07:36 +00:00
|
|
|
int expand_pattern = 0;
|
|
|
|
|
|
|
|
/* First, find out if we need to expand pattern (i.e. if we will
|
|
|
|
* use it). */
|
|
|
|
switch (action)
|
|
|
|
{
|
|
|
|
case ACT_RP_SHORT_LEFT:
|
|
|
|
case ACT_RP_LONG_LEFT:
|
|
|
|
case ACT_RP_SHORT_RIGHT:
|
|
|
|
case ACT_RP_LONG_RIGHT:
|
|
|
|
/* Always expand for these. */
|
|
|
|
expand_pattern = 1;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ACT_NULL_ERROR:
|
|
|
|
case ACT_NULL_SUBST:
|
|
|
|
case ACT_NULL_ASSIGN:
|
|
|
|
if (!value || (!*value && colon_seen))
|
|
|
|
/* If param is unset, or set but null and a colon has been seen,
|
|
|
|
the expansion of the pattern will be needed. */
|
|
|
|
expand_pattern = 1;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ACT_NONNULL_SUBST:
|
|
|
|
/* Expansion of word will be needed if parameter is set and not null,
|
|
|
|
or set null but no colon has been seen. */
|
|
|
|
if (value && (*value || !colon_seen))
|
|
|
|
expand_pattern = 1;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
assert (! "Unrecognised action!");
|
|
|
|
}
|
|
|
|
|
|
|
|
if (expand_pattern)
|
|
|
|
{
|
|
|
|
/* We need to perform tilde expansion, parameter expansion,
|
2011-09-10 18:34:15 +00:00
|
|
|
command substitution, and arithmetic expansion. We also
|
1999-04-12 09:07:36 +00:00
|
|
|
have to be a bit careful with wildcard characters, as
|
|
|
|
pattern might be given to fnmatch soon. To do this, we
|
|
|
|
convert quotes to escapes. */
|
|
|
|
|
|
|
|
char *expanded;
|
|
|
|
size_t exp_len;
|
|
|
|
size_t exp_maxl;
|
|
|
|
char *p;
|
|
|
|
int quoted = 0; /* 1: single quotes; 2: double */
|
|
|
|
|
|
|
|
expanded = w_newword (&exp_len, &exp_maxl);
|
|
|
|
for (p = pattern; p && *p; p++)
|
|
|
|
{
|
1999-04-20 08:54:33 +00:00
|
|
|
size_t offset;
|
1999-04-12 09:07:36 +00:00
|
|
|
|
|
|
|
switch (*p)
|
|
|
|
{
|
|
|
|
case '"':
|
|
|
|
if (quoted == 2)
|
|
|
|
quoted = 0;
|
|
|
|
else if (quoted == 0)
|
|
|
|
quoted = 2;
|
|
|
|
else break;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
case '\'':
|
|
|
|
if (quoted == 1)
|
|
|
|
quoted = 0;
|
|
|
|
else if (quoted == 0)
|
|
|
|
quoted = 1;
|
|
|
|
else break;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
case '*':
|
|
|
|
case '?':
|
|
|
|
if (quoted)
|
|
|
|
{
|
|
|
|
/* Convert quoted wildchar to escaped wildchar. */
|
|
|
|
expanded = w_addchar (expanded, &exp_len,
|
|
|
|
&exp_maxl, '\\');
|
|
|
|
|
|
|
|
if (expanded == NULL)
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '$':
|
|
|
|
offset = 0;
|
|
|
|
error = parse_dollars (&expanded, &exp_len, &exp_maxl, p,
|
|
|
|
&offset, flags, NULL, NULL, NULL, 1);
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (expanded);
|
1999-04-12 09:07:36 +00:00
|
|
|
|
|
|
|
goto do_error;
|
|
|
|
}
|
|
|
|
|
|
|
|
p += offset;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
case '~':
|
|
|
|
if (quoted || exp_len)
|
|
|
|
break;
|
|
|
|
|
|
|
|
offset = 0;
|
|
|
|
error = parse_tilde (&expanded, &exp_len, &exp_maxl, p,
|
|
|
|
&offset, 0);
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (expanded);
|
1999-04-12 09:07:36 +00:00
|
|
|
|
|
|
|
goto do_error;
|
|
|
|
}
|
|
|
|
|
|
|
|
p += offset;
|
|
|
|
continue;
|
|
|
|
|
|
|
|
case '\\':
|
|
|
|
expanded = w_addchar (expanded, &exp_len, &exp_maxl, '\\');
|
|
|
|
++p;
|
|
|
|
assert (*p); /* checked when extracted initially */
|
|
|
|
if (expanded == NULL)
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
|
|
|
expanded = w_addchar (expanded, &exp_len, &exp_maxl, *p);
|
|
|
|
|
|
|
|
if (expanded == NULL)
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (pattern);
|
1999-04-12 09:07:36 +00:00
|
|
|
|
|
|
|
pattern = expanded;
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
switch (action)
|
|
|
|
{
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_RP_SHORT_LEFT:
|
|
|
|
case ACT_RP_LONG_LEFT:
|
|
|
|
case ACT_RP_SHORT_RIGHT:
|
|
|
|
case ACT_RP_LONG_RIGHT:
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
|
|
|
char *p;
|
|
|
|
char c;
|
|
|
|
char *end;
|
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (value == NULL || pattern == NULL || *pattern == '\0')
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
end = value + strlen (value);
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
switch (action)
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_RP_SHORT_LEFT:
|
1998-03-08 15:26:29 +00:00
|
|
|
for (p = value; p <= end; ++p)
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
|
|
|
c = *p;
|
|
|
|
*p = '\0';
|
|
|
|
if (fnmatch (pattern, value, 0) != FNM_NOMATCH)
|
|
|
|
{
|
|
|
|
*p = c;
|
1998-03-25 15:21:09 +00:00
|
|
|
if (free_value)
|
|
|
|
{
|
|
|
|
char *newval = __strdup (p);
|
|
|
|
if (newval == NULL)
|
|
|
|
{
|
|
|
|
free (value);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
free (value);
|
|
|
|
value = newval;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
value = p;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
*p = c;
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_RP_LONG_LEFT:
|
1998-03-08 15:26:29 +00:00
|
|
|
for (p = end; p >= value; --p)
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
|
|
|
c = *p;
|
|
|
|
*p = '\0';
|
|
|
|
if (fnmatch (pattern, value, 0) != FNM_NOMATCH)
|
|
|
|
{
|
|
|
|
*p = c;
|
1998-03-25 15:21:09 +00:00
|
|
|
if (free_value)
|
|
|
|
{
|
|
|
|
char *newval = __strdup (p);
|
|
|
|
if (newval == NULL)
|
|
|
|
{
|
|
|
|
free (value);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
free (value);
|
|
|
|
value = newval;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
value = p;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
*p = c;
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_RP_SHORT_RIGHT:
|
1998-03-08 15:26:29 +00:00
|
|
|
for (p = end; p >= value; --p)
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
|
|
|
if (fnmatch (pattern, p, 0) != FNM_NOMATCH)
|
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
char *newval;
|
|
|
|
newval = malloc (p - value + 1);
|
1998-09-13 13:37:57 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (newval == NULL)
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
*(char *) __mempcpy (newval, value, p - value) = '\0';
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
value = newval;
|
|
|
|
free_value = 1;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_RP_LONG_RIGHT:
|
1998-03-08 15:26:29 +00:00
|
|
|
for (p = value; p <= end; ++p)
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
{
|
|
|
|
if (fnmatch (pattern, p, 0) != FNM_NOMATCH)
|
|
|
|
{
|
1998-03-22 09:04:23 +00:00
|
|
|
char *newval;
|
|
|
|
newval = malloc (p - value + 1);
|
1998-09-13 13:37:57 +00:00
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (newval == NULL)
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
*(char *) __mempcpy (newval, value, p - value) = '\0';
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
value = newval;
|
|
|
|
free_value = 1;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
1998-03-17 17:27:52 +00:00
|
|
|
break;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_NULL_ERROR:
|
1997-08-02 21:00:51 +00:00
|
|
|
if (value && *value)
|
1998-03-08 15:26:29 +00:00
|
|
|
/* Substitute parameter */
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
error = 0;
|
1997-08-02 21:00:51 +00:00
|
|
|
if (!colon_seen && value)
|
1998-03-22 09:04:23 +00:00
|
|
|
/* Substitute NULL */
|
1999-04-12 09:07:36 +00:00
|
|
|
;
|
1998-03-22 09:04:23 +00:00
|
|
|
else
|
|
|
|
{
|
2001-08-17 04:49:12 +00:00
|
|
|
const char *str = pattern;
|
|
|
|
|
|
|
|
if (str[0] == '\0')
|
2001-08-17 07:51:36 +00:00
|
|
|
str = _("parameter null or not set");
|
2001-08-17 04:49:12 +00:00
|
|
|
|
2005-07-20 17:51:14 +00:00
|
|
|
__fxprintf (NULL, "%s: %s\n", env, str);
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1998-03-25 15:21:09 +00:00
|
|
|
if (free_value)
|
|
|
|
free (value);
|
1998-09-13 13:37:57 +00:00
|
|
|
goto do_error;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_NULL_SUBST:
|
1998-03-08 15:26:29 +00:00
|
|
|
if (value && *value)
|
|
|
|
/* Substitute parameter */
|
|
|
|
break;
|
|
|
|
|
[BZ #2510, BZ #2830, BZ #3137, BZ #3313, BZ #3426, BZ #3465, BZ #3480, BZ #3483, BZ #3493, BZ #3514, BZ #3515, BZ #3664, BZ #3673, BZ #3674]
2007-01-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/soft-fp/sfp-machine.h: Remove.
* sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.
2007-01-10 Ulrich Drepper <drepper@redhat.com>
* io/fts.c: Make sure fts_cur is always valid after return from
fts_read.
Patch by Miloslav Trmac <mitr@redhat.com>.
2006-10-27 Richard Sandiford <richard@codesourcery.com>
* elf/elf.h (R_MIPS_GLOB_DAT): Define.
(R_MIPS_NUM): Bump by 1.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
* posix/execvp.c: Include alloca.h.
(allocate_scripts_argv): Renamed to...
(scripts_argv): ... this. Don't allocate buffer here nor count
arguments.
(execvp): Use alloca if possible.
* posix/Makefile: Add rules to build and run tst-vfork3 test.
* posix/tst-vfork3.c: New test.
* stdlib/Makefile (tst-strtod3-ENV): Define.
2007-01-02 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c: Update copyright year.
* nss/getent.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* elf/ldconfig.c: Likewise.
* catgets/gencat.c: Likewise.
* csu/version.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/sprof.c (print_version): Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nscd/nscd.c (print_version): Likewise.
* debug/xtrace.sh: Likewise.
* malloc/memusage.sh: Likewise.
* malloc/mtrace.pl: Likewise.
* debug/catchsegv.sh: Likewise.
2006-12-24 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (sYSMALLOc): Remove some unnecessary alignment
attempts.
2006-12-23 Ulrich Drepper <drepper@redhat.com>
* posix/wordexp.c: Remove some unnecessary tests.
2006-12-20 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
* sysdeps/unix/sysv/linux/sh/bits/shm.h: New file.
* nss/getXXbyYY_r.c: Include atomic.h.
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
add atomic_write_barrier () in between.
2006-11-28 Jakub Jelinek <jakub@redhat.com>
* elf/dl-support.c: Include dl-procinfo.h.
* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
Define.
(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
hardcoded constants.
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
PPC_PLATFORM_* macros for array designators.
2006-11-11 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
names to the beginning.
(_dl_powerpc_platforms): Add "power6x".
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
(_DL_PLATFORMS_COUNT): Increase.
(_dl_string_platform): Handle power6x case.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
PPC_FEATURE_POWER6_EXT): Define.
(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.
[-2^31 .. 2^31) range.
* sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_RELATIME.
* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
Handle relatime mount option.
2006-12-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Include
kernel-features.h.
2006-12-11 Ulrich Drepper <drepper@redhat.com>
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
separators also if no non-zero digits found.
* stdlib/Makefile (tests): Add tst-strtod3.
[BZ #3664]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
empty parsed strings.
* stdlib/Makefile (tests): Add tst-strtod2.
* stdlib/tst-strtod2.c: New file.
[BZ #3673]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
computation.
* stdlib/Makefile (tests): Add tst-atof2.
* stdlib/tst-atof2.c: New file.
[BZ #3674]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
correctly if removing trailing zero of hex-float.
* stdlib/Makefile (tests): Add tst-atof1.
* stdlib/tst-atof1.c: New file.
* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
Start searching for next comma at p rather than rest.
* misc/Makefile (tests): Add tst-mntent2.
* misc/tst-mntent2.c: New test.
2006-12-08 Ulrich Drepper <drepper@redhat.com>
* malloc/memusage.c: Handle realloc with new size of zero and
non-NULL pointer correctly.
(me): Really write first record twice.
(struct entry): Make format bi-arch safe.
(dest): Write out more realloc statistics.
* malloc/memusagestat.c (struct entry): Make format bi-arch safe.
2006-12-05 Jakub Jelinek <jakub@redhat.com>
* nis/nis_subr.c (nis_getnames): Revert last change.
2006-12-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
2006-11-30 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
jump table entries.
2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
`clone' function to ensure proper unwinding stop of gdb.
* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2006-12-01 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd.init: Remove obsolete and commented-out -S option
handling.
2006-11-23 Jakub Jelinek <jakub@redhat.com>
[BZ #3514]
* manual/string.texi (strncmp): Fix pastos from wcscmp description.
[BZ #3515]
* manual/string.texi (strtok): Remove duplicate paragraph.
2006-12-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
libgcc not supporting `rflags' unwinding (register # >= 17).
2006-11-30 Jakub Jelinek <jakub@redhat.com>
* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
succeeded.
2006-11-29 Daniel Jacobowitz <dan@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add correct
unwind information.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
'restore_rt' even in the 'signal' directory.
* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the regs list.
malloc crashed. Don't allocate memory unnecessarily in each
loop.
2006-10-21 Jakub Jelinek <jakub@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.
2006-11-20 Ulrich Drepper <drepper@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.
2006-11-18 Bruno Haible <bruno@clisp.org>
* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
__sysconf only after having tried to call getgroups32.
2006-11-19 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
addresses for IPv4 queries if they can be mapped.
2006-11-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/x86_64/fpu/s_copysignf.S (__copysignf): Switch to .text.
* sysdeps/x86_64/fpu/s_copysign.S (__copysign): Likewise.
(signmask): Add .size directive.
(othermask): Add .type directive.
2006-11-14 Ulrich Drepper <drepper@redhat.com>
* po/nl.po: Update from translation team.
* timezone/zdump.c: Redo fix for BZ #3137.
2006-11-14 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-alias.c (get_next_alias): Set line back
to first_unused after parsing :include: file.
* timezone/africa: Update from tzdata2006o.
* timezone/antarctica: Likewise.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/iso3166.tab: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/zone.tab: Likewise.
* time/tzfile.c (__tzfile_read): Extend to handle new file format
on machines with 64-bit time_t.
* timezone/checktab.awk: Update from tzcode2006o.
* timezone/ialloc.c: Likewise.
* timezone/private.h: Likewise.
* timezone/scheck.c: Likewise.
* timezone/tzfile.h: Likewise.
* timezone/tzselect.ksh: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
[BZ #3483]
* elf/ldconfig.c (main): Call setlocale and textdomain.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
[BZ #3480]
* manual/argp.texi: Fix typos.
* manual/charset.texi: Likewise.
* manual/errno.texi: Likewise.
* manual/filesys.texi: Likewise.
* manual/lang.texi: Likewise.
* manual/maint.texi: Likewise.
* manual/memory.texi: Likewise.
* manual/message.texi: Likewise.
* manual/resource.texi: Likewise.
* manual/search.texi: Likewise.
* manual/signal.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/sysinfo.texi: Likewise.
* manual/syslog.texi: Likewise.
* manual/time.texi: Likewise.
Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
[BZ #3465]
* sunrpc/clnt_raw.c: Minimal message improvements.
* sunrpc/pm_getmaps.c: Likewise.
* nis/nss_nisplus/nisplus-publickey.c: Likewise.
* nis/nis_print_group_entry.c: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/charmap.c: Likewise.
* malloc/memusage.sh: Likewise.
* elf/dl-deps.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* libio/vswprintf.c: Likewise.
* malloc/memusagestat.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/rpc_main.c: Likewise.
* nscd/cache.c: Likewise.
* locale/programs/repertoire.c: Unify output messages.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* elf/ldconfig.c: Likewise.
* nscd/selinux.c: Likewise.
* elf/cache.c: Likewise.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
2006-11-10 Jakub Jelinek <jakub@redhat.com>
* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
if N is one bigger than return value.
* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
and l1 last arguments, if buf is defined, verify the return value
equals to strlen (buf) and verify no byte beyond passed length
is modified.
2006-11-10 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
Use __new_sys_siglist instead of _sys_siglist_internal as
second macro argument.
(_old_sys_siglist): Use declare_symbol_alias macro instead of
strong_alias.
2006-11-09 Ulrich Drepper <drepper@redhat.com>
[BZ #3493]
* posix/unistd.h (sysconf): Remove const attribute.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
temporary or deprecated addresses.
Patch by Sridhar Samudrala <sri@us.ibm.com>.
* string/Makefile (tests): Add tst-strxfrm2.
* string/tst-strxfrm2.c: New file.
2006-10-09 Jakub Jelinek <jakub@redhat.com>
* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
rather than r->r_brk.
* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
optimization even if needed > n.
2006-11-07 Jakub Jelinek <jakub@redhat.com>
* include/libc-symbols.h (declare_symbol): Rename to...
(declare_symbol_alias): ... this. Add ORIGINAL argument, imply
strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
.size directive.
* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
changes.
* sysdeps/gnu/siglist.c: Likewise.
2006-11-03 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/fpu/bits/mathinline.h
[__LIBC_INTERNAL_MATH_INLINES]: Moved to ...
* sysdeps/powerpc/fpu/math_private.h: ...here. New file.
2006-11-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
Update handling of cache descriptor 0x49 for new models.
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
Likewise.
2006-11-02 Ulrich Drepper <drepper@redhat.com>
* configure.in: Work around ld --help change and avoid -z relro
test completely if the architecture doesn't care about security.
2006-11-01 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
2006-10-31 Ulrich Drepper <drepper@redhat.com>
* stdlib/atexit.c (atexit): Don't mark as hidden when used to
generate compatibility version.
2006-10-29 Ulrich Drepper <drepper@redhat.com>
* configure.in: Relax -z relro requirement a bit.
* po/sv.po: Update from translation team.
2006-10-29 Jakub Jelinek <jakub@redhat.com>
* elf/dl-sym.c (do_sym): Use RTLD_SINGLE_THREAD_P.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Likewise.
* elf/dl-close.c (_dl_close_worker): Likewise.
* elf/dl-open.c (_dl_open_worker): Likewise.
* sysdeps/generic/sysdep-cancel.h (RTLD_SINGLE_THREAD_P): Define.
* configure.in: Require assembler support for visibility, compiler
support for visibility and aliases, linker support for various -z
options.
* Makeconfig: Remove conditional code which now is unnecessary.
* config.h.in: Likewise.
* config.make.in: Likewise.
* dlfcn/Makefile: Likewise.
* elf/Makefile: Likewise.
* elf/dl-load.c: Likewise.
* elf/rtld.c: Likewise.
* include/libc-symbols.h: Likewise.
* include/stdio.h: Likewise.
* io/Makefile: Likewise.
* io/fstat.c: Likewise.
* io/fstat64.c: Likewise.
* io/fstatat.c: Likewise.
* io/fstatat64.c: Likewise.
* io/lstat.c: Likewise.
* io/lstat64.c: Likewise.
* io/mknod.c: Likewise.
* io/mknodat.c: Likewise.
* io/stat.c: Likewise.
* io/stat64.c: Likewise.
* libio/stdio.c: Likewise.
* nscd/Makefile: Likewise.
* stdlib/Makefile: Likewise.
* stdlib/atexit.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/i386/sysdep.h: Likewise.
* sysdeps/i386/i686/memcmp.S: Likewise.
* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
* Makerules: USE_TLS support is now default.
* tls.make.c: Likewise.
* csu/Versions: Likewise.
* csu/libc-start.c: Likewise.
* csu/libc-tls.c: Likewise.
* csu/version.c: Likewise.
* dlfcn/dlinfo.c: Likewise.
* elf/dl-addr.c: Likewise.
* elf/dl-cache.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-sysdep.c: Likewise.
* elf/dl-tls.c: Likewise.
* elf/ldconfig.c: Likewise.
* elf/rtld.c: Likewise.
* elf/tst-tls-dlinfo.c: Likewise.
* elf/tst-tls1.c: Likewise.
* elf/tst-tls10.h: Likewise.
* elf/tst-tls14.c: Likewise.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/tst-tls4.c: Likewise.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* elf/tst-tlsmod1.c: Likewise.
* elf/tst-tlsmod13.c: Likewise.
* elf/tst-tlsmod13a.c: Likewise.
* elf/tst-tlsmod14a.c: Likewise.
* elf/tst-tlsmod2.c: Likewise.
* elf/tst-tlsmod3.c: Likewise.
* elf/tst-tlsmod4.c: Likewise.
* elf/tst-tlsmod5.c: Likewise.
* elf/tst-tlsmod6.c: Likewise.
* include/errno.h: Likewise.
* include/link.h: Likewise.
* include/tls.h: Likewise.
* locale/global-locale.c: Likewise.
* locale/localeinfo.h: Likewise.
* malloc/arena.c: Likewise.
* malloc/hooks.c: Likewise.
* malloc/malloc.c: Likewise.
* resolv/Versions: Likewise.
* sysdeps/alpha/dl-machine.h: Likewise.
* sysdeps/alpha/libc-tls.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/generic/tls.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/ia64/libc-tls.c: Likewise.
* sysdeps/mach/hurd/fork.c: Likewise.
* sysdeps/mach/hurd/i386/tls.h: Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.c: Likwise.
* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
* sysdeps/s390/libc-tls.c: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
[BZ #3426]
* stdlib/stdlib.h: Adjust comment for canonicalize_file_name to
reality.
2006-10-27 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (_dl_debug_bindings): Remove unused symbol_scope
argument.
(_dl_lookup_symbol_x): Adjust caller.
* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
_ns_global_scope.
* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.
* elf/dl-libc.c: Revert l_scope name changes.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-close.c (_dl_close): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise. If not SINGLE_THREAD_P,
always use __rtld_mrlock_{change,done}. Always free old scope list
here if not l_scope_mem.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
change. Never free scope list here. Just __rtld_mrlock_lock before
the lookup and __rtld_mrlock_unlock it after the lookup.
* elf/dl-sym.c: Likewise.
* include/link.h (struct r_scoperec): Remove.
(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
with l_scope_mem and l_scoperec_lock with l_scope_lock.
2006-10-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/netinet/tcp.h: Define TCP_CONGESTION.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* configure.in: Disable building profile libraries by default.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
_dl_lookup_symbol_x code.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-runtime.c: Include sysdep-cancel.h.
(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
scoperec->nusers only if !SINGLE_THREAD_P. Use atomic_*
instead of catomic_* macros.
* elf/dl-sym.c: Include sysdep-cancel.h.
(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-close.c: Include sysdep-cancel.h.
(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-open.c: Include sysdep-cancel.h.
(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
fastbin rather than end of fastbin array.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
body macro.
* sysdeps/x86_64/bits/atomic.h
(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
(catomic_decrement): Use correct body macro.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h: Add a unique prefix to all local variables
in macros.
* csu/tst-atomic.c (do_test): Test also catomic_* macros.
2006-10-14 Ulrich Drepper <drepper@redhat.com>
* resolv/arpa/nameser.h: Document that ns_t_a6 is deprecated.
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Don't use get_fast_max to
determine highest fast bin to consolidate, always look into all of
them.
(do_check_malloc_state): Only require for empty bins for large
sizes in main arena.
* libio/stdio.h: Add more __wur attributes.
2006-11-12 Andreas Jaeger <aj@suse.de>
[BZ #2510]
* manual/search.texi (Hash Search Function): Clarify.
(Array Search Function): Clarify.
2006-11-12 Joseph Myers <joseph@codesourcery.com>
[BZ #2830]
* math/atest-exp.c (main): Cast hex value to mp_limb_t before
shifting.
* math/atest-exp2.c (read_mpn_hex): Likewise.
* math/atest-sincos.c (main): Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
version GLIBC_2.6.
* Versions.def: Add GLIBC_2.6 for libc.
* sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.
2006-10-11 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c (_int_malloc): Remove unused any_larger variable.
* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.
* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
* sysdeps/generic/unsecvars.h: Add NIS_PATH.
2006-10-11 Ulrich Drepper <drepper@redhat.com>
* include/atomic.c: Define catomic_* operations.
* sysdeps/x86_64/bits/atomic.h: Likewise. Fix a few minor problems.
* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
* malloc/memusage.c: Likewise.
* gmon/mcount.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-profile.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-fptr.c: Likewise.
* resolv/res_libc.c: Likewise.
2006-10-10 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/utimes.c: Use a union to avoid an improper cast.
* sysdeps/mach/hurd/futimes.c: Likewise.
* sysdeps/mach/hurd/lutimes.c: Likewise.
2006-10-09 Ulrich Drepper <drepper@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Include <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
* po/sv.po: Update from translation team.
2006-10-07 Ulrich Drepper <drepper@redhat.com>
* Versions.def: Add GLIBC_2.6 to libpthread.
* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
(versioned_symbol): Likewise.
(compat_symbol): Likewise.
* po/tr.po: Update from translation team.
* nis/Banner: Removed. It's been integral part forever and the
author info is incomplete anyway.
* libio/Banner: Likewise.
2006-10-06 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.5.90 for new development tree.
2007-01-11 21:51:07 +00:00
|
|
|
if (free_value)
|
1999-04-12 09:07:36 +00:00
|
|
|
free (value);
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
if (!colon_seen && value)
|
|
|
|
/* Substitute NULL */
|
|
|
|
goto success;
|
1998-03-22 09:04:23 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
value = pattern ? __strdup (pattern) : pattern;
|
|
|
|
free_value = 1;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
if (pattern && !value)
|
|
|
|
goto no_space;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
break;
|
1998-03-12 17:26:19 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
case ACT_NONNULL_SUBST:
|
|
|
|
if (value && (*value || !colon_seen))
|
|
|
|
{
|
[BZ #2510, BZ #2830, BZ #3137, BZ #3313, BZ #3426, BZ #3465, BZ #3480, BZ #3483, BZ #3493, BZ #3514, BZ #3515, BZ #3664, BZ #3673, BZ #3674]
2007-01-11 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/soft-fp/sfp-machine.h: Remove.
* sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise.
2007-01-10 Ulrich Drepper <drepper@redhat.com>
* io/fts.c: Make sure fts_cur is always valid after return from
fts_read.
Patch by Miloslav Trmac <mitr@redhat.com>.
2006-10-27 Richard Sandiford <richard@codesourcery.com>
* elf/elf.h (R_MIPS_GLOB_DAT): Define.
(R_MIPS_NUM): Bump by 1.
2007-01-03 Jakub Jelinek <jakub@redhat.com>
* posix/execvp.c: Include alloca.h.
(allocate_scripts_argv): Renamed to...
(scripts_argv): ... this. Don't allocate buffer here nor count
arguments.
(execvp): Use alloca if possible.
* posix/Makefile: Add rules to build and run tst-vfork3 test.
* posix/tst-vfork3.c: New test.
* stdlib/Makefile (tst-strtod3-ENV): Define.
2007-01-02 Ulrich Drepper <drepper@redhat.com>
* posix/getconf.c: Update copyright year.
* nss/getent.c: Likewise.
* iconv/iconvconfig.c: Likewise.
* iconv/iconv_prog.c: Likewise.
* elf/ldconfig.c: Likewise.
* catgets/gencat.c: Likewise.
* csu/version.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/sprof.c (print_version): Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* nscd/nscd.c (print_version): Likewise.
* debug/xtrace.sh: Likewise.
* malloc/memusage.sh: Likewise.
* malloc/mtrace.pl: Likewise.
* debug/catchsegv.sh: Likewise.
2006-12-24 Ulrich Drepper <drepper@redhat.com>
* malloc/malloc.c (sYSMALLOc): Remove some unnecessary alignment
attempts.
2006-12-23 Ulrich Drepper <drepper@redhat.com>
* posix/wordexp.c: Remove some unnecessary tests.
2006-12-20 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
* sysdeps/unix/sysv/linux/sh/bits/shm.h: New file.
* nss/getXXbyYY_r.c: Include atomic.h.
(INTERNAL (REENTRANT_NAME)): Write startp after start_fct,
add atomic_write_barrier () in between.
2006-11-28 Jakub Jelinek <jakub@redhat.com>
* elf/dl-support.c: Include dl-procinfo.h.
* sysdeps/powerpc/dl-procinfo.h (PPC_PLATFORM_POWER4,
PPC_PLATFORM_PPC970, PPC_PLATFORM_POWER5, PPC_PLATFORM_POWER5_PLUS,
PPC_PLATFORM_POWER6, PPC_PLATFORM_CELL_BE, PPC_PLATFORM_POWER6X):
Define.
(_dl_string_platform): Use PPC_PLATFORM_* macros instead of
hardcoded constants.
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platform): Use
PPC_PLATFORM_* macros for array designators.
2006-11-11 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_cap_flags): Add 3 new cap
names to the beginning.
(_dl_powerpc_platforms): Add "power6x".
* sysdeps/powerpc/dl-procinfo.h (_DL_HWCAP_FIRST): Decrease.
(HWCAP_IMPORTANT): Add PPC_FEATURE_HAS_DFP.
(_DL_PLATFORMS_COUNT): Increase.
(_dl_string_platform): Handle power6x case.
* sysdeps/powerpc/sysdep.h (PPC_FEATURE_PA6T, PPC_FEATURE_HAS_DFP,
PPC_FEATURE_POWER6_EXT): Define.
(PPC_FEATURE_POWER5, PPC_FEATURE_POWER5_PLUS): Correct Comment.
[-2^31 .. 2^31) range.
* sysdeps/unix/sysv/linux/bits/statvfs.h: Define ST_RELATIME.
* sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
Handle relatime mount option.
2006-12-13 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Include
kernel-features.h.
2006-12-11 Ulrich Drepper <drepper@redhat.com>
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Parse thousand
separators also if no non-zero digits found.
* stdlib/Makefile (tests): Add tst-strtod3.
[BZ #3664]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix test to recognize
empty parsed strings.
* stdlib/Makefile (tests): Add tst-strtod2.
* stdlib/tst-strtod2.c: New file.
[BZ #3673]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Fix exp_limit
computation.
* stdlib/Makefile (tests): Add tst-atof2.
* stdlib/tst-atof2.c: New file.
[BZ #3674]
* stdlib/strtod_l.c (____STRTOF_INTERNAL): Adjust exponent value
correctly if removing trailing zero of hex-float.
* stdlib/Makefile (tests): Add tst-atof1.
* stdlib/tst-atof1.c: New file.
* misc/mntent_r.c (__hasmntopt): Check p[optlen] even when p == rest.
Start searching for next comma at p rather than rest.
* misc/Makefile (tests): Add tst-mntent2.
* misc/tst-mntent2.c: New test.
2006-12-08 Ulrich Drepper <drepper@redhat.com>
* malloc/memusage.c: Handle realloc with new size of zero and
non-NULL pointer correctly.
(me): Really write first record twice.
(struct entry): Make format bi-arch safe.
(dest): Write out more realloc statistics.
* malloc/memusagestat.c (struct entry): Make format bi-arch safe.
2006-12-05 Jakub Jelinek <jakub@redhat.com>
* nis/nis_subr.c (nis_getnames): Revert last change.
2006-12-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/unix/sysv/linux/sh/sys/io.h: Removed.
2006-11-30 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/i386/i686/memcmp.S: Use jump table as the base of
jump table entries.
2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost
`clone' function to ensure proper unwinding stop of gdb.
* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2006-12-01 Ulrich Drepper <drepper@redhat.com>
* nscd/nscd.init: Remove obsolete and commented-out -S option
handling.
2006-11-23 Jakub Jelinek <jakub@redhat.com>
[BZ #3514]
* manual/string.texi (strncmp): Fix pastos from wcscmp description.
[BZ #3515]
* manual/string.texi (strtok): Remove duplicate paragraph.
2006-12-01 Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Fix compatibility with
libgcc not supporting `rflags' unwinding (register # >= 17).
2006-11-30 Jakub Jelinek <jakub@redhat.com>
* sunrpc/svc_run.c (svc_run): Set my_pollfd to new_pollfd if realloc
succeeded.
2006-11-29 Daniel Jacobowitz <dan@codesourcery.com>
Jakub Jelinek <jakub@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/sigaction.c (restore_rt): Add correct
unwind information.
* sysdeps/unix/sysv/linux/x86_64/Makefile: Provide symbols for
'restore_rt' even in the 'signal' directory.
* sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: Extend the regs list.
malloc crashed. Don't allocate memory unnecessarily in each
loop.
2006-10-21 Jakub Jelinek <jakub@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Fix last change.
2006-11-20 Ulrich Drepper <drepper@redhat.com>
* resolv/mapv4v6addr.h (map_v4v6_address): Optimize a bit.
2006-11-18 Bruno Haible <bruno@clisp.org>
* sysdeps/unix/sysv/linux/i386/getgroups.c (__getgroups): Invoke
__sysconf only after having tried to call getgroups32.
2006-11-19 Ulrich Drepper <drepper@redhat.com>
* nss/nss_files/files-hosts.c (LINE_PARSER): Support IPv6-style
addresses for IPv4 queries if they can be mapped.
2006-11-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/x86_64/fpu/s_copysignf.S (__copysignf): Switch to .text.
* sysdeps/x86_64/fpu/s_copysign.S (__copysign): Likewise.
(signmask): Add .size directive.
(othermask): Add .type directive.
2006-11-14 Ulrich Drepper <drepper@redhat.com>
* po/nl.po: Update from translation team.
* timezone/zdump.c: Redo fix for BZ #3137.
2006-11-14 Jakub Jelinek <jakub@redhat.com>
* nss/nss_files/files-alias.c (get_next_alias): Set line back
to first_unused after parsing :include: file.
* timezone/africa: Update from tzdata2006o.
* timezone/antarctica: Likewise.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/iso3166.tab: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/zone.tab: Likewise.
* time/tzfile.c (__tzfile_read): Extend to handle new file format
on machines with 64-bit time_t.
* timezone/checktab.awk: Update from tzcode2006o.
* timezone/ialloc.c: Likewise.
* timezone/private.h: Likewise.
* timezone/scheck.c: Likewise.
* timezone/tzfile.h: Likewise.
* timezone/tzselect.ksh: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.
[BZ #3483]
* elf/ldconfig.c (main): Call setlocale and textdomain.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
[BZ #3480]
* manual/argp.texi: Fix typos.
* manual/charset.texi: Likewise.
* manual/errno.texi: Likewise.
* manual/filesys.texi: Likewise.
* manual/lang.texi: Likewise.
* manual/maint.texi: Likewise.
* manual/memory.texi: Likewise.
* manual/message.texi: Likewise.
* manual/resource.texi: Likewise.
* manual/search.texi: Likewise.
* manual/signal.texi: Likewise.
* manual/startup.texi: Likewise.
* manual/stdio.texi: Likewise.
* manual/sysinfo.texi: Likewise.
* manual/syslog.texi: Likewise.
* manual/time.texi: Likewise.
Patch by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
[BZ #3465]
* sunrpc/clnt_raw.c: Minimal message improvements.
* sunrpc/pm_getmaps.c: Likewise.
* nis/nss_nisplus/nisplus-publickey.c: Likewise.
* nis/nis_print_group_entry.c: Likewise.
* locale/programs/repertoire.c: Likewise.
* locale/programs/charmap.c: Likewise.
* malloc/memusage.sh: Likewise.
* elf/dl-deps.c: Likewise.
* locale/programs/ld-collate.c: Likewise.
* libio/vswprintf.c: Likewise.
* malloc/memusagestat.c: Likewise.
* sunrpc/auth_unix.c: Likewise.
* sunrpc/rpc_main.c: Likewise.
* nscd/cache.c: Likewise.
* locale/programs/repertoire.c: Unify output messages.
* locale/programs/charmap.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* elf/ldconfig.c: Likewise.
* nscd/selinux.c: Likewise.
* elf/cache.c: Likewise.
Patch mostly by Benno Schulenberg <bensberg@justemail.net>.
2006-11-10 Jakub Jelinek <jakub@redhat.com>
* string/strxfrm_l.c (STRXFRM): Fix trailing \1 optimization
if N is one bigger than return value.
* string/tst-strxfrm2.c (do_test): Also test strxfrm with l1 + 1
and l1 last arguments, if buf is defined, verify the return value
equals to strlen (buf) and verify no byte beyond passed length
is modified.
2006-11-10 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
* sysdeps/gnu/siglist.c (__old_sys_siglist, __old_sys_sigabbrev):
Use __new_sys_siglist instead of _sys_siglist_internal as
second macro argument.
(_old_sys_siglist): Use declare_symbol_alias macro instead of
strong_alias.
2006-11-09 Ulrich Drepper <drepper@redhat.com>
[BZ #3493]
* posix/unistd.h (sysconf): Remove const attribute.
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Fix test for
temporary or deprecated addresses.
Patch by Sridhar Samudrala <sri@us.ibm.com>.
* string/Makefile (tests): Add tst-strxfrm2.
* string/tst-strxfrm2.c: New file.
2006-10-09 Jakub Jelinek <jakub@redhat.com>
* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0
rather than r->r_brk.
* string/strxfrm_l.c (STRXFRM): Do the trailing \1 removal
optimization even if needed > n.
2006-11-07 Jakub Jelinek <jakub@redhat.com>
* include/libc-symbols.h (declare_symbol): Rename to...
(declare_symbol_alias): ... this. Add ORIGINAL argument, imply
strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes
.size directive.
* sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias
changes.
* sysdeps/gnu/siglist.c: Likewise.
2006-11-03 Steven Munroe <sjmunroe@us.ibm.com>
* sysdeps/powerpc/fpu/bits/mathinline.h
[__LIBC_INTERNAL_MATH_INLINES]: Moved to ...
* sysdeps/powerpc/fpu/math_private.h: ...here. New file.
2006-11-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
Update handling of cache descriptor 0x49 for new models.
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (intel_check_word):
Likewise.
2006-11-02 Ulrich Drepper <drepper@redhat.com>
* configure.in: Work around ld --help change and avoid -z relro
test completely if the architecture doesn't care about security.
2006-11-01 Ulrich Drepper <drepper@redhat.com>
* po/sv.po: Update from translation team.
2006-10-31 Ulrich Drepper <drepper@redhat.com>
* stdlib/atexit.c (atexit): Don't mark as hidden when used to
generate compatibility version.
2006-10-29 Ulrich Drepper <drepper@redhat.com>
* configure.in: Relax -z relro requirement a bit.
* po/sv.po: Update from translation team.
2006-10-29 Jakub Jelinek <jakub@redhat.com>
* elf/dl-sym.c (do_sym): Use RTLD_SINGLE_THREAD_P.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Likewise.
* elf/dl-close.c (_dl_close_worker): Likewise.
* elf/dl-open.c (_dl_open_worker): Likewise.
* sysdeps/generic/sysdep-cancel.h (RTLD_SINGLE_THREAD_P): Define.
* configure.in: Require assembler support for visibility, compiler
support for visibility and aliases, linker support for various -z
options.
* Makeconfig: Remove conditional code which now is unnecessary.
* config.h.in: Likewise.
* config.make.in: Likewise.
* dlfcn/Makefile: Likewise.
* elf/Makefile: Likewise.
* elf/dl-load.c: Likewise.
* elf/rtld.c: Likewise.
* include/libc-symbols.h: Likewise.
* include/stdio.h: Likewise.
* io/Makefile: Likewise.
* io/fstat.c: Likewise.
* io/fstat64.c: Likewise.
* io/fstatat.c: Likewise.
* io/fstatat64.c: Likewise.
* io/lstat.c: Likewise.
* io/lstat64.c: Likewise.
* io/mknod.c: Likewise.
* io/mknodat.c: Likewise.
* io/stat.c: Likewise.
* io/stat64.c: Likewise.
* libio/stdio.c: Likewise.
* nscd/Makefile: Likewise.
* stdlib/Makefile: Likewise.
* stdlib/atexit.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/i386/sysdep.h: Likewise.
* sysdeps/i386/i686/memcmp.S: Likewise.
* sysdeps/powerpc/powerpc32/sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
* Makerules: USE_TLS support is now default.
* tls.make.c: Likewise.
* csu/Versions: Likewise.
* csu/libc-start.c: Likewise.
* csu/libc-tls.c: Likewise.
* csu/version.c: Likewise.
* dlfcn/dlinfo.c: Likewise.
* elf/dl-addr.c: Likewise.
* elf/dl-cache.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-iteratephdr.c: Likewise.
* elf/dl-load.c: Likewise.
* elf/dl-lookup.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-reloc.c: Likewise.
* elf/dl-support.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-sysdep.c: Likewise.
* elf/dl-tls.c: Likewise.
* elf/ldconfig.c: Likewise.
* elf/rtld.c: Likewise.
* elf/tst-tls-dlinfo.c: Likewise.
* elf/tst-tls1.c: Likewise.
* elf/tst-tls10.h: Likewise.
* elf/tst-tls14.c: Likewise.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/tst-tls4.c: Likewise.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* elf/tst-tlsmod1.c: Likewise.
* elf/tst-tlsmod13.c: Likewise.
* elf/tst-tlsmod13a.c: Likewise.
* elf/tst-tlsmod14a.c: Likewise.
* elf/tst-tlsmod2.c: Likewise.
* elf/tst-tlsmod3.c: Likewise.
* elf/tst-tlsmod4.c: Likewise.
* elf/tst-tlsmod5.c: Likewise.
* elf/tst-tlsmod6.c: Likewise.
* include/errno.h: Likewise.
* include/link.h: Likewise.
* include/tls.h: Likewise.
* locale/global-locale.c: Likewise.
* locale/localeinfo.h: Likewise.
* malloc/arena.c: Likewise.
* malloc/hooks.c: Likewise.
* malloc/malloc.c: Likewise.
* resolv/Versions: Likewise.
* sysdeps/alpha/dl-machine.h: Likewise.
* sysdeps/alpha/libc-tls.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/generic/tls.h: Likewise.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/ia64/dl-machine.h: Likewise.
* sysdeps/ia64/libc-tls.c: Likewise.
* sysdeps/mach/hurd/fork.c: Likewise.
* sysdeps/mach/hurd/i386/tls.h: Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.c: Likwise.
* sysdeps/powerpc/powerpc32/dl-machine.h: Likewise.
* sysdeps/powerpc/powerpc64/dl-machine.h: Likewise.
* sysdeps/s390/libc-tls.c: Likewise.
* sysdeps/s390/s390-32/dl-machine.h: Likewise.
* sysdeps/s390/s390-64/dl-machine.h: Likewise.
* sysdeps/sh/dl-machine.h: Likewise.
* sysdeps/sparc/sparc32/dl-machine.h: Likewise.
* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
* sysdeps/x86_64/dl-machine.h: Likewise.
[BZ #3426]
* stdlib/stdlib.h: Adjust comment for canonicalize_file_name to
reality.
2006-10-27 Jakub Jelinek <jakub@redhat.com>
* elf/dl-lookup.c (_dl_debug_bindings): Remove unused symbol_scope
argument.
(_dl_lookup_symbol_x): Adjust caller.
* sysdeps/generic/ldsodefs.h (struct link_namespaces): Remove
_ns_global_scope.
* elf/rtld.c (dl_main): Don't initialize _ns_global_scope.
* elf/dl-libc.c: Revert l_scope name changes.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* elf/dl-close.c (_dl_close): Likewise.
* elf/dl-open.c (dl_open_worker): Likewise. If not SINGLE_THREAD_P,
always use __rtld_mrlock_{change,done}. Always free old scope list
here if not l_scope_mem.
* elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Revert l_scope name
change. Never free scope list here. Just __rtld_mrlock_lock before
the lookup and __rtld_mrlock_unlock it after the lookup.
* elf/dl-sym.c: Likewise.
* include/link.h (struct r_scoperec): Remove.
(struct link_map): Replace l_scoperec with l_scope, l_scoperec_mem
with l_scope_mem and l_scoperec_lock with l_scope_lock.
2006-10-25 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/netinet/tcp.h: Define TCP_CONGESTION.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* configure.in: Disable building profile libraries by default.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* elf/dl-lookup.c (_dl_lookup_symbol_x): Add warning to
_dl_lookup_symbol_x code.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* elf/dl-runtime.c: Include sysdep-cancel.h.
(_dl_fixup, _dl_profile_fixup): Use __rtld_mrlock_* and
scoperec->nusers only if !SINGLE_THREAD_P. Use atomic_*
instead of catomic_* macros.
* elf/dl-sym.c: Include sysdep-cancel.h.
(do_sym): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-close.c: Include sysdep-cancel.h.
(_dl_close): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
* elf/dl-open.c: Include sysdep-cancel.h.
(dl_open_worker): Use __rtld_mrlock_* and scoperec->nusers only
if !SINGLE_THREAD_P. Use atomic_* instead of catomic_* macros.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Set maxfb to address of last
fastbin rather than end of fastbin array.
2006-10-18 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/i486/bits/atomic.h (catomic_decrement): Use correct
body macro.
* sysdeps/x86_64/bits/atomic.h
(__arch_c_compare_and_exchange_val_64_acq): Add missing casts.
(catomic_decrement): Use correct body macro.
2006-10-17 Jakub Jelinek <jakub@redhat.com>
* include/atomic.h: Add a unique prefix to all local variables
in macros.
* csu/tst-atomic.c (do_test): Test also catomic_* macros.
2006-10-14 Ulrich Drepper <drepper@redhat.com>
* resolv/arpa/nameser.h: Document that ns_t_a6 is deprecated.
[BZ #3313]
* malloc/malloc.c (malloc_consolidate): Don't use get_fast_max to
determine highest fast bin to consolidate, always look into all of
them.
(do_check_malloc_state): Only require for empty bins for large
sizes in main arena.
* libio/stdio.h: Add more __wur attributes.
2006-11-12 Andreas Jaeger <aj@suse.de>
[BZ #2510]
* manual/search.texi (Hash Search Function): Clarify.
(Array Search Function): Clarify.
2006-11-12 Joseph Myers <joseph@codesourcery.com>
[BZ #2830]
* math/atest-exp.c (main): Cast hex value to mp_limb_t before
shifting.
* math/atest-exp2.c (read_mpn_hex): Likewise.
* math/atest-sincos.c (main): Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add epoll_pwait.
* sysdeps/unix/sysv/linux/sys/epoll.h: Declare epoll_pwait.
* sysdeps/unix/sysv/linux/Versions (libc): Add epoll_pwait for
version GLIBC_2.6.
* Versions.def: Add GLIBC_2.6 for libc.
* sysdeps/i386/i486/bits/atomic.h: Add catomic_* support.
2006-10-11 Jakub Jelinek <jakub@redhat.com>
* malloc/malloc.c (_int_malloc): Remove unused any_larger variable.
* nis/nis_defaults.c (__nis_default_access): Don't call getenv twice.
* nis/nis_subr.c (nis_getnames): Use __secure_getenv instead of getenv.
* sysdeps/generic/unsecvars.h: Add NIS_PATH.
2006-10-11 Ulrich Drepper <drepper@redhat.com>
* include/atomic.c: Define catomic_* operations.
* sysdeps/x86_64/bits/atomic.h: Likewise. Fix a few minor problems.
* stdlib/cxa_finalize.c: Use catomic_* operations instead of atomic_*.
* malloc/memusage.c: Likewise.
* gmon/mcount.c: Likewise.
* elf/dl-close.c: Likewise.
* elf/dl-open.c: Likewise.
* elf/dl-profile.c: Likewise.
* elf/dl-sym.c: Likewise.
* elf/dl-runtime.c: Likewise.
* elf/dl-fptr.c: Likewise.
* resolv/res_libc.c: Likewise.
2006-10-10 Roland McGrath <roland@frob.com>
* sysdeps/mach/hurd/utimes.c: Use a union to avoid an improper cast.
* sysdeps/mach/hurd/futimes.c: Likewise.
* sysdeps/mach/hurd/lutimes.c: Likewise.
2006-10-09 Ulrich Drepper <drepper@redhat.com>
Jakub Jelinek <jakub@redhat.com>
Implement reference counting of scope records.
* elf/dl-close.c (_dl_close): Remove all scopes from removed objects
from the list in objects which remain. Always allocate new scope
record.
* elf/dl-open.c (dl_open_worker): When growing array for scopes,
don't resize, allocate a new one.
* elf/dl-runtime.c: Update reference counters before using a scope
array.
* elf/dl-sym.c: Likewise.
* elf/dl-libc.c: Adjust for l_scope name change.
* elf/dl-load.c: Likewise.
* elf/dl-object.c: Likewise.
* elf/rtld.c: Likewise.
* include/link.h: Include <rtld-lowlevel.h>. Define struct
r_scoperec. Replace r_scope with pointer to r_scoperec structure.
Add l_scoperec_lock.
* sysdeps/generic/ldsodefs.h: Include <rtld-lowlevel.h>.
* sysdeps/generic/rtld-lowlevel.h: New file.
* include/atomic.h: Rename atomic_and to atomic_and_val and
atomic_or to atomic_or_val. Define new macros atomic_and and
atomic_or which do not return values.
* sysdeps/x86_64/bits/atomic.h: Define atomic_and and atomic_or.
Various cleanups.
* sysdeps/i386/i486/bits/atomic.h: Likewise.
* po/sv.po: Update from translation team.
2006-10-07 Ulrich Drepper <drepper@redhat.com>
* Versions.def: Add GLIBC_2.6 to libpthread.
* include/shlib-compat.h (SHLIB_COMPAT): Expand parameters before use.
(versioned_symbol): Likewise.
(compat_symbol): Likewise.
* po/tr.po: Update from translation team.
* nis/Banner: Removed. It's been integral part forever and the
author info is incomplete anyway.
* libio/Banner: Likewise.
2006-10-06 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.5.90 for new development tree.
2007-01-11 21:51:07 +00:00
|
|
|
if (free_value)
|
1999-04-12 09:07:36 +00:00
|
|
|
free (value);
|
1998-03-12 17:26:19 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
value = pattern ? __strdup (pattern) : pattern;
|
|
|
|
free_value = 1;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
if (pattern && !value)
|
|
|
|
goto no_space;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1999-04-12 09:07:36 +00:00
|
|
|
break;
|
|
|
|
}
|
1998-03-08 15:26:29 +00:00
|
|
|
|
|
|
|
/* Substitute NULL */
|
1998-03-25 15:21:09 +00:00
|
|
|
if (free_value)
|
|
|
|
free (value);
|
1998-09-13 13:37:57 +00:00
|
|
|
goto success;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1998-03-17 17:27:52 +00:00
|
|
|
case ACT_NULL_ASSIGN:
|
1998-03-08 15:26:29 +00:00
|
|
|
if (value && *value)
|
|
|
|
/* Substitute parameter */
|
|
|
|
break;
|
|
|
|
|
|
|
|
if (!colon_seen && value)
|
|
|
|
{
|
|
|
|
/* Substitute NULL */
|
1998-03-25 15:21:09 +00:00
|
|
|
if (free_value)
|
|
|
|
free (value);
|
1998-09-13 13:37:57 +00:00
|
|
|
goto success;
|
1998-03-08 15:26:29 +00:00
|
|
|
}
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
if (free_value)
|
1999-04-12 09:07:36 +00:00
|
|
|
free (value);
|
|
|
|
|
|
|
|
value = pattern ? __strdup (pattern) : pattern;
|
|
|
|
free_value = 1;
|
|
|
|
|
|
|
|
if (pattern && !value)
|
|
|
|
goto no_space;
|
|
|
|
|
2015-03-11 15:55:50 +00:00
|
|
|
__setenv (env, value ?: "", 1);
|
1999-04-12 09:07:36 +00:00
|
|
|
break;
|
1998-03-08 15:26:29 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
default:
|
1998-03-08 15:26:29 +00:00
|
|
|
assert (! "Unrecognised action!");
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (env);
|
|
|
|
env = NULL;
|
|
|
|
free (pattern);
|
|
|
|
pattern = NULL;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-03-13 17:02:23 +00:00
|
|
|
if (seen_hash)
|
1998-03-08 15:26:29 +00:00
|
|
|
{
|
|
|
|
char param_length[21];
|
|
|
|
param_length[20] = '\0';
|
|
|
|
*word = w_addstr (*word, word_length, max_length,
|
1998-03-22 09:04:23 +00:00
|
|
|
_itoa_word (value ? strlen (value) : 0,
|
|
|
|
¶m_length[20], 10, 0));
|
|
|
|
if (free_value)
|
|
|
|
{
|
|
|
|
assert (value != NULL);
|
|
|
|
free (value);
|
|
|
|
}
|
|
|
|
|
1998-03-08 15:26:29 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
|
1998-03-22 09:04:23 +00:00
|
|
|
if (value == NULL)
|
|
|
|
return 0;
|
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
if (quoted || !pwordexp)
|
|
|
|
{
|
|
|
|
/* Quoted - no field split */
|
|
|
|
*word = w_addstr (*word, word_length, max_length, value);
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
1998-01-25 17:01:47 +00:00
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* Need to field-split */
|
|
|
|
char *value_copy = __strdup (value); /* Don't modify value */
|
|
|
|
char *field_begin = value_copy;
|
|
|
|
int seen_nonws_ifs = 0;
|
|
|
|
|
|
|
|
if (free_value)
|
|
|
|
free (value);
|
|
|
|
|
|
|
|
if (value_copy == NULL)
|
|
|
|
goto no_space;
|
|
|
|
|
|
|
|
do
|
|
|
|
{
|
|
|
|
char *field_end = field_begin;
|
|
|
|
char *next_field;
|
|
|
|
|
|
|
|
/* If this isn't the first field, start a new word */
|
|
|
|
if (field_begin != value_copy)
|
|
|
|
{
|
|
|
|
if (w_addword (pwordexp, *word) == WRDE_NOSPACE)
|
|
|
|
{
|
|
|
|
free (value_copy);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
|
|
|
*word = w_newword (word_length, max_length);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Skip IFS whitespace before the field */
|
|
|
|
field_begin += strspn (field_begin, ifs_white);
|
|
|
|
|
|
|
|
if (!seen_nonws_ifs && *field_begin == 0)
|
|
|
|
/* Nothing but whitespace */
|
|
|
|
break;
|
|
|
|
|
|
|
|
/* Search for the end of the field */
|
|
|
|
field_end = field_begin + strcspn (field_begin, ifs);
|
|
|
|
|
|
|
|
/* Set up pointer to the character after end of field and
|
2011-09-10 18:34:15 +00:00
|
|
|
skip whitespace IFS after it. */
|
1998-09-17 19:51:33 +00:00
|
|
|
next_field = field_end + strspn (field_end, ifs_white);
|
|
|
|
|
|
|
|
/* Skip at most one non-whitespace IFS character after the field */
|
|
|
|
seen_nonws_ifs = 0;
|
|
|
|
if (*next_field && strchr (ifs, *next_field))
|
|
|
|
{
|
|
|
|
seen_nonws_ifs = 1;
|
|
|
|
next_field++;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Null-terminate it */
|
|
|
|
*field_end = 0;
|
|
|
|
|
|
|
|
/* Tag a copy onto the current word */
|
|
|
|
*word = w_addstr (*word, word_length, max_length, field_begin);
|
|
|
|
|
|
|
|
if (*word == NULL && *field_begin != '\0')
|
|
|
|
{
|
|
|
|
free (value_copy);
|
|
|
|
goto no_space;
|
|
|
|
}
|
|
|
|
|
|
|
|
field_begin = next_field;
|
|
|
|
}
|
|
|
|
while (seen_nonws_ifs || *field_begin);
|
|
|
|
|
|
|
|
free (value_copy);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-09-13 13:37:57 +00:00
|
|
|
success:
|
|
|
|
error = 0;
|
|
|
|
goto do_error;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-09-13 13:37:57 +00:00
|
|
|
no_space:
|
|
|
|
error = WRDE_NOSPACE;
|
|
|
|
goto do_error;
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
|
|
|
|
syntax:
|
1998-09-13 13:37:57 +00:00
|
|
|
error = WRDE_SYNTAX;
|
|
|
|
|
|
|
|
do_error:
|
2006-05-10 07:58:39 +00:00
|
|
|
free (env);
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (pattern);
|
Update.
1997-10-26 18:12 Ulrich Drepper <drepper@cygnus.com>
* libio/genops.c: Partial undo of last patch.
* libio/stdfiles.c: Likewise.
* libio/iofdopen.c: Use _IO_FILE_complete, not _IO_file_plus.
* libio/iopopen.c: Likewise.
* libio/iovdprintf.c: Likewise.
* libio/libio.h: Remove duplicated `;'.
* libio/stdio.c: Remove misleading comment.
* libio/stdio.h: Declare standard streams as variables.
* login/Makefile (distribute): Add README.utmpd.
* login/README.utmpd: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
* manual/job.texi: Document tcgetsid.
* manual/pattern.texi: Document globfree.
* manual/terminal.texi: Document B38400 ... B460800.
* posix/confstr.c: Print "-D_FILE_OFFSET_SIZE=64" for _CS_LFS_CFLAGS.
* posix/unistd.h: Add explanation of _POSIX_* constants.
* posix/unists.h: Add prototypes for __pread, __pread64, __pwrite
and __pwrite64.
* sysdeps/generic/pread.c: Define as __pread and make pread weak alias.
* sysdeps/generic/pread64.c: Likewise.
* sysdeps/generic/pwrite.c: Likewise.
* sysdeps/generic/pwrite64.c: Likewise.
* sysdeps/posix/pread.c: Likewise.
* sysdeps/posix/pwrite.c: Likewise.
* sysdeps/posix/pread64.c: New file.
* sysdeps/posix/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=posix] (sysdep_routines):
Add s_pread64 and s_pwrite64.
* sysdeps/unix/sysv/linux/pread.c: New file.
* sysdeps/unix/sysv/linux/pread64.c: New file.
* sysdeps/unix/sysv/linux/pwrite.c: New file.
* sysdeps/unix/sysv/linux/pwrite64.c: New file.
* sysdeps/unix/sysv/linux/s_pread64.c: New file.
* sysdeps/unix/sysv/linux/s_pwrite64.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add pread and pwrite.
* sysdeps/unix/sysv/linux/alpha/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pread64.c: New (empty) file.
* sysdeps/unix/sysv/linux/sparc/sparc64/pwrite64.c: New (empty) file.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add pread and pwrite
with weak aliases for *64 functions.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* string/bits/string2.h: Add casts to allow void * arguments.
* sysdeps/i386/i486/bits/string.h: Define index and rindex only if
__USE_BSD or __USE_XOPEN_EXTENDED.
* sysdeps/unix/sysv/linux/bits/socket.h: Add SCM_RIGHTS and other
SCM_* constants from kernel header.
* termios/termios.h: Add prototype for tcgetsid.
1997-10-26 13:26 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/clnt_perr.c: Add trailing '\0' to strings.
* sunrpc/get_myaddr.c: Include rpc/clnt.h for prototypes.
* sunrpc/pmap_clnt.c: Use get_myaddress from header file.
1997-10-26 05:26 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Punt if any directory mentioned in the
enable-add-on parameter does not exist.
1997-10-25 19:25 Ulrich Drepper <drepper@cygnus.com>
* termios/Makefile (routines): Add tcgetsid.
* termios/tcgetsid.c: New file.
Provided by Mark M. Kettenis <kettenis@phys.uva.nl>.
1997-10-25 18:56 Ulrich Drepper <drepper@cygnus.com>
* stdlib/stdlib.h: Remove mblen optimization.
* stdlib/mblen.c: Rewrite to make sure global state is not changed.
Reported by anderson@metrolink.com.
1997-10-19 21:51 Wolfram Gloger <wg@wolfram.dent.med.uni-muenchen.de>
* malloc/thread-m.h [_LIBC]: Use new __libc_internal_tsd_{set,get}
interface for thread-specific data.
1997-10-25 06:51 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-addr.c: Use braces for correct logical grouping.
Patch by Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>.
1997-10-18 09:15 Geoff Keating <geoffk@ozemail.com.au>
* io/ftwtest-sh: Sometimes /tmp is a symlink to somewhere more
convenient; that caused this test to break.
* sysdeps/powerpc/dl-machine.h: Fix typo.
* sysdeps/powerpc/bits/fenv.h: Don't use floating-point registers
when -msoft-float is in effect, because this causes compilation to
stop.
* sysdeps/powerpc/bits/mathinlines.h: Likewise.
* rpm/template: Add description, use RPM flags rather than the ones
used to build the spec. Build in a temporary directory, not /.
* elf/dl-lookup.c: Don't include _itoa.h, it's not used.
* elf/dl-minimal.c: Use _itoa_word rather than _itoa. It seems that
_itoa is the only routine that ld.so uses that requires something
from libgcc.a on powerpc, so it would be best to avoid it in ld.so.
* elf/rtld.c: Likewise.
* sysdeps/generic/_strerror.c: Likewise.
* stdio-common/_itoa.c: Split out digits strings.
* stdio-common/itoa-digits.c: New file.
* stdio-common/Makefile: Add itoa-digits.
1997-10-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/filesys.texi (Scanning Directory Content): Document error
case more.
* dirent/scandir.c (scandir): Ignore errors from select function.
Suggested by urbanw@cs.umu.se (closes PR libc/316).
1997-10-25 06:18 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Corrections.
Patch by Erik Troan <ewt@redhat.com>.
1997-10-25 04:00 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Favour exact
matching of version function if both the general (1) and
glibc-specific (3) entry are present.
1997-10-22 18:47 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* sunrpc/rpc/clnt.h: Add get_myaddress prototype.
* nis/libnsl.map: Fix typo.
* nis/nis_call.c: Fix memory leak.
1997-10-22 19:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/memcmp.c: Define __P if not defined before.
Patch by Jim Meyering <meyering@eng.ascend.com>.
1997-10-21 22:09 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sys/prctl.h: New file by Richard Gooch
<rgooch@atnf.csiro.au>.
1997-10-21 21:50 Ulrich Drepper <drepper@cygnus.com>
* misc/syslog.c (vsyslog): Open console with O_NOCTTY.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1997-10-21 18:07 Ulrich Drepper <drepper@cygnus.com>
* posix/wordexp.c: Improve handling of $... expressions.
Patch by Tim Waugh <tim@cyberelk.demon.co.uk>.
1997-10-21 16:12 Ulrich Drepper <drepper@cygnus.com>
* manual/string.texi: Correct return values of bcopy and bzero.
Patch by Matthew Wilcox <willy@odie.barnet.ac.uk>.
1997-10-18 15:03 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Correct types of some
elements in struct msghdr and struct cmsghdr, to keep in step with
the kernel.
1997-10-17 22:29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/init-first.h: Fix another
bug in startup code.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 20:17 Richard Henderson <rth@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Dump args to the
stack and give the kernel a pointer. Use the sysdep.h macros.
1997-10-17 04:07 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/sparc/sparc32/elf/start.S: Calculate argv correctly.
Patch by Eric Delaunay <delaunay@lix.polytechnique.fr>.
1997-10-16 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/libm-ieee754/s_nextafterxf.c [!__STDC__]: Correct typo.
1997-10-16 14:50 Ulrich Drepper <drepper@cygnus.com>
* manual/pattern.texi: Document globfree.
1997-10-15 21:11 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_packet.h: New file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
net/if_packet.h.
* sysdeps/unix/sysv/linux/net/if_arp.h (ARPHRD_ASH): New type, for
64Mbps ASH.
(ARPHRD_ETHER): This is used for 100Mbps networks too.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* Makerules (install): Use full pathnames for linker script.
This is to work around a limitation in `ld' while no better solution
is possible.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* malloc/malloc.c (mmap_chunk): Put inline before static in
function definition to avoid compiler warning.
(malloc_extend): Likewise.
* sysdeps/generic/des_impl.c: Include "des.h" to avoid warning.
1997-10-15 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* NEWS: Fix @gnu.ai.mit.edu -> @gnu.org.
* README.template: Likewise.
* db/makedb.c: Likewise.
* elf/ldd.bash.in: Likewise.
* elf/ldd.sh.in: Likewise.
* intl/locale.alias: Likewise.
* login/programs/utmpd.c: Likewise.
* libio/stdfiles.c [!_IO_MTSAFE] (DEF_STDFILE): Fix parameter list.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Rules: Remove all empty.* files.
(shared-only-routines): Correct implementation.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/libm-ieee754/s_lrintl.c: Make compilable.
* sysdeps/libm-ieee754/s_llrintl.c: Likewise. Optimized.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf/ldd.bash.in: Only prepend ./ if the file contains no slash
at all.
* elf/ldd.sh.in: Likewise.
1997-10-14 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/sys/ucontext.h: New file.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/s_scalbln.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnf.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalblnl.c: New (empty) file.
* sysdeps/m68k/fpu/s_scalbn.c: Add scalbln alias.
* sysdeps/m68k/fpu/s_scalbnf.c: Adapted.
* sysdeps/m68k/fpu/s_scalbnl.c: Adapted.
* sysdeps/m68k/fpu/s_lrint.c: Add standard skeleton stuff.
* sysdeps/m68k/fpu/s_lrintf.c: New file.
* sysdeps/m68k/fpu/s_lrintl.c: New file.
* sysdeps/m68k/fpu/bits/mathinline.h: Add fma and scalbln. Update
lrint and scalbn.
(__m81_inline) [__cplusplus]: Define to __inline.
* math/bits/mathcalls.h: Remove whitespace before second argument
of __MATHDECL. Add note explaining this.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* manual/arith.texi (Absolute Value): Spelling fix.
1997-10-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* malloc/obstack.h (obstack_empty_p) [!__GNUC__]: Properly
parenthesize the macro parameter.
* Rules: Remove rules to magically install <subdir>.h headers.
1997-10-26 20:13:00 +00:00
|
|
|
|
1998-09-13 13:37:57 +00:00
|
|
|
return error;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
2015-03-09 21:41:35 +00:00
|
|
|
#undef CHAR_IN_SET
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_dollars (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags,
|
1998-03-11 15:33:24 +00:00
|
|
|
wordexp_t *pwordexp, const char *ifs, const char *ifs_white,
|
1998-09-17 19:51:33 +00:00
|
|
|
int quoted)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised _at_ "$" */
|
|
|
|
switch (words[1 + *offset])
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1997-08-02 21:00:51 +00:00
|
|
|
case '"':
|
|
|
|
case '\'':
|
|
|
|
case 0:
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, '$');
|
1997-08-02 21:00:51 +00:00
|
|
|
return *word ? 0 : WRDE_NOSPACE;
|
|
|
|
|
|
|
|
case '(':
|
|
|
|
if (words[2 + *offset] == '(')
|
|
|
|
{
|
1998-03-11 15:33:24 +00:00
|
|
|
/* Differentiate between $((1+3)) and $((echo);(ls)) */
|
|
|
|
int i = 3 + *offset;
|
1998-03-17 17:27:52 +00:00
|
|
|
int depth = 0;
|
|
|
|
while (words[i] && !(depth == 0 && words[i] == ')'))
|
|
|
|
{
|
|
|
|
if (words[i] == '(')
|
|
|
|
++depth;
|
|
|
|
else if (words[i] == ')')
|
|
|
|
--depth;
|
|
|
|
|
|
|
|
++i;
|
|
|
|
}
|
|
|
|
|
1998-03-11 15:33:24 +00:00
|
|
|
if (words[i] == ')' && words[i + 1] == ')')
|
|
|
|
{
|
|
|
|
(*offset) += 3;
|
|
|
|
/* Call parse_arith -- 0 is for "no brackets" */
|
|
|
|
return parse_arith (word, word_length, max_length, words, offset,
|
|
|
|
flags, 0);
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
(*offset) += 2;
|
1997-08-20 03:53:21 +00:00
|
|
|
return parse_comm (word, word_length, max_length, words, offset, flags,
|
1998-03-12 17:26:19 +00:00
|
|
|
quoted? NULL : pwordexp, ifs, ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
case '[':
|
|
|
|
(*offset) += 2;
|
|
|
|
/* Call parse_arith -- 1 is for "brackets" */
|
1997-08-20 03:53:21 +00:00
|
|
|
return parse_arith (word, word_length, max_length, words, offset, flags,
|
|
|
|
1);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
case '{':
|
|
|
|
default:
|
|
|
|
++(*offset); /* parse_param needs to know if "{" is there */
|
1997-08-20 03:53:21 +00:00
|
|
|
return parse_param (word, word_length, max_length, words, offset, flags,
|
1998-03-11 15:33:24 +00:00
|
|
|
pwordexp, ifs, ifs_white, quoted);
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_backtick (char **word, size_t *word_length, size_t *max_length,
|
|
|
|
const char *words, size_t *offset, int flags,
|
1998-01-25 17:01:47 +00:00
|
|
|
wordexp_t *pwordexp, const char *ifs, const char *ifs_white)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after "`" */
|
|
|
|
int error;
|
|
|
|
int squoting = 0;
|
1998-03-24 20:51:53 +00:00
|
|
|
size_t comm_length;
|
|
|
|
size_t comm_maxlen;
|
|
|
|
char *comm = w_newword (&comm_length, &comm_maxlen);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
for (; words[*offset]; ++(*offset))
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1997-08-02 21:00:51 +00:00
|
|
|
switch (words[*offset])
|
|
|
|
{
|
|
|
|
case '`':
|
|
|
|
/* Go -- give the script to the shell */
|
1997-08-20 03:53:21 +00:00
|
|
|
error = exec_comm (comm, word, word_length, max_length, flags,
|
1998-01-25 17:01:47 +00:00
|
|
|
pwordexp, ifs, ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
free (comm);
|
|
|
|
return error;
|
|
|
|
|
|
|
|
case '\\':
|
|
|
|
if (squoting)
|
|
|
|
{
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_qtd_backslash (&comm, &comm_length, &comm_maxlen,
|
|
|
|
words, offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
free (comm);
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_backslash (&comm, &comm_length, &comm_maxlen, words,
|
|
|
|
offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
{
|
|
|
|
free (comm);
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '\'':
|
|
|
|
squoting = 1 - squoting;
|
2019-02-12 10:30:34 +00:00
|
|
|
/* Fall through. */
|
1997-08-02 21:00:51 +00:00
|
|
|
default:
|
1997-08-20 03:53:21 +00:00
|
|
|
comm = w_addchar (comm, &comm_length, &comm_maxlen, words[*offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (comm == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* Premature end */
|
|
|
|
free (comm);
|
|
|
|
return WRDE_SYNTAX;
|
|
|
|
}
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
static int
|
1997-08-20 03:53:21 +00:00
|
|
|
parse_dquote (char **word, size_t *word_length, size_t *max_length,
|
1998-03-11 15:33:24 +00:00
|
|
|
const char *words, size_t *offset, int flags,
|
|
|
|
wordexp_t *pwordexp, const char * ifs, const char * ifs_white)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
|
|
|
/* We are poised just after a double-quote */
|
|
|
|
int error;
|
|
|
|
|
|
|
|
for (; words[*offset]; ++(*offset))
|
|
|
|
{
|
|
|
|
switch (words[*offset])
|
|
|
|
{
|
|
|
|
case '"':
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
case '$':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_dollars (word, word_length, max_length, words, offset,
|
1998-09-17 19:51:33 +00:00
|
|
|
flags, pwordexp, ifs, ifs_white, 1);
|
1998-03-11 15:33:24 +00:00
|
|
|
/* The ``1'' here is to tell parse_dollars not to
|
|
|
|
* split the fields. It may need to, however ("$@").
|
1997-08-02 21:00:51 +00:00
|
|
|
*/
|
|
|
|
if (error)
|
|
|
|
return error;
|
1995-02-18 01:27:10 +00:00
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case '`':
|
|
|
|
++(*offset);
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_backtick (word, word_length, max_length, words,
|
1998-01-25 17:01:47 +00:00
|
|
|
offset, flags, NULL, NULL, NULL);
|
|
|
|
/* The first NULL here is to tell parse_backtick not to
|
1997-08-02 21:00:51 +00:00
|
|
|
* split the fields.
|
|
|
|
*/
|
|
|
|
if (error)
|
|
|
|
return error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '\\':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_qtd_backslash (word, word_length, max_length, words,
|
|
|
|
offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
return error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
1997-08-20 03:53:21 +00:00
|
|
|
*word = w_addchar (*word, word_length, max_length, words[*offset]);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (*word == NULL)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Unterminated string */
|
|
|
|
return WRDE_SYNTAX;
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/*
|
|
|
|
* wordfree() is to be called after pwordexp is finished with.
|
|
|
|
*/
|
1995-02-18 01:27:10 +00:00
|
|
|
|
|
|
|
void
|
1997-08-02 21:00:51 +00:00
|
|
|
wordfree (wordexp_t *pwordexp)
|
1995-02-18 01:27:10 +00:00
|
|
|
{
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
/* wordexp can set pwordexp to NULL */
|
|
|
|
if (pwordexp && pwordexp->we_wordv)
|
|
|
|
{
|
|
|
|
char **wordv = pwordexp->we_wordv;
|
|
|
|
|
|
|
|
for (wordv += pwordexp->we_offs; *wordv; ++wordv)
|
|
|
|
free (*wordv);
|
|
|
|
|
|
|
|
free (pwordexp->we_wordv);
|
|
|
|
pwordexp->we_wordv = NULL;
|
|
|
|
}
|
|
|
|
}
|
* include/unistd.h: Use libc_hidden_proto for _exit, alarm, confstr,
execl, execle, execlp, execvp, getpid, getsid.
* sysdeps/generic/alarm.c: Add libc_hidden_def.
* sysdeps/unix/alarm.c: Likewise.
* posix/confstr.c: Likewise.
* posix/execvp.c: Likewise.
* posix/execlp.c: Likewise.
* posix/execle.c: Likewise.
* posix/execl.c: Likewise.
* sysdeps/generic/getsid.c: Likewise.
* sysdeps/mach/hurd/getsid.c: Likewise.
* sysdeps/generic/getpid.c: Add libc_hidden_weak.
* sysdeps/mach/hurd/getpid.c: Likewise.
* include/stdlib.h: Use libc_hidden_proto for ecvt_r, fcvt_r,
qecvt_r, qfcvt_r, lrand48_r.
* misc/efgcvt_r.c: Add libc_hidden_def.
* include/wordexp.h: Use libc_hidden_proto for wordfree.
* sysdeps/generic/wordexp.c: Add libc_hidden_def.
* include/langinfo.h: Use libc_hidden_proto for nl_langinfo.
* locale/nl_langinfo.c: Add libc_hidden_def.
* include/glob.h: Use libc_hidden_proto for glob, globfree, globfree64.
* sysdeps/generic/glob.c: Add libc_hidden_def.
* sysdeps/generic/glob64.c: Likewise.
* sysdeps/wordsize-64/glob.c (globfree64): Add libc_hidden_weak.
2002-08-04 03:30:56 +00:00
|
|
|
libc_hidden_def (wordfree)
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* wordexp()
|
|
|
|
*/
|
|
|
|
|
|
|
|
int
|
|
|
|
wordexp (const char *words, wordexp_t *pwordexp, int flags)
|
|
|
|
{
|
|
|
|
size_t words_offset;
|
1998-03-24 20:51:53 +00:00
|
|
|
size_t word_length;
|
|
|
|
size_t max_length;
|
|
|
|
char *word = w_newword (&word_length, &max_length);
|
1997-08-20 03:53:21 +00:00
|
|
|
int error;
|
1997-08-02 21:00:51 +00:00
|
|
|
char *ifs;
|
|
|
|
char ifs_white[4];
|
2000-02-24 07:36:39 +00:00
|
|
|
wordexp_t old_word = *pwordexp;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (flags & WRDE_REUSE)
|
1998-03-16 18:30:44 +00:00
|
|
|
{
|
|
|
|
/* Minimal implementation of WRDE_REUSE for now */
|
|
|
|
wordfree (pwordexp);
|
2000-02-24 07:36:39 +00:00
|
|
|
old_word.we_wordv = NULL;
|
1998-03-16 18:30:44 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
if ((flags & WRDE_APPEND) == 0)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
2000-02-24 07:36:39 +00:00
|
|
|
pwordexp->we_wordc = 0;
|
|
|
|
|
|
|
|
if (flags & WRDE_DOOFFS)
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
2000-02-24 07:36:39 +00:00
|
|
|
pwordexp->we_wordv = calloc (1 + pwordexp->we_offs, sizeof (char *));
|
|
|
|
if (pwordexp->we_wordv == NULL)
|
|
|
|
{
|
|
|
|
error = WRDE_NOSPACE;
|
|
|
|
goto do_error;
|
|
|
|
}
|
1998-09-13 13:37:57 +00:00
|
|
|
}
|
2000-02-24 07:36:39 +00:00
|
|
|
else
|
1998-09-13 13:37:57 +00:00
|
|
|
{
|
2000-02-24 07:36:39 +00:00
|
|
|
pwordexp->we_wordv = calloc (1, sizeof (char *));
|
|
|
|
if (pwordexp->we_wordv == NULL)
|
|
|
|
{
|
|
|
|
error = WRDE_NOSPACE;
|
|
|
|
goto do_error;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
pwordexp->we_offs = 0;
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* Find out what the field separators are.
|
|
|
|
* There are two types: whitespace and non-whitespace.
|
|
|
|
*/
|
|
|
|
ifs = getenv ("IFS");
|
|
|
|
|
2006-05-10 14:48:09 +00:00
|
|
|
if (ifs == NULL)
|
1998-09-06 23:45:24 +00:00
|
|
|
/* IFS unset - use <space><tab><newline>. */
|
|
|
|
ifs = strcpy (ifs_white, " \t\n");
|
1997-08-02 21:00:51 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
char *ifsch = ifs;
|
|
|
|
char *whch = ifs_white;
|
|
|
|
|
|
|
|
while (*ifsch != '\0')
|
1998-01-25 17:01:47 +00:00
|
|
|
{
|
2006-05-10 14:48:09 +00:00
|
|
|
if (*ifsch == ' ' || *ifsch == '\t' || *ifsch == '\n')
|
1998-01-25 17:01:47 +00:00
|
|
|
{
|
|
|
|
/* Whitespace IFS. See first whether it is already in our
|
|
|
|
collection. */
|
|
|
|
char *runp = ifs_white;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
2006-05-10 14:48:09 +00:00
|
|
|
while (runp < whch && *runp != *ifsch)
|
1998-01-25 17:01:47 +00:00
|
|
|
++runp;
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-01-25 17:01:47 +00:00
|
|
|
if (runp == whch)
|
|
|
|
*whch++ = *ifsch;
|
|
|
|
}
|
|
|
|
|
1998-03-08 15:26:29 +00:00
|
|
|
++ifsch;
|
1998-01-25 17:01:47 +00:00
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
*whch = '\0';
|
|
|
|
}
|
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
for (words_offset = 0 ; words[words_offset] ; ++words_offset)
|
1997-08-02 21:00:51 +00:00
|
|
|
switch (words[words_offset])
|
|
|
|
{
|
|
|
|
case '\\':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_backslash (&word, &word_length, &max_length, words,
|
|
|
|
&words_offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '$':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_dollars (&word, &word_length, &max_length, words,
|
1998-03-11 15:33:24 +00:00
|
|
|
&words_offset, flags, pwordexp, ifs, ifs_white,
|
1998-09-17 19:51:33 +00:00
|
|
|
0);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '`':
|
|
|
|
++words_offset;
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_backtick (&word, &word_length, &max_length, words,
|
1998-01-25 17:01:47 +00:00
|
|
|
&words_offset, flags, pwordexp, ifs,
|
|
|
|
ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '"':
|
|
|
|
++words_offset;
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_dquote (&word, &word_length, &max_length, words,
|
1998-03-11 15:33:24 +00:00
|
|
|
&words_offset, flags, pwordexp, ifs, ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
1999-11-05 22:33:33 +00:00
|
|
|
if (!word_length)
|
|
|
|
{
|
|
|
|
error = w_addword (pwordexp, NULL);
|
|
|
|
|
|
|
|
if (error)
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case '\'':
|
|
|
|
++words_offset;
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_squote (&word, &word_length, &max_length, words,
|
|
|
|
&words_offset);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
1999-11-05 22:33:33 +00:00
|
|
|
if (!word_length)
|
|
|
|
{
|
|
|
|
error = w_addword (pwordexp, NULL);
|
|
|
|
|
|
|
|
if (error)
|
|
|
|
return error;
|
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case '~':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_tilde (&word, &word_length, &max_length, words,
|
|
|
|
&words_offset, pwordexp->we_wordc);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case '*':
|
1998-03-11 15:33:24 +00:00
|
|
|
case '[':
|
|
|
|
case '?':
|
1997-08-20 03:53:21 +00:00
|
|
|
error = parse_glob (&word, &word_length, &max_length, words,
|
1998-01-25 17:01:47 +00:00
|
|
|
&words_offset, flags, pwordexp, ifs, ifs_white);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
if (error)
|
|
|
|
goto do_error;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
1998-09-12 08:42:05 +00:00
|
|
|
/* Is it a word separator? */
|
1998-09-17 19:51:33 +00:00
|
|
|
if (strchr (" \t", words[words_offset]) == NULL)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-09-12 08:42:05 +00:00
|
|
|
char ch = words[words_offset];
|
|
|
|
|
|
|
|
/* Not a word separator -- but is it a valid word char? */
|
|
|
|
if (strchr ("\n|&;<>(){}", ch))
|
1998-09-06 23:45:24 +00:00
|
|
|
{
|
|
|
|
/* Fail */
|
1999-04-12 09:07:36 +00:00
|
|
|
error = WRDE_BADCHAR;
|
|
|
|
goto do_error;
|
1998-09-06 23:45:24 +00:00
|
|
|
}
|
|
|
|
|
1997-08-02 21:00:51 +00:00
|
|
|
/* "Ordinary" character -- add it to word */
|
1997-08-20 03:53:21 +00:00
|
|
|
word = w_addchar (word, &word_length, &max_length,
|
1998-09-12 08:42:05 +00:00
|
|
|
ch);
|
1997-08-02 21:00:51 +00:00
|
|
|
if (word == NULL)
|
|
|
|
{
|
|
|
|
error = WRDE_NOSPACE;
|
|
|
|
goto do_error;
|
|
|
|
}
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
1998-09-12 08:42:05 +00:00
|
|
|
/* If a word has been delimited, add it to the list. */
|
1997-08-20 03:53:21 +00:00
|
|
|
if (word != NULL)
|
1997-08-02 21:00:51 +00:00
|
|
|
{
|
1998-09-17 19:51:33 +00:00
|
|
|
error = w_addword (pwordexp, word);
|
1998-09-12 08:42:05 +00:00
|
|
|
if (error)
|
|
|
|
goto do_error;
|
1997-08-02 21:00:51 +00:00
|
|
|
}
|
|
|
|
|
1998-09-15 21:24:37 +00:00
|
|
|
word = w_newword (&word_length, &max_length);
|
|
|
|
}
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-09-17 19:51:33 +00:00
|
|
|
/* End of string */
|
|
|
|
|
|
|
|
/* There was a word separator at the end */
|
|
|
|
if (word == NULL) /* i.e. w_newword */
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
/* There was no field separator at the end */
|
|
|
|
return w_addword (pwordexp, word);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
|
|
|
do_error:
|
|
|
|
/* Error:
|
1998-03-11 15:33:24 +00:00
|
|
|
* free memory used (unless error is WRDE_NOSPACE), and
|
2000-02-24 07:36:39 +00:00
|
|
|
* set pwordexp members back to what they were.
|
1997-08-02 21:00:51 +00:00
|
|
|
*/
|
1998-03-11 15:33:24 +00:00
|
|
|
|
2006-05-10 07:58:39 +00:00
|
|
|
free (word);
|
1997-08-02 21:00:51 +00:00
|
|
|
|
1998-09-12 08:42:05 +00:00
|
|
|
if (error == WRDE_NOSPACE)
|
|
|
|
return WRDE_NOSPACE;
|
|
|
|
|
2000-02-24 07:36:39 +00:00
|
|
|
if ((flags & WRDE_APPEND) == 0)
|
|
|
|
wordfree (pwordexp);
|
|
|
|
|
|
|
|
*pwordexp = old_word;
|
1997-08-02 21:00:51 +00:00
|
|
|
return error;
|
1995-02-18 01:27:10 +00:00
|
|
|
}
|