mirror of
https://github.com/coreutils/coreutils.git
synced 2024-11-26 11:23:47 +08:00
merge with 1.11.1a
This commit is contained in:
parent
e364481ca4
commit
37a6bc3abf
@ -1,5 +1,5 @@
|
||||
/* error.c -- error handler for noninteractive utilities
|
||||
Copyright (C) 1990, 91, 92, 93, 94 Free Software Foundation, Inc.
|
||||
Copyright (C) 1990, 91, 92, 93, 94, 95 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -43,6 +43,9 @@
|
||||
void exit ();
|
||||
#endif
|
||||
|
||||
/* This variable is incremented each time `error' is called. */
|
||||
unsigned int error_message_count;
|
||||
|
||||
/* If NULL, error will flush stdout, then print on stderr the program
|
||||
name, a colon and a space. Otherwise, error will call this
|
||||
function without parameters instead. */
|
||||
@ -112,6 +115,8 @@ error (status, errnum, message, va_alist)
|
||||
fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8);
|
||||
#endif
|
||||
|
||||
++error_message_count;
|
||||
|
||||
if (errnum)
|
||||
fprintf (stderr, ": %s", strerror (errnum));
|
||||
putc ('\n', stderr);
|
||||
|
@ -38,4 +38,7 @@ void error (int, int, const char *, ...) \
|
||||
void error ();
|
||||
#endif
|
||||
|
||||
/* This variable is incremented each time `error' is called. */
|
||||
extern unsigned int error_message_count;
|
||||
|
||||
#endif /* _error_h_ */
|
||||
|
26
lib/regex.c
26
lib/regex.c
@ -3,7 +3,7 @@
|
||||
(Implements POSIX draft P10003.2/D11.2, except for
|
||||
internationalization features.)
|
||||
|
||||
Copyright (C) 1993, 1994 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -33,9 +33,8 @@
|
||||
/* We need this for `regex.h', and perhaps for the Emacs include files. */
|
||||
#include <sys/types.h>
|
||||
|
||||
/* This is for other GNU distributions with internationalized messages.
|
||||
The GNU C Library itself does not yet support such messages. */
|
||||
#if HAVE_LIBINTL_H
|
||||
/* This is for other GNU distributions with internationalized messages. */
|
||||
#if HAVE_LIBINTL_H || defined (_LIBC)
|
||||
# include <libintl.h>
|
||||
#else
|
||||
# define gettext(msgid) (msgid)
|
||||
@ -56,7 +55,7 @@
|
||||
even if config.h says that we can. */
|
||||
#undef REL_ALLOC
|
||||
|
||||
#ifdef STDC_HEADERS
|
||||
#if defined (STDC_HEADERS) || defined (_LIBC)
|
||||
#include <stdlib.h>
|
||||
#else
|
||||
char *malloc ();
|
||||
@ -66,7 +65,7 @@ char *realloc ();
|
||||
/* We used to test for `BSTRING' here, but only GCC and Emacs define
|
||||
`BSTRING', as far as I know, and neither of them use this code. */
|
||||
#ifndef INHIBIT_STRING_HEADER
|
||||
#if HAVE_STRING_H || STDC_HEADERS
|
||||
#if HAVE_STRING_H || STDC_HEADERS || defined (_LIBC)
|
||||
#include <string.h>
|
||||
#ifndef bcmp
|
||||
#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n))
|
||||
@ -244,7 +243,7 @@ char *alloca ();
|
||||
destination)
|
||||
|
||||
/* No need to do anything to free, after alloca. */
|
||||
#define REGEX_FREE(arg) while (0)
|
||||
#define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */
|
||||
|
||||
#endif /* not REGEX_MALLOC */
|
||||
|
||||
@ -1011,7 +1010,8 @@ typedef struct
|
||||
#define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size)
|
||||
|
||||
|
||||
/* Initialize `fail_stack'. Do `return -2' if the alloc fails. */
|
||||
/* Define macros to initialize and free the failure stack.
|
||||
Do `return -2' if the alloc fails. */
|
||||
|
||||
#ifdef MATCH_MAY_ALLOCATE
|
||||
#define INIT_FAIL_STACK() \
|
||||
@ -1025,11 +1025,15 @@ typedef struct
|
||||
fail_stack.size = INIT_FAILURE_ALLOC; \
|
||||
fail_stack.avail = 0; \
|
||||
} while (0)
|
||||
|
||||
#define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack)
|
||||
#else
|
||||
#define INIT_FAIL_STACK() \
|
||||
do { \
|
||||
fail_stack.avail = 0; \
|
||||
} while (0)
|
||||
|
||||
#define RESET_FAIL_STACK()
|
||||
#endif
|
||||
|
||||
|
||||
@ -3082,7 +3086,7 @@ re_compile_fastmap (bufp)
|
||||
{
|
||||
if (!PUSH_PATTERN_OP (p + j, fail_stack))
|
||||
{
|
||||
REGEX_FREE_STACK (fail_stack.stack);
|
||||
RESET_FAIL_STACK ();
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
@ -3143,7 +3147,7 @@ re_compile_fastmap (bufp)
|
||||
bufp->can_be_null |= path_can_be_null;
|
||||
|
||||
done:
|
||||
REGEX_FREE_STACK (fail_stack.stack);
|
||||
RESET_FAIL_STACK ();
|
||||
return 0;
|
||||
} /* re_compile_fastmap */
|
||||
|
||||
@ -3413,7 +3417,7 @@ static boolean alt_match_null_string_p (),
|
||||
FREE_VAR (reg_info_dummy); \
|
||||
} while (0)
|
||||
#else
|
||||
#define FREE_VARIABLES() /* Do nothing! */
|
||||
#define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */
|
||||
#endif /* not MATCH_MAY_ALLOCATE */
|
||||
|
||||
/* These values must meet several constraints. They must not be valid
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* Definitions for data structures and routines for the regular
|
||||
expression library, version 0.12.
|
||||
|
||||
Copyright (C) 1985, 89, 90, 91, 92, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1985, 89, 90, 91, 92, 93, 95 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -23,7 +23,7 @@
|
||||
/* POSIX says that <sys/types.h> must be included (by the caller) before
|
||||
<regex.h>. */
|
||||
|
||||
#ifdef VMS
|
||||
#if !defined (_POSIX_C_SOURCE) && !defined (_POSIX_SOURCE) && defined (VMS)
|
||||
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
|
||||
should be there. */
|
||||
#include <stddef.h>
|
||||
|
Loading…
Reference in New Issue
Block a user