rem: } else if (STREQ(argv[1], "pid")) { Tcl_SetResult(interp, Ns_InfoPid(), TCL_STATIC);
context: NsTclInfoCmd(ClientData dummy, Tcl_Interp *interp, int argc, char **argv){    char *elog;    Tcl_DString ds;    if (argc != 2) {        Tcl_AppendResult(interp, "wrong # args:  should be \"",                         argv[0], " command", NULL);        return TCL_ERROR;    }    Tcl_DStringInit(&ds);    if (STREQ(argv[1], "argv0")) {	Tcl_SetResult(interp, nsconf.argv0, TCL_STATIC);    } else if (STREQ(argv[1], "nsd")) {	Tcl_SetResult(interp, nsconf.nsd, TCL_STATIC);    } else if (STREQ(argv[1], "pageroot")) {	Tcl_SetResult(interp, Ns_PageRoot(NULL), TCL_STATIC);    } else if (STREQ(argv[1], "server") || STREQ(argv[1], "servers")) {        Tcl_SetResult(interp, nsServer, TCL_STATIC);    } else if (STREQ(argv[1], "name")) {        Tcl_SetResult(interp, Ns_InfoServerName(), TCL_STATIC);    } else if (STREQ(argv[1], "config")) {	Tcl_SetResult(interp, Ns_InfoConfigFile(), TCL_STATIC);    } else if (STREQ(argv[1], "callbacks")) {    	NsGetCallbacks(&ds);	Tcl_DStringResult(interp, &ds);    } else if (STREQ(argv[1], "sockcallbacks")) {    	NsGetSockCallbacks(&ds);	Tcl_DStringResult(interp, &ds);    } else if (STREQ(argv[1], "scheduled")) {    	NsGetScheduled(&ds);	Tcl_DStringResult(interp, &ds);    } else if (STREQ(argv[1], "locks")) {	Ns_MutexEnum(AppendMutex, &ds);	Tcl_DStringResult(interp, &ds);    } else if (STREQ(argv[1], "threads")) {	Ns_ThreadEnum(AppendThread, &ds);	Tcl_DStringResult(interp, &ds);    } else if (STREQ(argv[1], "log")) {        elog = Ns_InfoErrorLog();	Tcl_SetResult(interp, elog == NULL ? "STDOUT" : elog, TCL_STATIC);    } else if (STREQ(argv[1], "platform")) {	Tcl_SetResult(interp, Ns_InfoPlatform(), TCL_STATIC);    } else if (STREQ(argv[1], "hostname")) {	Tcl_SetResult(interp, Ns_InfoHostname(), TCL_STATIC);    } else if (STREQ(argv[1], "address")) {	Tcl_SetResult(interp, Ns_InfoAddress(), TCL_STATIC);    } else if (STREQ(argv[1], "uptime")) {        sprintf(interp->result, "%d", Ns_InfoUptime());    } else if (STREQ(argv[1], "boottime")) {        sprintf(interp->result, "%d", Ns_InfoBootTime());    } else if (STREQ(argv[1], "version")) {	Tcl_SetResult(interp, Ns_InfoVersion(), TCL_STATIC);    } else if (STREQ(argv[1], "home")) {	Tcl_SetResult(interp, Ns_InfoHome(), TCL_STATIC);    } else if (STREQ(argv[1], "tcllib")) {	Tcl_SetResult(interp, Ns_TclLibrary(), TCL_STATIC);    } else if (STREQ(argv[1], "winnt")) {#ifdef WIN32        interp->result = "1";#else        interp->result = "0";#endif    } else if (STREQ(argv[1], "label")) {	Tcl_SetResult(interp, Ns_InfoLabel(), TCL_STATIC);    } else if (STREQ(argv[1], "builddate")) {	Tcl_SetResult(interp, Ns_InfoBuildDate(), TCL_STATIC);    } else if (STREQ(argv[1], "pid")) {	Tcl_SetResult(interp, Ns_InfoPid(), TCL_STATIC);    } else {        Tcl_AppendResult(interp, "unknown command \"", argv[1],                         "\":  should be "                         "address, "                         "argv0, "                         "builddate, "                         "callbacks, "                         "config, "                         "hostname, "                         "label, "                         "locks, "                         "log, "                         "name, "                         "pageroot, "			 "pid, "                         "platform, "                         "scheduled, "                         "server, "                         "sockcallbacks, "                         "tcllib, "                         "threads, "                         "version, "                         "or winnt", NULL);        return TCL_ERROR;    }    return TCL_OK;}