summary refs log tree commit diff
path: root/quote.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-10-14 21:54:47 -0700
committerJunio C Hamano <junkio@cox.net>2005-10-17 17:41:54 -0700
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:

    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 <junkio@cox.net>
Diffstat (limited to 'quote.h')
-rw-r--r--quote.h12
1 files changed, 10 insertions, 2 deletions
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 <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);
 
 #endif