summaryrefslogtreecommitdiffstats
path: root/source/l/readline
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2018-05-28 19:12:29 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 23:39:35 +0200
commit646a5c1cbfd95873950a87b5f75d52073a967023 (patch)
treeb8b8d2ab3b0d432ea69ad1a64d1c789649d65020 /source/l/readline
parentd31c50870d0bee042ce660e445c9294a59a3a65b (diff)
downloadcurrent-646a5c1cbfd95873950a87b5f75d52073a967023.tar.gz
current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.xz
Mon May 28 19:12:29 UTC 201820180528191229
a/pkgtools-15.0-noarch-13.txz: Rebuilt. installpkg: default line length for --terselength is the number of columns. removepkg: added --terse mode. upgradepkg: default line length for --terselength is the number of columns. upgradepkg: accept -option in addition to --option. ap/vim-8.1.0026-x86_64-1.txz: Upgraded. d/bison-3.0.5-x86_64-1.txz: Upgraded. e/emacs-26.1-x86_64-1.txz: Upgraded. kde/kopete-4.14.3-x86_64-8.txz: Rebuilt. Recompiled against libidn-1.35. n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded. n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded. n/libnftnl-1.1.0-x86_64-1.txz: Upgraded. n/links-2.16-x86_64-2.txz: Rebuilt. Rebuilt to enable X driver for -g mode. n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded. n/nftables-0.8.5-x86_64-1.txz: Upgraded. n/p11-kit-0.23.11-x86_64-1.txz: Upgraded. n/ulogd-2.0.7-x86_64-1.txz: Upgraded. n/whois-5.3.1-x86_64-1.txz: Upgraded. xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded. xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/l/readline')
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00143
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00244
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00347
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00445
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00558
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00663
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00747
-rw-r--r--source/l/readline/readline-6.3-patches/readline63-00847
-rw-r--r--source/l/readline/readline-7.0-patches/readline70-00157
-rw-r--r--source/l/readline/readline-7.0-patches/readline70-002103
-rw-r--r--source/l/readline/readline-7.0-patches/readline70-00340
-rwxr-xr-xsource/l/readline/readline.SlackBuild42
-rw-r--r--source/l/readline/slack-desc10
13 files changed, 242 insertions, 404 deletions
diff --git a/source/l/readline/readline-6.3-patches/readline63-001 b/source/l/readline/readline-6.3-patches/readline63-001
deleted file mode 100644
index bae6a2f52..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-001
+++ /dev/null
@@ -1,43 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-001
-
-Bug-Reported-by: Daan van Rossum <daan@flash.uchicago.edu>
-Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu>
-Bug-Reference-URL:
-
-Bug-Description:
-
-The `.' command in vi mode cannot undo multi-key commands beginning with
-`c', `d', and `y' (command plus motion specifier).
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
---- readline.c 2014-03-07 15:20:33.000000000 -0500
-***************
-*** 965,969 ****
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
- key != ANYOTHERKEY &&
-! rl_key_sequence_length == 1 && /* XXX */
- _rl_vi_textmod_command (key))
- _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
---- 965,969 ----
- if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap &&
- key != ANYOTHERKEY &&
-! _rl_dispatching_keymap == vi_movement_keymap &&
- _rl_vi_textmod_command (key))
- _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign);
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 5
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 1
diff --git a/source/l/readline/readline-6.3-patches/readline63-002 b/source/l/readline/readline-6.3-patches/readline63-002
deleted file mode 100644
index 0e79f13f6..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-002
+++ /dev/null
@@ -1,44 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-002
-
-Bug-Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com>
-Bug-Reference-ID: <CAOMFOmXy3mT2So5GQ5F-smCVArQuAeBwZ2QKzgCtMeXJoDeYOQ@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html
-
-Bug-Description:
-
-When in callback mode, some readline commands can cause readline to seg
-fault by passing invalid contexts to callback functions.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400
---- readline.c 2014-03-10 14:15:02.000000000 -0400
-***************
-*** 745,749 ****
-
- RL_CHECK_SIGNALS ();
-! if (r == 0) /* success! */
- {
- _rl_keyseq_chain_dispose ();
---- 745,750 ----
-
- RL_CHECK_SIGNALS ();
-! /* We only treat values < 0 specially to simulate recursion. */
-! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */
- {
- _rl_keyseq_chain_dispose ();
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 1
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 2
diff --git a/source/l/readline/readline-6.3-patches/readline63-003 b/source/l/readline/readline-6.3-patches/readline63-003
deleted file mode 100644
index d2cad94f9..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-003
+++ /dev/null
@@ -1,47 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-003
-
-Bug-Reported-by:
-Bug-Reference-ID:
-Bug-Reference-URL:
-
-Bug-Description:
-
-There are debugging functions in the readline release that are theoretically
-exploitable as security problems. They are not public functions, but have
-global linkage.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3/util.c 2013-09-02 13:36:12.000000000 -0400
---- util.c 2014-03-20 10:25:53.000000000 -0400
-***************
-*** 477,480 ****
---- 479,483 ----
- }
-
-+ #if defined (DEBUG)
- #if defined (USE_VARARGS)
- static FILE *_rl_tracefp;
-***************
-*** 539,542 ****
---- 542,546 ----
- }
- #endif
-+ #endif /* DEBUG */
-
-
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 2
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 3
diff --git a/source/l/readline/readline-6.3-patches/readline63-004 b/source/l/readline/readline-6.3-patches/readline63-004
deleted file mode 100644
index 3cd89e3a0..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-004
+++ /dev/null
@@ -1,45 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-004
-
-Bug-Reported-by: Egmont Koblinger <egmont@gmail.com>
-Bug-Reference-ID: <CAGWcZk+bU5Jo1M+tutGvL-250UBE9DXjpeJVofYJSFcqFEVfMg@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html
-
-Bug-Description:
-
-The signal handling changes to bash and readline (to avoid running any code
-in a signal handler context) cause the cursor to be placed on the wrong
-line of a multi-line command after a ^C interrupts editing.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/display.c 2013-12-27 13:10:56.000000000 -0500
---- display.c 2014-03-27 11:52:45.000000000 -0400
-***************
-*** 2678,2682 ****
- if (_rl_echoing_p)
- {
-! _rl_move_vert (_rl_vis_botlin);
- _rl_vis_botlin = 0;
- fflush (rl_outstream);
---- 2678,2683 ----
- if (_rl_echoing_p)
- {
-! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */
-! _rl_move_vert (_rl_vis_botlin);
- _rl_vis_botlin = 0;
- fflush (rl_outstream);
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 3
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 4
diff --git a/source/l/readline/readline-6.3-patches/readline63-005 b/source/l/readline/readline-6.3-patches/readline63-005
deleted file mode 100644
index 8a6373849..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-005
+++ /dev/null
@@ -1,58 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-005
-
-Bug-Reported-by: Juergen Daubert <jue@jue.li>
-Bug-Reference-ID: <20140303180430.GA7346@jue.netz>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html
-
-Bug-Description:
-
-There are still applications using the deprecated Function/VFunction/etc.
-typedefs in rltypedefs.h. This patch restores the typedefs, but attempts
-to mark them as deprecated using gcc/clang attributes. Thanks to Max Horn
-for the suggestion.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/rltypedefs.h 2011-03-26 14:53:31.000000000 -0400
---- rltypedefs.h 2014-04-10 11:30:45.000000000 -0400
-***************
-*** 27,30 ****
---- 27,49 ----
- #endif
-
-+ /* Old-style, attempt to mark as deprecated in some way people will notice. */
-+
-+ #if !defined (_FUNCTION_DEF)
-+ # define _FUNCTION_DEF
-+
-+ #if defined(__GNUC__) || defined(__clang__)
-+ typedef int Function () __attribute__ ((deprecated));
-+ typedef void VFunction () __attribute__ ((deprecated));
-+ typedef char *CPFunction () __attribute__ ((deprecated));
-+ typedef char **CPPFunction () __attribute__ ((deprecated));
-+ #else
-+ typedef int Function ();
-+ typedef void VFunction ();
-+ typedef char *CPFunction ();
-+ typedef char **CPPFunction ();
-+ #endif
-+
-+ #endif /* _FUNCTION_DEF */
-+
- /* New style. */
-
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 4
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 5
diff --git a/source/l/readline/readline-6.3-patches/readline63-006 b/source/l/readline/readline-6.3-patches/readline63-006
deleted file mode 100644
index a3f09304a..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-006
+++ /dev/null
@@ -1,63 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-006
-
-Bug-Reported-by: <Trond.Endrestol@ximalas.info>
-Bug-Reference-ID: <alpine.BSF.2.03.1404192114310.1973@enterprise.ximalas.info>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html
-
-Bug-Description:
-
-Using reverse-i-search when horizontal scrolling is enabled does not redisplay
-the entire line containing the successful search results.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/display.c 2014-04-08 18:19:36.000000000 -0400
---- display.c 2014-04-20 18:32:52.000000000 -0400
-***************
-*** 1638,1642 ****
- the spot of first difference is before the end of the invisible chars,
- lendiff needs to be adjusted. */
-! if (current_line == 0 && !_rl_horizontal_scroll_mode &&
- current_invis_chars != visible_wrap_offset)
- {
---- 1638,1642 ----
- the spot of first difference is before the end of the invisible chars,
- lendiff needs to be adjusted. */
-! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */
- current_invis_chars != visible_wrap_offset)
- {
-***************
-*** 1826,1831 ****
- _rl_last_c_pos += bytes_to_insert;
-
- if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-! goto clear_rest_of_line;
- }
- }
---- 1826,1836 ----
- _rl_last_c_pos += bytes_to_insert;
-
-+ /* XXX - we only want to do this if we are at the end of the line
-+ so we move there with _rl_move_cursor_relative */
- if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new)))
-! {
-! _rl_move_cursor_relative (ne-new, new);
-! goto clear_rest_of_line;
-! }
- }
- }
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 5
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 6
diff --git a/source/l/readline/readline-6.3-patches/readline63-007 b/source/l/readline/readline-6.3-patches/readline63-007
deleted file mode 100644
index 1b657924d..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-007
+++ /dev/null
@@ -1,47 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-007
-
-Bug-Reported-by: John Lenton
-Bug-Reference-ID:
-Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
-
-Bug-Description:
-
-Readline should allow SIGALRM and SIGVTALRM (if available) to `interrupt'
-rl_getc and cause the handler to run when not in a signal handling context.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/input.c 2014-01-10 15:07:08.000000000 -0500
---- input.c 2014-05-30 16:20:56.000000000 -0400
-***************
-*** 535,540 ****
---- 538,551 ----
- else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM)
- return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF);
-+ /* keyboard-generated signals of interest */
- else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT)
- RL_CHECK_SIGNALS ();
-+ /* non-keyboard-generated signals of interest */
-+ else if (_rl_caught_signal == SIGALRM
-+ #if defined (SIGVTALRM)
-+ || _rl_caught_signal == SIGVTALRM
-+ #endif
-+ )
-+ RL_CHECK_SIGNALS ();
-
- if (rl_signal_event_hook)
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 6
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 7
diff --git a/source/l/readline/readline-6.3-patches/readline63-008 b/source/l/readline/readline-6.3-patches/readline63-008
deleted file mode 100644
index 691016f75..000000000
--- a/source/l/readline/readline-6.3-patches/readline63-008
+++ /dev/null
@@ -1,47 +0,0 @@
- READLINE PATCH REPORT
- =====================
-
-Readline-Release: 6.3
-Patch-ID: readline63-008
-
-Bug-Reported-by: Jared Yanovich <slovichon@gmail.com>
-Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html
-
-Bug-Description:
-
-When the readline `revert-all-at-newline' option is set, pressing newline
-when the current line is one retrieved from history results in a double free
-and a segmentation fault.
-
-Patch (apply with `patch -p0'):
-
-*** ../readline-6.3-patched/misc.c 2012-09-01 18:03:11.000000000 -0400
---- misc.c 2014-06-30 13:41:19.000000000 -0400
-***************
-*** 462,465 ****
---- 462,466 ----
- /* Set up rl_line_buffer and other variables from history entry */
- rl_replace_from_history (entry, 0); /* entry->line is now current */
-+ entry->data = 0; /* entry->data is now current undo list */
- /* Undo all changes to this history entry */
- while (rl_undo_list)
-***************
-*** 469,473 ****
- FREE (entry->line);
- entry->line = savestring (rl_line_buffer);
-- entry->data = 0;
- }
- entry = previous_history ();
---- 470,473 ----
-*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500
---- patchlevel 2014-03-21 08:28:40.000000000 -0400
-***************
-*** 1,3 ****
- # Do not edit -- exists only for use by patch
-
-! 7
---- 1,3 ----
- # Do not edit -- exists only for use by patch
-
-! 8
diff --git a/source/l/readline/readline-7.0-patches/readline70-001 b/source/l/readline/readline-7.0-patches/readline70-001
new file mode 100644
index 000000000..437a4401d
--- /dev/null
+++ b/source/l/readline/readline-7.0-patches/readline70-001
@@ -0,0 +1,57 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 7.0
+Patch-ID: readline70-001
+
+Bug-Reported-by: Sean Zha <freeman_cha@hotmail.com>
+Bug-Reference-ID: <BN3PR01MB13657D9303EB94BF6E54216E8CCA0@BN3PR01MB1365.prod.exchangelabs.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2016-09/msg00107.html
+
+Bug-Description:
+
+Readline-7.0 changed the way the history list is initially allocated to reduce
+the number of reallocations and copies. Users who set the readline
+history-size variable to a very large number to essentially unlimit the size
+of the history list will get memory allocation errors
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-7.0/history.c 2015-12-28 13:50:31.000000000 -0500
+--- history.c 2016-09-30 14:28:40.000000000 -0400
+***************
+*** 58,61 ****
+--- 58,63 ----
+ #define DEFAULT_HISTORY_INITIAL_SIZE 502
+
++ #define MAX_HISTORY_INITIAL_SIZE 8192
++
+ /* The number of slots to increase the_history by. */
+ #define DEFAULT_HISTORY_GROW_SIZE 50
+***************
+*** 308,312 ****
+ {
+ if (history_stifled && history_max_entries > 0)
+! history_size = history_max_entries + 2;
+ else
+ history_size = DEFAULT_HISTORY_INITIAL_SIZE;
+--- 310,316 ----
+ {
+ if (history_stifled && history_max_entries > 0)
+! history_size = (history_max_entries > MAX_HISTORY_INITIAL_SIZE)
+! ? MAX_HISTORY_INITIAL_SIZE
+! : history_max_entries + 2;
+ else
+ history_size = DEFAULT_HISTORY_INITIAL_SIZE;
+
+*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 0
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 1
diff --git a/source/l/readline/readline-7.0-patches/readline70-002 b/source/l/readline/readline-7.0-patches/readline70-002
new file mode 100644
index 000000000..ac76daec7
--- /dev/null
+++ b/source/l/readline/readline-7.0-patches/readline70-002
@@ -0,0 +1,103 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 7.0
+Patch-ID: readline70-002
+
+Bug-Reported-by: Hong Cho <hong.cho@citrix.com>
+Bug-Reference-ID: <c30b5fe62b2543af8297e47ca487c29c@SJCPEX02CL02.citrite.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2016-12/msg00002.html
+
+Bug-Description:
+
+There is a race condition in add_history() that can be triggered by a fatal
+signal arriving between the time the history length is updated and the time
+the history list update is completed. A later attempt to reference an
+invalid history entry can cause a crash.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-7.0-patched/history.c 2016-11-11 13:42:49.000000000 -0500
+--- history.c 2016-12-05 10:37:51.000000000 -0500
+***************
+*** 280,283 ****
+--- 280,284 ----
+ {
+ HIST_ENTRY *temp;
++ int new_length;
+
+ if (history_stifled && (history_length == history_max_entries))
+***************
+*** 296,306 ****
+ /* Copy the rest of the entries, moving down one slot. Copy includes
+ trailing NULL. */
+- #if 0
+- for (i = 0; i < history_length; i++)
+- the_history[i] = the_history[i + 1];
+- #else
+ memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *));
+- #endif
+
+ history_base++;
+ }
+--- 297,303 ----
+ /* Copy the rest of the entries, moving down one slot. Copy includes
+ trailing NULL. */
+ memmove (the_history, the_history + 1, history_length * sizeof (HIST_ENTRY *));
+
++ new_length = history_length;
+ history_base++;
+ }
+***************
+*** 316,320 ****
+ history_size = DEFAULT_HISTORY_INITIAL_SIZE;
+ the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
+! history_length = 1;
+ }
+ else
+--- 313,317 ----
+ history_size = DEFAULT_HISTORY_INITIAL_SIZE;
+ the_history = (HIST_ENTRY **)xmalloc (history_size * sizeof (HIST_ENTRY *));
+! new_length = 1;
+ }
+ else
+***************
+*** 326,330 ****
+ xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
+ }
+! history_length++;
+ }
+ }
+--- 323,327 ----
+ xrealloc (the_history, history_size * sizeof (HIST_ENTRY *));
+ }
+! new_length = history_length + 1;
+ }
+ }
+***************
+*** 332,337 ****
+ temp = alloc_history_entry ((char *)string, hist_inittime ());
+
+! the_history[history_length] = (HIST_ENTRY *)NULL;
+! the_history[history_length - 1] = temp;
+ }
+
+--- 329,335 ----
+ temp = alloc_history_entry ((char *)string, hist_inittime ());
+
+! the_history[new_length] = (HIST_ENTRY *)NULL;
+! the_history[new_length - 1] = temp;
+! history_length = new_length;
+ }
+
+*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 1
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 2
diff --git a/source/l/readline/readline-7.0-patches/readline70-003 b/source/l/readline/readline-7.0-patches/readline70-003
new file mode 100644
index 000000000..a19cae6ef
--- /dev/null
+++ b/source/l/readline/readline-7.0-patches/readline70-003
@@ -0,0 +1,40 @@
+ READLINE PATCH REPORT
+ =====================
+
+Readline-Release: 7.0
+Patch-ID: readline70-003
+
+Bug-Reported-by: Frédéric Brière <fbriere@fbriere.net>
+Bug-Reference-ID: <20170120180724.7ydq7fb2hsp366dj@fabul.fbriere.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2017-01/msg00002.html
+
+Bug-Description:
+
+Readline-7.0 uses pselect(2) to allow readline to handle signals that do not
+interrupt read(2), such as SIGALRM, before reading another character. The
+signal mask used in the pselect call did not take into account signals the
+calling application blocked before calling readline().
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-7.0-patched/input.c 2016-08-30 10:21:47.000000000 -0400
+--- input.c 2017-01-23 10:21:56.000000000 -0500
+***************
+*** 514,517 ****
+--- 514,518 ----
+ #if defined (HAVE_PSELECT)
+ sigemptyset (&empty_set);
++ sigprocmask (SIG_BLOCK, (sigset_t *)NULL, &empty_set);
+ FD_ZERO (&readfds);
+ FD_SET (fileno (stream), &readfds);
+*** ../readline-7.0/patchlevel 2013-11-15 08:11:11.000000000 -0500
+--- patchlevel 2014-03-21 08:28:40.000000000 -0400
+***************
+*** 1,3 ****
+ # Do not edit -- exists only for use by patch
+
+! 2
+--- 1,3 ----
+ # Do not edit -- exists only for use by patch
+
+! 3
diff --git a/source/l/readline/readline.SlackBuild b/source/l/readline/readline.SlackBuild
index 169b42061..10f83fdb8 100755
--- a/source/l/readline/readline.SlackBuild
+++ b/source/l/readline/readline.SlackBuild
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-# Copyright 2005-2015 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2018 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,6 +20,7 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=readline
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
@@ -37,7 +38,6 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
-CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-readline
@@ -58,6 +58,20 @@ fi
rm -rf $PKG
mkdir -p $TMP $PKG
+# Determine readline patchlevel:
+PATCHLEVEL="$( cd $CWD/readline-${VERSION}-patches ; /bin/ls readline7?-??? | tail -1 | cut -f 2 -d - 2> /dev/null )"
+if [ "$PATCHLEVEL" = "" ]; then
+ PATCHLEVEL=000
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PKGNAM-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
cd $TMP
rm -rf readline-$VERSION
tar xvf $CWD/readline-$VERSION.tar.?z* || exit 1
@@ -85,9 +99,27 @@ CFLAGS="$SLKCFLAGS" \
--disable-static \
--build=$ARCH-slackware-linux-gnu || exit 1
-make $NUMJOBS static shared || make static shared || exit 1
+# Link with libtinfo:
+make $NUMJOBS static shared SHLIB_LIBS=-ltinfo || make static shared SHLIB_LIBS=-ltinfo || exit 1
make install DESTDIR=$PKG || exit 1
+# build rlfe (ReadLine Front-End) from examples/
+# NOTE: This will link against the currently installed libreadline!
+# Build/install this package twice whenever there is an .soname bump.
+( cd examples/rlfe || exit 1
+ CFLAGS="$SLKCFLAGS" \
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/readline-$VERSION \
+ --build=$ARCH-slackware-linux-gnu || exit 1
+ make $NUMJOBS || exit 1
+ install -m 755 rlfe $PKG/usr/bin
+ cp -a README $PKG/usr/doc/readline-$VERSION/README.rlfe
+) || exit 1
+
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -118,5 +150,5 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
# Build the package:
cd $PKG
-/sbin/makepkg -l y -c n $TMP/readline-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/readline-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz
diff --git a/source/l/readline/slack-desc b/source/l/readline/slack-desc
index 76d7fb96b..451ec1303 100644
--- a/source/l/readline/slack-desc
+++ b/source/l/readline/slack-desc
@@ -1,8 +1,8 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description. Line
+# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
-# on the right side marks the last column you can put a character in. You must
-# make exactly 11 lines for the formatting to be correct. It's also
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
@@ -10,10 +10,10 @@ readline: readline (line input library with editing features)
readline:
readline: The GNU Readline library provides a set of functions for use by
readline: applications that allow users to edit command lines as they are typed
-readline: in. Both Emacs and vi editing modes are available. The Readline
+readline: in. Both Emacs and vi editing modes are available. The Readline
readline: library includes additional functions to maintain a list of previously
readline: entered command lines, to recall and perhaps edit those lines, and
-readline: perform csh-like history expansion on previous commands.
+readline: perform csh-like history expansion on previous commands.
readline:
readline:
readline: