diff options
-rw-r--r-- | ls.c | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -136,11 +136,28 @@ init_quote(void) for (i = 0; i < 256; i++) do_quote[i] = (isalnum(i) || ispunct(i)) ? 0 : 1; + + /* + * From rfc 2396 section 2.2 "Reserved Characters": + * reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | + * "$" | "," + */ + do_quote[';'] = 1; + do_quote['/'] = 1; + do_quote['?'] = 1; + do_quote[':'] = 1; + do_quote['@'] = 1; + do_quote['&'] = 1; + do_quote['='] = 1; do_quote['+'] = 1; + do_quote['$'] = 1; + do_quote[','] = 1; + + /* Escape erroneous anchors, escapes, and quotes */ do_quote['#'] = 1; do_quote['%'] = 1; do_quote['"'] = 1; - do_quote['?'] = 1; + do_quote['\''] = 1; } char* |