From: Thomas Roessler Date: Tue, 16 May 2000 11:16:20 +0000 (+0000) Subject: Add a transpose-character function to the editor. From Aaron Schrab. X-Git-Tag: mutt-1-3-1-rel~29 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=624d956866740a6508e20055526e9999f62d3ff1;p=mutt Add a transpose-character function to the editor. From Aaron Schrab. --- diff --git a/OPS b/OPS index dd42241c..6099864b 100644 --- a/OPS +++ b/OPS @@ -70,6 +70,7 @@ OP_EDITOR_KILL_EOL "delete chars from cursor to end of line" OP_EDITOR_KILL_LINE "delete all chars on the line" OP_EDITOR_KILL_WORD "delete the word in front of the cursor" OP_EDITOR_QUOTE_CHAR "quote the next typed key" +OP_EDITOR_TRANSPOSE_CHARS "transpose character under cursor with previous" OP_ENTER_COMMAND "enter a muttrc command" OP_ENTER_MASK "enter a file mask" OP_EXIT "exit this menu" diff --git a/doc/manual.sgml.tail b/doc/manual.sgml.tail index 28e4a517..ff5d1d4b 100644 --- a/doc/manual.sgml.tail +++ b/doc/manual.sgml.tail @@ -311,6 +311,7 @@ kill-eol ^K delete chars from cursor to end of line kill-line ^U delete all chars on the line kill-word ^W delete the word in front of the cursor quote-char ^V quote the next typed key +transpose-chars not bound transpose character under cursor with previous Miscellany diff --git a/enter.c b/enter.c index 46786199..c8b00f33 100644 --- a/enter.c +++ b/enter.c @@ -484,6 +484,27 @@ int _mutt_enter_string (unsigned char *buf, size_t buflen, int y, int x, goto self_insert; } + case OP_EDITOR_TRANSPOSE_CHARS: + j = buf[curpos]; + if(curpos == 0) + { + buf[curpos] = buf[1]; + buf[1] = j; + } + else if (curpos == lastchar) + { + j = buf[curpos-1]; + buf[curpos-1] = buf[curpos-2]; + buf[curpos-2] = j; + } + else + { + buf[curpos] = buf[curpos-1]; + buf[curpos-1] = j; + } + redraw = M_REDRAW_LINE; + break; + default: BEEP (); } diff --git a/functions.h b/functions.h index bcf77579..28b84f3f 100644 --- a/functions.h +++ b/functions.h @@ -365,6 +365,7 @@ struct binding_t OpEditor[] = { { "buffy-cycle", OP_EDITOR_BUFFY_CYCLE, " " }, { "history-up", OP_EDITOR_HISTORY_UP, NULL }, { "history-down", OP_EDITOR_HISTORY_DOWN, NULL }, + { "transpose-chars", OP_EDITOR_TRANSPOSE_CHARS, NULL }, { NULL, 0, NULL } };