| Age | Commit message (Collapse) | Author | Files | Lines |
|
0.45
----
New features:
- --only-cook '!<regexp>' enables "confident mode" where every
possible prompt that matches a regexp is cooked immediately
(so that even prompts that get printed when handling a large
paste are cooked)
- --no-children (-N) now enables direct mode whenever the client
switches to the alternate screen. This makes editors and pagers
usable even when using --always-readline on non-linux systems
- when run inside an emacs shell buffer, rlwrap will execute the
client instead of wrapping it (just as when stdin is not a
terminal)
- --always-echo echoes user input even when the client has
switched off ECHO.
- filter "makefilter" to easily employ shell commands (like sed,
or grep) as rlwrap filters (extending/superseding "outfilter")
- filters can change (some) bindable and internal readline
variables with a new RlwrapFilter method tweak_readline_oob()
Bug Fixes:
- rlwrap correctly handles bracketed paste
- --ansi-colour-aware (-A) didn't do anything at all. Now it
recognises colour codes as well as common control codes like
window titles. --ansi-colour-aware="!" will "bleach" the
prompt, i.e. remove all colour codes
- On AIX, rlwrap would quit if client wrote 0 bytes
- a round of testing on Polarhome to weed out some
incompatibilities with older Unix systems
|
|
pkgsrc changes:
- Remove patch-configure.ac, now also applied upstream
Changes:
0.44
----
- rlwrap doesn't (yet) work with bracketed-paste. As this is
enabled by default from readline-8.1 onwards, rlwrap disables
it, even if specified in .inputrc. A multi-line paste will
therefore (still) behave as multiple 1-line pastes
- rlwrap is now aware of multi-byte characters and correctly
handles prompts (or things that look like prompts, e.g.
progress indicators) that contain them, according to your
locale.
- rlwrap filters can now also filter signals (see
RlwrapFilter(3pm)), changing them, or providing extra input to
the rlwrapped command.
- Key *sequences* can now be bound to rlwrap-direct-keypress
(using a new readline command rlwrap-direct-prefix) (contributed
by Yuri d'Elia)
- configure will correctly identify whether --mirror-arguments
will work, even on 1-processor systems
- the handle_hotkey filter has a handler definition that enables
fuzzy history search using fzf
- binding accept-line to a key would make that key mess up the
display
- The debug log is more readable (e.g. by marking debug lines
with "parent", "child" or "filter")
|
|
pkgsrc changes:
- depends on python3* now that filters can be written in Python
- update MASTER_SITES and HOMEPAGE (old homepage seems no longer available)
- take MAINTAINERship
Changes:
0.43
----
- Added Hisanobu Okuda's rlwrapfilter.py python3 module
and example filters. Filters can now be written in python
as well as perl.
- If a filter was used, rlwrap would pass all input, output,
history items, prompts, ... through the filter, even if it
wouldn't change them. Now, at startup, filters (even filter
pipelines) tell rlwrap which messages they handle, after which
rlwrap won't bother them with anything else.
- Added bindable readline command rlwrap-direct-keypress
that bypasses readline editing and sends its keypress directly
to the rlwrapped command (like CTRL-G for the Erlang shell)
- Added bindable readline command rlwrap-hotkey that passes
the current input buffer and history to the filter (or
filter pipeline) specified with the '-z' option. This can
be used e.g. to insert the current selection at the cursor
position, or to edit (re-write) the history.
This uncovered quite a few bugs and inconsistencies:
- My ncurses' termcap emulation misses some codes (like
term_cursor_hpos) that its terminfo has. rlwrap now
always searches terminfo before termcap.
- rlwrap was confused about the role of history_offset,
resulting in muddled and unclear (although correct) code.
- rlwrap --history-size -0 would clobber the history file
(as per the manual - that has been updated as well)
- rlwrap's ad hoc way of sending lists of strings to filters
by interspersing them with TABS or spaces is becoming
unwieldy, it has been replaced by a standard encoding
<length1><string1><length2><string2>.... (where the
<lengths> are fixed length hexadecimal numbers (this is a
contribution by Hisanobu Okuda)
- Playing back a readline macro consisting of more than one line
would crash with SIGSEGV
- rlwrap with negative --histsize would fail when there is no
history file yet.
- An empty prompt would make $filter->{cumulative_output} miss
its last line
- Pre-given (-P) input would only be put in input line after
cooking timeout (usually 40 msec)
- One-shot (-o) rlwrap could accept more than one line when input
in quick succession.
- rlwrap didn't delete the tempfiles used in a multi-line
edit
- configure.ac now works even when cross-compiling (skipping some
tests, but providing sensible defaults)
- --enable-pedantic-ansi is a new configure option separate from
--enable-debug (it used to be implied by --enable-debug)
- --complete-filenames (-c) will now work on OS X and FreeBSD as well
|
|
Now depends on perl.
0.37 Commands that emit "status lines" using backspaces and carriage
returns could confuse rlwrap
rlwrap uses C strings internally, and thus cannot cope with
command output that contains zero bytes (padding). It used to
replace these with spaces, now the zero bytes are removed.
if the RLWRAP_HOME is set, but $RLWRAP_HOME doesn't exist, rlwrap
will create it
typo: SIGERR instead of SIG_ERR in signals.c
0.36 Entering a line from vi command mode would echo the input twice
Output from very busy commands would not always be printed on time
When rlwrap kills itself after a command crash it will not dump
core, in order to avoid clobbering command's much more interesting
core dump.
Premature filter death is now reported properly (it used to only
say: "EOF reading from filter" or "Broken pipe writing to filter")
0.35 config.{guess,sub} have been updated to version 2009-12-13
Corrected array bounds error in my_putstr("") (which could make
rlwrap write an extra newline when exiting, but might even crash
on some systems)
Many small improvements and fixes for multi-line input:
Multi-line inputs are now written to the inferior command one
line at a time, so that command's response (e.g. a continuation
prompt) can be interleaved with the echo'ed (multi-line) input.
Calling an external editor will no longer obliterate the prompt,
and line/column positions are now correct.
After a multi-line edit in vi-mode, the cursor will no longer
end up one line too high.
CTRL-D on an empty line was handed directly to command, but also
(erroneously) put in readline's input buffer
Many small fixes and improvements in signal handling:
SIGSEGV, and other "error" signals like SIGFPE, are now unblocked
all of the time, so that rlwrap can always clean up after a crash.
Since version 0.25 rlrwap's transparency extends to signals: if
the inferior command segfaults, rlwrap will kill itself with a
SIGSEGV. In order to get the bug reports where they belong,
rlwrap now reports explicitly that it has not crashed itself.
rlwrap's call to sigaction forgot to set the signal mask (!)
Continuing after CTRL-Z on QNX now wakes up command
Added --one-shot (-o) and --only-cook (-O) options
debug log is now in a format that works well with emacs' grep-mode
rlwrap's bindable readline function names (like rlwrap-call-editor) are
now in hyphen-style instead of underscore_style (use of the
old_style_names will now be flagged as an error)
Filters can now prevent a prompt from being cooked by "rejecting" it.
Rlwrapfilter.pm would set $_ incorrectly in echo and output handlers.
RlwrapFilter.pm manpage is now created by newer (and less buggy)
version of pod2man
Added EXAMPLES section and -t option to rlwrap manpage
0.34 Binding wide (e.g. utf-8) chars in .inputrc now works
prefix arguments are now correctly reset (M-5 a b now
yields aaaaab instead of aaaaabbbbb)
0.33 rlwrap incorrectly fed terminfo-style capnames ("dl1") instead of
termcap codes ("dl") into tgetstr(). On newer Debian systems this
exposed a bug where random garbage would be printed by rlwrap
Hyphens in rlwrap manpage are now all properly escaped
RlwrapFilter.pm now only re-sets $filter->cumulative_output when an
INPUT message is received
0.32 Major new feature: filtering. Filters sit between rlwrap and the
wrapped command, re-writing command output, input, prompts,
history, and completion word lists.
System-wide filters live in DATADIR/rlwrap/filters (where DATADIR =
/usr/local/share by default, installation-dependent) Because of this,
completions now live in DATADIR/rlwrap/completions (until now:
DATADIR/rlwrap)
To make filter writing easy, a perl module RlwrapFilter.pm has
been added. It doesn't become part of your perl installation, but lives
in DATADIR/rlwrap/filters
rlwrap didn't properly check errno after reading from inferior pty.
This could lead to a spurious "read error on master pty"
Instead of using crusty old signal(), signal handlers are now set
by sigaction() without SA_RESTART (BSD semantics) Different
syscall-restarting behaviour among systems caused hard-to-trace
bugs
Now copies inferior pty's c_oflags to stdout before
output. (some editors like joe would mess up the screen)
prompt handling logic has been streamlined. Coloured prompt handling is
reliable now, even for long prompts.
At program exit, rlwrap now outputs a newline only when the client
didn't.
Added -g, -I, -N, -S, -w and -z options
Removed -F option (and added a filter to replace it)
-p option now takes colour names (-pYellow)
rlwrap (and readline) uses C strings internally, which could cause problems
with commands that output '\0' bytes. In direct mode, such
characters are left untouched, but in readline mode they are
replaced by spaces.
the tools directory has been updated, so that configure will
feel at home even on newer systems
tested on SunOS, AIX, FreeBSD, HP/UX, QNX (thanks to polarhome.com), as
well as cygwin and linux
|
|
|
|
rlwrap is a 'readline wrapper' that uses the GNU readline library to
allow the editing of keyboard input for other commands. Input history
is remembered across invocations, separately for each command; history
completion and search work as in bash and completion word lists can be
specified on the command line.
|