+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
#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 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 NAME,
- suitable for diagnostics. */
-char const *quote (char const *name);
+/* Return an unambiguous printable representation of ARG, suitable for
+ diagnostics. */
+char const *quote (char const *arg);
#endif /* !QUOTE_H_ */
}
-/* 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,
};
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 (0, name);
+ return quote_n_mem (0, arg, argsize);
+}
+
+char const *
+quote_n (int n, char const *arg)
+{
+ return quote_n_mem (n, arg, SIZE_MAX);
+}
+
+char const *
+quote (char const *arg)
+{
+ return quote_n (0, arg);
}