[mingw-readline: 2/14] Initial import.

Kalev Lember kalev at fedoraproject.org
Wed Mar 7 17:17:54 UTC 2012


commit eaee437cef2364c0fefdb36141408ec3cdd175a7
Author: Richard W.M. Jones <rjones at fedoraproject.org>
Date:   Sat Jan 17 11:38:21 2009 +0000

    Initial import.

 .cvsignore                          |    1 +
 import.log                          |    1 +
 mingw32-readline.spec               |  133 ++++++++++++++
 readline-5.2-001.patch              |   30 ++++
 readline-5.2-002.patch              |   49 +++++
 readline-5.2-003.patch              |   37 ++++
 readline-5.2-004.patch              |   70 ++++++++
 readline-5.2-005.patch              |  328 +++++++++++++++++++++++++++++++++++
 readline-5.2-006.patch              |   62 +++++++
 readline-5.2-007.patch              |   65 +++++++
 readline-5.2-008.patch              |   70 ++++++++
 readline-5.2-009.patch              |   45 +++++
 readline-5.2-010.patch              |   47 +++++
 readline-5.2-011.patch              |   32 ++++
 readline-5.2-redisplay-sigint.patch |  164 +++++++++++++++++
 readline-5.2-shlib.patch            |   38 ++++
 sources                             |    1 +
 17 files changed, 1173 insertions(+), 0 deletions(-)
---
diff --git a/.cvsignore b/.cvsignore
index e69de29..a376f3a 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -0,0 +1 @@
+readline-5.2.tar.gz
diff --git a/import.log b/import.log
new file mode 100644
index 0000000..eb253ac
--- /dev/null
+++ b/import.log
@@ -0,0 +1 @@
+mingw32-readline-5_2-4_fc10:HEAD:mingw32-readline-5.2-4.fc10.src.rpm:1232192026
diff --git a/mingw32-readline.spec b/mingw32-readline.spec
new file mode 100644
index 0000000..9d8f6e8
--- /dev/null
+++ b/mingw32-readline.spec
@@ -0,0 +1,133 @@
+%define __strip %{_mingw32_strip}
+%define __objdump %{_mingw32_objdump}
+%define _use_internal_dependency_generator 0
+%define __find_requires %{_mingw32_findrequires}
+%define __find_provides %{_mingw32_findprovides}
+
+Name:           mingw32-readline
+Version:        5.2
+Release:        4%{?dist}
+Summary:        MinGW port of readline for editing typed command lines
+
+License:        GPLv2+
+Group:          System Environment/Libraries
+URL:            http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
+Source0:        ftp://ftp.gnu.org/gnu/readline/readline-%{version}.tar.gz
+BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+Patch1:         readline-5.2-shlib.patch
+Patch2:         readline-5.2-001.patch
+Patch3:         readline-5.2-002.patch
+Patch4:         readline-5.2-003.patch
+Patch5:         readline-5.2-004.patch
+Patch6:         readline-5.2-005.patch
+Patch7:         readline-5.2-006.patch
+Patch8:         readline-5.2-007.patch
+Patch9:         readline-5.2-008.patch
+Patch10:        readline-5.2-009.patch
+Patch11:        readline-5.2-010.patch
+Patch12:        readline-5.2-011.patch
+Patch13:        readline-5.2-redisplay-sigint.patch
+
+BuildArch:      noarch
+
+BuildRequires:  mingw32-filesystem >= 29
+BuildRequires:  mingw32-gcc
+BuildRequires:  mingw32-binutils
+BuildRequires:  mingw32-termcap >= 1.3.1-3
+
+
+%description
+The Readline library provides a set of functions that allow users to
+edit command lines. Both Emacs and vi editing modes are available. The
+Readline library includes additional functions for maintaining a list
+of previously-entered command lines for recalling or editing those
+lines, and for performing csh-like history expansion on previous
+commands.
+
+This is a port of the library and development tools to Windows.
+
+
+%prep
+%setup -q -n readline-%{version}
+%patch1 -p1 -b .shlib
+%patch2 -p0 -b .001
+%patch3 -p0 -b .002
+%patch4 -p0 -b .003
+%patch5 -p0 -b .004
+%patch6 -p0 -b .005
+%patch7 -p0 -b .006
+%patch8 -p0 -b .007
+%patch9 -p0 -b .008
+%patch10 -p0 -b .009
+%patch11 -p0 -b .010
+%patch12 -p0 -b .011
+%patch13 -p1 -b .redisplay-sigint
+
+pushd examples
+rm -f rlfe/configure
+iconv -f iso8859-1 -t utf8 -o rl-fgets.c{_,}
+touch -r rl-fgets.c{,_}
+mv -f rl-fgets.c{_,}
+popd
+
+
+%build
+%{_mingw32_configure} --enable-shared
+make SHLIB_LIBS=-ltermcap
+
+# Rebuild the DLLs correctly and create implibs.
+pushd shlib
+%{_mingw32_cc} -shared -o readline.dll -Wl,--out-implib,libreadline.dll.a readline.so vi_mode.so funmap.so keymaps.so parens.so search.so rltty.so complete.so bind.so isearch.so display.so signals.so util.so kill.so undo.so macro.so input.so callback.so terminal.so text.so nls.so misc.so xmalloc.so history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so tilde.so compat.so -ltermcap
+%{_mingw32_cc} -shared -o history.dll -Wl,--out-implib,libhistory.dll.a history.so histexpand.so histfile.so histsearch.so shell.so mbutil.so xmalloc.so
+popd
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make DESTDIR=$RPM_BUILD_ROOT install
+
+# Remove the fake .so files and install our DLLs and implibs.
+pushd shlib
+rm $RPM_BUILD_ROOT%{_mingw32_libdir}/lib*.so.*
+mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
+install readline.dll $RPM_BUILD_ROOT%{_mingw32_bindir}
+install libreadline.dll.a $RPM_BUILD_ROOT%{_mingw32_libdir}
+install history.dll $RPM_BUILD_ROOT%{_mingw32_bindir}
+install libhistory.dll.a $RPM_BUILD_ROOT%{_mingw32_libdir}
+popd
+
+# Don't want the info files or manpages which duplicate the native package.
+rm -rf $RPM_BUILD_ROOT%{_mingw32_mandir}
+rm -rf $RPM_BUILD_ROOT%{_mingw32_infodir}
+
+# Don't want the static library.
+rm $RPM_BUILD_ROOT%{_mingw32_libdir}/libhistory.a
+rm $RPM_BUILD_ROOT%{_mingw32_libdir}/libreadline.a
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root)
+%{_mingw32_bindir}/readline.dll
+%{_mingw32_bindir}/history.dll
+%{_mingw32_libdir}/libreadline.dll.a
+%{_mingw32_libdir}/libhistory.dll.a
+%{_mingw32_includedir}/readline/
+
+
+%changelog
+* Sat Nov 22 2008 Richard W.M. Jones <rjones at redhat.com> - 5.2-4
+- Rename *.dll.a to lib*.dll.a so that libtool can use these libraries.
+
+* Wed Nov 19 2008 Richard W.M. Jones <rjones at redhat.com> - 5.2-3
+- Fix paths to mandir, infodir.
+
+* Fri Oct 31 2008 Richard W.M. Jones <rjones at redhat.com> - 5.2-2
+- Rebuild against latest termcap.
+
+* Thu Sep 25 2008 Richard W.M. Jones <rjones at redhat.com> - 5.2-1
+- Initial RPM release.
diff --git a/readline-5.2-001.patch b/readline-5.2-001.patch
new file mode 100644
index 0000000..0bec9a2
--- /dev/null
+++ b/readline-5.2-001.patch
@@ -0,0 +1,30 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-001
+
+Bug-Reported-by:	ebb9 at byu.net
+Bug-Reference-ID:	<45540862.9030900 at byu.net>
+Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
+			http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
+
+Bug-Description:
+
+In some cases, code that is intended to be used in the presence of multibyte
+characters is called when no such characters are present, leading to incorrect
+display position calculations and incorrect redisplay.
+
+Patch:
+
+*** ../readline-5.2/display.c	Thu Sep 14 14:20:12 2006
+--- display.c	Mon Nov 13 17:55:57 2006
+***************
+*** 2381,2384 ****
+--- 2409,2414 ----
+    if (end <= start)
+      return 0;
++   if (MB_CUR_MAX == 1 || rl_byte_oriented)
++     return (end - start);
+  
+    memset (&ps, 0, sizeof (mbstate_t));
diff --git a/readline-5.2-002.patch b/readline-5.2-002.patch
new file mode 100644
index 0000000..b0d8c92
--- /dev/null
+++ b/readline-5.2-002.patch
@@ -0,0 +1,49 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-002
+
+Bug-Reported-by: Magnus Svensson <msvensson at mysql.com>
+Bug-Reference-ID: <45BDC44D.80609 at mysql.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
+
+Bug-Description:
+
+Readline neglects to reallocate the array it uses to keep track of wrapped
+screen lines when increasing its size.  This will eventually result in
+segmentation faults when given sufficiently long input.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c	Thu Sep 14 14:20:12 2006
+--- display.c	Fri Feb  2 20:23:17 2007
+***************
+*** 561,574 ****
+--- 561,586 ----
+        wrap_offset = prompt_invis_chars_first_line = 0;
+      }
+  
++ #if defined (HANDLE_MULTIBYTE)
+  #define CHECK_INV_LBREAKS() \
+        do { \
+  	if (newlines >= (inv_lbsize - 2)) \
+  	  { \
+  	    inv_lbsize *= 2; \
+  	    inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++ 	    _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
+  	  } \
+        } while (0)
++ #else
++ #define CHECK_INV_LBREAKS() \
++       do { \
++ 	if (newlines >= (inv_lbsize - 2)) \
++ 	  { \
++ 	    inv_lbsize *= 2; \
++ 	    inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++ 	  } \
++       } while (0)
++ #endif /* HANDLE_MULTIBYTE */
+  
+  #if defined (HANDLE_MULTIBYTE)	  
+  #define CHECK_LPOS() \
diff --git a/readline-5.2-003.patch b/readline-5.2-003.patch
new file mode 100644
index 0000000..06916b3
--- /dev/null
+++ b/readline-5.2-003.patch
@@ -0,0 +1,37 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-003
+
+Bug-Reported-by: Peter Volkov <torre_cremata at mail.ru>
+Bug-Reference-ID: <1171795523.8021.18.camel at localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
+
+Bug-Description:
+
+When moving the cursor, bash sometimes misplaces the cursor when the prompt
+contains two or more multibyte characters.  The particular circumstance that
+uncovered the problem was having the (multibyte) current directory name in
+the prompt string.
+
+Patch:
+
+*** ../readline-5.2.2/display.c	Fri Jan 19 13:34:50 2007
+--- display.c	Sat Mar 10 17:25:44 2007
+***************
+*** 1745,1749 ****
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       if (dpos > prompt_last_invisible)		/* XXX - don't use woff here */
+  	{
+  	  dpos -= woff;
+--- 1745,1752 ----
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       /* Use NEW when comparing against the last invisible character in the
+! 	 prompt string, since they're both buffer indices and DPOS is a
+! 	 desired display position. */
+!       if (new > prompt_last_invisible)		/* XXX - don't use woff here */
+  	{
+  	  dpos -= woff;
diff --git a/readline-5.2-004.patch b/readline-5.2-004.patch
new file mode 100644
index 0000000..b165ad9
--- /dev/null
+++ b/readline-5.2-004.patch
@@ -0,0 +1,70 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-004
+
+Bug-Reported-by: Peter Volkov <torre_cremata at mail.ru>
+Bug-Reference-ID: <1173636022.7039.36.camel at localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
+
+Bug-Description:
+
+When restoring the original prompt after finishing an incremental search,
+bash sometimes places the cursor incorrectly if the primary prompt contains
+invisible characters.
+
+Patch:
+
+*** ../readline-5.2.3/display.c	Fri Apr 20 13:30:16 2007
+--- display.c	Fri Apr 20 15:17:01 2007
+***************
+*** 1599,1604 ****
+  	  if (temp > 0)
+  	    {
+  	      _rl_output_some_chars (nfd, temp);
+! 	      _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
+  	    }
+  	}
+--- 1599,1618 ----
+  	  if (temp > 0)
+  	    {
++ 	      /* If nfd begins at the prompt, or before the invisible
++ 		 characters in the prompt, we need to adjust _rl_last_c_pos
++ 		 in a multibyte locale to account for the wrap offset and
++ 		 set cpos_adjusted accordingly. */
+  	      _rl_output_some_chars (nfd, temp);
+! 	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+! 		{
+!                   _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
+!                   if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
+! 		    {
+! 		      _rl_last_c_pos -= wrap_offset;
+! 		      cpos_adjusted = 1;
+! 		    }
+! 		}
+!               else
+!                 _rl_last_c_pos += temp;
+  	    }
+  	}
+***************
+*** 1608,1613 ****
+--- 1622,1639 ----
+  	  if (temp > 0)
+  	    {
++ 	      /* If nfd begins at the prompt, or before the invisible
++ 		 characters in the prompt, we need to adjust _rl_last_c_pos
++ 		 in a multibyte locale to account for the wrap offset and
++ 		 set cpos_adjusted accordingly. */
+  	      _rl_output_some_chars (nfd, temp);
+  	      _rl_last_c_pos += col_temp;		/* XXX */
++ 	      if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
++ 		{
++ 		  if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
++ 		    {
++ 		      _rl_last_c_pos -= wrap_offset;
++ 		      cpos_adjusted = 1;
++ 		    }
++ 		}
+  	    }
+  	  lendiff = (oe - old) - (ne - new);
diff --git a/readline-5.2-005.patch b/readline-5.2-005.patch
new file mode 100644
index 0000000..d192ac1
--- /dev/null
+++ b/readline-5.2-005.patch
@@ -0,0 +1,328 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-005
+
+Bug-Reported-by:        Thomas Loeber <ifp at loeber1.de>
+Bug-Reference-ID:       <200703082223.08919.ifp at loeber1.de>
+Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
+
+Bug-Description:
+
+When rl_read_key returns -1, indicating that readline's controlling terminal
+has been invalidated for some reason (e.g., receiving a SIGHUP), the error
+status was not reported correctly to the caller.  This could cause input
+loops. 
+
+Patch:
+
+*** ../readline-5.2/complete.c	Fri Jul 28 11:35:49 2006
+--- complete.c	Tue Mar 13 08:50:16 2007
+***************
+*** 429,433 ****
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+  	return (0);
+!       if (c == ABORT_CHAR)
+  	_rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+--- 440,444 ----
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+  	return (0);
+!       if (c == ABORT_CHAR || c < 0)
+  	_rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+*** ../readline-5.2/input.c	Wed Aug 16 15:15:16 2006
+--- input.c	Wed May  2 16:07:59 2007
+***************
+*** 514,518 ****
+       int size;
+  {
+!   int mb_len = 0;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+--- 522,526 ----
+       int size;
+  {
+!   int mb_len, c;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+***************
+*** 521,531 ****
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+!   
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       mbchar[mb_len++] = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+--- 529,545 ----
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+! 
+!   mb_len = 0;  
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       c = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++       if (c < 0)
++ 	break;
++ 
++       mbchar[mb_len++] = c;
++ 
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+***************
+*** 565,569 ****
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; i < mlen; i++)
+      {
+        mb[i] = (char)c;
+--- 579,583 ----
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; c >= 0 && i < mlen; i++)
+      {
+        mb[i] = (char)c;
+*** ../readline-5.2/isearch.c	Mon Dec 26 17:18:53 2005
+--- isearch.c	Fri Mar  9 14:30:59 2007
+***************
+*** 328,333 ****
+  
+    f = (rl_command_func_t *)NULL;
+!  
+!  /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+--- 328,340 ----
+  
+    f = (rl_command_func_t *)NULL;
+! 
+!   if (c < 0)
+!     {
+!       cxt->sflags |= SF_FAILED;
+!       cxt->history_pos = cxt->last_found_line;
+!       return -1;
+!     }
+! 
+!   /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+*** ../readline-5.2/misc.c	Mon Dec 26 17:20:46 2005
+--- misc.c	Fri Mar  9 14:44:11 2007
+***************
+*** 147,150 ****
+--- 147,152 ----
+  	  rl_clear_message ();
+  	  RL_UNSETSTATE(RL_STATE_NUMERICARG);
++ 	  if (key < 0)
++ 	    return -1;
+  	  return (_rl_dispatch (key, _rl_keymap));
+  	}
+*** ../readline-5.2/readline.c	Wed Aug 16 15:00:36 2006
+--- readline.c	Fri Mar  9 14:47:24 2007
+***************
+*** 646,649 ****
+--- 669,677 ----
+      {
+        nkey = _rl_subseq_getchar (cxt->okey);
++       if (nkey < 0)
++ 	{
++ 	  _rl_abort_internal ();
++ 	  return -1;
++ 	}
+        r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+        cxt->flags |= KSEQ_DISPATCHED;
+*** ../readline-5.2/text.c	Fri Jul 28 11:55:27 2006
+--- text.c	Sun Mar 25 13:41:38 2007
+***************
+*** 858,861 ****
+--- 864,870 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_SIGNALS)
+    if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
+***************
+*** 1521,1524 ****
+--- 1530,1536 ----
+    mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
+  
++   if (mb_len <= 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
+***************
+*** 1537,1540 ****
+--- 1549,1555 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, c));
+*** ../readline-5.2/vi_mode.c	Sat Jul 29 16:42:28 2006
+--- vi_mode.c	Fri Mar  9 15:02:11 2007
+***************
+*** 887,890 ****
+--- 887,897 ----
+    c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ 
++   if (c < 0)
++     {
++       *nextkey = 0;
++       return -1;
++     }
++ 
+    *nextkey = c;
+  
+***************
+*** 903,906 ****
+--- 910,918 ----
+  	  c = rl_read_key ();	/* real command */
+  	  RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ 	  if (c < 0)
++ 	    {
++ 	      *nextkey = 0;
++ 	      return -1;
++ 	    }
+  	  *nextkey = c;
+  	}
+***************
+*** 1225,1236 ****
+       _rl_callback_generic_arg *data;
+  {
+  #if defined (HANDLE_MULTIBYTE)
+!   _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   _rl_vi_last_search_char = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+--- 1243,1262 ----
+       _rl_callback_generic_arg *data;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+!   c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
++   if (c <= 0)
++     return -1;
++ 
++ #if !defined (HANDLE_MULTIBYTE)
++   _rl_vi_last_search_char = c;
++ #endif
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1248,1251 ****
+--- 1274,1278 ----
+       int count, key;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+    static char *target;
+***************
+*** 1294,1302 ****
+  	{
+  #if defined (HANDLE_MULTIBYTE)
+! 	  _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+  	  RL_SETSTATE(RL_STATE_MOREINPUT);
+! 	  _rl_vi_last_search_char = rl_read_key ();
+  	  RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  	}
+--- 1321,1335 ----
+  	{
+  #if defined (HANDLE_MULTIBYTE)
+! 	  c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+! 	  if (c <= 0)
+! 	    return -1;
+! 	  _rl_vi_last_search_mblen = c;
+  #else
+  	  RL_SETSTATE(RL_STATE_MOREINPUT);
+! 	  c = rl_read_key ();
+  	  RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ 	  if (c < 0)
++ 	    return -1;
++ 	  _rl_vi_last_search_char = c;
+  #endif
+  	}
+***************
+*** 1468,1471 ****
+--- 1501,1507 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_MULTIBYTE)
+    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+***************
+*** 1486,1489 ****
+--- 1522,1528 ----
+    _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1517,1520 ****
+--- 1556,1562 ----
+      _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    return (_rl_vi_change_char (count, c, mb));
+  }
+***************
+*** 1651,1655 ****
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1693,1697 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 0 || ch < 'a' || ch > 'z')	/* make test against 0 explicit */
+      {
+        rl_ding ();
+***************
+*** 1703,1707 ****
+        return 0;
+      }
+!   else if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1745,1749 ----
+        return 0;
+      }
+!   else if (ch < 0 || ch < 'a' || ch > 'z')	/* make test against 0 explicit */
+      {
+        rl_ding ();
diff --git a/readline-5.2-006.patch b/readline-5.2-006.patch
new file mode 100644
index 0000000..d739143
--- /dev/null
+++ b/readline-5.2-006.patch
@@ -0,0 +1,62 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-006
+
+Bug-Reported-by:        Peter Volkov <torre_cremata at mail.ru>
+Bug-Reference-ID:       <1178376645.9063.25.camel at localhost>
+Bug-Reference-URL:      http://bugs.gentoo.org/177095
+
+Bug-Description:
+
+The readline display code miscalculated the screen position when performing
+a redisplay in which the new text occupies more screen space that the old,
+but takes fewer bytes to do so (e.g., when replacing a shorter string
+containing multibyte characters with a longer one containing only ASCII).
+
+Patch:
+
+*** ../readline-5.2/display.c	Thu Apr 26 11:38:22 2007
+--- display.c	Thu Jul 12 23:10:10 2007
+***************
+*** 1519,1527 ****
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
+        /* Sometimes it is cheaper to print the characters rather than
+  	 use the terminal's capabilities.  If we're growing the number
+  	 of lines, make sure we actually cause the new line to wrap
+  	 around on auto-wrapping terminals. */
+!       if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+  	{
+  	  /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+--- 1568,1596 ----
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
++       /* If col_lendiff is > 0, implying that the new string takes up more
++ 	 screen real estate than the old, but lendiff is < 0, meaning that it
++ 	 takes fewer bytes, we need to just output the characters starting
++ 	 from the first difference.  These will overwrite what is on the
++ 	 display, so there's no reason to do a smart update.  This can really
++ 	 only happen in a multibyte environment. */
++       if (lendiff < 0)
++ 	{
++ 	  _rl_output_some_chars (nfd, temp);
++ 	  _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
++ 	  /* If nfd begins before any invisible characters in the prompt,
++ 	     adjust _rl_last_c_pos to account for wrap_offset and set
++ 	     cpos_adjusted to let the caller know. */
++ 	  if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++ 	    {
++ 	      _rl_last_c_pos -= wrap_offset;
++ 	      cpos_adjusted = 1;
++ 	    }
++ 	  return;
++ 	}
+        /* Sometimes it is cheaper to print the characters rather than
+  	 use the terminal's capabilities.  If we're growing the number
+  	 of lines, make sure we actually cause the new line to wrap
+  	 around on auto-wrapping terminals. */
+!       else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+  	{
+  	  /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
diff --git a/readline-5.2-007.patch b/readline-5.2-007.patch
new file mode 100644
index 0000000..f75f53f
--- /dev/null
+++ b/readline-5.2-007.patch
@@ -0,0 +1,65 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-007
+
+Bug-Reported-by:        Tom Bjorkholm <tom.bjorkholm at ericsson.com>
+Bug-Reference-ID:       <AEA1A32F001C6B4F98614B5B80D7647D01C075E9 at esealmw115.eemea.ericsson.se>
+Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
+
+
+Bug-Description:
+
+An off-by-one error in readline's input buffering caused readline to drop
+each 511th character of buffered input (e.g., when pasting a large amount
+of data into a terminal window).
+
+Patch:
+
+*** ../readline-5.2/input.c	Wed Aug 16 15:15:16 2006
+--- input.c	Tue Jul 17 09:24:21 2007
+***************
+*** 134,139 ****
+  
+    *key = ibuffer[pop_index++];
+! 
+    if (pop_index >= ibuffer_len)
+      pop_index = 0;
+  
+--- 134,142 ----
+  
+    *key = ibuffer[pop_index++];
+! #if 0
+    if (pop_index >= ibuffer_len)
++ #else
++   if (pop_index > ibuffer_len)
++ #endif
+      pop_index = 0;
+  
+***************
+*** 251,255 ****
+  	{
+  	  k = (*rl_getc_function) (rl_instream);
+! 	  rl_stuff_char (k);
+  	  if (k == NEWLINE || k == RETURN)
+  	    break;
+--- 254,259 ----
+  	{
+  	  k = (*rl_getc_function) (rl_instream);
+! 	  if (rl_stuff_char (k) == 0)
+! 	    break;			/* some problem; no more room */
+  	  if (k == NEWLINE || k == RETURN)
+  	    break;
+***************
+*** 374,378 ****
+--- 378,386 ----
+      }
+    ibuffer[push_index++] = key;
++ #if 0
+    if (push_index >= ibuffer_len)
++ #else
++   if (push_index > ibuffer_len)
++ #endif
+      push_index = 0;
+  
diff --git a/readline-5.2-008.patch b/readline-5.2-008.patch
new file mode 100644
index 0000000..1d7f327
--- /dev/null
+++ b/readline-5.2-008.patch
@@ -0,0 +1,70 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-008
+
+Bug-Reported-by:	dAniel hAhler <ubuntu at thequod.de>
+Bug-Reference-ID:	<4702ED8A.5000503 at thequod.de>
+Bug-Reference-URL:	https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
+
+Bug-Description:
+
+When updating the display after displaying, for instance, a list of possible
+completions, readline will place the cursor at the wrong position if the
+prompt contains invisible characters and a newline.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c	Mon Aug  6 14:26:29 2007
+--- display.c	Wed Oct 10 22:43:58 2007
+***************
+*** 1049,1053 ****
+  	      else
+  		tx = nleft;
+! 	      if (_rl_last_c_pos > tx)
+  		{
+  	          _rl_backspace (_rl_last_c_pos - tx);	/* XXX */
+--- 1049,1053 ----
+  	      else
+  		tx = nleft;
+! 	      if (tx >= 0 && _rl_last_c_pos > tx)
+  		{
+  	          _rl_backspace (_rl_last_c_pos - tx);	/* XXX */
+***************
+*** 1205,1209 ****
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+--- 1205,1209 ----
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+***************
+*** 1466,1469 ****
+--- 1466,1471 ----
+      }
+  
++   o_cpos = _rl_last_c_pos;
++ 
+    /* When this function returns, _rl_last_c_pos is correct, and an absolute
+       cursor postion in multibyte mode, but a buffer index when not in a
+***************
+*** 1475,1479 ****
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
+--- 1477,1483 ----
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && 
+!       (_rl_last_c_pos > 0 || o_cpos > 0) &&
+!       _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
diff --git a/readline-5.2-009.patch b/readline-5.2-009.patch
new file mode 100644
index 0000000..af9e381
--- /dev/null
+++ b/readline-5.2-009.patch
@@ -0,0 +1,45 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-009
+
+Bug-Reported-by:	dAniel hAhler <ubuntu at thequod.de>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under some circumstances, readline will incorrectly display a prompt string
+containing invisible characters after the final newline.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c	2007-08-25 13:47:08.000000000 -0400
+--- display.c	2007-11-10 17:51:29.000000000 -0500
+***************
+*** 392,396 ****
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+  				       &prompt_last_invisible,
+! 				       (int *)NULL,
+  				       &prompt_physical_chars);
+        c = *t; *t = '\0';
+--- 420,424 ----
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+  				       &prompt_last_invisible,
+! 				       &prompt_invis_chars_first_line,
+  				       &prompt_physical_chars);
+        c = *t; *t = '\0';
+***************
+*** 399,403 ****
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+  						   (int *)NULL,
+! 						   &prompt_invis_chars_first_line,
+  						   (int *)NULL);
+        *t = c;
+--- 427,431 ----
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+  						   (int *)NULL,
+! 						   (int *)NULL,
+  						   (int *)NULL);
+        *t = c;
diff --git a/readline-5.2-010.patch b/readline-5.2-010.patch
new file mode 100644
index 0000000..ee5c026
--- /dev/null
+++ b/readline-5.2-010.patch
@@ -0,0 +1,47 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-010
+
+Bug-Reported-by:	Miroslav Lichvar <mlichvar at redhat.com>
+Bug-Reference-ID:	Fri, 02 Nov 2007 14:07:45 +0100
+Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
+
+Bug-Description:
+
+In certain cases when outputting characters at the end of the line,
+e.g., when displaying the prompt string, readline positions the cursor
+incorrectly if the prompt string contains invisible characters and the
+text being drawn begins before the last invisible character in the line.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c	2007-08-25 13:47:08.000000000 -0400
+--- display.c	2007-11-10 17:51:29.000000000 -0500
+***************
+*** 1566,1574 ****
+  	  else
+  	    {
+- 	      /* We have horizontal scrolling and we are not inserting at
+- 		 the end.  We have invisible characters in this line.  This
+- 		 is a dumb update. */
+  	      _rl_output_some_chars (nfd, temp);
+  	      _rl_last_c_pos += col_temp;
+  	      return;
+  	    }
+--- 1619,1632 ----
+  	  else
+  	    {
+  	      _rl_output_some_chars (nfd, temp);
+  	      _rl_last_c_pos += col_temp;
++ 	      /* If nfd begins before any invisible characters in the prompt,
++ 		 adjust _rl_last_c_pos to account for wrap_offset and set
++ 		 cpos_adjusted to let the caller know. */
++ 	      if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++ 		{
++ 		  _rl_last_c_pos -= wrap_offset;
++ 		  cpos_adjusted = 1;
++ 		}
+  	      return;
+  	    }
diff --git a/readline-5.2-011.patch b/readline-5.2-011.patch
new file mode 100644
index 0000000..a1197ed
--- /dev/null
+++ b/readline-5.2-011.patch
@@ -0,0 +1,32 @@
+			   READLINE PATCH REPORT
+			   =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-011
+
+Bug-Reported-by:	Uwe Doering <gemini at geminix.org>
+Bug-Reference-ID:	<46F3DD72.2090801 at geminix.org>
+Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
+
+Bug-Description:
+
+There is an off-by-one error in the code that buffers characters received
+very quickly in succession, causing characters to be dropped.
+
+Patch:
+
+*** ../readline-5.2-patched/input.c	2007-08-25 13:47:10.000000000 -0400
+--- input.c	2007-10-12 22:55:25.000000000 -0400
+***************
+*** 155,159 ****
+        pop_index--;
+        if (pop_index < 0)
+! 	pop_index = ibuffer_len - 1;
+        ibuffer[pop_index] = key;
+        return (1);
+--- 155,159 ----
+        pop_index--;
+        if (pop_index < 0)
+! 	pop_index = ibuffer_len;
+        ibuffer[pop_index] = key;
+        return (1);
diff --git a/readline-5.2-redisplay-sigint.patch b/readline-5.2-redisplay-sigint.patch
new file mode 100644
index 0000000..c1c48b2
--- /dev/null
+++ b/readline-5.2-redisplay-sigint.patch
@@ -0,0 +1,164 @@
+GDB PR 544: gdb.cp/annota2.exp and gdb.cp/annota3.exp sometimes FAIL with:
+	FAIL: gdb.cp/annota3.exp: annotate-quit (pattern 1)
+
+One can put `sleep (1)' at the end of _RL_OUTPUT_SOME_CHARS and type
+	p 1<enter><ctrl-c>
+to abort the prompt printing. Before the patch:
+	(gdb) p 1
+	$1 = 1
+	Quit) (gdb) 
+	(gdb) _
+After the patch:
+	[bash]jkratoch at host0.dyn.jankratochvil.net:/home/jkratoch/redhat/sources/readline# ../gdb/gdb -nx -silent(gdb) p 1
+	$1 = 1
+	(gdb) Quit
+	(gdb) _
+
+The readline patch posted upstream:
+	http://sourceware.org/ml/gdb-patches/2008-03/msg00317.html
+
+On Fri, 21 Mar 2008 19:37:31 +0100, Chet Ramey wrote:
+> I will add something like your block_sigint/release_sigint changes around
+> the guts of rl_redisplay.  That's the right thing to do anyway.  It will
+> probably not come out as a patch for readline-5.2; you can use your
+> current patch (though the names will change to _rl_block_sigint and
+> _rl_release_sigint -- fair warning).
+
+Application cannot easily supply its own RL_REDISPLAY_FUNCTION as a custom
+function there changes the readline behavior:
+	http://sourceware.org/ml/gdb-patches/2008-03/msg00340.html
+
+BLOCK_SIGINT / RELEASE_SIGINT: Make it public and prefix it by `_rl_'.
+RL_REDISPLAY: Wrap it by _RL_BLOCK_SIGINT / _RL_RELEASE_SIGINT.
+
+--- readline-5.2-orig/display.c	2008-03-23 20:52:12.000000000 +0100
++++ readline-5.2/display.c	2008-03-23 20:56:58.000000000 +0100
+@@ -472,6 +472,10 @@ rl_redisplay ()
+   if (!readline_echoing_p)
+     return;
+ 
++  /* Signals are blocked through this function as the global data structures
++     could get corrupted upon modifications from an invoked signal handler. */
++  _rl_block_sigint ();
++
+   if (!rl_display_prompt)
+     rl_display_prompt = "";
+ 
+@@ -1180,6 +1184,8 @@ rl_redisplay ()
+     else
+       visible_wrap_offset = wrap_offset;
+   }
++
++  _rl_release_sigint ();
+ }
+ 
+ /* PWP: update_line() is based on finding the middle difference of each
+--- readline-5.2-orig/rltty.c	2005-12-26 23:21:50.000000000 +0100
++++ readline-5.2/rltty.c	2008-03-23 20:57:26.000000000 +0100
+@@ -52,8 +52,8 @@ extern int errno;
+ rl_vintfunc_t *rl_prep_term_function = rl_prep_terminal;
+ rl_voidfunc_t *rl_deprep_term_function = rl_deprep_terminal;
+ 
+-static void block_sigint PARAMS((void));
+-static void release_sigint PARAMS((void));
++void _rl_block_sigint PARAMS((void));
++void _rl_release_sigint PARAMS((void));
+ 
+ static void set_winsize PARAMS((int));
+ 
+@@ -74,9 +74,9 @@ static int sigint_oldmask;
+ static int sigint_blocked;
+ 
+ /* Cause SIGINT to not be delivered until the corresponding call to
+-   release_sigint(). */
+-static void
+-block_sigint ()
++   _rl_release_sigint(). */
++void
++_rl_block_sigint ()
+ {
+   if (sigint_blocked)
+     return;
+@@ -100,8 +100,8 @@ block_sigint ()
+ }
+ 
+ /* Allow SIGINT to be delivered. */
+-static void
+-release_sigint ()
++void
++_rl_release_sigint ()
+ {
+   if (sigint_blocked == 0)
+     return;
+@@ -663,7 +663,7 @@ rl_prep_terminal (meta_flag)
+     return;
+ 
+   /* Try to keep this function from being INTerrupted. */
+-  block_sigint ();
++  _rl_block_sigint ();
+ 
+   tty = fileno (rl_instream);
+ 
+@@ -676,7 +676,7 @@ rl_prep_terminal (meta_flag)
+       if (errno == ENOTTY)
+ #endif
+ 	readline_echoing_p = 1;		/* XXX */
+-      release_sigint ();
++      _rl_release_sigint ();
+       return;
+     }
+ 
+@@ -711,7 +711,7 @@ rl_prep_terminal (meta_flag)
+ 
+   if (set_tty_settings (tty, &tio) < 0)
+     {
+-      release_sigint ();
++      _rl_release_sigint ();
+       return;
+     }
+ 
+@@ -722,7 +722,7 @@ rl_prep_terminal (meta_flag)
+   terminal_prepped = 1;
+   RL_SETSTATE(RL_STATE_TERMPREPPED);
+ 
+-  release_sigint ();
++  _rl_release_sigint ();
+ }
+ 
+ /* Restore the terminal's normal settings and modes. */
+@@ -735,7 +735,7 @@ rl_deprep_terminal ()
+     return;
+ 
+   /* Try to keep this function from being interrupted. */
+-  block_sigint ();
++  _rl_block_sigint ();
+ 
+   tty = fileno (rl_instream);
+ 
+@@ -746,14 +746,14 @@ rl_deprep_terminal ()
+ 
+   if (set_tty_settings (tty, &otio) < 0)
+     {
+-      release_sigint ();
++      _rl_release_sigint ();
+       return;
+     }
+ 
+   terminal_prepped = 0;
+   RL_UNSETSTATE(RL_STATE_TERMPREPPED);
+ 
+-  release_sigint ();
++  _rl_release_sigint ();
+ }
+ #endif /* !NO_TTY_DRIVER */
+ 
+--- readline-5.2-orig/rltty.h	2003-02-01 04:43:11.000000000 +0100
++++ readline-5.2/rltty.h	2008-03-23 20:57:30.000000000 +0100
+@@ -79,4 +79,7 @@ typedef struct _rl_tty_chars {
+   unsigned char t_status;
+ } _RL_TTY_CHARS;
+ 
++extern void _rl_block_sigint PARAMS((void));
++extern void _rl_release_sigint PARAMS((void));
++
+ #endif /* _RLTTY_H_ */
diff --git a/readline-5.2-shlib.patch b/readline-5.2-shlib.patch
new file mode 100644
index 0000000..f97fa17
--- /dev/null
+++ b/readline-5.2-shlib.patch
@@ -0,0 +1,38 @@
+--- readline-5.2/support/shlib-install.shlib	2006-01-03 20:06:27.000000000 +0100
++++ readline-5.2/support/shlib-install	2006-11-13 13:51:02.000000000 +0100
+@@ -71,7 +71,7 @@
+ case "$host_os" in
+ hpux*|darwin*|macosx*|linux*)
+ 	if [ -z "$uninstall" ]; then
+-		chmod 555 ${INSTALLDIR}/${LIBNAME}
++		chmod 755 ${INSTALLDIR}/${LIBNAME}
+ 	fi ;;
+ cygwin*)
+ 	IMPLIBNAME=`echo ${LIBNAME} \
+--- readline-5.2/support/shobj-conf.shlib	2006-04-11 15:15:43.000000000 +0200
++++ readline-5.2/support/shobj-conf	2007-03-15 14:11:36.000000000 +0100
+@@ -108,10 +108,11 @@
+ linux*-*|gnu*-*|k*bsd*-gnu-*)
+ 	SHOBJ_CFLAGS=-fPIC
+ 	SHOBJ_LD='${CC}'
+-	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@'
++	SHOBJ_LDFLAGS='$(CFLAGS) -shared -Wl,-soname,$@'
+ 
+-	SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
++	SHLIB_XLDFLAGS='-Wl,-soname,`basename $@ $(SHLIB_MINOR)`'
+ 	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)'
++	SHLIB_LIBS='-ltinfo'
+ 	;;
+ 
+ freebsd2* | netbsd*)
+--- readline-5.2/shlib/Makefile.in.shlib	2005-08-12 05:56:10.000000000 +0200
++++ readline-5.2/shlib/Makefile.in	2007-11-05 18:59:14.000000000 +0100
+@@ -168,7 +168,7 @@ $(SHARED_READLINE):	$(SHARED_OBJ)
+ 
+ $(SHARED_HISTORY):	$(SHARED_HISTOBJ) xmalloc.so
+ 	$(RM) $@
+-	$(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so $(SHLIB_LIBS)
++	$(SHOBJ_LD) ${SHOBJ_LDFLAGS} ${SHLIB_XLDFLAGS} -o $@ $(SHARED_HISTOBJ) xmalloc.so
+ 
+ # Since tilde.c is shared between readline and bash, make sure we compile 
+ # it with the right flags when it's built as part of readline
diff --git a/sources b/sources
index e69de29..0a164e3 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+e39331f32ad14009b9ff49cc10c5e751  readline-5.2.tar.gz


More information about the scm-commits mailing list