From c8413184c8bd06e2e7feeadc369914d326604eae Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Sun, 27 May 1979 02:58:48 -0800 Subject: [PATCH] BSD 3 development Work on file usr/src/cmd/uucp/getprm.c Synthesized-from: 3bsd --- usr/src/cmd/uucp/getprm.c | 97 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 usr/src/cmd/uucp/getprm.c diff --git a/usr/src/cmd/uucp/getprm.c b/usr/src/cmd/uucp/getprm.c new file mode 100644 index 0000000000..758ee8793a --- /dev/null +++ b/usr/src/cmd/uucp/getprm.c @@ -0,0 +1,97 @@ +#include + +#define LQUOTE '(' +#define RQUOTE ')' +#define NOSYSPART 0 +#define HASSYSPART 1 + +/******* + * char * + * getprm(s, prm) get next parameter from s + * char *s, *prm; + * + * return - pointer to next character in s + */ + +char * +getprm(s, prm) +char *s, *prm; +{ + char *c; + + while (*s == ' ' || *s == '\t' || *s == '\n') + s++; + + *prm = '\0'; + if (*s == '\0') + return(NULL); + + if (*s == '>' || *s == '<' || *s == '|' + || *s == ';') { + *prm++ = *s++; + *prm = '\0'; + return(s); + } + + /* look for quoted argument */ + if (*s == LQUOTE) { + if ((c = index(s + 1, RQUOTE)) != NULL) { + c++; + while (c != s) + *prm++ = *s++; + *prm = '\0'; + return(s); + } + } + + while (*s != ' ' && *s != '\t' && *s != '<' + && *s != '>' && *s != '|' && *s != '\0' + && *s != ';' && *s != '\n') + *prm++ = *s++; + *prm = '\0'; + + return(s); +} + +/*** + * split(name, sys, rest) split into system and file part + * char *name, *sys, *rest; + + * + * return codes: + * NOSYSPART + * HASSYSPART + */ + +split(name, sys, rest) +char *name, *sys, *rest; +{ + char *c; + int i; + + if (*name == LQUOTE) { + if ((c = index(name + 1, RQUOTE)) != NULL) { + /* strip off quotes */ + name++; + while (c != name) + *rest++ = *name++; + *rest = '\0'; + *sys = '\0'; + return(NOSYSPART); + } + } + + if ((c = index(name, '!')) == NULL) { + strcpy(rest, name); + *sys = '\0'; + return(NOSYSPART); + } + + *c = '\0'; + for (i = 0; i < 7; i++) + if ((*sys++ = *name++) == '\0') + break; + + strcpy(rest, ++c); + return(HASSYSPART); +} -- 2.20.1