diff options
Diffstat (limited to 'readline')
| -rw-r--r-- | readline/build.sh | 12 | ||||
| -rw-r--r-- | readline/meta.yaml | 29 | ||||
| -rw-r--r-- | readline/ncurses.patch | 12 | ||||
| -rw-r--r-- | readline/tpn.patch | 152 | 
4 files changed, 205 insertions, 0 deletions
diff --git a/readline/build.sh b/readline/build.sh new file mode 100644 index 0000000..b1575ca --- /dev/null +++ b/readline/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [ `uname -m` == ppc64le ]; then +    B="--build=ppc64le-linux" +fi + +./configure $B --prefix=$PREFIX +make +make install + +rm -rf $PREFIX/share/man +rm -rf $PREFIX/share/readline diff --git a/readline/meta.yaml b/readline/meta.yaml new file mode 100644 index 0000000..f3f99c2 --- /dev/null +++ b/readline/meta.yaml @@ -0,0 +1,29 @@ +package: +  name: readline +  version: 6.2 + +source: +  fn: readline-6.2.tar.gz +  url: http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz +  md5: 67948acb2ca081f23359d0256e9a271c +  patches: +    - tpn.patch +    - ncurses.patch + +build: +  number: 3 + +about: +  home: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html +  license: GPL3 +  license_file: COPYING +  summary: Line-editing for programs with a command-line interface +  description: | +    The GNU Readline library provides a set of functions for use by +    applications that allow users to edit command lines as they are typed in. +    Both Emacs and vi editing modes are available. The Readline library +    includes additional functions to maintain a list of previously-entered +    command lines, to recall and perhaps reedit those lines, and perform +    csh-like history expansion on previous commands. +  doc_url: http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html#Documentation + diff --git a/readline/ncurses.patch b/readline/ncurses.patch new file mode 100644 index 0000000..b9cec2a --- /dev/null +++ b/readline/ncurses.patch @@ -0,0 +1,12 @@ +diff --git support/shobj-conf support/shobj-conf +index d47bd80..fc8da1e 100644 +--- support/shobj-conf ++++ support/shobj-conf +@@ -114,6 +114,7 @@ linux*-*|gnu*-*|k*bsd*-gnu-*|freebsd*-gentoo) + 	SHOBJ_LD='${CC}' + 	SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' +  ++	SHLIB_LIBS='-lncurses' + 	SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' + 	SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' + 	;; diff --git a/readline/tpn.patch b/readline/tpn.patch new file mode 100644 index 0000000..b037a2a --- /dev/null +++ b/readline/tpn.patch @@ -0,0 +1,152 @@ +diff --git callback.c callback.c +index 4ee6361..6c79d41 100644 +--- callback.c ++++ callback.c +@@ -148,6 +148,9 @@ rl_callback_read_char () + 	  eof = _rl_vi_domove_callback (_rl_vimvcxt); + 	  /* Should handle everything, including cleanup, numeric arguments, + 	     and turning off RL_STATE_VIMOTION */ ++          if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) ++            _rl_internal_char_cleanup (); ++ + 	  return; + 	} + #endif +diff --git input.c input.c +index 7c74c99..99593a3 100644 +--- input.c ++++ input.c +@@ -409,7 +409,7 @@ rl_clear_pending_input () + int + rl_read_key () + { +-  int c; ++  int c, r; +  +   rl_key_sequence_length++; +  +@@ -429,11 +429,17 @@ rl_read_key () + 	{ + 	  while (rl_event_hook) + 	    { +-	      if (rl_gather_tyi () < 0)	/* XXX - EIO */ ++              if (rl_get_char (&c) != 0) ++                break; ++ ++	      if ((r = rl_gather_tyi ()) < 0)	/* XXX - EIO */ + 		{ + 		  rl_done = 1; + 		  return ('\n'); + 		} ++              else if (r == 1)		/* read something */ ++                continue; ++ + 	      RL_CHECK_SIGNALS (); + 	      if (rl_get_char (&c) != 0) + 		break; +diff --git patchlevel patchlevel +index fdf4740..e0ba09d 100644 +--- patchlevel ++++ patchlevel +@@ -1,3 +1,3 @@ + # Do not edit -- exists only for use by patch +  +-1 ++5 +diff --git support/shobj-conf support/shobj-conf +index 5a63e80..d47bd80 100644 +--- support/shobj-conf ++++ support/shobj-conf +@@ -157,7 +157,7 @@ freebsd[4-9]*|freebsdelf*|dragonfly*) + 	;; +  + # Darwin/MacOS X +-darwin[89]*|darwin10*) ++darwin[89]*|darwin1[0123]*) + 	SHOBJ_STATUS=supported + 	SHLIB_STATUS=supported + 	 +@@ -186,7 +186,7 @@ darwin*|macosx*) + 	SHLIB_LIBSUFF='dylib' +  + 	case "${host_os}" in +-	darwin[789]*|darwin10*)	SHOBJ_LDFLAGS='' ++	darwin[789]*|darwin1[0123]*)	SHOBJ_LDFLAGS='' + 			SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' + 			;; + 	*)		SHOBJ_LDFLAGS='-dynamic' +diff --git vi_mode.c vi_mode.c +index 41e1dbb..9a51b2b 100644 +--- vi_mode.c ++++ vi_mode.c +@@ -1114,7 +1114,7 @@ rl_domove_read_callback (m) +       rl_beg_of_line (1, c); +       _rl_vi_last_motion = c; +       RL_UNSETSTATE (RL_STATE_VIMOTION); +-      return (0); ++      return (vidomove_dispatch (m)); +     } + #if defined (READLINE_CALLBACKS) +   /* XXX - these need to handle rl_universal_argument bindings */ +@@ -1234,11 +1234,19 @@ rl_vi_delete_to (count, key) +       _rl_vimvcxt->motion = '$'; +       r = rl_domove_motion_callback (_rl_vimvcxt); +     } +-  else if (vi_redoing) ++  else if (vi_redoing && _rl_vi_last_motion != 'd')   /* `dd' is special */ +     { +       _rl_vimvcxt->motion = _rl_vi_last_motion; +       r = rl_domove_motion_callback (_rl_vimvcxt); +     } ++  else if (vi_redoing)                /* handle redoing `dd' here */ ++    { ++      _rl_vimvcxt->motion = _rl_vi_last_motion; ++      rl_mark = rl_end; ++      rl_beg_of_line (1, key); ++      RL_UNSETSTATE (RL_STATE_VIMOTION); ++      r = vidomove_dispatch (_rl_vimvcxt); ++    } + #if defined (READLINE_CALLBACKS) +   else if (RL_ISSTATE (RL_STATE_CALLBACK)) +     { +@@ -1316,11 +1324,19 @@ rl_vi_change_to (count, key) +       _rl_vimvcxt->motion = '$'; +       r = rl_domove_motion_callback (_rl_vimvcxt); +     } +-  else if (vi_redoing) ++  else if (vi_redoing && _rl_vi_last_motion != 'c')   /* `cc' is special */ +     { +       _rl_vimvcxt->motion = _rl_vi_last_motion; +       r = rl_domove_motion_callback (_rl_vimvcxt); +     } ++  else if (vi_redoing)                /* handle redoing `cc' here */ ++    { ++      _rl_vimvcxt->motion = _rl_vi_last_motion; ++      rl_mark = rl_end; ++      rl_beg_of_line (1, key); ++      RL_UNSETSTATE (RL_STATE_VIMOTION); ++      r = vidomove_dispatch (_rl_vimvcxt); ++    } + #if defined (READLINE_CALLBACKS) +   else if (RL_ISSTATE (RL_STATE_CALLBACK)) +     { +@@ -1377,6 +1393,19 @@ rl_vi_yank_to (count, key) +       _rl_vimvcxt->motion = '$'; +       r = rl_domove_motion_callback (_rl_vimvcxt); +     } ++  else if (vi_redoing && _rl_vi_last_motion != 'y')   /* `yy' is special */ ++    { ++      _rl_vimvcxt->motion = _rl_vi_last_motion; ++      r = rl_domove_motion_callback (_rl_vimvcxt); ++    } ++  else if (vi_redoing)                        /* handle redoing `yy' here */ ++    { ++      _rl_vimvcxt->motion = _rl_vi_last_motion; ++      rl_mark = rl_end; ++      rl_beg_of_line (1, key); ++      RL_UNSETSTATE (RL_STATE_VIMOTION); ++      r = vidomove_dispatch (_rl_vimvcxt); ++    } + #if defined (READLINE_CALLBACKS) +   else if (RL_ISSTATE (RL_STATE_CALLBACK)) +     {  | 
