Mercurial > ~mikael > mcabber > hg
diff mcabber/src/screen.c @ 194:a05d5c3876ec
[/trunk] Changeset 206 by mikael
* Default group for Jabber agents is "Jabber Agents"
* Add backward_kill_word() (bound to Ctrl-w)
author | mikael |
---|---|
date | Fri, 06 May 2005 19:57:55 +0000 |
parents | 9c2023d60986 |
children | cdaa53d5ef70 |
line wrap: on
line diff
--- a/mcabber/src/screen.c Fri May 06 18:06:31 2005 +0000 +++ b/mcabber/src/screen.c Fri May 06 19:57:55 2005 +0000 @@ -1070,6 +1070,33 @@ return cmdhisto_backup; } +// backward_kill_word() +// Kill the word before the cursor, in input line +void backward_kill_word() +{ + char *c, *old = ptr_inputline; + int spaceallowed = 1; + + if (ptr_inputline == inputLine) return; + + for (c = ptr_inputline-1 ; c > inputLine ; c--) + if (!isalnum(*c)) { + if (*c == ' ') + if (!spaceallowed) break; + } else spaceallowed = 0; + + if (c != inputLine || *c != ' ') + if ((c < ptr_inputline-1) && (!isalnum(*c))) + c++; + + // Modify the line + ptr_inputline = c; + for (;;) { + *c = *old++; + if (!*c++) break; + } +} + // which_row() // Tells which row our cursor is in, in the command line. // -1 -> normal text @@ -1329,6 +1356,10 @@ case 14: // Ctrl-n scr_ScrollDown(); break; + case 23: // Ctrl-w + backward_kill_word(); + check_offset(-1); + break; case 27: // ESC currentWindow = NULL; chatmode = FALSE;