+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);
+}
+