Mercurial > hg > octave-shane > gnulib-hg
changeset 16594:2dc96bd6b0d0
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.
author | Akim Demaille <demaille@gostai.com> |
---|---|
date | Tue, 06 Mar 2012 23:35:28 -0800 |
parents | 1227bdffccae |
children | 6d5adeda9a06 |
files | ChangeLog lib/quote.c lib/quote.h lib/quotearg.c modules/quote |
diffstat | 5 files changed, 54 insertions(+), 45 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +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'.
deleted file mode 100644 --- a/lib/quote.c +++ /dev/null @@ -1,40 +0,0 @@ -/* 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); -}
--- a/lib/quote.h +++ b/lib/quote.h @@ -15,6 +15,19 @@ 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_ */
--- a/lib/quotearg.c +++ b/lib/quotearg.c @@ -27,6 +27,7 @@ #include <config.h> #include "quotearg.h" +#include "quote.h" #include "xalloc.h" #include "c-strcaseeq.h" @@ -177,7 +178,7 @@ 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; @@ -926,3 +927,25 @@ 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); +}