in src/generic/command.c [81:146]
int Web_GetCommand(ClientData clientData,
Tcl_Interp * interp, int objc, Tcl_Obj * CONST objv[])
{
RequestData *requestData = NULL;
Tcl_Obj *res = NULL;
/* --------------------------------------------------------------------------
* check for private data
* ----------------------------------------------------------------------- */
WebAssertData(interp, clientData, "Web_GetCommand", TCL_ERROR)
requestData = (RequestData *) clientData;
/* --------------------------------------------------------------------------
* check for arguments
* ----------------------------------------------------------------------- */
WebAssertObjc(objc < 1 || objc > 2, 1, "?command?");
/* --------------------------------------------------------------------------
* no argument --> return code for command WEB_REQ_DEFAULT
* ----------------------------------------------------------------------- */
if (objc == 1) {
res =
(Tcl_Obj *) getFromHashTable(requestData->cmdList,
WEB_REQ_DEFAULT);
if (res != NULL) {
Tcl_Obj *tmp = NULL;
Tcl_ListObjIndex(interp, res, 0, &tmp);
Tcl_SetObjResult(interp, tmp);
return TCL_OK;
}
else {
LOG_MSG(interp, WRITE_LOG | SET_RESULT, __FILE__, __LINE__,
"web::getcommand", WEBLOG_INFO,
"command \"", WEB_REQ_DEFAULT, "\" not found", NULL);
return TCL_ERROR;
}
}
/* --------------------------------------------------------------------------
* one argument --> return code for command "name"
* ----------------------------------------------------------------------- */
if (objc == 2) {
res = (Tcl_Obj *) getFromHashTable(requestData->cmdList,
Tcl_GetString(objv[1]));
if (res != NULL) {
Tcl_Obj *tmp = NULL;
Tcl_ListObjIndex(interp, res, 0, &tmp);
Tcl_SetObjResult(interp, tmp);
return TCL_OK;
}
else {
Tcl_SetResult(interp, "no such command: \"", NULL);
Tcl_AppendResult(interp, Tcl_GetString(objv[1]), "\".", NULL);
return TCL_ERROR;
}
}
return TCL_ERROR;
}