quote.hon commit Merge branch 'fixes' (b71d01e)
   1#ifndef QUOTE_H
   2#define QUOTE_H
   3
   4#include <stdio.h>
   5
   6/* Help to copy the thing properly quoted for the shell safety.
   7 * any single quote is replaced with '\'', and the whole thing
   8 * is enclosed in a single quote pair.
   9 *
  10 * For example, if you are passing the result to system() as an
  11 * argument:
  12 *
  13 * sprintf(cmd, "foobar %s %s", sq_quote(arg0), sq_quote(arg1))
  14 *
  15 * would be appropriate.  If the system() is going to call ssh to
  16 * run the command on the other side:
  17 *
  18 * sprintf(cmd, "git-diff-tree %s %s", sq_quote(arg0), sq_quote(arg1));
  19 * sprintf(rcmd, "ssh %s %s", sq_quote(host), sq_quote(cmd));
  20 *
  21 * Note that the above examples leak memory!  Remember to free result from
  22 * sq_quote() in a real application.
  23 */
  24
  25extern char *sq_quote(const char *src);
  26
  27extern int quote_c_style(const char *name, char *outbuf, FILE *outfp,
  28                         int nodq);
  29extern char *unquote_c_style(const char *quoted, const char **endp);
  30
  31extern void write_name_quoted(const char *prefix, const char *name,
  32                              int quote, FILE *out);
  33#endif