rem: } opt;
add: } _nsmayalias opt;
context: NsTclTimeObjCmd(ClientData dummy, Tcl_Interp *interp, int objc, Tcl_Obj **objv){    Ns_Time result, t1, t2;    static CONST char *opts[] = {	"adjust", "diff", "get", "incr", "make", "seconds",	"microseconds", NULL    };    enum {	TAdjustIdx, TDiffIdx, TGetIdx, TIncrIdx, TMakeIdx,	TSecondsIdx, TMicroSecondsIdx    } opt;    if (objc < 2) {    	Tcl_SetLongObj(Tcl_GetObjResult(interp), time(NULL));    } else {	if (Tcl_GetIndexFromObj(interp, objv[1], opts, "option", 0,				(int *) &opt) != TCL_OK) {	    return TCL_ERROR;	}	switch (opt) {	case TGetIdx:	    Ns_GetTime(&result);	    break;	case TMakeIdx:	    if (objc != 3 && objc != 4) {		Tcl_WrongNumArgs(interp, 2, objv, "sec ?usec?");		return TCL_ERROR;	    }	    if (Tcl_GetLongFromObj(interp, objv[2], &result.sec) != TCL_OK) {		return TCL_ERROR;	    }	    if (objc == 3) {		result.usec = 0;	    } else if (Tcl_GetLongFromObj(interp, objv[3], &result.usec) != TCL_OK) {		return TCL_ERROR;	    }	    break;	case TIncrIdx:	    if (objc != 4 && objc != 5) {		Tcl_WrongNumArgs(interp, 2, objv, "time sec ?usec?");		return TCL_ERROR;	    }	    if (Ns_TclGetTimeFromObj(interp, objv[2], &result) != TCL_OK ||		Tcl_GetLongFromObj(interp, objv[3], &t2.sec) != TCL_OK) {		return TCL_ERROR;	    }	    if (objc == 4) {		t2.usec = 0;	    } else if (Tcl_GetLongFromObj(interp, objv[4], &t2.usec) != TCL_OK) {		return TCL_ERROR;	    }	    Ns_IncrTime(&result, t2.sec, t2.usec);	    break;	case TDiffIdx:	    if (objc != 4) {		Tcl_WrongNumArgs(interp, 2, objv, "time1 time2");		return TCL_ERROR;	    }	    if (Ns_TclGetTimeFromObj(interp, objv[2], &t1) != TCL_OK ||		Ns_TclGetTimeFromObj(interp, objv[3], &t2) != TCL_OK) {		return TCL_ERROR;	    }	    Ns_DiffTime(&t1, &t2, &result);	    break;	case TAdjustIdx:	    if (objc != 3) {		Tcl_WrongNumArgs(interp, 2, objv, "time");		return TCL_ERROR;	    }	    if (Ns_TclGetTimeFromObj(interp, objv[2], &result) != TCL_OK) {		return TCL_ERROR;	    }	    Ns_AdjTime(&result);	    break;	case TSecondsIdx:	case TMicroSecondsIdx:	    if (objc != 3) {		Tcl_WrongNumArgs(interp, 2, objv, "time");		return TCL_ERROR;	    }	    if (Ns_TclGetTimeFromObj(interp, objv[2], &result) != TCL_OK) {		return TCL_ERROR;	    }	    Tcl_SetLongObj(Tcl_GetObjResult(interp),			  opt == TSecondsIdx ? result.sec : result.usec);	    return TCL_OK;	    break;	}    	Ns_TclSetTimeObj(Tcl_GetObjResult(interp), &result);    }    return TCL_OK;}