rem: if (argc >= 2) { if (!strcmp(argv[1], "-parser")) { offset += 2; parser = 1; } } if (argc < 2 + offset) {
add: if (argc < 2) { badargs:
context: NsTclAdpEvalCmd(ClientData dummy, Tcl_Interp *interp, int argc,		char **argv){    AdpData          *adPtr;    Frame             frame;    Ns_DString        ds;    int               code;    int               offset = 0;    int               parser = -1;    Tcl_HashEntry    *hePtr;    Ns_AdpParserProc *parserProc;        if (argc >= 2) {	if (!strcmp(argv[1], "-parser")) {	    offset += 2;	    parser = 1;	}    }    if (argc < 2 + offset) {	Tcl_AppendResult(interp, "wrong # args: should be \"",	    argv[0], " ?-parser parser? page ?arg ...?\"", NULL);	return TCL_ERROR;    }    if (parser != -1) {	hePtr = Tcl_FindHashEntry(&parsersTable, argv[parser]);	if (hePtr == NULL) {	    Tcl_AppendResult(interp, "invalid parser \"", parser, "\"", NULL);	    return TCL_ERROR;	}	parserProc = (Ns_AdpParserProc *) Tcl_GetHashValue(hePtr);    } else {	parserProc = defParserProc;    }        /*     * Increment the inline eval level to ensure flushing is disabled,     * push a frame, execute the code, and then move any result to the     * interp from the output buffer.     */         Ns_DStringInit(&ds);    adPtr = NsAdpGetData();    ++adPtr->evalLevel;    PushFrame(&frame, NULL, argc-1-offset, argv+1+offset);    Parse(NULL, &ds, argv[1]);    code = NsAdpEval(interp, argv[0], ds.string);    if (adPtr->output.length > frame.length) {	Tcl_SetResult(interp, adPtr->output.string + frame.length,		      TCL_VOLATILE);	Ns_DStringTrunc(&adPtr->output, frame.length);    }    PopFrame(&frame);    --adPtr->evalLevel;    Ns_DStringFree(&ds);    return code;}