From c436f5b38d83c1fca60076a4dd0f51b1274a3efc Mon Sep 17 00:00:00 2001 From: Vlad Glagolev Date: Tue, 21 Jul 2015 11:36:18 +0300 Subject: rlfe: new spell, readline front-end processor --- ChangeLog | 3 +++ utils/rlfe/DEPENDS | 2 ++ utils/rlfe/DETAILS | 22 ++++++++++++++++++++++ utils/rlfe/HISTORY | 3 +++ utils/rlfe/INSTALL | 1 + utils/rlfe/PRE_BUILD | 5 +++++ utils/rlfe/readline.patch | 20 ++++++++++++++++++++ 7 files changed, 56 insertions(+) create mode 100755 utils/rlfe/DEPENDS create mode 100755 utils/rlfe/DETAILS create mode 100644 utils/rlfe/HISTORY create mode 100755 utils/rlfe/INSTALL create mode 100755 utils/rlfe/PRE_BUILD create mode 100644 utils/rlfe/readline.patch diff --git a/ChangeLog b/ChangeLog index 38e594ded2..62082d423d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2015-07-21 Vlad Glagolev + * utils/rlfe: new spell, readline front-end processor + 2015-07-21 Ladislav Hagara * perl-cpan/term-animation: new spell, ASCII sprite animation framework * utils/asciiquarium: new spell, aquarium/sea animation in ASCII art diff --git a/utils/rlfe/DEPENDS b/utils/rlfe/DEPENDS new file mode 100755 index 0000000000..97a76ba880 --- /dev/null +++ b/utils/rlfe/DEPENDS @@ -0,0 +1,2 @@ +depends ncurses && +depends readline diff --git a/utils/rlfe/DETAILS b/utils/rlfe/DETAILS new file mode 100755 index 0000000000..1a3bef7857 --- /dev/null +++ b/utils/rlfe/DETAILS @@ -0,0 +1,22 @@ + SPELL=rlfe + VERSION=0.4 + SOURCE=${SPELL}-${VERSION}.tar.gz + SOURCE_URL[0]=http://per.bothner.com/software/${SOURCE} + SOURCE_HASH=sha512:76ccb171aeb76777fa9e2776e6eedf6d83216d29877479bded79c1c4f90b435c40b5e0c12dde21784b408c17d51019ba26563ff8a707ee8392e08e4e547fa0ff +SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-${VERSION}" + WEB_SITE=http://per.bothner.com/software/ + LICENSE[0]=GPL + ENTERED=20150721 + SHORT="readline front-end processor" +cat << EOF +rlfe (ReadLine Front-End) is a "universal wrapper" around readline. + +You specify an interactive program to run (typically a shell), and readline is +used to edit input lines. + +There are other such front-ends; what distinguishes this one is that it monitors +the state of the inferior pty, and if the inferior program switches its terminal +to raw mode, then rlfe passes your characters through directly. This basically +means you can run your entire session (including bash and terminal-mode emacs) +under rlfe. +EOF diff --git a/utils/rlfe/HISTORY b/utils/rlfe/HISTORY new file mode 100644 index 0000000000..8418fb0cd1 --- /dev/null +++ b/utils/rlfe/HISTORY @@ -0,0 +1,3 @@ +2015-07-21 Vlad Glagolev + * DETAILS, DEPENDS, PRE_BUILD, INSTALL, readline.patch: spell created, + version 0.4 diff --git a/utils/rlfe/INSTALL b/utils/rlfe/INSTALL new file mode 100755 index 0000000000..d2bef406f7 --- /dev/null +++ b/utils/rlfe/INSTALL @@ -0,0 +1 @@ +install -vm 755 rlfe "${INSTALL_ROOT}/usr/bin/rlfe" diff --git a/utils/rlfe/PRE_BUILD b/utils/rlfe/PRE_BUILD new file mode 100755 index 0000000000..f38fe9663e --- /dev/null +++ b/utils/rlfe/PRE_BUILD @@ -0,0 +1,5 @@ +mk_source_dir "${SOURCE_DIRECTORY}" && +cd "${SOURCE_DIRECTORY}" && +unpack_file && + +patch -p0 < "${SPELL_DIRECTORY}/readline.patch" diff --git a/utils/rlfe/readline.patch b/utils/rlfe/readline.patch new file mode 100644 index 0000000000..9b97eb9fe7 --- /dev/null +++ b/utils/rlfe/readline.patch @@ -0,0 +1,20 @@ +--- rlfe.c.orig 2004-11-05 01:32:14.000000000 +0300 ++++ rlfe.c 2015-07-21 11:14:12.857710397 +0300 +@@ -588,7 +588,7 @@ + } + if (FD_ISSET (in_from_tty_fd, &in_set)) + { +- extern int readline_echoing_p; ++ extern int _rl_echoing_p; + struct termios term_master; + int do_canon = 1; + int do_icrnl = 1; +@@ -605,7 +605,7 @@ + { + do_canon = (term_master.c_lflag & ICANON) != 0; + do_icrnl = (term_master.c_lflag & ICRNL) != 0; +- readline_echoing_p = (term_master.c_lflag & ECHO) != 0; ++ _rl_echoing_p = (term_master.c_lflag & ECHO) != 0; + DPRINT1 ("echo,canon,crnl:%03d\n", + 100 * readline_echoing_p + + 10 * do_canon -- cgit v1.2.3