1 #ifndef lint 2 static char sccsid[] = "@(#)getprm.c 5.4 (Berkeley) 10/09/85"; 3 #endif 4 5 #include "uucp.h" 6 7 #define LQUOTE '(' 8 #define RQUOTE ')' 9 10 /*LINTLIBRARY*/ 11 12 /* 13 * get next parameter from s 14 * 15 * return - pointer to next character in s 16 */ 17 18 char * 19 getprm(s, prm) 20 register char *s, *prm; 21 { 22 register char *c; 23 24 while (*s == ' ' || *s == '\t' || *s == '\n') 25 s++; 26 27 *prm = '\0'; 28 if (*s == '\0') 29 return NULL; 30 31 if (*s == '>' || *s == '<' || *s == '|' 32 || *s == ';' || *s == '&') { 33 *prm++ = *s++; 34 *prm = '\0'; 35 return s; 36 } 37 38 /* look for quoted argument */ 39 if (*s == LQUOTE) { 40 if ((c = index(s + 1, RQUOTE)) != NULL) { 41 c++; 42 while (c != s) 43 *prm++ = *s++; 44 *prm = '\0'; 45 return s; 46 } 47 } 48 49 /* look for ` ` string */ 50 if (*s == '`') { 51 if ((c = index(s + 1, '`')) != NULL) { 52 c++; 53 while (c != s) 54 *prm++ = *s++; 55 *prm = '\0'; 56 return s; 57 } 58 } 59 60 while (*s != ' ' && *s != '\t' && *s != '<' 61 && *s != '>' && *s != '|' && *s != '\0' 62 && *s != '&' && *s != ';' && *s != '\n') 63 *prm++ = *s++; 64 *prm = '\0'; 65 66 return s; 67 } 68