diff options
author | adam <adam@FreeBSD.org> | 1995-10-30 14:03:00 +0000 |
---|---|---|
committer | adam <adam@FreeBSD.org> | 1995-10-30 14:03:00 +0000 |
commit | 04b5326448f35258a4cfbc41530249be6af384df (patch) | |
tree | ea48e6173487eb8816c6a8924a285049c3f942ca /usr.sbin/inetd | |
parent | a5fb896f484ad854b39617e555e64a9dc00f0c27 (diff) | |
download | FreeBSD-src-04b5326448f35258a4cfbc41530249be6af384df.zip FreeBSD-src-04b5326448f35258a4cfbc41530249be6af384df.tar.gz |
Implement simple quoting for command args.
Previously "abc xyz" became 2 args split at the space.
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r-- | usr.sbin/inetd/inetd.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c index ca2fc39..c654526 100644 --- a/usr.sbin/inetd/inetd.c +++ b/usr.sbin/inetd/inetd.c @@ -40,7 +40,7 @@ static char copyright[] = #ifndef lint /* from: @(#)inetd.c 8.4 (Berkeley) 4/13/94"; */ static char inetd_c_rcsid[] = - "$Id: inetd.c,v 1.6 1995/06/11 19:32:39 rgrimes Exp $"; + "$Id: inetd.c,v 1.7 1995/10/12 16:43:26 wollman Exp $"; #endif /* not lint */ /* @@ -1006,6 +1006,7 @@ skip(cpp) { char *cp = *cpp; char *start; + char quote = '\0'; again: while (*cp == ' ' || *cp == '\t') @@ -1021,9 +1022,15 @@ again: *cpp = (char *)0; return ((char *)0); } + if (*cp == '"' || *cp == '\'') + quote = *cp++; start = cp; - while (*cp && *cp != ' ' && *cp != '\t') - cp++; + if (quote) + while (*cp && *cp != quote) + cp++; + else + while (*cp && *cp != ' ' && *cp != '\t') + cp++; if (*cp != '\0') *cp++ = '\0'; *cpp = cp; |