1: #include <stdio.h>
   2: 
   3: #define LQUOTE  '('
   4: #define RQUOTE ')'
   5: #define NOSYSPART   0
   6: #define HASSYSPART  1
   7: 
   8: /*******
   9:  *	char *
  10:  *	getprm(s, prm)	get next parameter from s
  11:  *	char *s, *prm;
  12:  *
  13:  *	return - pointer to next character in s
  14:  */
  15: 
  16: char *
  17: getprm(s, prm)
  18: char *s, *prm;
  19: {
  20:     char *c;
  21: 
  22:     while (*s == ' ' || *s == '\t' || *s == '\n')
  23:         s++;
  24: 
  25:     *prm = '\0';
  26:     if (*s == '\0')
  27:         return(NULL);
  28: 
  29:     if (*s == '>' || *s == '<' || *s == '|'
  30:     || *s == ';') {
  31:         *prm++ = *s++;
  32:         *prm = '\0';
  33:         return(s);
  34:     }
  35: 
  36:     /* look for quoted argument */
  37:     if (*s == LQUOTE) {
  38:         if ((c = index(s + 1, RQUOTE)) != NULL) {
  39:             c++;
  40:             while (c != s)
  41:                 *prm++ = *s++;
  42:             *prm = '\0';
  43:             return(s);
  44:         }
  45:     }
  46: 
  47:     while (*s != ' ' && *s != '\t' && *s != '<'
  48:     && *s != '>' && *s != '|' && *s != '\0'
  49:     && *s != ';' && *s != '\n')
  50:         *prm++ = *s++;
  51:     *prm = '\0';
  52: 
  53:     return(s);
  54: }
  55: 
  56: /***
  57:  *	split(name, sys, rest)	split into system and file part
  58:  *	char *name, *sys, *rest;
  59: 
  60:  *
  61:  *	return codes:
  62:  *		NOSYSPART
  63:  *		HASSYSPART
  64:  */
  65: 
  66: split(name, sys, rest)
  67: char *name, *sys, *rest;
  68: {
  69:     char *c;
  70:     int i;
  71: 
  72:     if (*name == LQUOTE) {
  73:         if ((c = index(name + 1, RQUOTE)) != NULL) {
  74:         /* strip off quotes */
  75:             name++;
  76:             while (c != name)
  77:                 *rest++ = *name++;
  78:             *rest = '\0';
  79:             *sys = '\0';
  80:             return(NOSYSPART);
  81:         }
  82:     }
  83: 
  84:     if ((c = index(name, '!')) == NULL) {
  85:         strcpy(rest, name);
  86:         *sys = '\0';
  87:         return(NOSYSPART);
  88:     }
  89: 
  90:     *c = '\0';
  91:     for (i = 0; i < 7; i++)
  92:         if ((*sys++ = *name++) == '\0')
  93:             break;
  94: 
  95:     strcpy(rest, ++c);
  96:     return(HASSYSPART);
  97: }

Defined functions

getprm defined in line 16; used 6 times
split defined in line 66; used 2 times

Defined macros

HASSYSPART defined in line 6; used 1 times
  • in line 96
LQUOTE defined in line 3; used 2 times
NOSYSPART defined in line 5; used 2 times
RQUOTE defined in line 4; used 2 times
Last modified: 1979-01-11
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 534
Valid CSS Valid XHTML 1.0 Strict