+2012-05-08 Bruno Haible <bruno@clisp.org>
+
+ sh-quote tests: Make tests stricter.
+ * tests/test-sh-quote.c (check_one): Check the return value of
+ shell_quote_copy.
+ (main): Check a string with a CR character. Check a string that
+ contains UCHAR_MAX.
+
2012-05-08 Akim Demaille <akim@lrde.epita.fr>
warnings.m4: provide a means to specify the program to compile.
memset (buf, '\0', output_len + 1);
buf[output_len + 1] = '%';
bufend = shell_quote_copy (buf, input);
+ ASSERT (bufend == buf + output_len);
ASSERT (memcmp (buf, output, output_len + 1) == 0);
ASSERT (buf[output_len + 1] == '%');
/* Whitespace would be interpreted as argument separator by the shell. */
check_one ("foo\tbar", "'foo\tbar'");
check_one ("foo\nbar", "'foo\nbar'");
+ check_one ("foo\rbar", "'foo\rbar'");
check_one ("foo bar", "'foo bar'");
/* '!' at the beginning of argv[0] would introduce a negated command. */
check_one ("foo'bar\"baz", "'foo'\\''bar\"baz'"); /* or "\"foo'bar\\\"baz\"" */
/* All other characters don't need quoting. */
- for (c = 1; c < UCHAR_MAX; c++)
+ for (c = 1; c <= UCHAR_MAX; c++)
if (strchr ("\t\n\r !\"#$&'()*;<=>?^[\\]`{|}~", c) == NULL)
{
char s[5];