git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
ed06df559af749b1bbb4801a3e520da89f1966d0 blob 2951 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
#ifndef QUOTE_H
#define QUOTE_H

struct strbuf;

/* Help to copy the thing properly quoted for the shell safety.
 * any single quote is replaced with '\'', any exclamation point
 * is replaced with '\!', and the whole thing is enclosed in a
 * single quote pair.
 *
 * For example, if you are passing the result to system() as an
 * argument:
 *
 * sprintf(cmd, "foobar %s %s", sq_quote(arg0), sq_quote(arg1))
 *
 * would be appropriate.  If the system() is going to call ssh to
 * run the command on the other side:
 *
 * sprintf(cmd, "git-diff-tree %s %s", sq_quote(arg0), sq_quote(arg1));
 * sprintf(rcmd, "ssh %s %s", sq_quote(host), sq_quote(cmd));
 *
 * Note that the above examples leak memory!  Remember to free result from
 * sq_quote() in a real application.
 *
 * sq_quote_buf() writes to an existing buffer of specified size; it
 * will return the number of characters that would have been written
 * excluding the final null regardless of the buffer size.
 */

extern void sq_quote_print(FILE *stream, const char *src);

extern void sq_quote_buf(struct strbuf *, const char *src);
extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen);

/* This unwraps what sq_quote() produces in place, but returns
 * NULL if the input does not look like what sq_quote would have
 * produced.
 */
extern char *sq_dequote(char *);

/*
 * Same as the above, but can be used to unwrap many arguments in the
 * same string separated by space. Like sq_quote, it works in place,
 * modifying arg and appending pointers into it to argv.
 */
extern int sq_dequote_to_argv(char *arg, const char ***argv, int *nr, int *alloc);

/*
 * Same as above, but store the unquoted strings in an argv_array. We will
 * still modify arg in place, but unlike sq_dequote_to_argv, the argv_array
 * will duplicate and take ownership of the strings.
 */
struct argv_array;
extern int sq_dequote_to_argv_array(char *arg, struct argv_array *);

extern int unquote_c_style(struct strbuf *, const char *quoted, const char **endp);
extern size_t quote_c_style(const char *name, struct strbuf *, FILE *, int no_dq);
extern void quote_two_c_style(struct strbuf *, const char *, const char *, int);

extern void write_name_quoted(const char *name, FILE *, int terminator);
extern void write_name_quotedpfx(const char *pfx, size_t pfxlen,
                                 const char *name, FILE *, int terminator);
extern void write_name_quoted_relative(const char *name, size_t len,
		const char *prefix, size_t prefix_len,
		FILE *fp, int terminator);

/* quote path as relative to the given prefix */
extern char *quote_path_relative(const char *in, int len,
			  struct strbuf *out, const char *prefix);

/* quoting as a string literal for other languages */
extern void perl_quote_buf(struct strbuf *sb, const char *src);
extern void python_quote_buf(struct strbuf *sb, const char *src);
extern void tcl_quote_buf(struct strbuf *sb, const char *src);

#endif
debug log:

solving ed06df5 ...
found ed06df5 in https://public-inbox.org/git/1368959235-27777-3-git-send-email-pclouds@gmail.com/ ||
	https://public-inbox.org/git/1370349337-20938-2-git-send-email-artagnon@gmail.com/ ||
	https://public-inbox.org/git/1373365946-9230-2-git-send-email-artagnon@gmail.com/ ||
	https://public-inbox.org/git/1370800474-8940-2-git-send-email-artagnon@gmail.com/
found 133155a in git.git.git
preparing index
index prepared:
100644 133155a48b4baa56cd70c07af8a477771f373105	quote.h

applying [1/4] https://public-inbox.org/git/1368959235-27777-3-git-send-email-pclouds@gmail.com/
diff --git a/quote.h b/quote.h
index 133155a..ed06df5 100644

Checking patch quote.h...
Applied patch quote.h cleanly.

skipping https://public-inbox.org/git/1370349337-20938-2-git-send-email-artagnon@gmail.com/ for ed06df5
skipping https://public-inbox.org/git/1373365946-9230-2-git-send-email-artagnon@gmail.com/ for ed06df5
skipping https://public-inbox.org/git/1370800474-8940-2-git-send-email-artagnon@gmail.com/ for ed06df5
index at:
100644 ed06df559af749b1bbb4801a3e520da89f1966d0	quote.h

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).