aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/inetd/inetd.c
diff options
context:
space:
mode:
authorAdam David <adam@FreeBSD.org>1995-10-30 14:03:00 +0000
committerAdam David <adam@FreeBSD.org>1995-10-30 14:03:00 +0000
commit32b505b222c79b7e3541db3688f397dd7c15419f (patch)
treeea48e6173487eb8816c6a8924a285049c3f942ca /usr.sbin/inetd/inetd.c
parent904890f6c0af631cc74602415003f864b12ce147 (diff)
downloadsrc-32b505b222c79b7e3541db3688f397dd7c15419f.tar.gz
src-32b505b222c79b7e3541db3688f397dd7c15419f.zip
Implement simple quoting for command args.
Previously "abc xyz" became 2 args split at the space.
Notes
Notes: svn path=/head/; revision=11933
Diffstat (limited to 'usr.sbin/inetd/inetd.c')
-rw-r--r--usr.sbin/inetd/inetd.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/usr.sbin/inetd/inetd.c b/usr.sbin/inetd/inetd.c
index ca2fc39344ed..c65452687594 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;