I"ve made a port of rxvt 2.16 (the current one is 2.09). I've put the
port at ftp://ftp.jurai.net/users/winter/rxvt-2.16.tar.gz
2.09 had a serious problem with the handling of the ^[[0m sequence which
resulted in colors running on to text that was not colored.
I've attached the change log from version 2.09 to 2.16 below.
(If anyone is interested in looking at any of the previous versions of
rxvt, I've got all of them at ftp://ftp.jurai.net/users/winter/rxvt.
(well, as far back as 2.03. I couldn't find any earlier than that.))
Have a good one.| Matthew N. Dodd | | http://www.jurai.net/~winter |
| Technical Manager | | http://www.intersurf.net |
| InterSurf Online | "Welcome to the net Sir, would you like a handbasket?"|---[begin]---
2.15 to 2.16
\-----------
1. Misc cleanup, rxvt once again passes the vttest (and reverse video
works again). Kanji support tested and seems to be okay. Finally,
an okay set of regular/bold colours. Compile-time option for a
right-side scrollbar.
2. Ctrl-minus now (correctly) generates ^_ [0x1F].
Changed termcap/terminfo to use normal cursor keys instead of
application cursor keys (rmkx/smkx, ke/ks) -- otherwise subsequent
rxvt/xterm starts with the application cursor keys active.
3. Fixed scr_reset() so that resizing is a lot more sensible.
Implemented the equivalent SouthWest resizeGravity (xterm X11R5) so
the bottom line of text on the screen stays fixed. If the window is
made taller, additional saved lines will be scrolled down onto the
screen; if the window is made shorter, lines will be scrolled off
the top of the screen, and the top saved lines will be dropped. The
old resizing code is available with -DOLD_UGLY_RESIZE.
4. Altered code so all man-page documented command-line options will
not trigger errors even if the feature wasn't compiled into rxvt.
Added old, backward compatibility command-line options, but they're
simply ignored. Eventually they can be removed -- perhaps Jan'97?
`-8': use `+7'
`-fat': use `-sb'
`-thin': use `-arrows'
`-meta8thbit' use `-meta8'
`-metaescape' use `-meta'
`-font_list' use `-font1', `-font2', etc.
These ones are just too weird to support:
`-ls-': use `+ls'
`-ma-': use `+ma'
5. Removed secure-keyboard option, too problematic and obscure.
6. First attempt at GNU autoconfig.
Still needs some work, but it's mostly okay.
7. Added minor aliases for foreground/background colours. This permits
colour specifications like -fg "#13" -bg "#10", which would set the
foreground to colour 13 (bright yellow) and the background to colour
10 (bright black). It's not terribly useful yet, but might
eventually be a nice way to have bold/blink colour work even on with
the standard fg/bg colours.
2.14 to 2.15
\-----------
1. Small bug: initial width incorrect when there was no scrollBar.
2. Close the gaping security hole. Renounce setuid/setgid privileges
immediately and only take them up as needed -- chown() or writing
into /etc/utmp.
3. Reverted to using `<' and '>' to toggle smaller/bigger fonts. It
seems that many didn't like KP_Subtract/XK_KP_Add -- conflicts with
some editors, and not all terminals have a Keypad anyhow.
4. Man page reformatted by Piercarlo Grandi
so that it "now is done in the most delightful [sic] elegant 'roff
style :-)"
5. Started to integrate the Kanji support based on old patches from the
Linux-JE (Japanese Extensions) project. Consider it alpha until one
of the JE authors gives it a thorough check.
6. Added compile-time selection of a few different scrollbar widths.
7. When reading X resources, rxvt now recognizes two class names:
"XTerm" and "RXvt". The reason for two distinct names is that there
are many options common between rxvt and xterm -- to which the class
name "XTerm" permits easy access and configuration -- but there are
also several options, notably colours and key-handling, unique to
rxvt but which are useful to share between different rxvt
configurations; the class name "RXvt" permits this.
NB: The "RXvt" class takes precedence (in the event of a clash) and
is the only one ever used for the application defaults file.
8. The initial value used for the Backspace key (^H or ^?) is now
determined from the value of CERASE used to set the termios
structures. This removes the need for the BACKSPACE_AS_DELETE
compile-time option.
2.13 to 2.14
\-----------
1. Default HOTKEY prefix can now be choosen as `meta', `ctrl' or
`shift'. Moved font toggle to KP_Add/KP_Subtract to resemble
resolution toggling of the XFree86 server (Linux) and so that Alt-<
can generate ESC-< for Emacs usage. Man page and usage() reflect
the changes. Note that if you choose the hotkey to be `shift', to
mimic the Linux console scrollback, you'll probably want different
keybindings for mapAlert and Secure.
The choice of the HOTKEY (ctrl or meta) prefix and some of the
key-strings can be compile-time defined in "rxvtkeys.h", although
probably the only changes desired will be in the string value
associated with XK_Delete and in the choice of a HOTKEY (ctrl or
meta) prefix.
Use shift or ctrl to temporarily toggle Backspace from ^H to ^?.
Use shift to temporarily toggle the application keypad.
2. Patch so that setting bold or blink works before or after changing
the colour (it used to only work before changing the colour). Also
added the option of having DOS VGA colours.
Thanks Avery Pennarun
3. Extensive reworking of pseudo-tty handling and addition of BSD sgtty
terminal handling and new utmpx (Solaris 2.x) support. MANY thanks
to Raul Garcia Garcia .
POSIX wtmp support added by Piet W. Plomp
Added -/+ut option (resource: utmpInhibit) so you can sometimes be
harder to find :)
4. Finally? cleaned-up selection so that it works properly -- clears a
previously selected region without causing a core dump -- define
NEW_SELECTION.
I believe that this should fix a long-standing problem with the
selection mechanism -- probably back from when selection of the
scrollback was added -- whereby all accounting was done in terms of
screen row values [0 .. RxvtWin.rows-1] plus the current offset
value. The anchor and end points were scrolled with the screen, but
the beginning point wasn't and extending a region that had its
anchor scrolled-off would give complete garbage. The new selection
scheme has lots of bounds-checking (too much?) to prevent these
problems. If PRINT_PIPE is not defined, then you can use
PrintScreen to dump some of the current selection state -- this
should help debugging.
Thanks to John Davis and Piet W. Plomp
for helping to diagnose the problem.
5. Use information request `ESC [ 8 n' to change the window title
to the current rxvt version so you can find out what version you
have.
6. Added simple code to permit run-time definition of the keysyms
0xFF00 - 0xFFFF if KEYSYM_RESOURCE (for FAKE_RESOURCES only) is
defined. It's not as pretty as that used by xterm since it only
works with keysym values rather that key names, but the impact on
code size is quite minimal. I use it in conjunction with `-name vm'
to remap arrow and function keys for tn3270 ... quite handy.
At the moment the string length is only limited by the line length
(currently 256) used in "resources.c"
The syntax (at the moment) is
rxvt*keysym.0xFFnn: "a string value"
where `nn' is a 2 digit hex value 00 to FF. Of course if there were
an easy and small means of converting key names to keysym values,
then that would be better.
The enclosing quotes are required to start/end with whitespace.
Most of the usual escape values can be used:
\b - backspace
\e - escape
\n - newline
\r - carriage return
\t - tab
\000 - octal number
Anyhow, here's a brief example of what it looks like
in ~/.Xdefaults:
! F11 key - mimic the output of F1
rxvt*keysym.0xFFC8: \e[11~
! F12 key - whatever
rxvt*keysym.0xFFC9: Hello World!\n"\"String\" ends with whitespace "
! Delete key - remap
rxvt*keysym.0xFFFF: "Delete :)"
!Scroll_Lock as flow-control (^S)
rxvt*keysym.0xFF14: \023
7. Oops -- fixed resource name from scrollbar to scrollBar. Fixed
cursor colours to black on white (like xterm) for the scrollbar
cursors, but I've left the xterm (`I'-bar) cursor as foreground on
background because it looks so nice. Allocate all colours when
creating the window so that we don't have to worry about it later
and so that we can avoid potential hassles with colour-hungry
applications like Netscape.
8. Added a way to distinguish an rxvt from an xterm via the obsolete
ESC Z sending the vt100 answer string with 'c' -> 'C'.
Added support for resolving the actual IP number of the host for
remote DISPLAYs. Changed the answer back for ESC[7n to add a
trailing newline to support easier input into the shell. When the
display is local (i.e. :0), we add support for sending the first
non-loopback interface IP number as the DISPLAY instead of just
sending the incorrect ":0". This way telnet/rlogin shells can
actually get the correct information into DISPLAY for xclients.
Courtesy of Chuck Blake
[Note: I've not had a chance to thoroughly test this -- mjo]
2.12 to 2.13
\-----------
1. Shift and Control now only work for non-application mode cursor
keys and with function keys.
2. Override XTerm mouse reporting with either Mod1 or Shift. X11
mouse reporting now properly includes modifier keys (see rxvt.ref).
Although this effectively degenerates to the Control modifier alone
since both Shift and Meta are used to temporarily disable mouse
reporting -- I don't know an easy way around this but that's what
XTerm does, although since it uses Control to pop-up menus, that
doesn't get transmitted either.
3. Moved a few more configuration items from Imakefile to configure.h
4. Added XAPPLOADDIR define to the Imakefile to allow use of the
application defaults file XAPPLOADDIR/RXvt when rxvt has been
compiled with FAKE_RESOURCES. Now, the following files are
checked:
XAPPLOADDIR/RXvt (compile-time defined)
$HOME/.Xdefaults or $HOME/.Xresources
suggested by John Gotts
5. Applied patches by Edward D.H. Liu
to fix the speed of pasting rxvt's selection to motif, xew or tk.
Finally! reasonable pasting speed to these applications.
6. patches by Gregory Margo
for xterm-style proportional scrollbar behaviour:
If pointer is near top, scroll one line.
If pointer is near bottom, scroll full page.
refreshPeriod resource and -refresh option ... still wishing
for faster screen refreshing.
7. Bug fix for partial matches (FAKE_RESOURCES). In addition to
resources for resource name `rxvt', also get resources for class
name `XTerm' as well. Remove checking for `command' resource since
it's not found in xterm nor was there any code in place to parse the
command arguments ... better just to use the command-line -e option.
Replace `fontList' with font1, font2, ... etc. for better xterm
compatibility and for ease of configuration. Changed processing of
string resources and command-line string options to avoid allocating
redundant memory.
8. Previously selected region is now properly cleared when Button1 is
pressed. Still have problems with click-and-drag when Mod1 or Shift
is used to override mouse reporting -- argh! Until someone gets
this properly patched, use Button1 followed by Button3 (to extend
region) in these instances.
9. Understands ANSI set default fg/bg colour (\E[39m / \E[49m)
10. In the screen accounting used in screen.c, use a '\n' to terminate
wrapped lines instead of '\0'. This should avoid mouse selection of
wrapped lines from including a bogus newline. No known
side-effects, but changes isolated by #define NEW_WRAPTYPE.
2.11 to 2.12
\-----------
1. Extra functionality for XTerm mouse report mode. If mouse reporting
is enabled (the application will handle mouse events) the normal
scrollbar operation is disabled -- instead rxvt sends UP/DOWN for
the arrow buttons and PageUp/PageDown when Button1 or Button3 are
clicked on the scrollbar. Use Mod1 (Alt) key to get the normal
scrollbar/arrow button actions and also to get the normal selection
functions -- so that you can still cut/paste between X applications.
2. New colour possibilities -- 16 colours. Instead of using fatter
characters, a bold attribute now uses a brighter foreground colour.
Similarly, a blink attribute will use a brighter background colour.
It is also possible to choose these colours through the resources
(color0 -- color7) permit specification of the ANSI colours (black,
red, green, yellow, blue, magenta, cyan, white), the resources
(color10 -- color17) are the brighter bold/blink equivalents.
Define USE_FAKE_BOLD to disable.
3. Extensive clean-up of source and headers to separate
interdependencies, remove unused variables. Introduced static
variables wherever possible to limit scoping and reduced the number
of external variables.
4. Allow NumLock to toggle on/off the application keypad.
Backspace sends '\b', Ctrl-Backspace sends '\177'.
Define BACKSPACE_AS_DELETE to reverse these values or use the
escape sequence:
ESC [ 36 h Backspace key sends BS
ESC [ 36 l Backspace key sends DEL
XK_End used to send "\033Ow", which is identical to XK_KP_7 and
confuses EDT-type editors. Now,
Home = "\033[7~"
End = "\033[8~"
Changed Alert & Secure keys from Alt-i & Alt-s to Alt-I & Alt-S so
they aren't so easily toggled.
5. Extra keystroke info. Pass Control and Shift indicators for
function keys (similar to the XJed editor)
eg,
F1 = ESC [11~
C-F1 = ESC [11^
S-F1 = ESC [11$
also, pass indication of shift status for arrow-keys
eg,
Up, Down, Right, Left
= ESC [A, ESC [B, ESC [C, ESC [D
S-Up, S-Down, S-Right, S-Left
= ESC [a, ESC [b, ESC [c, ESC [d
You wouldn't be able to use these keys for termcap/terminfo
applications, but the key sequences are available for remapping
within an application.
6. Added configure.h which is included by each source file and by the
Imakefile. Common compilation defines are now all contained in
configure.h with minor system defines remaining in Imakefile --
makes it much easier to configure. Used XCOMM macro in Imakefile so
that it actually works. Also added defaults.h for defining
user-specific startup defaults.
7. Added rxvt.ref to provide documentation of the various terminal
sequences that are processed. Updated man page to reflect changes.
8. Use xterm-style -/+ to turn on/off options, rationalized resource
names to more closely resemble xterm.
Option Resource
-help -
-display displayname -
-geometry geom geometry:
-bg color background:
-fg color foreground:
-color<n> color color<n>: <string>
where <n> = [0-7], 1[0-7]
-fn fontname font: <string>
-fontList names fontList: <string> <string> ...
-name string -
-/+ls loginShell: True/False
-/+ma mapAlert: True/False
-/+vb visualBell: True/False
-/+sb scrollbar: True/False
-/+arrows scrollbar: Arrows/True/False
-ic -
-meta8 meta: 8bit
-/+meta meta: True/False
-sl number saveLines: <num>
-grk4 -
-grk9 -
-print-pipe name pipe-pipe: <string>
-e command arg ... command: <string>
-T string title: <string>
-n string iconName: <string>
-C -
-/+7 bits: 7/8
-secure keysym secure_key: <string>
-pageup keysym pageup_key: <string>
-pagedown keysym pagedown_key: <string>
-bigfont keysym bigfont_key: <string>
-smallfont keysym smallfont_key: <string>
-prkey keysym printscreen_key: <string>
greektoggle_key: <string>
cutchars: <string>
9. Fixed Button actions for XTerm-style scrollbar so that Button1 and
Button3 do different things as they are supposed to. Replace -/+fat
with -/+sb and -/+arrows for more consistency with XTerm. Decreased
width of `fat' scrollbar (make closer to xterm) and increased width
of `thin' scrollbar (arrows too small) -- they are now the same
width. Also made it possible to remove the scrollbar altogether.
Added a visual bell.
Added many more defines to further reduce code size for various
cases, see "configure.h". It is also possible to alter settings in
"defaults.h" for configuration options that will only affect
screen.c and xsetup.c, this should help with compile-time
customization for those who don't want to use Xdefaults.
Added the define REPLACE_SELECTION_NEWLINE to make the substitution
of newlines with carriage returns for selection pasting a
compile-time option.
10. Fixed the graphics samples so that if you want to it's actually
possible to compile them. Added -name command-line option so that
it's possible to select different sets of resources.
11. Integrated initial support for X11 mouse reporting and added
Shift + Function Keys support.
2.10 to 2.11
1. If NEW_COLOR_MODEL is defined in screen.c, the new model I described
in an earlier email is used. (apparantly there are two, slightly
differnt models for using color extensions in a vt-compatible
terminal. This flag lets you switch.
2. If XTERM_MOUSE_REPORT is defined in command.c, mouse reporting is
turned on/off via the appropriate escape sequences. XTerm already
provides this support.
3. If .Xdefaults does not exist, .Xresources is searched for. It seems
that many here use .Xresources.
2.09 to 2.10
1. Really fixed the color problem (?) Got color-ls, and it works now.
2. Added patch to allow run-time selection of font list.
---[end]---