quote.h 913 B

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