1# shell_quote --- quote an argument for passing to the shell
2#
3# Michael Brennan
4# brennan@madronabluff.com
5# September 2014
6
7function shell_quote(s,             # parameter
8    SINGLE, QSINGLE, i, X, n, ret)  # locals
9{
10    if (s == "")
11        return "\"\""
12
13    SINGLE = "\x27"  # single quote
14    QSINGLE = "\"\x27\""
15    n = split(s, X, SINGLE)
16
17    ret = SINGLE X[1] SINGLE
18    for (i = 2; i <= n; i++)
19        ret = ret QSINGLE SINGLE X[i] SINGLE
20
21    return ret
22}
23