about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog43
-rw-r--r--intl/localealias.c5
-rw-r--r--manual/.cvsignore2
-rw-r--r--manual/argp.texi3
-rw-r--r--manual/arith.texi3
-rw-r--r--manual/conf.texi9
-rw-r--r--manual/errno.texi8
-rw-r--r--manual/examples/rprintf.c4
-rw-r--r--manual/examples/testopt.c3
-rw-r--r--manual/filesys.texi13
-rw-r--r--manual/header.texi7
-rw-r--r--manual/lgpl.texinfo2
-rw-r--r--manual/math.texi33
-rw-r--r--manual/message.texi3
-rw-r--r--manual/pattern.texi21
-rw-r--r--manual/process.texi8
-rw-r--r--manual/signal.texi12
-rw-r--r--manual/socket.texi18
-rw-r--r--manual/startup.texi32
-rw-r--r--manual/stdio.texi23
-rw-r--r--manual/terminal.texi23
-rw-r--r--posix/wordexp.c19
-rw-r--r--sysdeps/generic/strtok_r.c5
-rw-r--r--sysdeps/i386/i686/Implies1
-rw-r--r--sysdeps/i386/strtok_r.S3
-rw-r--r--sysdeps/libm-i387/i686/s_fdim.S7
-rw-r--r--sysdeps/libm-i387/i686/s_fdimf.S7
-rw-r--r--sysdeps/libm-i387/i686/s_fdiml.S7
-rw-r--r--sysdeps/libm-i387/i686/s_fmin.S4
-rw-r--r--sysdeps/libm-i387/i686/s_fminf.S4
-rw-r--r--sysdeps/libm-i387/i686/s_fminl.S4
31 files changed, 213 insertions, 123 deletions
diff --git a/ChangeLog b/ChangeLog
index e01da9869d..09a58877c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,46 @@
+1998-03-19 14:28  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/generic/strtok_r.c: Make __strtok_r real name and strtok_r
+	weak alias.
+	* sysdeps/i386/strtok_r.c: Likewise.
+
+	* sysdeps/libm-i387/i686/s_fdim.S: Make it really work.
+	* sysdeps/libm-i387/i686/s_fdimf.S: Likewise.
+	* sysdeps/libm-i387/i686/s_fdiml.S: Likewise.
+	* sysdeps/libm-i387/i686/s_fmin.S: Likewise.
+	* sysdeps/libm-i387/i686/s_fminf.S: Likewise.
+	* sysdeps/libm-i387/i686/s_fminl.S: Likewise.
+
+1998-03-19  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* intl/localealias.c: Remove unneeded define for strdup.
+
+1998-03-19 13:45  Ulrich Drepper  <drepper@cygnus.com>
+
+	* manual/argp.texi: Adjust for better TeX output.
+	* manual/arith.texi: Likewise.
+	* manual/conf.texi: Likewise.
+	* manual/filesys.texi: Likewise.
+	* manual/header.texi: Likewise.
+	* manual/lgpl.texinfo: Likewise.
+	* manual/math.texi: Likewise.
+	* manual/message.texi: Likewise.
+	* manual/pattern.texi: Likewise.
+	* manual/process.texi: Likewise.
+	* manual/signal.texi: Likewise.
+	* manual/socket.texi: Likewise.
+	* manual/startup.texi: Likewise.
+	* manual/stdio.texi: Likewise.
+	* manual/terminal.texi: Likewise.
+	* manual/examples/rprintf.c: Likewise.
+	* manual/examples/testopt.c: Likewise.
+	Patches by Zack Weinberg <zack@rabi.phys.columbia.edu>.
+
+1998-03-19 20:45  Tim Waugh  <tim@cyberelk.demon.co.uk>
+
+	* posix/wordexp.c (parse_param): Don't immediately stop parsing a
+	parameter name after seeing a digit if it's enclosed in braces.
+
 1998-03-18  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
 	* manual/memory.texi (Heap Consistency Checking): Document
diff --git a/intl/localealias.c b/intl/localealias.c
index 58ed2708ae..d6ddf0c2c6 100644
--- a/intl/localealias.c
+++ b/intl/localealias.c
@@ -1,5 +1,5 @@
 /* Handle aliases for locale names.
-   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
 
    This file is part of the GNU C Library.  Its master source is NOT part of
    the C library, however.
@@ -82,12 +82,11 @@ void free ();
    because some ANSI C functions will require linking with this object
    file and the name space must not be polluted.  */
 # define strcasecmp __strcasecmp
-# define strdup __strdup
 
 # define mempcpy __mempcpy
 # define HAVE_MEMPCPY	1
 
-/* We need locking here since we can be called from different palces.  */
+/* We need locking here since we can be called from different places.  */
 # include <bits/libc-lock.h>
 
 __libc_lock_define_initialized (static, lock);
diff --git a/manual/.cvsignore b/manual/.cvsignore
index 7c305176da..92494696db 100644
--- a/manual/.cvsignore
+++ b/manual/.cvsignore
@@ -9,4 +9,4 @@ glibc-*
 *.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
 
 chapters chapters-incl1 chapters-incl2 summary.texi stamp-*
-distinfo dir-add.texi
+distinfo dir-add.texinfo
diff --git a/manual/argp.texi b/manual/argp.texi
index 84b131f36a..4b72ebe5a7 100644
--- a/manual/argp.texi
+++ b/manual/argp.texi
@@ -480,7 +480,8 @@ case ARGP_KEY_ARG:
     /* First argument */
     first_arg = @var{arg};
   else
-    return ARGP_KEY_UNKNOWN;    /* Let the next case parse it.  */
+    /* Let the next case parse it.  */
+    return ARGP_KEY_UNKNOWN;
   break;
 case ARGP_KEY_ARGS:
   remaining_args = @var{state}->argv + @var{state}->next;
diff --git a/manual/arith.texi b/manual/arith.texi
index 0d62e419b0..9db50cf05e 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -1,4 +1,6 @@
 @c We need some definitions here.
+@c No we don't, they were done by math.texi. -zw
+@ignore
 @ifclear cdot
 @ifhtml
 @set cdot ·
@@ -19,6 +21,7 @@ x
 @end macro
 @end ifclear
 @end ifclear
+@end ignore
 
 @node Arithmetic, Date and Time, Mathematics, Top
 @chapter Low-Level Arithmetic Functions
diff --git a/manual/conf.texi b/manual/conf.texi
index 86e29a8e04..34554bc35f 100644
--- a/manual/conf.texi
+++ b/manual/conf.texi
@@ -315,6 +315,10 @@ Here are the symbolic constants for use as the @var{parameter} argument
 to @code{sysconf}.  The values are all integer constants (more
 specifically, enumeration type values).
 
+@c This table runs a bit wide.
+@iftex
+@indexfonts
+@end iftex
 @table @code
 @comment unistd.h
 @comment POSIX.1
@@ -604,7 +608,7 @@ Inquire about the parameter corresponding to @code{_POSIX_TTY_NAME_MAX}.
 @comment POSIX.1
 @item _SC_THREAD_DESTRUCTOR_ITERATIONS
 Inquire about the parameter corresponding to
-@code{_POSIX_THREAD_DESTRUCTOR_ITERATIONS}.
+@code{_POSIX_THREAD_DESTRUCTOR_@*ITERATIONS}.
 
 @comment unistd.h
 @comment POSIX.1
@@ -960,6 +964,9 @@ Inquire about  the parameter corresponding to @code{NL_SETMAX}.
 @item _SC_NL_TEXTMAX
 Inquire about  the parameter corresponding to @code{NL_TEXTMAX}.
 @end table
+@iftex
+@textfonts
+@end iftex
 
 @node Examples of Sysconf
 @subsection Examples of @code{sysconf}
diff --git a/manual/errno.texi b/manual/errno.texi
index 86b4c74e7a..5eb6eae3f5 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -977,19 +977,19 @@ They are not yet documented.}
 @end deftypevr
 
 @comment errno.h
-@comment Linux???: Level 2 not synchronized
+@comment Obsolete: Level 2 not synchronized
 @deftypevr Macro int EL2NSYNC
 @comment errno ???/45
 @end deftypevr
 
 @comment errno.h
-@comment Linux???: Level 3 halted
+@comment Obsolete: Level 3 halted
 @deftypevr Macro int EL3HLT
 @comment errno ???/46
 @end deftypevr
 
 @comment errno.h
-@comment Linux???: Level 3 reset
+@comment Obsolete: Level 3 reset
 @deftypevr Macro int EL3RST
 @comment errno ???/47
 @end deftypevr
@@ -1013,7 +1013,7 @@ They are not yet documented.}
 @end deftypevr
 
 @comment errno.h
-@comment Linux???: Level 2 halted
+@comment Obsolete: Level 2 halted
 @deftypevr Macro int EL2HLT
 @comment errno ???/51
 @end deftypevr
diff --git a/manual/examples/rprintf.c b/manual/examples/rprintf.c
index 723b3a3ef0..bac17b49e5 100644
--- a/manual/examples/rprintf.c
+++ b/manual/examples/rprintf.c
@@ -10,7 +10,9 @@ typedef struct
 /*@end group*/
 
 int
-print_widget (FILE *stream, const struct printf_info *info, va_list *app)
+print_widget (FILE *stream,
+	      const struct printf_info *info,
+	      va_list *app)
 {
   Widget *w;
   char *buffer;
diff --git a/manual/examples/testopt.c b/manual/examples/testopt.c
index 8ebc9b6f7a..94baf4db55 100644
--- a/manual/examples/testopt.c
+++ b/manual/examples/testopt.c
@@ -41,7 +41,8 @@ main (int argc, char **argv)
 /*@end group*/
 
 /*@group*/
-  printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
+  printf ("aflag = %d, bflag = %d, cvalue = %s\n",
+	  aflag, bflag, cvalue);
 
   for (index = optind; index < argc; index++)
     printf ("Non-option argument %s\n", argv[index]);
diff --git a/manual/filesys.texi b/manual/filesys.texi
index 951ae7956c..6e4baa5673 100644
--- a/manual/filesys.texi
+++ b/manual/filesys.texi
@@ -86,7 +86,7 @@ Permission to read or search a component of the file name was denied.
 @end table
 @end deftypefun
 
-Here is an example showing how you could implement the behavior of GNU's
+Here is an example showing how you could implement the behavior of GNU's@*
 @w{@code{getcwd (NULL, 0)}} using only the standard behavior of
 @code{getcwd}:
 
@@ -230,17 +230,18 @@ A character device.
 A block device.
 @end table
 
-This member is a BSD extension.  Each value except DT_UNKNOWN
+This member is a BSD extension.  On systems where it is used, it
 corresponds to the file type bits in the @code{st_mode} member of
-@code{struct statbuf}.  These two macros convert between @code{d_type}
-values and @code{st_mode} values:
+@code{struct statbuf}.  On other systems it will always be DT_UNKNOWN.
+These two macros convert between @code{d_type} values and @code{st_mode}
+values:
 
 @deftypefun int IFTODT (mode_t @var{mode})
 This returns the @code{d_type} value corresponding to @var{mode}.
 @end deftypefun
 
-@deftypefun mode_t DTTOIF (int @var{dirtype})
-This returns the @code{st_mode} value corresponding to @var{dirtype}.
+@deftypefun mode_t DTTOIF (int @var{dtype})
+This returns the @code{st_mode} value corresponding to @var{dtype}.
 @end deftypefun
 @end table
 
diff --git a/manual/header.texi b/manual/header.texi
index 066fdbf1aa..b6ca60ee96 100644
--- a/manual/header.texi
+++ b/manual/header.texi
@@ -7,8 +7,15 @@ standard or other source from which each facility is derived, and tells
 you where in the manual you can find more information about how to use
 it.
 
+@c This table runs wide.  Shrink fonts.
+@iftex
+@indexfonts @rm
+@end iftex
 @table @code
 @comment summary.texi is generated from the other Texinfo files.
 @comment See the Makefile and summary.awk for the details.
 @include summary.texi
 @end table
+@iftex
+@textfonts @rm
+@end iftex
diff --git a/manual/lgpl.texinfo b/manual/lgpl.texinfo
index f5d97a8d3d..6bb32205ba 100644
--- a/manual/lgpl.texinfo
+++ b/manual/lgpl.texinfo
@@ -112,7 +112,7 @@ works together with the library.
 General Public License rather than by this special one.
 
 @iftex
-@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@unnumberedsec TERMS AND CONDITIONS FOR COPYING,@*DISTRIBUTION AND MODIFICATION
 @end iftex
 @ifinfo
 @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
diff --git a/manual/math.texi b/manual/math.texi
index b784afe52b..28cc4a59be 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -1,24 +1,16 @@
 @c We need some definitions here.
-@ifclear cdot
 @ifhtml
-@set cdot ·
-@macro mul

-@end macro
+@set mult ·
 @end ifhtml
 @iftex
-@set cdot ·
-@macro mul
-@cdot
-@end macro
+@set mult @cdot
 @end iftex
-@ifclear cdot
-@set cdot x
+@ifclear mult
+@set mult x
+@end ifclear
 @macro mul
-x
+@value{mult}
 @end macro
-@end ifclear
-@end ifclear
 @iftex
 @set infty @infty
 @end iftex
@@ -443,7 +435,7 @@ Another possibility which is useful in several situations is
 @deftypefun int feholdexcept (fenv_t *@var{envp})
 Store the current floating-point environment in the object pointed to by
 @var{envp}.  Afterwards, all exception flags are cleared and if
-available a mode is installed which continues on all exception and does
+available a mode is installed which continues on all exceptions and does
 not cause a trap to occur.  In this case a nonzero value is returned.
 
 If the floating-point implementation does not support such a non-stop
@@ -455,8 +447,8 @@ restored can take two kinds of arguments:
 
 @itemize @bullet
 @item
-Pointed to objects which previously were initialized by a call to
-@code{fegetenv} or @code{feholdexcept}.
+Pointers to @code{fenv_t} objects which were initialized previously by a
+call to @code{fegetenv} or @code{feholdexcept}.
 @item
 @vindex FE_DFL_ENV
 The special macro @code{FE_DFL_ENV} which represents the floating-point
@@ -466,10 +458,11 @@ Implementation defined macros with names starting with @code{FE_}.
 
 @vindex FE_NOMASK_ENV
 If possible, the GNU C Library defines a macro @code{FE_NOMASK_ENV}
-which represents an environment where no exception is masked and so each
-raised exception causes a trap to occur.  Whether this macro is available can easily be tested using @code{#ifdef}.
+which represents an environment where no exceptions are masked, so every
+exception raised causes a trap to occur.  You can test for this macro
+using @code{#ifdef}.
 
-Some platforms might define further predefined environments.
+Some platforms might define other predefined environments.
 @end itemize
 
 @noindent
diff --git a/manual/message.texi b/manual/message.texi
index a292b78531..3c8650fb20 100644
--- a/manual/message.texi
+++ b/manual/message.texi
@@ -673,7 +673,8 @@ int
 main (void)
 @{
   nl_catd catdesc = catopen ("hello.cat", NL_CAT_LOCALE);
-  printf (catgets (catdesc, SetMainSet, SetMainHello, "Hello, world!\n"));
+  printf (catgets (catdesc, SetMainSet, SetMainHello, 
+                   "Hello, world!\n"));
   catclose (catdesc);
   return 0;
 @}
diff --git a/manual/pattern.texi b/manual/pattern.texi
index bd5658dd67..90529bace6 100644
--- a/manual/pattern.texi
+++ b/manual/pattern.texi
@@ -196,8 +196,8 @@ This is a GNU extension.
 The address of an alternative implementation of the @code{lstat}
 function to get information about an object in the filesystems, not
 following symbolic links.  It is used if the @code{GLOB_ALTDIRFUNC} bit
-is set in the flag parameter.  The type of this field is @w{@code{int
-(*) (const char *, struct stat *)}}.
+is set in the flag parameter.  The type of this field is @code{@w{int
+(*) (const char *,} @w{struct stat *)}}.
 
 This is a GNU extension.
 @end table
@@ -847,13 +847,16 @@ actually matches is near the end of the first word.  But it is
 @code{regexec} reports nonuse of the ``na'' subexpression.
 
 Another place where this rule applies is when the regular expression
-@w{@samp{\(ba\(na\)*s \|nefer\(ti\)* \)*}} matches @samp{bananas nefertiti}.
-The ``na'' subexpression does match in the first word, but it doesn't
-match in the second word because the other alternative is used there.
-Once again, the second repetition of the outer subexpression overrides
-the first, and within that second repetition, the ``na'' subexpression
-is not used.  So @code{regexec} reports nonuse of the ``na''
-subexpression.
+@smallexample
+\(ba\(na\)*s \|nefer\(ti\)* \)*
+@end smallexample
+@noindent
+matches @samp{bananas nefertiti}.  The ``na'' subexpression does match
+in the first word, but it doesn't match in the second word because the
+other alternative is used there.  Once again, the second repetition of
+the outer subexpression overrides the first, and within that second
+repetition, the ``na'' subexpression is not used.  So @code{regexec}
+reports nonuse of the ``na'' subexpression.
 
 @node Regexp Cleanup
 @subsection POSIX Regexp Matching Cleanup
diff --git a/manual/process.texi b/manual/process.texi
index 71fc707f9a..b1f5ef469a 100644
--- a/manual/process.texi
+++ b/manual/process.texi
@@ -709,19 +709,19 @@ the following members:
 
 @table @code
 @item int w_termsig
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
 @code{WTERMSIG} macro.
 
 @item int w_coredump
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
 @code{WCOREDUMP} macro.
 
 @item int w_retcode
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
 @code{WEXITSTATUS} macro.
 
 @item int w_stopsig
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
 @code{WSTOPSIG} macro.
 @end table
 
diff --git a/manual/signal.texi b/manual/signal.texi
index 177b3b98c0..dd1666c3af 100644
--- a/manual/signal.texi
+++ b/manual/signal.texi
@@ -2285,12 +2285,12 @@ for some special system processes.  Otherwise, send the signal to all
 processes with the same effective user ID.
 @end table
 
-A process can send a signal @var{signum} to itself with a call like
-@w{@code{kill (getpid(), @var{signum})}}.  If @code{kill} is used by a
-process to send a signal to itself, and the signal is not blocked, then
-@code{kill} delivers at least one signal (which might be some other
-pending unblocked signal instead of the signal @var{signum}) to that
-process before it returns.
+A process can send a signal to itself with a call like @w{@code{kill
+(getpid(), @var{signum})}}.  If @code{kill} is used by a process to send
+a signal to itself, and the signal is not blocked, then @code{kill}
+delivers at least one signal (which might be some other pending
+unblocked signal instead of the signal @var{signum}) to that process
+before it returns.
 
 The return value from @code{kill} is zero if the signal can be sent
 successfully.  Otherwise, no signal is sent, and a value of @code{-1} is
diff --git a/manual/socket.texi b/manual/socket.texi
index 1135230cb0..dcd288b12c 100644
--- a/manual/socket.texi
+++ b/manual/socket.texi
@@ -792,7 +792,7 @@ be better if the usage were made consistent, but it is not hard to extract
 the integer from the structure or put the integer into a structure.
 
 The following basic definitions for Internet addresses appear in the
-header file @file{netinet/in.h}:
+header file@*@file{netinet/in.h}:
 @pindex netinet/in.h
 
 @comment netinet/in.h
@@ -866,8 +866,9 @@ own variables to this value.
 @subsubsection Host Address Functions
 
 @pindex arpa/inet.h
+@noindent
 These additional functions for manipulating Internet addresses are
-declared in @file{arpa/inet.h}.  They represent Internet addresses in
+declared in@*@file{arpa/inet.h}.  They represent Internet addresses in
 network byte order; they represent network numbers and
 local-address-within-network numbers in host byte order.
 @xref{Byte Order}, for an explanation of network and host byte order.
@@ -1244,6 +1245,7 @@ service at port @var{port} using protocol @var{proto}.  If it can't
 find such a service, it returns a null pointer.
 @end deftypefun
 
+@noindent
 You can also scan the services database using @code{setservent},
 @code{getservent}, and @code{endservent}.  Be careful in using these
 functions, because they are not reentrant.
@@ -2689,8 +2691,17 @@ This function is used to set the socket option @var{optname} at level
 @var{level} for socket @var{socket}.  The value of the option is passed
 in the buffer @var{optval}, which has size @var{optlen}.
 
+@c Argh. -zw
+@iftex
+@hfuzz 6pt
 The return value and error codes for @code{setsockopt} are the same as
 for @code{getsockopt}.
+@end iftex
+@ifinfo
+The return value and error codes for @code{setsockopt} are the same as
+for @code{getsockopt}.
+@end ifinfo
+
 @end deftypefun
 
 @node Socket-Level Options
@@ -2705,8 +2716,9 @@ this section.
 @end deftypevr
 
 @pindex sys/socket.h
+@noindent
 Here is a table of socket-level option names; all are defined in the
-header file @file{sys/socket.h}.
+header file@*@file{sys/socket.h}.
 
 @table @code
 @comment sys/socket.h
diff --git a/manual/startup.texi b/manual/startup.texi
index 7e42bb9c7b..2a55e3934e 100644
--- a/manual/startup.texi
+++ b/manual/startup.texi
@@ -409,7 +409,7 @@ these environment variable names for some other purpose.
 @comment Extra blank lines make it look better.
 @table @code
 @item HOME
-@cindex HOME environment variable
+@cindex @code{HOME} environment variable
 @cindex home directory
 
 This is a string representing the user's @dfn{home directory}, or
@@ -425,7 +425,7 @@ this lets the user specify the value.
 
 @c !!! also USER
 @item LOGNAME
-@cindex LOGNAME environment variable
+@cindex @code{LOGNAME} environment variable
 
 This is the name that the user used to log in.  Since the value in the
 environment can be tweaked arbitrarily, this is not a reliable way to
@@ -436,7 +436,7 @@ For most purposes, it is better to use @code{LOGNAME}, precisely because
 this lets the user specify the value.
 
 @item PATH
-@cindex PATH environment variable
+@cindex @code{PATH} environment variable
 
 A @dfn{path} is a sequence of directory names which is used for
 searching for a file.  The variable @code{PATH} holds a path used
@@ -463,7 +463,7 @@ the one that is executed.
 
 @c !!! also TERMCAP
 @item TERM
-@cindex TERM environment variable
+@cindex @code{TERM} environment variable
 
 This specifies the kind of terminal that is receiving program output.
 Some programs can make use of this information to take advantage of
@@ -473,13 +473,13 @@ of terminals.  Many programs which use the termcap library
 Manual}) use the @code{TERM} environment variable, for example.
 
 @item TZ
-@cindex TZ environment variable
+@cindex @code{TZ} environment variable
 
 This specifies the time zone.  @xref{TZ Variable}, for information about
 the format of this string and how it is used.
 
 @item LANG
-@cindex LANG environment variable
+@cindex @code{LANG} environment variable
 
 This specifies the default locale to use for attribute categories where
 neither @code{LC_ALL} nor the specific environment variable for that
@@ -489,7 +489,7 @@ locales.
 @ignore
 @c I doubt this really exists
 @item LC_ALL
-@cindex LC_ALL environment variable
+@cindex @code{LC_ALL} environment variable
 
 This is similar to the @code{LANG} environment variable.  However, its
 value takes precedence over any values provided for the individual
@@ -498,7 +498,7 @@ environment variable.
 @end ignore
 
 @item LC_ALL
-@cindex LC_ALL environment variable
+@cindex @code{LC_ALL} environment variable
 
 If this environment variable is set it overrides the selection for all
 the locales done using the other @code{LC_*} environment variables.  The
@@ -506,45 +506,45 @@ value of the other @code{LC_*} environment variables is simply ignored
 in this case.
 
 @item LC_COLLATE
-@cindex LC_COLLATE environment variable
+@cindex @code{LC_COLLATE} environment variable
 
 This specifies what locale to use for string sorting.
 
 @item LC_CTYPE
-@cindex LC_CTYPE environment variable
+@cindex @code{LC_CTYPE} environment variable
 
 This specifies what locale to use for character sets and character
 classification.
 
 @item LC_MESSAGES
-@cindex LC_MESSAGES environment variable
+@cindex @code{LC_MESSAGES} environment variable
 
 This specifies what locale to use for printing messages and to parse
 responses.
 
 @item LC_MONETARY
-@cindex LC_MONETARY environment variable
+@cindex @code{LC_MONETARY} environment variable
 
 This specifies what locale to use for formatting monetary values.
 
 @item LC_NUMERIC
-@cindex LC_NUMERIC environment variable
+@cindex @code{LC_NUMERIC} environment variable
 
 This specifies what locale to use for formatting numbers.
 
 @item LC_TIME
-@cindex LC_TIME environment variable
+@cindex @code{LC_TIME} environment variable
 
 This specifies what locale to use for formatting date/time values.
 
 @item NLSPATH
-@cindex NLSPATH environment variable
+@cindex @code{NLSPATH} environment variable
 
 This specifies the directories in which the @code{catopen} function
 looks for message translation catalogs.
 
 @item _POSIX_OPTION_ORDER
-@cindex _POSIX_OPTION_ORDER environment variable.
+@cindex @code{_POSIX_OPTION_ORDER} environment variable.
 
 If this environment variable is defined, it suppresses the usual
 reordering of command line arguments by @code{getopt} and
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 58605702e0..7b56787e95 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -1,5 +1,9 @@
 @node I/O on Streams, Low-Level I/O, I/O Overview, Top
 @chapter Input/Output on Streams
+@c fix an overfull:
+@tex
+\hyphenation{which-ever}
+@end tex
 
 This chapter describes the functions for creating streams and performing
 input and output operations on them.  As discussed in @ref{I/O
@@ -1541,11 +1545,13 @@ make_message (char *name, char *value)
 @group
   if (nchars >= size)
     @{
-      /* @r{Reallocate buffer now that we know how much space is needed.} */
+      /* @r{Reallocate buffer now that we know 
+         how much space is needed.} */
       buffer = (char *) xrealloc (buffer, nchars + 1);
 
       /* @r{Try again.} */
-      snprintf (buffer, size, "value of %s is %s", name, value);
+      snprintf (buffer, size, "value of %s is %s", 
+                name, value);
     @}
   /* @r{The last call worked, return the string.} */
   return buffer;
@@ -1621,7 +1627,8 @@ the GNU C compiler provides a way to do this much more easily with macros.
 For example:
 
 @smallexample
-#define myprintf(a, b, c, d, e, rest...) printf (mytemplate , ## rest...)
+#define myprintf(a, b, c, d, e, rest...) \
+            printf (mytemplate , ## rest...)
 @end smallexample
 
 @noindent
@@ -2057,11 +2064,11 @@ If you define a meaning for @samp{%A}, what if the template contains
 the handler when called needs to be able to get the options specified in
 the template.
 
-Both the @var{handler-function} and @var{arginfo-function} arguments
-to @code{register_printf_function} accept an argument that points to a
-@code{struct printf_info}, which contains information about the options
-appearing in an instance of the conversion specifier.  This data type
-is declared in the header file @file{printf.h}.
+Both the @var{handler-function} and @var{arginfo-function} accept an
+argument that points to a @code{struct printf_info}, which contains
+information about the options appearing in an instance of the conversion
+specifier.  This data type is declared in the header file
+@file{printf.h}.
 @pindex printf.h
 
 @comment printf.h
diff --git a/manual/terminal.texi b/manual/terminal.texi
index 0417a63bd8..bd897ab06e 100644
--- a/manual/terminal.texi
+++ b/manual/terminal.texi
@@ -73,18 +73,17 @@ The @dfn{terminal input queue} is also sometimes referred to as its
 @dfn{typeahead buffer}.  It holds the characters that have been received
 from the terminal but not yet read by any process.
 
-The size of the terminal's input queue is described by the
-@code{MAX_INPUT} and @w{@code{_POSIX_MAX_INPUT}} parameters; see @ref{Limits
-for Files}.  You are guaranteed a queue size of at least
-@code{MAX_INPUT}, but the queue might be larger, and might even
-dynamically change size.  If input flow control is enabled by setting
-the @code{IXOFF} input mode bit (@pxref{Input Modes}), the terminal
-driver transmits STOP and START characters to the terminal when
-necessary to prevent the queue from overflowing.  Otherwise, input may
-be lost if it comes in too fast from the terminal.  In canonical mode,
-all input stays in the queue until a newline character is received, so
-the terminal input queue can fill up when you type a very long line.
-@xref{Canonical or Not}.
+The size of the input queue is described by the @code{MAX_INPUT} and
+@w{@code{_POSIX_MAX_INPUT}} parameters; see @ref{Limits for Files}.  You
+are guaranteed a queue size of at least @code{MAX_INPUT}, but the queue
+might be larger, and might even dynamically change size.  If input flow
+control is enabled by setting the @code{IXOFF} input mode bit
+(@pxref{Input Modes}), the terminal driver transmits STOP and START
+characters to the terminal when necessary to prevent the queue from
+overflowing.  Otherwise, input may be lost if it comes in too fast from
+the terminal.  In canonical mode, all input stays in the queue until a
+newline character is received, so the terminal input queue can fill up
+when you type a very long line.  @xref{Canonical or Not}.
 
 @cindex terminal output queue
 The @dfn{terminal output queue} is like the input queue, but for output;
diff --git a/posix/wordexp.c b/posix/wordexp.c
index 268a0e8c86..1df552a66f 100644
--- a/posix/wordexp.c
+++ b/posix/wordexp.c
@@ -1220,10 +1220,9 @@ parse_param (char **word, size_t *word_length, size_t *max_length,
 	  continue;
 	}
 
-      special = (strchr ("*@$", words[*offset]) != NULL
-		 || isdigit (words[*offset]));
+      special = strchr ("*@$", words[*offset]) != NULL;
 
-      if (!isalpha (words[*offset]) && !special)
+      if (!isalnum (words[*offset]) && !special)
 	/* Stop and evaluate, remembering char we stopped at */
 	break;
 
@@ -1273,11 +1272,13 @@ envsubst:
     }
 
   /* Is it a special parameter? */
-  if (strpbrk (env, "0123456789*@$"))
+  if (strpbrk (env, "*@$") || isdigit (*env))
     {
-      if (env[1])
+      if ((isdigit(*env) && strcspn (env, "1234567890")) ||
+	  (!isdigit(*env) && env[1] != '\0'))
 	{
-	  /* Bad substitution if there is more than one character */
+	  /* Bad substitution if it isn't "*", "@", "$", or just a number.  */
+	bad_subst:
 	  free (env);
 	  fprintf (stderr, "${%s}: bad substitution\n", env);
 	  return WRDE_SYNTAX;
@@ -1286,7 +1287,11 @@ envsubst:
       /* Is it a digit? */
       if (isdigit(*env))
 	{
-	  int n = *env - '0';
+	  char *endp;
+	  int n = strtol (env, &endp, 10);
+
+	  if (*endp != '\0')
+	    goto bad_subst;
 
 	  free (env);
 	  if (n >= __libc_argc)
diff --git a/sysdeps/generic/strtok_r.c b/sysdeps/generic/strtok_r.c
index 44430dae40..26d7da5176 100644
--- a/sysdeps/generic/strtok_r.c
+++ b/sysdeps/generic/strtok_r.c
@@ -1,5 +1,5 @@
 /* Reentrant string tokenizer.  Generic version.
-   Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1991, 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@
 		// s = "abc\0-def\0"
 */
 char *
-strtok_r (s, delim, save_ptr)
+__strtok_r (s, delim, save_ptr)
      char *s;
      const char *delim;
      char **save_ptr;
@@ -61,3 +61,4 @@ strtok_r (s, delim, save_ptr)
     }
   return token;
 }
+weak_alias (__strtok_r, strtok_r)
diff --git a/sysdeps/i386/i686/Implies b/sysdeps/i386/i686/Implies
index b5c05ec7f2..5e3b4cb5e7 100644
--- a/sysdeps/i386/i686/Implies
+++ b/sysdeps/i386/i686/Implies
@@ -2,3 +2,4 @@
 # not really good to use heavily i586 optimized code on a i686.  It's
 # better to use i486/i386 code.
 i386/i486
+libm-i387/i686
diff --git a/sysdeps/i386/strtok_r.S b/sysdeps/i386/strtok_r.S
index 297ba282ac..c048e41cb6 100644
--- a/sysdeps/i386/strtok_r.S
+++ b/sysdeps/i386/strtok_r.S
@@ -1,3 +1,4 @@
-#define FUNCTION strtok_r
+#define FUNCTION __strtok_r
 #define USE_AS_STRTOK_R	1
 #include <sysdeps/i386/strtok.S>
+weak_alias (__strtok_r, strtok_r)
diff --git a/sysdeps/libm-i387/i686/s_fdim.S b/sysdeps/libm-i387/i686/s_fdim.S
index 1ecae61aa9..3f9f61b57d 100644
--- a/sysdeps/libm-i387/i686/s_fdim.S
+++ b/sysdeps/libm-i387/i686/s_fdim.S
@@ -1,5 +1,5 @@
 /* Compute positive difference.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -30,11 +30,12 @@ ENTRY(__fdim)
 
 	fsubp	%st(1), %st
 	fldz
-	fcmovnb	%st(1), %st
+	fcomi	%st(1), %st
+	fcmovb	%st(1), %st
 	jmp	2f
 
 1:	fucomi	%st(0), %st
-	fcmovu	%st, %st(1)
+	fcmovnu	%st(1), %st
 2:	fstp	%st(1)
 	ret
 END(__fdim)
diff --git a/sysdeps/libm-i387/i686/s_fdimf.S b/sysdeps/libm-i387/i686/s_fdimf.S
index 0d2ef3cc1a..8b5cec6a3b 100644
--- a/sysdeps/libm-i387/i686/s_fdimf.S
+++ b/sysdeps/libm-i387/i686/s_fdimf.S
@@ -1,5 +1,5 @@
 /* Compute positive difference.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -30,11 +30,12 @@ ENTRY(__fdimf)
 
 	fsubp	%st(1), %st
 	fldz
-	fcmovnb	%st(1), %st
+	fcomi	%st(1), %st
+	fcmovb	%st(1), %st
 	jmp	2f
 
 1:	fucomi	%st(0), %st
-	fcmovu	%st, %st(1)
+	fcmovnu	%st(1), %st
 2:	fstp	%st(1)
 	ret
 END(__fdimf)
diff --git a/sysdeps/libm-i387/i686/s_fdiml.S b/sysdeps/libm-i387/i686/s_fdiml.S
index 94510df756..e9f0535a3a 100644
--- a/sysdeps/libm-i387/i686/s_fdiml.S
+++ b/sysdeps/libm-i387/i686/s_fdiml.S
@@ -1,5 +1,5 @@
 /* Compute positive difference.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -30,11 +30,12 @@ ENTRY(__fdiml)
 
 	fsubp	%st(1), %st
 	fldz
-	fcmovnb	%st(1), %st
+	fcomi	%st(1), %st
+	fcmovb	%st(1), %st
 	jmp	2f
 
 1:	fucomi	%st(0), %st
-	fcmovu	%st, %st(1)
+	fcmovnu	%st(1), %st
 2:	fstp	%st(1)
 	ret
 END(__fdiml)
diff --git a/sysdeps/libm-i387/i686/s_fmin.S b/sysdeps/libm-i387/i686/s_fmin.S
index 9df029996d..383e9579f6 100644
--- a/sysdeps/libm-i387/i686/s_fmin.S
+++ b/sysdeps/libm-i387/i686/s_fmin.S
@@ -1,5 +1,5 @@
 /* Compute minimum of two numbers, regarding NaN as missing argument.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -29,7 +29,7 @@ ENTRY(__fmin)
 	fcmovu	%st(1), %st	// now %st contains y if not NaN, x otherwise
 
 	fucomi	%st(1), %st
-	fcmovb	%st(1), %st
+	fcmovnb	%st(1), %st
 
 	fstp	%st(1)
 
diff --git a/sysdeps/libm-i387/i686/s_fminf.S b/sysdeps/libm-i387/i686/s_fminf.S
index a1d1497c15..f3dae00377 100644
--- a/sysdeps/libm-i387/i686/s_fminf.S
+++ b/sysdeps/libm-i387/i686/s_fminf.S
@@ -1,5 +1,5 @@
 /* Compute minimum of two numbers, regarding NaN as missing argument.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -29,7 +29,7 @@ ENTRY(__fminf)
 	fcmovu	%st(1), %st	// now %st contains y if not NaN, x otherwise
 
 	fucomi	%st(1), %st
-	fcmovb	%st(1), %st
+	fcmovnb	%st(1), %st
 
 	fstp	%st(1)
 
diff --git a/sysdeps/libm-i387/i686/s_fminl.S b/sysdeps/libm-i387/i686/s_fminl.S
index 089be40bd4..f125531112 100644
--- a/sysdeps/libm-i387/i686/s_fminl.S
+++ b/sysdeps/libm-i387/i686/s_fminl.S
@@ -1,5 +1,5 @@
 /* Compute minimum of two numbers, regarding NaN as missing argument.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
@@ -29,7 +29,7 @@ ENTRY(__fminl)
 	fcmovu	%st(1), %st	// now %st contains y if not NaN, x otherwise
 
 	fucomi	%st(1), %st
-	fcmovb	%st(1), %st
+	fcmovnb	%st(1), %st
 
 	fstp	%st(1)