I installed this into coreutils to keep things a bit more in sync: 2005-12-01 Paul Eggert <[EMAIL PROTECTED]>
Sync from gnulib. * lib/exclude.c: Include verify.h. (verify): Remove. All callers changed to use verify.h's version. * lib/strtoimax.c: Likewise. * lib/utimecmp.c: Likewis.e * lib/obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't include <wchar.h>; no longer needed. 2005-12-01 Jim Meyering <[EMAIL PROTECTED]> Sync from gnulib. * lib/intprops.h (signed_type_or_expr__): Define. (INT_STRLEN_BOUND) [__GNUC__]: Use a slightly tighter bound for unsigned types. 2005-12-01 Jakub Jelinek <[EMAIL PROTECTED]> and Ulrich Drepper <[EMAIL PROTECTED]> Import from libc via gnulib. * lib/obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf instead of inline stream orientation test and two separate function calls. Pay no attention to USE_IN_LIBIO. 2005-12-01 Roland McGrath <[EMAIL PROTECTED]> Import from libc via gnulib. [BZ #1331] * lib/obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed macro argument. Reported by Matej Vela <[EMAIL PROTECTED]>. 2005-12-01 Bruno Haible <[EMAIL PROTECTED]> Import from gnulib. * m4/mbchar.m4 (gl_MBCHAR): Check for wchar.h and wctype.h. Don't compile mbchar.c if they are not both present. * m4/mbiter.m4 (gl_MBITER): Likewise. * m4/strstr.m4 (gl_PREREQ_STRSTR): Use AC_REQUIRE. * m4/strcase.m4 (gl_PREREQ_STRCASECMP): Likewise. Index: lib/exclude.c =================================================================== RCS file: /fetish/cu/lib/exclude.c,v retrieving revision 1.26 diff -p -u -r1.26 exclude.c --- lib/exclude.c 22 Sep 2005 06:05:39 -0000 1.26 +++ lib/exclude.c 2 Dec 2005 00:34:13 -0000 @@ -37,6 +37,7 @@ #include "fnmatch.h" #include "strcase.h" #include "xalloc.h" +#include "verify.h" #if USE_UNLOCKED_IO # include "unlocked-io.h" @@ -54,9 +55,6 @@ is_space (unsigned char c) return IN_CTYPE_DOMAIN (c) && isspace (c); } -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - /* Non-GNU systems lack these options, so we don't need to check them. */ #ifndef FNM_CASEFOLD # define FNM_CASEFOLD 0 @@ -65,11 +63,10 @@ is_space (unsigned char c) # define FNM_LEADING_DIR 0 #endif -verify (EXCLUDE_macros_do_not_collide_with_FNM_macros, - (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) - & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR - | FNM_CASEFOLD)) - == 0)); +verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) + & (FNM_PATHNAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR + | FNM_CASEFOLD)) + == 0); /* An exclude pattern-options pair. The options are fnmatch options ORed with EXCLUDE_* options. */ Index: lib/intprops.h =================================================================== RCS file: /fetish/cu/lib/intprops.h,v retrieving revision 1.5 diff -p -u -r1.5 intprops.h --- lib/intprops.h 14 May 2005 07:58:06 -0000 1.5 +++ lib/intprops.h 2 Dec 2005 00:34:13 -0000 @@ -53,12 +53,25 @@ ? (t) -1 \ : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) +/* Return zero if T can be determined to be an unsigned type. + Otherwise, return 1. + When compiling with GCC, INT_STRLEN_BOUND uses this macro to obtain a + tighter bound. Otherwise, it overestimates the true bound by one byte + when applied to unsigned types of size 2, 4, 16, ... bytes. + The symbol signed_type_or_expr__ is private to this header file. */ +#if __GNUC__ >= 2 +# define signed_type_or_expr__(t) TYPE_SIGNED (__typeof__ (t)) +#else +# define signed_type_or_expr__(t) 1 +#endif + /* Bound on length of the string representing an integer type or expression T. - Subtract 1 for the sign bit if t is signed; log10 (2.0) < 146/485; + Subtract 1 for the sign bit if T is signed; log10 (2.0) < 146/485; add 1 for integer division truncation; add 1 more for a minus sign if needed. */ #define INT_STRLEN_BOUND(t) \ - ((sizeof (t) * CHAR_BIT - 1) * 146 / 485 + 2) + ((sizeof (t) * CHAR_BIT - signed_type_or_expr__ (t)) * 146 / 485 \ + + signed_type_or_expr__ (t) + 1) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ Index: lib/obstack.c =================================================================== RCS file: /fetish/cu/lib/obstack.c,v retrieving revision 1.31 diff -p -u -r1.31 obstack.c --- lib/obstack.c 14 May 2005 07:58:06 -0000 1.31 +++ lib/obstack.c 2 Dec 2005 00:34:14 -0000 @@ -51,10 +51,6 @@ # endif #endif -#if defined _LIBC && defined USE_IN_LIBIO -# include <wchar.h> -#endif - #include <stddef.h> #ifndef ELIDE_CODE @@ -433,12 +429,11 @@ print_and_abort (void) happen because the "memory exhausted" message appears in other places like this and the translation should be reused instead of creating a very similar string which requires a separate translation. */ -# if defined _LIBC && defined USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s\n", _("memory exhausted")); - else +# ifdef _LIBC + (void) __fxprintf (NULL, "%s\n", _("memory exhausted")); +# else + fprintf (stderr, "%s\n", _("memory exhausted")); # endif - fprintf (stderr, "%s\n", _("memory exhausted")); exit (obstack_exit_failure); } Index: lib/obstack.h =================================================================== RCS file: /fetish/cu/lib/obstack.h,v retrieving revision 1.31 diff -p -u -r1.31 obstack.h --- lib/obstack.h 14 May 2005 07:58:06 -0000 1.31 +++ lib/obstack.h 2 Dec 2005 00:34:14 -0000 @@ -1,11 +1,7 @@ /* obstack.h - object stack macros - Copyright (C) 1988-1994,1996-1999,2003,2004 Free Software Foundation, Inc. - - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to [EMAIL PROTECTED] + Copyright (C) 1988-1994,1996-1999,2003,2004,2005 + Free Software Foundation, Inc. + This file is part of the GNU C Library. 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 @@ -464,7 +460,7 @@ __extension__ \ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr)) # define obstack_int_grow_fast(h,aint) \ - (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr)) + (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint)) # define obstack_blank(h,length) \ ( (h)->temp.tempint = (length), \ Index: lib/strtoimax.c =================================================================== RCS file: /fetish/cu/lib/strtoimax.c,v retrieving revision 1.13 diff -p -u -r1.13 strtoimax.c --- lib/strtoimax.c 22 Sep 2005 06:05:39 -0000 1.13 +++ lib/strtoimax.c 2 Dec 2005 00:34:14 -0000 @@ -32,8 +32,7 @@ #include <stdlib.h> -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } +#include "verify.h" #ifdef UNSIGNED # ifndef HAVE_DECL_STRTOULL @@ -68,15 +67,13 @@ INT strtoimax (char const *ptr, char **endptr, int base) { #if HAVE_LONG_LONG - verify (size_is_that_of_long_or_long_long, - (sizeof (INT) == sizeof (long int) - || sizeof (INT) == sizeof (long long int))); + verify (sizeof (INT) == sizeof (long int) + || sizeof (INT) == sizeof (long long int)); if (sizeof (INT) != sizeof (long int)) return strtoll (ptr, endptr, base); #else - verify (size_is_that_of_long, - sizeof (INT) == sizeof (long int)); + verify (sizeof (INT) == sizeof (long int)); #endif return strtol (ptr, endptr, base); Index: lib/utimecmp.c =================================================================== RCS file: /fetish/cu/lib/utimecmp.c,v retrieving revision 1.5 diff -p -u -r1.5 utimecmp.c --- lib/utimecmp.c 22 Sep 2005 06:05:39 -0000 1.5 +++ lib/utimecmp.c 2 Dec 2005 00:34:14 -0000 @@ -39,11 +39,9 @@ #include "stat-time.h" #include "timespec.h" #include "utimens.h" +#include "verify.h" #include "xalloc.h" -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - #ifndef MAX # define MAX(a, b) ((a) > (b) ? (a) : (b)) #endif @@ -139,8 +137,8 @@ utimecmp (char const *dst_name, time_t might be unsigned. */ - verify (time_t_is_integer, TYPE_IS_INTEGER (time_t)); - verify (twos_complement_arithmetic, TYPE_TWOS_COMPLEMENT (int)); + verify (TYPE_IS_INTEGER (time_t)); + verify (TYPE_TWOS_COMPLEMENT (int)); /* Destination and source time stamps. */ time_t dst_s = dst_stat->st_mtime; Index: m4/mbchar.m4 =================================================================== RCS file: /fetish/cu/m4/mbchar.m4,v retrieving revision 1.2 diff -p -u -r1.2 mbchar.m4 --- m4/mbchar.m4 24 Sep 2005 23:13:19 -0000 1.2 +++ m4/mbchar.m4 2 Dec 2005 00:34:14 -0000 @@ -9,13 +9,12 @@ dnl From Bruno Haible. AC_DEFUN([gl_MBCHAR], [ - AC_CHECK_HEADERS_ONCE(wchar.h wctype.h) - - case $ac_cv_header_wchar_h,$ac_cv_header_wctype_h in - yes,yes) - AC_LIBOBJ([mbchar]);; - esac - AC_REQUIRE([AC_GNU_SOURCE]) - : + dnl The following line is that so the user can test + dnl HAVE_WCHAR_H && HAVE_WCTYPE_H before #include "mbchar.h". + AC_CHECK_HEADERS_ONCE(wchar.h wctype.h) + dnl Compile mbchar.c only if HAVE_WCHAR_H && HAVE_WCTYPE_H. + if test $ac_cv_header_wchar_h = yes && test $ac_cv_header_wctype_h = yes; then + AC_LIBOBJ([mbchar]) + fi ]) Index: m4/mbiter.m4 =================================================================== RCS file: /fetish/cu/m4/mbiter.m4,v retrieving revision 1.1 diff -p -u -r1.1 mbiter.m4 --- m4/mbiter.m4 22 Sep 2005 06:22:44 -0000 1.1 +++ m4/mbiter.m4 2 Dec 2005 00:34:14 -0000 @@ -1,4 +1,4 @@ -# mbiter.m4 serial 1 +# mbiter.m4 serial 2 dnl Copyright (C) 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -10,5 +10,8 @@ dnl From Bruno Haible. AC_DEFUN([gl_MBITER], [ AC_REQUIRE([AC_TYPE_MBSTATE_T]) + dnl The following line is that so the user can test HAVE_MBRTOWC before + dnl #include "mbiter.h" or "mbuiter.h". + AC_REQUIRE([gl_FUNC_MBRTOWC]) : ]) Index: m4/strcase.m4 =================================================================== RCS file: /fetish/cu/m4/strcase.m4,v retrieving revision 1.3 diff -p -u -r1.3 strcase.m4 --- m4/strcase.m4 22 Sep 2005 06:44:26 -0000 1.3 +++ m4/strcase.m4 2 Dec 2005 00:34:14 -0000 @@ -1,4 +1,4 @@ -# strcase.m4 serial 2 +# strcase.m4 serial 3 dnl Copyright (C) 2002, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -29,7 +29,8 @@ AC_DEFUN([gl_FUNC_STRNCASECMP], # Prerequisites of lib/strcasecmp.c. AC_DEFUN([gl_PREREQ_STRCASECMP], [ - gl_FUNC_MBRTOWC + AC_REQUIRE([gl_FUNC_MBRTOWC]) + : ]) # Prerequisites of lib/strncasecmp.c. Index: m4/strstr.m4 =================================================================== RCS file: /fetish/cu/m4/strstr.m4,v retrieving revision 1.4 diff -p -u -r1.4 strstr.m4 --- m4/strstr.m4 22 Sep 2005 06:44:26 -0000 1.4 +++ m4/strstr.m4 2 Dec 2005 00:34:14 -0000 @@ -1,4 +1,4 @@ -# strstr.m4 serial 4 +# strstr.m4 serial 5 dnl Copyright (C) 2002-2003, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -14,5 +14,6 @@ AC_DEFUN([gl_FUNC_STRSTR], # Prerequisites of lib/strstr.c. AC_DEFUN([gl_PREREQ_STRSTR], [ - gl_FUNC_MBRTOWC + AC_REQUIRE([gl_FUNC_MBRTOWC]) + : ]) _______________________________________________ Bug-coreutils mailing list Bug-coreutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-coreutils