ports/166435: Update devel/libedit with local patches
Pedro Giffuni
giffunip at tutopia.com
Mon Mar 26 23:20:09 UTC 2012
>Number: 166435
>Category: ports
>Synopsis: Update devel/libedit with local patches
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Mon Mar 26 23:20:09 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Pedro Giffuni
>Release: 9.0-RELEASE
>Organization:
>Environment:
FreeBSD pcbsd-8714 9.0-RELEASE FreeBSD 9.0-RELEASE #3: Tue Dec 27 14:14:29 PST 2011 root at build9x64.pcbsd.org:/usr/obj/builds/amd64/pcbsd-build90/fbsd-source/9.0/sys/GENERIC amd64
>Description:
The sourceforge version hasn't been keeping up to date with the upstream (NetBSD) versions.
Our local version of libedit has a couple of changes that have been accepted by NetBSD so I think it's a good idea to keep the port version consistent with them.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
diff -ruN libedit.orig/files/patch-common.c libedit/files/patch-common.c
--- libedit.orig/files/patch-common.c 1969-12-31 19:00:00.000000000 -0500
+++ libedit/files/patch-common.c 2012-03-23 16:41:38.000000000 -0500
@@ -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 -ruN libedit.orig/files/patch-terminal libedit/files/patch-terminal
--- libedit.orig/files/patch-terminal 1969-12-31 19:00:00.000000000 -0500
+++ libedit/files/patch-terminal 2012-03-23 17:06:19.000000000 -0500
@@ -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);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list