aboutsummaryrefslogtreecommitdiff
path: root/shells
diff options
context:
space:
mode:
authorOliver Eikemeier <eik@FreeBSD.org>2004-11-19 13:44:37 +0000
committerOliver Eikemeier <eik@FreeBSD.org>2004-11-19 13:44:37 +0000
commitd8f7447a122c70937d781fea20d4ac3ec13e6283 (patch)
tree51160dfe016adc4323f17eacab4202c93727e680 /shells
parentb45aa2855c1f35292d1cf841eea612ff833e63bf (diff)
downloadports-d8f7447a122c70937d781fea20d4ac3ec13e6283.tar.gz
ports-d8f7447a122c70937d781fea20d4ac3ec13e6283.zip
Fix `read -e' handling when PS1 is longer than the terminal width
<http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139306> Obtained from: Tim Waugh <twaugh@redhat.com>
Notes
Notes: svn path=/head/; revision=121960
Diffstat (limited to 'shells')
-rw-r--r--shells/bash/Makefile2
-rw-r--r--shells/bash/files/patch-lib::readline::display.c24
2 files changed, 25 insertions, 1 deletions
diff --git a/shells/bash/Makefile b/shells/bash/Makefile
index 20cb20152e65..276c203e2937 100644
--- a/shells/bash/Makefile
+++ b/shells/bash/Makefile
@@ -7,7 +7,7 @@
PORTNAME= bash
PORTVERSION= 3.0.${PATCHLEVEL}
-PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GNU:S/$/:bash/} \
http://cnswww.cns.cwru.edu/~chet/%SUBDIR%/:faq \
diff --git a/shells/bash/files/patch-lib::readline::display.c b/shells/bash/files/patch-lib::readline::display.c
new file mode 100644
index 000000000000..269f52ee03d7
--- /dev/null
+++ b/shells/bash/files/patch-lib::readline::display.c
@@ -0,0 +1,24 @@
+#
+# Fix handling of `read -e' while PS1 is set longer than the screen width
+#
+# http://lists.gnu.org/archive/html/bug-bash/2004-11/msg00220.html
+# http://lists.gnu.org/archive/html/bug-bash/2004-11/msg00266.html
+#
+--- lib/readline/display.c.orig 2004-11-18 16:24:46.000000000 +0000
++++ lib/readline/display.c 2004-11-18 17:12:32.904903404 +0000
+@@ -572,11 +572,10 @@
+
+ /* inv_lbreaks[i] is where line i starts in the buffer. */
+ inv_lbreaks[newlines = 0] = 0;
+-#if 0
+- lpos = out - wrap_offset;
+-#else
+- lpos = prompt_physical_chars + modmark;
+-#endif
++ if (local_prompt)
++ lpos = prompt_physical_chars + modmark;
++ else
++ lpos = 0;
+
+ #if defined (HANDLE_MULTIBYTE)
+ memset (_rl_wrapped_line, 0, vis_lbsize);