CTRACE(tfp, "HTWSRC: Unknown field `%s' in source file\n", me->param);
CTRACE((tfp, "HTWSRC: Unknown field `%s' in source file\n", me->param));
PRIVATE void WSRCParser_put_character ARGS2(HTStream*, me, char, c){    switch (me->state) {    case beginning:	if (c=='(') me->state = before_tag;	break;    case before_tag:	if (c==')') {	    me->state = done;	    return;			/* Done with input file */	} else if (c==':') {	    me->param_count = 0;	    me->state = colon;	}				/* Ignore other text */	break;    case colon:	if (WHITE(c)) {	    me->param[me->param_count++] = 0;	/* Terminate */	    for(me->param_number = 0; par_name[me->param_number]; me->param_number++) {		if (0==strcmp(par_name[me->param_number], me->param)) {		    break;		}	    }	    if (!par_name[me->param_number]) {	/* Unknown field */		CTRACE(tfp, "HTWSRC: Unknown field `%s' in source file\n",			    me->param);		me->param_number = PAR_UNKNOWN;		me->state = before_value;	/* Could be better ignore */		return;	    }	    me->state = before_value;	} else {	    if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;	}	break;    case before_value:	if (c==')') {	    me->state = done;	    return;			/* Done with input file */	}	if (WHITE(c)) return;		/* Skip white space */	me->param_count = 0;	if (c=='"') {	    me->state = quoted_value;	    break;	}	me->state = (c=='"') ? quoted_value :		    (c=='(') ? bracketed_value : value;	me->param[me->param_count++] = c;	/* Don't miss first character */	break;    case value:	if (WHITE(c)) {	    me->param[me->param_count] = 0;	    StrAllocCopy(me->par_value[me->param_number], me->param);	    me->state = before_tag;	} else {	    if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;	}	break;    case bracketed_value:	if (c==')') {	    me->param[me->param_count] = 0;	    StrAllocCopy(me->par_value[me->param_number], me->param);	    me->state = before_tag;	    break;	}	if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;	break;    case quoted_value:	if (c=='"') {	    me->param[me->param_count] = 0;	    StrAllocCopy(me->par_value[me->param_number], me->param);	    me->state = before_tag;	    break;	}	if (c=='\\') {		/* Ignore escape but switch state */	    me->state = escape_in_quoted;	    break;	}	/* Fall through! */    case escape_in_quoted:	if (me->param_count < PARAM_MAX)  me->param[me->param_count++] = c;	me->state = quoted_value;	break;    case done:				/* Ignore anything after EOF */	return;    } /* switch me->state */}