blob: 055ca45bed992088cbe078c39ff42110b0cea690 [file] [log] [blame]
John Kacur8b40f522009-09-24 18:02:18 +02001#ifndef __PERF_QUOTE_H
2#define __PERF_QUOTE_H
Ingo Molnar07800602009-04-20 15:00:56 +02003
4#include <stddef.h>
Ingo Molnar07800602009-04-20 15:00:56 +02005
6/* Help to copy the thing properly quoted for the shell safety.
7 * any single quote is replaced with '\'', any exclamation point
8 * is replaced with '\!', and the whole thing is enclosed in a
9 * single quote pair.
10 *
11 * For example, if you are passing the result to system() as an
12 * argument:
13 *
14 * sprintf(cmd, "foobar %s %s", sq_quote(arg0), sq_quote(arg1))
15 *
16 * would be appropriate. If the system() is going to call ssh to
17 * run the command on the other side:
18 *
19 * sprintf(cmd, "git-diff-tree %s %s", sq_quote(arg0), sq_quote(arg1));
Ingo Molnar148be2c2009-04-27 08:02:14 +020020 * sprintf(rcmd, "ssh %s %s", sq_util/quote.host), sq_quote(cmd));
Ingo Molnar07800602009-04-20 15:00:56 +020021 *
22 * Note that the above examples leak memory! Remember to free result from
23 * sq_quote() in a real application.
Ingo Molnar07800602009-04-20 15:00:56 +020024 */
25
Arnaldo Carvalho de Melo380a71a2016-07-07 11:17:38 -030026struct strbuf;
27
Masami Hiramatsu70a68982016-05-10 14:47:26 +090028int sq_quote_argv(struct strbuf *, const char **argv, size_t maxlen);
Ingo Molnar07800602009-04-20 15:00:56 +020029
John Kacur8b40f522009-09-24 18:02:18 +020030#endif /* __PERF_QUOTE_H */