From 4f6fbcdcf960b5afaeb2f5010be61b919c1805fd Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 14 Oct 2005 21:54:47 -0700 Subject: Functions to quote and unquote pathnames in C-style. Following the list discussion, define two functions, quote_c_style and unquote_c_style, to help adopting the proposed way for quoting funny pathname letters for GNU patch. The rule is described in: http://marc.theaimsgroup.com/?l=git&m=112927316408690&w=2 Currently we do not support the leading '!', but we probably should barf upon seeing it. Rule B4. is interpreted to require always 3 octal digits in \XYZ notation. Signed-off-by: Junio C Hamano --- quote.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'quote.h') diff --git a/quote.h b/quote.h index 50ce1df976..2fdde3b66b 100644 --- a/quote.h +++ b/quote.h @@ -2,6 +2,7 @@ #define QUOTE_H #include +#include /* Help to copy the thing properly quoted for the shell safety. * any single quote is replaced with '\'', any exclamation point @@ -27,7 +28,14 @@ * excluding the final null regardless of the buffer size. */ -char *sq_quote(const char *src); -size_t sq_quote_buf(char *dst, size_t n, const char *src); +extern char *sq_quote(const char *src); +extern size_t sq_quote_buf(char *dst, size_t n, const char *src); + +extern int quote_c_style(const char *name, char *outbuf, FILE *outfp, + int nodq); +extern char *unquote_c_style(const char *quoted, const char **endp); + +extern void write_name_quoted(const char *prefix, const char *name, + int quote, FILE *out); #endif -- cgit v1.2.1