while (start < end && *start == '\t' || *start == ' ')
while ((start < end && *start == '\t') || *start == ' ')
matchsequence(char *start, char *end, char *pattern,	      char symbols[_maxoptvars][_aliasmax + 1], int *match_length){   int                 var, i;   char                str[_aliasmax + 1];   char               *start_org = start;   *match_length = 0;   for (var = 0; var < _maxoptvars; var++)      symbols[var][0] = '\0';   while (*start == '\t' || *start == ' ')      start++;   while (*pattern)     {	if (start >= end)	   return FALSE;	switch (*pattern)	  {	  case '%':		/* new "symbol" */	     pattern++;	     assert(isdigit(*pattern));	     var = atoi(pattern) - 1;	     assert(var >= 0 && var < _maxoptvars);	     assert(alphanum(*start));	     for (i = 0; start < end && alphanum(*start); i++, start++)	       {		  assert(i <= _aliasmax);		  str[i] = *start;	       }		/* for */	     str[i] = '\0';	     if (symbols[var][0] != '\0')	       {		  if (strcmp(symbols[var], str) != 0)		     return FALSE;	/* symbols should be identical */	       }	     else	       {		  strcpy(symbols[var], str);	       }		/* if */	     break;	  case ' ':	     if (*start != '\t' && *start != ' ')		return FALSE;	     while (start < end && *start == '\t' || *start == ' ')		start++;	     break;	  case '!':	     while (start < end && *start == '\t' || *start == ' ')		start++;	/* skip trailing white space */	     if (*start != '\n')		return FALSE;	     assert(*(start + 1) == '\0');	     start += 2;	/* skip '\n' and '\0' */	     if (*(pattern + 1) != '\0')		while (start < end && *start == '\t' || *start == ' ')		   start++;	/* skip leading white space of next instruction */	     break;	  default:	     if (tolower(*start) != tolower(*pattern))		return FALSE;	     start++;	  }			/* switch */	pattern++;     }				/* while */   *match_length = (int)(start - start_org);   return TRUE;}