path: root/quote.h
diff options
authorJunio C Hamano <>2005-10-15 04:54:47 (GMT)
committerJunio C Hamano <>2005-10-18 00:41:54 (GMT)
commit4f6fbcdcf960b5afaeb2f5010be61b919c1805fd (patch)
tree0405deb4bcb44e3fa4ad3d8103d6674527389389 /quote.h
parent2b2dabc29f53c5835868029585000ee487cf6cbb (diff)
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: 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 <>
Diffstat (limited to 'quote.h')
1 files changed, 10 insertions, 2 deletions
diff --git a/quote.h b/quote.h
index 50ce1df..2fdde3b 100644
--- a/quote.h
+++ b/quote.h
@@ -2,6 +2,7 @@
#define QUOTE_H
#include <stddef.h>
+#include <stdio.h>
/* 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);