- strcpy (key_lines[edit_line]+1, cmd);
- key_linepos = strlen(cmd)+1;
- key_lines[edit_line][key_linepos] = ' ';
+ strcpy(key_lines[edit_line] + key_linepos - 1, key_lines[edit_line] + key_linepos);
+ key_linepos--;
+ }
+ return;
+ }
+
+ if (key == K_DEL) // delete char on cursor
+ {
+ if (key_linepos < strlen(key_lines[edit_line]))
+ strcpy(key_lines[edit_line] + key_linepos, key_lines[edit_line] + key_linepos + 1);
+ return;
+ }
+
+
+ // if we're at the end, get one character from previous line,
+ // otherwise just go right one
+ if (key == K_RIGHTARROW)
+ {
+ if (strlen(key_lines[edit_line]) == key_linepos)
+ {
+ if (strlen(key_lines[(edit_line + 31) & 31]) <= key_linepos)
+ return; // no character to get
+
+ key_lines[edit_line][key_linepos] = key_lines[(edit_line + 31) & 31][key_linepos];