diff options
author | Martin Wilke <miwi@FreeBSD.org> | 2012-04-11 03:08:27 +0000 |
---|---|---|
committer | Martin Wilke <miwi@FreeBSD.org> | 2012-04-11 03:08:27 +0000 |
commit | 5d8a59d2eb915ad82effa1a0cade050c5bbddb6c (patch) | |
tree | ef3368ccc034b2797f43de53706206b848d93eda /devel/libedit | |
parent | fd53d45a1106fbc77697749f25ee98f9a7d33d80 (diff) |
Notes
Diffstat (limited to 'devel/libedit')
-rw-r--r-- | devel/libedit/Makefile | 2 | ||||
-rw-r--r-- | devel/libedit/files/patch-common.c | 29 | ||||
-rw-r--r-- | devel/libedit/files/patch-terminal | 50 |
3 files changed, 80 insertions, 1 deletions
diff --git a/devel/libedit/Makefile b/devel/libedit/Makefile index 55a8f15579d6..303e92a664bb 100644 --- a/devel/libedit/Makefile +++ b/devel/libedit/Makefile @@ -7,7 +7,7 @@ PORTNAME= libedit PORTVERSION= 2.6.10 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel MASTER_SITES= ftp://ftp.astron.com/pub/libedit/ \ http://www.canonware.com/download/libedit/ diff --git a/devel/libedit/files/patch-common.c b/devel/libedit/files/patch-common.c new file mode 100644 index 000000000000..23a30183c36e --- /dev/null +++ b/devel/libedit/files/patch-common.c @@ -0,0 +1,29 @@ +Revision 212191 +libedit: Do not move the cursor for ed-delete-next-char in emacs mode. + +This makes ed-delete-next-char suitable for mapping to the <Delete> key. + +Behaviour in vi mode is unchanged (for 'x'). + +--- common.c 2007/03/11 18:30:22 167457 ++++ common.c 2010/09/03 22:24:26 212191 +@@ -163,15 +163,12 @@ + return (CC_ERROR); + #endif + } +- } else { +- if (el->el_line.cursor != el->el_line.buffer) +- el->el_line.cursor--; +- else +- return (CC_ERROR); +- } ++ } else ++ return (CC_ERROR); + } + c_delafter(el, el->el_state.argument); /* delete after dot */ +- if (el->el_line.cursor >= el->el_line.lastchar && ++ if (el->el_map.type == MAP_VI && ++ el->el_line.cursor >= el->el_line.lastchar && + el->el_line.cursor > el->el_line.buffer) + /* bounds check */ + el->el_line.cursor = el->el_line.lastchar - 1; diff --git a/devel/libedit/files/patch-terminal b/devel/libedit/files/patch-terminal new file mode 100644 index 000000000000..78ed4b612840 --- /dev/null +++ b/devel/libedit/files/patch-terminal @@ -0,0 +1,50 @@ +Revision 212235 +libedit: Try to map <Delete> to ed-delete-next-char. + +This adds a new "arrow" key "delete" corresponding to the kD termcap +value. It only works if that is a sequence such as "\033[3~"; if it is +"\177", the em-delete-prev-char or ed-delete-prev-char from the +single-character mappings remains. It turns out that most terminals (xterm +and alikes, syscons in xterm mode) produce "\033[3~" by default so +<Delete> has the expected effect. + +This also means that things need to be considerably misconfigured for +<Backspace> to perform a <Delete> action. + +--- term.c 2007/06/10 19:06:09 170511 ++++ term.c 2010/09/05 16:12:10 212235 +@@ -223,7 +223,9 @@ + { "kh", "send cursor home" }, + #define T_at7 37 + { "@7", "send cursor end" }, +-#define T_str 38 ++#define T_kD 38 ++ { "kD", "send cursor delete" }, ++#define T_str 39 + { NULL, NULL } + }; + +@@ -1062,6 +1064,11 @@ + arrow[A_K_EN].key = T_at7; + arrow[A_K_EN].fun.cmd = ED_MOVE_TO_END; + arrow[A_K_EN].type = XK_CMD; ++ ++ arrow[A_K_DE].name = "delete"; ++ arrow[A_K_DE].key = T_kD; ++ arrow[A_K_DE].fun.cmd = ED_DELETE_NEXT_CHAR; ++ arrow[A_K_DE].type = XK_CMD; + } + + +--- term.h 2007/06/10 19:06:09 170511 ++++ term.h 2010/09/05 16:12:10 212235 +@@ -79,7 +79,8 @@ + #define A_K_RT 3 + #define A_K_HO 4 + #define A_K_EN 5 +-#define A_K_NKEYS 6 ++#define A_K_DE 6 ++#define A_K_NKEYS 7 + + protected void term_move_to_line(EditLine *, int); + protected void term_move_to_char(EditLine *, int); |