Mercurial > hg > octave-nkf > gnulib-hg
changeset 17146:decc44342646
quote: provide a means to escape strings with nul characters
* lib/quote.h, lib/quotearg.c (quote_mem, quote_n_mem): New functions.
(quote, quote_n): Rename formal arguments for consistency with
quotearg.
author | Akim Demaille <akim@lrde.epita.fr> |
---|---|
date | Thu, 01 Nov 2012 06:47:03 -0700 |
parents | 3db954427a47 |
children | c4a6dcd5073a |
files | ChangeLog lib/quote.h lib/quotearg.c |
diffstat | 3 files changed, 43 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-11-01 Akim Demaille <akim@lrde.epita.fr> + + quote: provide a means to escape strings with nul characters + * lib/quote.h, lib/quotearg.c (quote_mem, quote_n_mem): New functions. + (quote, quote_n): Rename formal arguments for consistency with + quotearg. + 2012-10-30 Paul Eggert <eggert@cs.ucla.edu> test-raise: don't assume 199 is an invalid signal
--- a/lib/quote.h +++ b/lib/quote.h @@ -18,16 +18,29 @@ #ifndef QUOTE_H_ # define QUOTE_H_ 1 +# include <stddef.h> + /* 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 ARG (of size + ARGSIZE), allocated in slot N, suitable for diagnostics. If + ARGSIZE is SIZE_MAX, use the string length of the argument for + ARGSIZE. */ +char const *quote_n_mem (int n, char const *arg, size_t argsize); -/* Return an unambiguous printable representation of NAME, - suitable for diagnostics. */ -char const *quote (char const *name); +/* Return an unambiguous printable representation of ARG (of size + ARGSIZE), suitable for diagnostics. If ARGSIZE is SIZE_MAX, use + the string length of the argument for ARGSIZE. */ +char const *quote_mem (char const *arg, size_t argsize); + +/* Return an unambiguous printable representation of ARG, allocated in + slot N, suitable for diagnostics. */ +char const *quote_n (int n, char const *arg); + +/* Return an unambiguous printable representation of ARG, suitable for + diagnostics. */ +char const *quote (char const *arg); #endif /* !QUOTE_H_ */
--- a/lib/quotearg.c +++ b/lib/quotearg.c @@ -929,7 +929,7 @@ } -/* The quoting option used by quote_n and quote. */ +/* The quoting option used by the functions of quote.h. */ struct quoting_options quote_quoting_options = { locale_quoting_style, @@ -939,13 +939,25 @@ }; char const * -quote_n (int n, char const *name) +quote_n_mem (int n, char const *arg, size_t argsize) { - return quotearg_n_options (n, name, SIZE_MAX, "e_quoting_options); + return quotearg_n_options (n, arg, argsize, "e_quoting_options); } char const * -quote (char const *name) +quote_mem (char const *arg, size_t argsize) +{ + return quote_n_mem (0, arg, argsize); +} + +char const * +quote_n (int n, char const *arg) { - return quote_n (0, name); + return quote_n_mem (n, arg, SIZE_MAX); } + +char const * +quote (char const *arg) +{ + return quote_n (0, arg); +}