+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
/* 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.
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);
*.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
/* 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;
@c We need some definitions here.
+@c No we don't, they were done by math.texi. -zw
+@ignore
@ifclear cdot
@ifhtml
@set cdot ยท
@end macro
@end ifclear
@end ifclear
+@end ignore
@node Arithmetic, Date and Time, Mathematics, Top
@chapter Low-Level Arithmetic Functions
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
@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
@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}
@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
@end deftypevr
@comment errno.h
-@comment Linux???: Level 2 halted
+@comment Obsolete: Level 2 halted
@deftypevr Macro int EL2HLT
@comment errno ???/51
@end deftypevr
/*@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;
/*@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]);
@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}:
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
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
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
@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
@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
@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
@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
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;
@}
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
@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
@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
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
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
@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.
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.
@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
@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
@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
@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
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
@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
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
@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
@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
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
@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
@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;
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
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
@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;
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;
}
/* 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;
/* 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)
/* 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
// 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;
}
return token;
}
+weak_alias (__strtok_r, strtok_r)
# 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
-#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)
/* 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.
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)
/* 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.
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)
/* 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.
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)
/* 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.
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)
/* 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.
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)
/* 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.
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)