summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>2000-05-16 11:16:20 +0000
committerThomas Roessler <roessler@does-not-exist.org>2000-05-16 11:16:20 +0000
commit624d956866740a6508e20055526e9999f62d3ff1 (patch)
tree9db8f1abbe94d1bfaef816dcd86ad04efef5a0bc
parent37dd1ce603c4bd3a5a5ac7713bbfe11e3679774e (diff)
Add a transpose-character function to the editor. From Aaron Schrab.
-rw-r--r--OPS1
-rw-r--r--doc/manual.sgml.tail1
-rw-r--r--enter.c21
-rw-r--r--functions.h1
4 files changed, 24 insertions, 0 deletions
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
</verb>
<sect>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 }
};