Commit | Line | Data |
---|---|---|
8b40f521 JK |
1 | #ifndef __PERF_QUOTE_H |
2 | #define __PERF_QUOTE_H | |
07800601 IM |
3 | |
4 | #include <stddef.h> | |
5 | #include <stdio.h> | |
6 | ||
7 | /* Help to copy the thing properly quoted for the shell safety. | |
8 | * any single quote is replaced with '\'', any exclamation point | |
9 | * is replaced with '\!', and the whole thing is enclosed in a | |
10 | * single quote pair. | |
11 | * | |
12 | * For example, if you are passing the result to system() as an | |
13 | * argument: | |
14 | * | |
15 | * sprintf(cmd, "foobar %s %s", sq_quote(arg0), sq_quote(arg1)) | |
16 | * | |
17 | * would be appropriate. If the system() is going to call ssh to | |
18 | * run the command on the other side: | |
19 | * | |
20 | * sprintf(cmd, "git-diff-tree %s %s", sq_quote(arg0), sq_quote(arg1)); | |
148be2c1 | 21 | * sprintf(rcmd, "ssh %s %s", sq_util/quote.host), sq_quote(cmd)); |
07800601 IM |
22 | * |
23 | * Note that the above examples leak memory! Remember to free result from | |
24 | * sq_quote() in a real application. | |
07800601 IM |
25 | */ |
26 | ||
07800601 IM |
27 | extern void sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen); |
28 | ||
8b40f521 | 29 | #endif /* __PERF_QUOTE_H */ |