diff --git a/Quake/keys.c b/Quake/keys.c index 15f77edf..84e3d234 100644 --- a/Quake/keys.c +++ b/Quake/keys.c @@ -387,8 +387,9 @@ void Key_Console (int key) } key_tabpartial[0] = 0; - Q_strcpy(workline, key_lines[history_line]); - key_linepos = Q_strlen(workline); + len = strlen(key_lines[history_line]); + memmove(workline, key_lines[history_line], len+1); + key_linepos = (int)len; return; case K_DOWNARROW: @@ -403,9 +404,16 @@ void Key_Console (int key) } while (history_line != edit_line && !key_lines[history_line][1]); if (history_line == edit_line) - Q_strcpy(workline, current); - else Q_strcpy(workline, key_lines[history_line]); - key_linepos = Q_strlen(workline); + { + len = strlen(current); + memcpy(workline, current, len+1); + } + else + { + len = strlen(key_lines[history_line]); + memmove(workline, key_lines[history_line], len+1); + } + key_linepos = (int)len; return; case K_INS: