This patch is made for the benefit of Bison.
quote does not leave the choice of the quoting style to the user.
quoting_style provides poor customizability, yet quoting_options,
which is very rich, is hidden inside quotearg.c. So in order to
allow quote customization, move its implementation to quotearg.c.
* lib/quote.c: Remove.
* modules/quote: Adjust.
* lib/quotearg.c (quoting_options_from_style): Fix a compiler
warning: provide all the members of literal structs.
(quote_quoting_options): New.
(quote, quote_n): Import implementation from quote.c.
* lib/quote.h: Import the comments from quote.c.
(quote_quoting_options): New.
+2012-03-06 Akim Demaille <demaille@gostai.com>
+
+ quote: fuse into quotearg
+ This patch is made for the benefit of Bison.
+ quote does not leave the choice of the quoting style to the user.
+ quoting_style provides poor customizability, yet quoting_options,
+ which is very rich, is hidden inside quotearg.c. So in order to
+ allow quote customization, move its implementation to quotearg.c.
+ * lib/quote.c: Remove.
+ * modules/quote: Adjust.
+ * lib/quotearg.c (quoting_options_from_style): Fix a compiler
+ warning: provide all the members of literal structs.
+ (quote_quoting_options): New.
+ (quote, quote_n): Import implementation from quote.c.
+ * lib/quote.h: Import the comments from quote.c.
+ (quote_quoting_options): New.
+
2012-03-06 Bruno Haible <bruno@clisp.org>
Tests for module 'expm1l-ieee'.
+++ /dev/null
-/* quote.c - quote arguments for output
-
- Copyright (C) 1998-2001, 2003, 2005-2006, 2009-2012 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
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* Written by Paul Eggert <eggert@twinsun.com> */
-
-#include <config.h>
-
-#include "quotearg.h"
-#include "quote.h"
-
-/* Return an unambiguous printable representation of NAME,
- allocated in slot N, suitable for diagnostics. */
-char const *
-quote_n (int n, char const *name)
-{
- return quotearg_n_style (n, locale_quoting_style, name);
-}
-
-/* Return an unambiguous printable representation of NAME,
- suitable for diagnostics. */
-char const *
-quote (char const *name)
-{
- return quote_n (0, name);
-}
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#ifndef QUOTE_H_
+# define QUOTE_H_ 1
+/* The quoting options used by quote_n and quote. Its type is incomplete,
+ so it's useful only in expressions like '"e_quoting_options'. */
+extern struct quoting_options quote_quoting_options;
+
+/* Return an unambiguous printable representation of NAME,
+ allocated in slot N, suitable for diagnostics. */
char const *quote_n (int n, char const *name);
+
+/* Return an unambiguous printable representation of NAME,
+ suitable for diagnostics. */
char const *quote (char const *name);
+
+#endif /* !QUOTE_H_ */
#include <config.h>
#include "quotearg.h"
+#include "quote.h"
#include "xalloc.h"
#include "c-strcaseeq.h"
static struct quoting_options /* NOT PURE!! */
quoting_options_from_style (enum quoting_style style)
{
- struct quoting_options o = { 0 };
+ struct quoting_options o = { 0, 0, { 0 }, NULL, NULL };
if (style == custom_quoting_style)
abort ();
o.style = style;
return quotearg_n_custom_mem (0, left_quote, right_quote, arg,
argsize);
}
+
+
+/* The quoting option used by quote_n and quote. */
+struct quoting_options quote_quoting_options =
+ {
+ locale_quoting_style,
+ 0,
+ { 0 },
+ NULL, NULL
+ };
+
+char const *
+quote_n (int n, char const *name)
+{
+ return quotearg_n_options (n, name, SIZE_MAX, "e_quoting_options);
+}
+
+char const *
+quote (char const *name)
+{
+ return quote_n (0, name);
+}
Files:
lib/quote.h
-lib/quote.c
m4/quote.m4
Depends-on:
configure.ac:
gl_QUOTE
-Makefile.am:
-lib_SOURCES += quote.c
-
Include:
"quote.h"