COPYING and COPYING.LESSER are not on the web any more
[gnulib.git] / lib / quotearg.c
index 8c95b7a..113239f 100644 (file)
@@ -1,7 +1,7 @@
 /* quotearg.c - quote arguments for output
 
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 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
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software Foundation,
-   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* Written by Paul Eggert <eggert@twinsun.com> */
 
-#if HAVE_CONFIG_H
+#ifdef HAVE_CONFIG_H
 # include <config.h>
 #endif
 
@@ -222,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
@@ -235,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);
@@ -302,6 +307,9 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                    STORE ('\\');
                    STORE ('?');
                    break;
+
+                 default:
+                   break;
                  }
              break;
 
@@ -449,6 +457,9 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                                case '[': case '\\': case '^':
                                case '`': case '|':
                                  goto use_shell_always_quoting_style;
+
+                               default:
+                                 break;
                                }
                          }
 
@@ -581,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 ();