aboutsummaryrefslogtreecommitdiff
path: root/tests/wsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wsp.c')
-rw-r--r--tests/wsp.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/wsp.c b/tests/wsp.c
index e8eb9c6..84efc13 100644
--- a/tests/wsp.c
+++ b/tests/wsp.c
@@ -91,7 +91,7 @@ help ()
{
size_t i;
- printf ("usage: %s [options] [VAR=VALUE...]\n", progname);
+ printf ("usage: %s [options] [VAR=VALUE...] [-- EXTRA...]\n", progname);
printf ("options are:\n");
printf (" [-]trimnl\n");
printf (" [-]plaintext\n");
@@ -334,6 +334,8 @@ main (int argc, char **argv)
size_t fenvidx = 0;
size_t fenvmax = sizeof (fenvbase) / sizeof (fenvbase[0]);
int use_env = env_sys;
+ int appendc = 0;
+ char **appendv = NULL;
progname = argv[0];
@@ -346,6 +348,12 @@ main (int argc, char **argv)
if (opt[0] == '-')
{
+ if (opt[1] == '-' && opt[2] == 0)
+ {
+ appendc = argc - i - 1;
+ appendv = argv + i + 1;
+ break;
+ }
negate = 1;
opt++;
}
@@ -604,6 +612,17 @@ main (int argc, char **argv)
offarg = 0;
}
+ if (appendc)
+ {
+ rc = wordsplit_append (&ws, appendc, appendv);
+ if (rc)
+ {
+ if (!(wsflags & WRDSF_SHOWERR))
+ wordsplit_perror (&ws);
+ continue;
+ }
+ }
+
wsflags |= WRDSF_REUSE | (ws.ws_flags & WRDSF_ENV);
printf ("NF: %lu", (unsigned long) ws.ws_wordc);
if (wsflags & WRDSF_DOOFFS)

Return to:

Send suggestions and report system problems to the System administrator.