]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Update from gnulib.
authorBruno Haible <bruno@clisp.org>
Sat, 22 Jul 2006 16:19:09 +0000 (16:19 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:13:40 +0000 (12:13 +0200)
gettext-tools/lib/ChangeLog
gettext-tools/lib/quotearg.c
gettext-tools/lib/safe-read.c
gettext-tools/lib/stdbool_.h

index a06bf2c41c7c9b488c2864bb62f30b81b74dc90f..ad5914dae25f54cf2704d5fbc5a625deff31c8f5 100644 (file)
@@ -1,5 +1,7 @@
 2006-07-22  Bruno Haible  <bruno@clisp.org>
 
+       * quotearg.c: Update from gnulib.
+
        * pathmax.h: Update from gnulib.
 
        * obstack.h: Update from gnulib, keeping DLL_VARIABLE annotation.
index 3c8cbb16af3b7236d4f5e0eb2e77511810266c3a..113239fb14f06eb1c95c2eac76b2ef1be47bf8e8 100644 (file)
@@ -1,6 +1,7 @@
 /* quotearg.c - quote arguments for output
 
-   Copyright (C) 1998-1999, 2000-2002, 2004-2005 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006 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
@@ -221,7 +222,8 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
     case locale_quoting_style:
     case clocale_quoting_style:
       {
-       /* Get translations for open and closing quotation marks.
+       /* TRANSLATORS:
+          Get translations for open and closing quotation marks.
 
           The message catalog should translate "`" to a left
           quotation mark suitable for the locale, and similarly for
@@ -234,7 +236,11 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
           should translate "'" to U+201D (RIGHT DOUBLE QUOTATION
           MARK).  A British English Unicode locale should instead
           translate these to U+2018 (LEFT SINGLE QUOTATION MARK) and
-          U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.  */
+          U+2019 (RIGHT SINGLE QUOTATION MARK), respectively.
+
+          If you don't know what to put here, please see
+          <http://en.wikipedia.org/wiki/Quotation_mark#Glyphs>
+          and use glyphs suitable for your language.  */
 
        char const *left = gettext_quote (N_("`"), quoting_style);
        char const *right = gettext_quote (N_("'"), quoting_style);
@@ -301,6 +307,9 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                    STORE ('\\');
                    STORE ('?');
                    break;
+
+                 default:
+                   break;
                  }
              break;
 
@@ -448,6 +457,9 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                                case '[': case '\\': case '^':
                                case '`': case '|':
                                  goto use_shell_always_quoting_style;
+
+                               default:
+                                 break;
                                }
                          }
 
@@ -580,7 +592,12 @@ quotearg_n_options (int n, char const *arg, size_t argsize,
 
   if (nslots <= n0)
     {
-      unsigned int n1 = n0 + 1;
+      /* FIXME: technically, the type of n1 should be `unsigned int',
+        but that evokes an unsuppressible warning from gcc-4.0.1 and
+        older.  If gcc ever provides an option to suppress that warning,
+        revert to the original type, so that the test in xalloc_oversized
+        is once again performed only at compile time.  */
+      size_t n1 = n0 + 1;
 
       if (xalloc_oversized (n1, sizeof *slotvec))
        xalloc_die ();
index 92ed49d3e20e60ec34bcfc1f45b87a5dbc0ef48f..9caf84666d40f2ac0ad938f7d8890f9d80e4c938 100644 (file)
@@ -1,6 +1,7 @@
 /* An interface to read and write that retries after interrupts.
 
-   Copyright (C) 1993-1994, 1998, 2002-2006 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 1998, 2002, 2003, 2004, 2005 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
index 3177ae03cf48588f39d4cfae235889d3a010f376..efa80ba921ed759564a462bdfca2bf91871b0c48 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
 
    This program is free software; you can redistribute it and/or modify
    (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
    (see ISO C 99 6.3.1.1.(2)).  So we add a negative value to the
    enum; this ensures that '_Bool' promotes to 'int'.  */
-#if !(defined __cplusplus || defined __BEOS__)
+#if defined __cplusplus || defined __BEOS__
+  /* A compiler known to have 'bool'.  */
+  /* If the compiler already has both 'bool' and '_Bool', we can assume they
+     are the same types.  */
 # if !@HAVE__BOOL@
-#  if defined __SUNPRO_C && (__SUNPRO_C < 0x550 || __STDC__ == 1)
-    /* Avoid stupid "warning: _Bool is a keyword in ISO C99".  */
-#   define _Bool signed char
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+   /* If @HAVE__BOOL@:
+        Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+        the built-in _Bool type is used.  See
+          http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+          http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+        Similar bugs are likely with other compilers as well; this file
+        wouldn't be used if <stdbool.h> was working.
+        So we override the _Bool type.
+      If !@HAVE__BOOL@:
+        Need to define _Bool ourselves. As 'signed char' or as an enum type?
+        Use of a typedef, with SunPRO C, leads to a stupid
+          "warning: _Bool is a keyword in ISO C99".
+        Use of an enum type, with IRIX cc, leads to a stupid
+          "warning(1185): enumerated type mixed with another type".
+        The only benefit of the enum type, debuggability, is not important
+        with these compilers.  So use 'signed char' and no typedef.  */
+#  define _Bool signed char
 enum { false = 0, true = 1 };
-#  else
+# else
+   /* With this compiler, trust the _Bool type if the compiler has it.  */
+#  if !@HAVE__BOOL@
 typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
 #  endif
 # endif
-#else
-typedef bool _Bool;
 #endif
 #define bool _Bool