* (bug #4800) Don't prepend a slash to console commands if they're empty

* (bug #4800) Limit console input length such that there is always room for a
  leading slash
This commit is contained in:
Tim Angus 2010-12-19 17:35:01 +00:00
parent c314f29290
commit c081b9c1fd

View file

@ -535,12 +535,14 @@ void Field_CharEvent( field_t *edit, int ch ) {
}
if ( key_overstrikeMode ) {
if ( edit->cursor == MAX_EDIT_LINE - 1 )
// - 2 to leave room for the leading slash and trailing \0
if ( edit->cursor == MAX_EDIT_LINE - 2 )
return;
edit->buffer[edit->cursor] = ch;
edit->cursor++;
} else { // insert mode
if ( len == MAX_EDIT_LINE - 1 ) {
// - 2 to leave room for the leading slash and trailing \0
if ( len == MAX_EDIT_LINE - 2 ) {
return; // all full
}
memmove( edit->buffer + edit->cursor + 1,
@ -584,8 +586,10 @@ void Console_Key (int key) {
// enter finishes the line
if ( key == K_ENTER || key == K_KP_ENTER ) {
// if not in the game explicitly prepend a slash if needed
if ( cls.state != CA_ACTIVE && g_consoleField.buffer[0] != '\\'
&& g_consoleField.buffer[0] != '/' ) {
if ( cls.state != CA_ACTIVE &&
g_consoleField.buffer[0] &&
g_consoleField.buffer[0] != '\\' &&
g_consoleField.buffer[0] != '/' ) {
char temp[MAX_EDIT_LINE-1];
Q_strncpyz( temp, g_consoleField.buffer, sizeof( temp ) );