Update.
1998-01-31 11:18 Ulrich Drepper <drepper@cygnus.com> * misc/efgcvt_r.c (fcvt_r): Handle illegal NDIGIT correctly. [PR libc/410] * misc/Makefile (tests): Add tst-efgcvt. * misc/tst-efgcvt.c: New file. * manual/arith.texi (Parsing of Integers): Correct description of strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>. [PR libc/396] * misc/lsearch.c (lsearch): Return a pointer to the new element if one was "allocated". * string/strsignal.c: NSIG is not a valid index into _sys_siglist. Don't zap the last character of the "Unknown signal" message.
This commit is contained in:
parent
acaee4d7aa
commit
07b51ba59a
23
ChangeLog
23
ChangeLog
@ -1,3 +1,10 @@
|
||||
1998-01-31 11:18 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* misc/efgcvt_r.c (fcvt_r): Handle illegal NDIGIT correctly.
|
||||
[PR libc/410]
|
||||
* misc/Makefile (tests): Add tst-efgcvt.
|
||||
* misc/tst-efgcvt.c: New file.
|
||||
|
||||
1998-01-31 00:21 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* posix/regex.c: Add some more cleanups by Akim Demaille.
|
||||
@ -749,20 +756,20 @@
|
||||
|
||||
1998-01-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* manual/arith.texi (Parsing of Integers): Correct description of
|
||||
strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
|
||||
[PR libc/396]
|
||||
* manual/arith.texi (Parsing of Integers): Correct description of
|
||||
strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>.
|
||||
[PR libc/396]
|
||||
|
||||
1997-12-30 14:14 Matthias Urlichs <urlichs@noris.de>
|
||||
|
||||
* misc/lsearch.c (lsearch): Return a pointer to the new element
|
||||
if one was "allocated".
|
||||
* misc/lsearch.c (lsearch): Return a pointer to the new element
|
||||
if one was "allocated".
|
||||
|
||||
1997-12-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
* string/strsignal.c: NSIG is not a valid index into
|
||||
_sys_siglist. Don't zap the last character of the "Unknown
|
||||
signal" message.
|
||||
* string/strsignal.c: NSIG is not a valid index into
|
||||
_sys_siglist. Don't zap the last character of the "Unknown
|
||||
signal" message.
|
||||
|
||||
1998-01-19 15:08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98 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
|
||||
@ -64,7 +64,7 @@ install-lib := libbsd-compat.a libg.a
|
||||
non-lib.a := libbsd-compat.a
|
||||
gpl2lgpl := error.c error.h
|
||||
|
||||
tests := tst-dirname tst-tsearch tst-fdset
|
||||
tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt
|
||||
|
||||
include ../Rules
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compatibility functions for floating point formatting, reentrant versions.
|
||||
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.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@ -61,6 +61,17 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
|
||||
if (*sign)
|
||||
value = -value;
|
||||
}
|
||||
else
|
||||
/* Value is Inf or NaN. */
|
||||
*sign = 0;
|
||||
|
||||
if (ndigit <= 0)
|
||||
{
|
||||
if (len > 0)
|
||||
buf[0] = '\0';
|
||||
*decpt = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = snprintf (buf, len, "%.*" FLOAT_FMT_FLAG "f", ndigit, value);
|
||||
if (n < 0)
|
||||
@ -72,11 +83,8 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
|
||||
*decpt = i;
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
/* Value is Inf or NaN. */
|
||||
*sign = 0;
|
||||
return 0;
|
||||
}
|
||||
/* Value is Inf or NaN. */
|
||||
return 0;
|
||||
|
||||
if (i < n)
|
||||
{
|
||||
@ -84,7 +92,7 @@ APPEND (FUNC_PREFIX, fcvt_r) (value, ndigit, decpt, sign, buf, len)
|
||||
++i;
|
||||
while (i < n && !isdigit (buf[i]));
|
||||
memmove (&buf[*decpt], &buf[i], n - i);
|
||||
buf[n - (i - *decpt)] = 0;
|
||||
buf[n - (i - *decpt)] = '\0';
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
34
misc/tst-efgcvt.c
Normal file
34
misc/tst-efgcvt.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* Copyright (C) 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int decpt, sign;
|
||||
char *p;
|
||||
|
||||
p = ecvt (0.0, 0, &decpt, &sign);
|
||||
printf ("p: \"%s\", decpt: %d, sign: %d\n", p, decpt, sign);
|
||||
if (p[0] != '\0')
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
version 0.12.
|
||||
(Implements POSIX draft P1003.2/D11.2, except for some of the
|
||||
internationalization features.)
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
@ -31,6 +31,14 @@
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#ifndef PARAMS
|
||||
# if defined __GNUC__ || (defined __STDC__ && __STDC__)
|
||||
# define PARAMS(args) args
|
||||
# else
|
||||
# define PARAMS(args) ()
|
||||
# endif /* GCC. */
|
||||
#endif /* Not PARAMS. */
|
||||
|
||||
#if defined STDC_HEADERS && !defined emacs
|
||||
# include <stddef.h>
|
||||
#else
|
||||
@ -329,7 +337,12 @@ typedef char boolean;
|
||||
#define false 0
|
||||
#define true 1
|
||||
|
||||
static int re_match_2_internal ();
|
||||
static int re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp,
|
||||
const char *string1, int size1,
|
||||
const char *string2, int size2,
|
||||
int pos,
|
||||
struct re_registers *regs,
|
||||
int stop));
|
||||
|
||||
/* These are the command codes that appear in compiled regular
|
||||
expressions. Some opcodes are followed by argument bytes. A
|
||||
@ -2368,10 +2381,12 @@ regex_compile (pattern, size, syntax, bufp)
|
||||
if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
|
||||
|
||||
if (COMPILE_STACK_EMPTY)
|
||||
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
goto normal_backslash;
|
||||
else
|
||||
FREE_STACK_RETURN (REG_ERPAREN);
|
||||
{
|
||||
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
goto normal_backslash;
|
||||
else
|
||||
FREE_STACK_RETURN (REG_ERPAREN);
|
||||
}
|
||||
|
||||
handle_close:
|
||||
if (fixup_alt_jump)
|
||||
@ -2388,10 +2403,12 @@ regex_compile (pattern, size, syntax, bufp)
|
||||
|
||||
/* See similar code for backslashed left paren above. */
|
||||
if (COMPILE_STACK_EMPTY)
|
||||
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
goto normal_char;
|
||||
else
|
||||
FREE_STACK_RETURN (REG_ERPAREN);
|
||||
{
|
||||
if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
|
||||
goto normal_char;
|
||||
else
|
||||
FREE_STACK_RETURN (REG_ERPAREN);
|
||||
}
|
||||
|
||||
/* Since we just checked for an empty stack above, this
|
||||
``can't happen''. */
|
||||
|
@ -268,8 +268,8 @@ extern int sigqueue __P ((__pid_t __pid, int __sig,
|
||||
|
||||
/* Names of the signals. This variable exists only for compatibility.
|
||||
Use `strsignal' instead (see <string.h>). */
|
||||
extern __const char *__const _sys_siglist[_NSIG + 1];
|
||||
extern __const char *__const sys_siglist[_NSIG + 1];
|
||||
extern __const char *__const _sys_siglist[_NSIG];
|
||||
extern __const char *__const sys_siglist[_NSIG];
|
||||
|
||||
/* Structure passed to `sigvec'. */
|
||||
struct sigvec
|
||||
|
@ -57,7 +57,7 @@ strsignal (int signum)
|
||||
#ifdef SIGRTMIN
|
||||
(signum >= SIGRTMIN && signum <= SIGRTMAX) ||
|
||||
#endif
|
||||
signum < 0 || signum > NSIG || (desc = _sys_siglist[signum]) == NULL)
|
||||
signum < 0 || signum >= NSIG || (desc = _sys_siglist[signum]) == NULL)
|
||||
{
|
||||
char *buffer = getbuffer ();
|
||||
int len = __snprintf (buffer, BUFFERSIZ - 1,
|
||||
|
@ -19,14 +19,14 @@
|
||||
#include <stddef.h>
|
||||
#include <signal.h>
|
||||
|
||||
const char * const __new_sys_siglist[NSIG + 1] =
|
||||
const char * const __new_sys_siglist[NSIG] =
|
||||
{
|
||||
#define init_sig(sig, abbrev, desc) [sig] desc,
|
||||
#include "siglist.h"
|
||||
#undef init_sig
|
||||
};
|
||||
|
||||
const char * const __new_sys_sigabbrev[NSIG + 1] =
|
||||
const char * const __new_sys_sigabbrev[NSIG] =
|
||||
{
|
||||
#define init_sig(sig, abbrev, desc) [sig] abbrev,
|
||||
#include "siglist.h"
|
||||
|
Loading…
Reference in New Issue
Block a user