============
*/
extern qbool prvm_runawaycheck;
-static size_t Cmd_PreprocessString(cmd_state_t *cmd, const char *intext, char *outtext, unsigned maxoutlen, cmd_alias_t *alias);
void Cbuf_Execute (cmd_buf_t *cbuf)
{
cmd_input_t *current;
- char preprocessed[MAX_INPUTLINE];
- size_t preprocessed_len;
- char *firstchar;
unsigned int i = 0;
// LadyHavoc: making sure the tokenizebuffer doesn't get filled up by repeated crashes
*/
current->pending = false;
+ Cmd_PreprocessAndExecuteString(current->source, current->text, current->length, src_local, false);
cbuf->size -= current->length;
-
- firstchar = current->text;
- while(*firstchar && ISWHITESPACE(*firstchar))
- ++firstchar;
- if((strncmp(firstchar, "alias", 5) || !ISWHITESPACE(firstchar[5]))
- && (strncmp(firstchar, "bind", 4) || !ISWHITESPACE(firstchar[4]))
- && (strncmp(firstchar, "in_bind", 7) || !ISWHITESPACE(firstchar[7])))
- {
- if((preprocessed_len = Cmd_PreprocessString(current->source, current->text, preprocessed, sizeof(preprocessed), NULL)))
- Cmd_ExecuteString(current->source, preprocessed, preprocessed_len, src_local, false);
- }
- else
- {
- Cmd_ExecuteString(current->source, current->text, current->length, src_local, false);
- }
-
// Recycle memory so using WASD doesn't cause a malloc and free
List_Move_Tail(¤t->list, &cbuf->free);
- current = NULL;
-
if (cbuf->wait)
{
/*
Cbuf_InsertText(cmd, buffer2);
}
+void Cmd_PreprocessAndExecuteString(cmd_state_t *cmd, const char *text, size_t textlen, cmd_source_t src, qbool lockmutex)
+{
+ char preprocessed[MAX_INPUTLINE];
+ size_t preprocessed_len;
+ const char *firstchar;
+
+ firstchar = text;
+ while(*firstchar && ISWHITESPACE(*firstchar))
+ ++firstchar;
+ if((strncmp(firstchar, "alias", 5) || !ISWHITESPACE(firstchar[5]))
+ && (strncmp(firstchar, "bind", 4) || !ISWHITESPACE(firstchar[4]))
+ && (strncmp(firstchar, "in_bind", 7) || !ISWHITESPACE(firstchar[7])))
+ {
+ if((preprocessed_len = Cmd_PreprocessString(cmd, text, preprocessed, sizeof(preprocessed), NULL)))
+ Cmd_ExecuteString(cmd, preprocessed, preprocessed_len, src, lockmutex);
+ }
+ else
+ Cmd_ExecuteString(cmd, text, textlen, src, lockmutex);
+}
+
/*
========
Cmd_List
goto done;
// check cvars
- if (!Cvar_Command(cmd) && host.framecount > 0)
+ // Xonotic is still maintained so we don't want to hide problems from getting fixed
+ if (!Cvar_Command(cmd) && (host.framecount > 0 || gamemode == GAME_XONOTIC))
Con_Printf(CON_WARN "Unknown command \"%s\"\n", Cmd_Argv(cmd, 0));
done:
cmd->cbuf->tokenizebufferpos = oldpos;