0.4.2 to 0.5b \----------------------------------- Gautam Iyer * Bug Fixes: 1. Bug #1301269: Make ACS graphics / line drawing characters work under Xft. 2. Bug #1337635: Made ColorBD/HL work under Xft. 3. Fixed pseudo-transparency when the root background is tiled on the desktop. 4. Numerous fixes to options to match the documentation (see CVS logs). 5. Partially fixed "transparentForce" option (see man page). 6. Enabled pointer blank under Xft. 7. Fixed text shadow. 8. Enabled Xft with menus. 9. If we're unable to exec the shell (or command specified), print an error message and exit gracefully. (Thanks to Eygene Ryabinkin). 10. Fix crash after XIM quits. (Thanks to Gary Zhang for pointing it to us, and attach the patch). 11. Fix XIM preedit problems (Thanks to Yoshihiko Kashio for the patch), including: - wrong calculation of the preedit area size with hide/show bars - updating the size of the preedit area with resizing window - updating the fontset of the preedit area with changing font size - the linespace of the preedit area is not configured - the preedit character is not drawn on the font baseline - clean up codes related to XIM 13. Fix compile on cygwin by implementing strcasestr. 14. Added a macro XTERM_KEYS to feature.h. If defined, then modified function keys will send the same escape sequences as Xterm. 15. Fixed DEC sequences sent by the numeric keypad. * Enhancements (Performance): 1. Reduced memory (xresource) usage under pseudo-transparency. 2. Made performance improvement to expose events (especially under Xft). Dragging some other window over mrxvt no longer causes any flicker :). 3. Decreased CPU usage when not focused. 4. Rewrote tabbar drawing routines to eliminate flicker on expose. 5. Optimized screen drawing routine with "caching": Causes notable performance improvement under Xft. * Enhancements (Appearance / Features): 1. Updated documentation! (Includes shiny new almost complete man page). 2. Make tabbar apearence more intuitive: Use itabBackground instead of tabBackground for the background of the tabBar so that the active tab stands out better. 3. Make highlighted tabs stay highlighted until activated. 4. Fixed borderless windows (thanks to Jonathan Black for the patch). 5. Added popup menus. Ctrl left/right click pops up menus. 6. Right click on tabbar now pops a menu listing all tabs. 7. Rewrote tabbar drawing routines. Tabs now have rounded tops. Also made the active tab bigger than the others (like Konsole). 8. When clearing the primary screen, we move the text into the scrollback buffer (instead of discarding the information completely). Thanks to Sabit Sayeed for the suggestion. * New features: 1. Added option -htb (--highlightTabOnBell) to highlight inactive tabs only when a bell sounds. 2. Added option -mtw (--maxTabWidth) to set the maximum displayed with of each tab. 3. Added option --smoothResize to resize the window in pixel increments instead of by char. Useful for fullscreen / maximizing. Requires frills. 4. Added option --fullScreen to make window fullscreen. 5. Made feature --enable-smartresize into option --smartResize. Make smart resize aware of window manager decorations. Requires frills. 6. Added option -aht (--autohideTabbar) to automatically hide the tabbar if there is only one tab, and show it if there are more than one tabs open. 7. Added a "hard reset" hotkey. Thanks to Pavel Gorshkov for the patch. 8. Added --enable-xrender compile time option to use XRender alpha blending to tint the background under pseudo transparency. 9. Enabling tinting transparent tabbar / menubar with their background colors. Requires XRender. 10. Added --bgRefreshInterval option specifying how long we should wait before refreshing our background. This avoids laggy delays while dragging the window. 11. Added hotkeys ScrollHome and ScrollEnd to scroll to the beginning and end of the scrollback buffer. Bound these by default to Shift+Home and Shift+End. 12. Added option -xftpfn and -xftpsz to specify the name and size of a propotionally spaced font for the tabbar / menubar. 13. Added support for Firefox like tabs: All tabs have the same width, and they shrink as tabs are added. Requires xftpfn 14. Added option -mvt to determine the minimum number of tabs to keep visible. 15. Added CloseWindow hotkey and escape sequence. 16. New tabs now open in the current working directory of the active tab. 17. The "hotkey" feature from mrxvt-0.4.2 has now been replaced with a "macro" feature. This reduces the code size slightly, and provides added functionality. 18. Implemented a "ToggleMacros" function to toggle using keyboard macros. Renamed options "-dh" and "-ddh" to "-dm" and "-nsc" respectively. 19. Added feature to move tabs by dragging. * Code cleanup: 1. Removed the SCROLL_ON_* features. These can all now be implemented using hotkeys. 2. Cleaned up menubar code. 3. With -xftpfn the menus now look good :). And you have your precious Control right click menu from Xterm. 4. Changed default scroll bindings to only work on the primary screen. 5. Fixed code indent (and added lots of comments) in lots of places. 6. Removed compiled in keyboard shortcuts (e.g. Ctrl-+ font resizing). This can be done with macros, and the macros method provides added flexibility. 7. Removed support for getting resources using the X resource database. Now resources are only read using ~/.mrxvtrc. * Incompatible Changes: 1. Tinting works differently with XRender. See -tint in the man page. 2. The default terminal is now "rxvt" instead of "xterm". This causes trouble on some systems where the "rxvt" termcap / terminfo entries are not correctly setup. 3. The old "hotkey" feature has been removed. Use the "macro" feature instead. 4. Mrxvt menus are now incompatible with rxvt. Mainly because the menu-action works similar to the macro actions, which extends the functionality of the old rxvt menus. 5. Quite a few escape sequences controling tabs have been disabled for security concerns (e.g. creating, closing and moving tabs). All these functions can be accessed through macros, and menus. (The idea is that only interactive users should have access to these functions. 'cat'ing a text file with these escape sequences should not produce such effects. 6. A few default bindings were changed for consistency (and might be changed again). Jimmy Zhou fix bug under XFT that ColorBD/ColorHL are ignored (Sourceforge Bug ID# 1337635). Thanks Gautam Iyer for the patch. fix screen flicker behavior when pseudo-transparency is enabled and mrxvt is off-screen. Also fix a BadMatch error. Thanks a lot to Gautam Iyer for the clear explanation of the problem and his nice patch. fix code of highlighting inactive tabs when they receive some output. Add an compile option HIGHLIGHT_TAB_ON_BELL into feature.h (disabled by default) so that inactive tabs are only highlighted when they receive bell. Also make highlight bold. Thanks Joshua Wise for the suggestion and patch. fix hot key parsing. Primary flag should not be checked like ctrl/meta/shift flag. fix button click action on tabbar based on Mark Olesen's patch. Now scroll-up and scroll-down clicks (Button4 and Button5) will active the previous/next tab. In addition, only clicks of Button1 will activate the button functions. fix hotkey handler to kill a tab according to Mark Olesen's suggestion. That says, if there is only one tab left, we shall not kill it to quite the entire terminal. This behavior is the same as gnome-terminal. 0.4.1 to 0.4.2 \----------------------------------- Jimmy Zhou add question of emacs hotkey and answer in FAQ. add option to load application icon, not implemented yet. fix display problem when both bottomTabbar and hideTabbar are enabled (Sourceforge Bug ID 1299309). fix signal sent to child process when quit a page. We now send SIGHUP instead of SIGKILL to be more graceful. fix compile error on OpenBSD 3.7. fix missing iconv library on OpenBSD 3.7. fix prematurely stop of tab title sequences on ^C. Thanks to Johann 'Myrrkraverk' for the report and patch [Sourceforge Bug ID 1211691]. If any of you dislike the patch, please blame Johann instead of me. ;-) fix default 256 colors. When XTERM_COLORS is defined, we use the same colors as xterm. Thanks to Gautam Iyer for the patch. fix trailing space in selection by porting Marius Gedminas's patch for rxvt - we will not copy trailing space in mouse selection. Thanks to Mun Johl for pointing me the patch. fix 64-bit bugs reported on debian fix default maximal number of tabs to 15. fix configure.ac. Revert back the LINUX_KEYS check (disable it) since it causes lots of complaints. :p I think LINUX_KEYS mean to use Home/End keys as Linux console. But X terminals like mrxvt are different. add a new configurable X resource for Linux console style Home/End keys instead of fixing it in the source code. fix rxvt_process_hotkey interface, simplify it by eliminating the three mask variables. fix escape sequence of F1 - F4. Now we introduce a *magic* check to determine the terminal type at run-time and send correct escape sequence accordingly. To support this feature, we also introduce a new escape sequence to let user tell mrxvt that terminal type has changed at run-time. To be clear, normally user changes the TERM environment variable in shell. However, this change is not visible to mrxvt! So the user must tell mrxvt that the TERM environment variable has been changed using this new escape sequence. Thanks to Johann Oskarsson for the report and patch. 0.4.0 to 0.4.1 \----------------------------------- Jimmy Zhou add mrxvt.spec file based on Jingyu Zhou's work. This file is used to build RPM packages. fix Korea encoding according to rxvt sourceforge bug id 1181825. fix tinting on Window Manager other than WindowMaker. fix dead key support. Add a hack to enable dead key manually. User must press dead key twice or press dead key and space to input the characters of dead keys themselves. This is a temporary solution. It may be changed in future release. To enable this feature, define USE_DEADKEY in feature.h. Thanks to wwp for all the help on this issue. fix infinite loop on Solaris when a child exists. Thanks to Sunil for the patch. fix cursor color is rendition color by applying William P. Y. Hadisoeseno's patch. But disable it in feature.h by default. fix FAQ of Home/End key question. fix malloc function check in configure.ac, and apply a patch to rxvt_malloc when the size is 0. On Tru64/OSF, malloc(0) returns NULL pointer. We want to avoid this behavior. Thanks to Teun Burger. fix crash when saveLines exceeds 65535, hopefully. fix help message. Print it to stdout instead of stderr. fix lots of compile warnings, thanks to Teun Burger for the report. fix compile problems on Tru64/OSF based on Teun Burger's patch. fix manpage of hotkey inhibit options. fix manpage of special hotkey symbols. fix freezing with mc in bash when viewing a file in tar files. This is because the read syscall blocks when trying to read more data from the child process. Strange problem since it seems good in tcsh. [Sourceforge Bug ID: 1103548] 0.3.13 to 0.4.0 \----------------------------------- Jimmy Zhou add option tabShell in order to execute shell before running tab command in the tab. Thus the tab will not quit if the tab command exits. fix definition of macro LINUX_KEYS based on luohui's suggestion. We define the LINUX_KEYS macro if the OS probed by the configure script is Linux. Thus, we can use Home/End key to reach the beginning/end of a command line. (But it seems not effective on my system :-() fix option and resources for tab sessions. Now we change them to tab commands to avoid confusion with X session. Notice that all resource names and command line options related to each tab have been changed! In particular, follow these: mrxvt*vt%d.session -> mrxvt*vt%d.command mrxvt*cmdAllSession -> mrxvt*cmdAllTabs mrxvt*initSession -> mrxvt*cmdInitTabs -vt%d.ss -> -vt%d.e -cs -> -at -is -> -it fix question about synchronizing tab title to current directory for C shell in FAQ based on Nicholas Carrasco's solution. fix default terminal type in configure script. Change it from rxvt to xterm to avoid wired bash behavior for very long command line. Thanks to Luohui for the report and digging out the solution. fix core dump if the child process quits too fast. In this case, read syscall returns -1, but we didn't handle it carefully and moved cmdbuf_endp backward! fix typo and man page for key bindings according to Elan Ruusamae's suggestion. fix off-by-one byte buffer overflow when parsing the X resources using XrmGetResource [Sourceforge Bug ID: 1117722]. 0.3.12 to 0.3.13 \----------------------------------- Jimmy Zhou add configure option --enable-minimal to only enable minimal number of configuration options. So people who want a slim mrxvt can simply their configuration command line. add escape sequence to change bgfade degree at runtime. fix xdefaults.c. Merge Grant McDorman's patch that correctly handles the vt%d.BlahBlah resources. Many thanks to Grant! fix input buffer filling case. It means that there is space in the beginning of the input buffer, but no space at the end of the input buffer. In this case, we can move the content of the input buffer forward to free space. fix input buffer overrun in rxvt_cmd_getc. The input buffer size should be (BUFSIZ-1 - (cmdbuf_endp - cmdbuf_base)) instead of BUFSIZ!!! Thanks to Carsten Menke for reporting the bug. fix the missing -sm option in session management restart command. fix compile error of xfticonv if iconv.h is not found. This seems to be a common problem on Cygwin for some Chinese users. So if your mrxvt can display CJK text using X11 fonts, but not XFT fonts, check whether HAVE_ICONV_H is defined in config.h when you compile mrxvt! fix tab number when saving terminal status in session management. Ooooops, we miss the first tab whose index is zero!!! fix leakage of the highest file descriptor to child process. In the past, this can be considered as a potential security bug. But, only in theory... :p fix tab moving behavior when move first tab to left or last tab to right. Disable the moving in these two cases because they are too complicated to code correctly. :p [Sourceforge bug id 1107773] fix behavior of xterm escape sequence of setting terminal window title. We also set the current tab's title so that if the user "set titlestring=%f" in ~/.vimrc, the current tab's title is set to the opened file as well. I have found it very useful to browse among multiple tabs that have different files opened. If you do not like this behavior, uncomment the macro SET_TAB_TITLE_ON_XTERM_SEQUENCE in feature.h. fix behavior of xterm escape sequence of setting terminal window title. We introduce a new macro SET_TAB_TITLE_NOT_WIN_TITLE to avoid setting window title at all. This is used to help vim since vim restores the window title using old window title when it exits. This can be annoying - try it and you know the reason. If you do not like it, uncomment the macro in feature.h. fix poor response speed of the active tab if there are busy activities in the inactive tabs. Now in rxvt_cmd_getc, we first try to return the active tab if it contains input data. If there is no input data in the active tab, we process the X events to see if they can push input data into the active tab. If still not, we return other tab that contain input data. If all tabs have no input data, we select on all tabs and then pick a tab to return. This is a major fix that delays our 0.4.0 release. But hey, we want a stable 0.4.0, right?! fix tab lockup. It happenes when a tab is particular busy, thus the tabs on the right side of this tab are locked up. fix configure script: fix check of the utempter, xpm, jpeg and png options, fix default option of mouse slip wheel and ttygid. fix pseudo-transparency when opacity is not enabled. fix compile error when utmp is disabled. fix manpage for the description of %d. 0.3.11 to 0.3.12 \----------------------------------- Jimmy Zhou add option to enable/disable X session management, compatible to Xterm. add hotkey function CopySel and PasteSel to copy and paste selection. The CopySel function is used to copy the selection in current terminal to the X clipboard, but it is not yet implemented. The PasteSel function is used to past the selection in current terminal or the X clipboard into the terminal. It is working now. But be careful that define it as Ctrl_v may break something! For example, in vi, you might want to replace the character ^M, which requires you to type in Ctrl_v and Ctrl_m. add meta key Primary so that a hotkey can be disabled when the terminal is using the secondary screen. This is useful for the above problem (Ctrl_v). fix X properties, merge them into global Atom array r->h->xa[]. fix setting terminal window title. Now we support UTF-8 terminal titles, which makes it work when we use multichar strings as terminal title. fix half shadow configuration option, show its value only when rxvt scrollbar is enabled. fix help message for modes, make them consistent. fix resource name in man page. Replace XTerm.ResourceName with mrxvt.resourceName to avoid confusion. fix resource name of backspace key, delete key, selection style, and print pipe. Standardize them as other resource names. This will break old rxvt style resource names, but cause less confusion. fix random bold text under XFT. We disable the bold XFT font in order to fix it. This should be a temporary solution. fix rxvt_clean_exit. Kill all child processes there since zsh puts them into background if we do not do so. Thanks to Rob Eberts for the patch. fix slow scrolling when XFT antialiasing is enabled. We just disable screen refresh at all on scrolling. Now scrolling is super fast, e.g., takes about one second to `ls -l /usr/bin'. I guess it probably is the fastest in the world. But there is no visual effect of scrolling any more. There is not a perfect world, right? :p fix poor performance of mouse wheel scrolling when XFT antialiasing is enabled. Basically, we just disable screen refresh on scrolling. Thanks to Jacques Bouchard for the report. fix missing mouse wheel scrolling macros in feature.h. fix compile error when mouse wheel is defined. fix meta8 and mouseWheelScrollPage option. Now they can be enabled by command line options. fix cutChars resource and its man page option. Thanks to Ashish for the report. fix scrollTtyOutputInhibit man page option. Thanks to Ashish for the bug report. fix missing parameter when calling rxvt_scr_move_to under SCROLL_ON_HOMEEND_KEYS feature. Thanks to Ashish for the report. fix rxvt_get_pty. Avoid potential compile error for C compilers. fix mrxvtset.pl. Replace the control character (^[) with its digital forms to avoid the side effect if a user accidently cats the script in shell. fix configure.ac. Non-GNU C compilers like SUN's cannot accept -Wall and -fPIC options. fix rxvt_init_hotkeys. Use ANSI_C compliant function instead of GCC extension. Thanks to Grant McDorman for the patch. fix Cqual qualifiers, non-gcc compilers do not support it. Thanks to Grant McDorman for reporting this issue. fix possible integer overflow in throttle bell. Also comment out this feature in the feature.h. fix crash on XftPatternDestroy if we change the font size in reverse order, e.g., increase the font size then decrease it. It seems that we should not destroy the pattern returned by XftFontMatch. But there is no documentation to explain it clearly! :-( fix rxvt_save_options. Do not save undocumented features :p fix keyboard deadlock when Shift_Home (increasing font) is pressed, and XIM is enabled, but XIM is not successfully opened. This is because the same keyboard events are filtered away by rxvt_cmd_getc. fix button pixmaps. Narrow the width of the pixmaps so that it is the same as the height. fix iso8859 fonts. We will only use iso8859-1 fonts as default fonts. fix multichar encoding routine. Since we set the default encoding method (MULTICHAR_ENCODING) in config.h anyway, there is no need to *guess* the encoding method from locale if user has not supplied it in command line option or X resources. Now the encoding routine should be much more clear and simple. fix multichar encoding list. fix session restart style, pw init value and callback functions. fix session restart parameters. fix man page for the mfont resource case problem. fix compile error because the const definition of ttydev. fix configure script for the missing check of limits.h. It is required on cygwin. fix xdefaults-sample.txt, giving example to disable tricky hotkeys that are used by emacs. fix drawing button frame. Now the buttons should seem more pretty. fix shortcut key bindings of Shift_Home and Shift_End. fix rxvt_hotkey_save_config. If HOME environment variable is not defined, do not call rxvt_save_config. fix rxvt_Exit_signal, call rxvt_clean_exit directly instead of sending the signal again to the default signal handler. They should have the same effect, but the fix may avoid hanging the terminal. 0.3.10 to 0.3.11 \----------------------------------- Jimmy Zhou add Avi Yagodnick's perl script to print escape sequence for manipulating mrxvt runtime behavior. So users need not to compile the sample settitle.c any more if they have a perl interpreter. add command line option -ddh to avoid loading default hotkeys. add escape sequence to toggle hotkeys. add option disableHotkeys to disable hotkeys. add option confFileSave and hotkey to save the configuration of current running mrxvt process. fix default jumpScroll threshold. Increase it to 4 in order to get better scrolling performance. fix veryBold font option. Use veryBold font by default because of the panic screams from the users. ;-) fix plain scrollbar residual pixels under transparency. Thanks to Matthieu Serrano for the bug report! fix off-focus fading wired behavior. It is because the foreground and background color of GC is not updated in the function rxvt_set_bg_focused. Therefore, the following text is drawn using the old color till a color change happens later. fix X session management crash. fix file descriptors leak to the child processes. fix mrxvt hangs on zsh if session management is enabled: we need to prevent the file descriptor opened by session manager from being leaked to the child processes. And there is a race condition when we handle the ICE file descriptor while the terminal exits. fix broken configure options (oooops! nobody has reported these problems ;-). fix compile error when tinting is disabled but fading is enabled. fix scrollTtyOutputInhibit. fix hotkey routines. We optimize it by using function pointers and merge three individual flags into one integer. Thanks to Qingning Huo for the suggestions. fix compile error on rxvt_init_font_fixed if xft is disabled. fix the name of icon files and description file in mrxvt.SlackBuild script. fix documents. 0.3.9 to 0.3.10 \----------------------------------- Jimmy Zhou add Scognito's beautiful icons for mrxvt. Now mrxvt has official icons! :-) add Pascal Bleser as SuSE package maintainer. add a new option to synchronize icon name with active tab, based on Terry Griffin's patch. add hotkey and escape sequence to toggle background transparency. This feature is experimental, though. It may not work well with tinting and other transparency related features. add .mrxvtrc as the default resource file, so that .Xdefaults is not filled by mrxvt settings any more. ;-) Update all the documentations according to this change. add xftmSize option to specify the size of freetype multichar fonts. When it is difficult for mrxvt to find the best match of normal font and multichar font size, the user can adjust it manually. add xftSlowOutput option to fix display problem of some CJK fonts, like YZYuanTi. These fonts claims to have certain width, but the actual width is smaller. It makes the CJK characters clustered together with big space between non-CJK characters, which looks ugly. add -menu option. Now we can use -menu command line option besides of the X resource name to load menu. add hotkeys (Ctrl+Shift+<|>) to reorder active tab. Thanks to Sergey Popov for the suggestion and patch. add escape sequence to reorder active tab. add an option (-vbf) to display color text with bold font. Add freetype bold font support as well. add hotkey and escape sequence to toggle very bold font display. fix hotkey routines. Now we define a set of functionality that can be done by hotkeys and let the users to define the hotkeys by themselves. We also have a set of default hotkeys. Thanks to Qingning Huo for all the hints and suggestions. remove windowSwitch option since it is not necessary any more. fix transparent screen refresh after the pixmap of root window has changed. fix default encoding method, change it to noenc to avoid troubles for non-multichar users. fix rxvt_font_init_xft. Only load the fixed font if xft is used. This avoid the abort when multichar is enabled, but fallback X11 fonts are not installed. fix rxvt_cmd_getc. Previously hack of race condition is incorrect, so it does not work at all! It is actually not a race condition, but a signal loss problem if multiple children are killed simultaneously. This time it should be fixed. fix configure.ac script. Replace AC_PATH_XTRA with AC_PATH_X. The latter does not add libXt, libICE automatically. Add libX11 check. Fix fontconfig and xft check, especially for Solaris. And many thanks to Qingning Huo for testing and pointing out the problems in configure.ac. fix MONO_BOLD definition in thai.c. fix tabbar multichar string display error, especially when normal text and multichar text are mixed together. fix scrollTtyOutput inhibit. Instead of using the previous reverse definition, change it to scrollTtyOutputInhibit. fix menubar dispatch. If menubar is shown or hidden in dispatcher, resize the terminal window accordingly. fix CJK configuration options. Merge them into a single option: --enable-cjk. fix session restart style. Previously it is SmRestartImmediately, which cause gnome session manager to restart it immediately after an mrxvt terminal quits. fix FAQ. Update the PS1 tab title synchronization question according to Jacques Bouchard's suggestion. fix background pixmap command line option for menubar and tabbar, make them consistent to the option of scrollbar. fix tabbar event dispatcher when tabbar buttons are hidden. fix resource name of scrollbar options. Stuart Midgley pointed out this issue to me in the man page. Now the resource name of all scrollbar options are changed to `scrollbarBlahBlah'. Notice that here `scrollbar' is in lower case. However, I leave the option scrollBar unchanged, where `B' is in upper case. fix Ctrl_1..9 switch. If the current tab is in the second screen, like running vim, Ctrl_1..9 switch is disabled since it may be used by the application. fix primary screen check in tabbar.c, explicitly use PRIMARY. Do NOT assume it is 0, just like None/NULL check since it is more safe and portable. fix configure.ac, xgetdefault option is disabled by default. (Thanks to Terry Griffin for pointing it out to me) fix configure.ac, enable SM.h check only if session management is supported. Otherwise, we may get linking error if libSM is not presented while SM.h is there (is it possible?). fix configure.ac, enable libICE check for session management and libiconv on cygwin, simplify check of libxpg4 and libutil. fix freetype font size, set scale number to be 1.0 so that the size/pixel_size = 1.0. fix freetype multichar font size, optimize for simsun font. fix debian files according to Qingning Huo's diff file. fix compile error in pixmap.c when tinting support is disabled fix Makefile.am, comment out setuid install hook such that mrxvt will not be installed as setuid by default in the future for security concern. fix SlackBuild stript, we will use .tar.gz as source tarball name instead of .tgz. It seems all the world use it. update FAQ, CREDITS, README and NEWS. 0.3.8 to 0.3.9 \----------------------------------- Jimmy Zhou add a VB script (doc/mrxvt.vbs) to launch mrxvt directly from a Windows shortcut without a command prompt window for Cygwin users. This script is contributed by Matthew Melendy add option to hide/show tabbar buttons. apparently some people hate the buttons, as some others hate the tabbar ;-) add hotkey and escape sequence to hide/show tabbar buttons add further explanation of --enable-everything option in README add option of user supplied X resource file add option to avoid loading mfont when using freetype font, this can avoid large line space add escape sequence to change tab colors in runtime add support of X session management, still experimental add a short tutorial in doc/ directory on how to hack mrxvt and add new features add inactive tab highlighting when an inactive tab displays some new stuff. Remember that is not 100% persistent: it will be cleared if an tab expose event happens, e.g., creating a new tab or removing an old tab. But I guess it is enough by now. If people really concern about it, we can add a flag to each tab and use that flag to control the highlighting. But that might be overkill. fix printing of hold exit string on the screen after a child has died but is held fix borderless option, now support GNOME/KDE style hints fix bug in loading short command line option while long resource option is set to NULL, like -d fix freetype font size, turn back to point size instead of pixel size fix freetype multichar font loading. If the multichar font is the same as the normal font, e.g., when encoding method is NOENC, we use the normal font as multichar font. This eliminate the problem that the two fonts have different sizes. But this problem remains when the two fonts are different. This is because XFT function does not honor the font size we provide. Is there any way to fix this? fix internal border, which should be the internal border of the VT windows, not the mrxvt terminal window! fix computing of first visible tab and last visible tab. Now use a function to do it so that we can call this function outside of tabbar.c, especially when we hide/show tabbar buttons fix tab title width. Extend it to 507 maximal, but only display 27 characters maximal in tab. Therefore, if we synchronize the terminal title with tab title, we can display the long tab title as terminal title without truncation. fix debian files (thanks to qingning huo) fix xft font opening routine, print warning message when actually opened font differs from the font wish to open fix pty/tty type check on BSD system - they require openpty that is in libutil. Why it seems unnecessary to fix it on FreeBSD 5.2.1? fix error logic on updating previous active tab when we create tabs in sequence and remove them from the right to the left fix tabbar updating error if the last tab is removed fix include and library path on BSD systems fix compile error on macro PARENT_NUMBER if transparent is disabled fix compile error if scrollbar is not used fix int-border and ext-border option comments fix copyright information about rxvt-2.7.10-rk.patch fix missing lastlog file path on Solaris fix missing lastlog.h check fix tainted/untainted macros, use Cqual's notation so that we may use Cqual to check the source code in the future. It seems gcc compiler is happy with them. But I am not sure if other compilers feel happy too. :-) fix missing fontconfig macros on Mac OS X fix crashes on Mac OS X when calling times with NULL parameter fix iconv library check on Mac OS X fix xft tab title mixed chinese and english fix default gbk bitmap font fix terminal window and icon title if user supplies them fix assert macro (NDEBUG) on non-debug mode. Now if NDEBUG is defined, we will not have any assertions nor debug messages. If DEBUG is defined, assertions will always be built in the program, and we can use DEBUG_VERBOSE to control the debug message. By default, DEBUG_VERBOSE is not defined. So now it is clean to build mrxvt with debug support. fix SlackBuild script fix man page, add X resource name for each command line option if applicable delete unused rxvtRef-frame.html and rxvtRef-toc.html update LSM.in, FAQ, CREDITS, README and NEWS 0.3.7 to 0.3.8 \----------------------------------- Jimmy Zhou add option windowsSwitch to control behavior of Ctrl_Tab. If it is set, Ctrl_Tab switches to next tab like Windows. Otherwise, it activates the previous active tab. add xftfnmono flag if non-CJK font is mono-space add holdExit option and holdExitText resource on terminal exit add support of broadcasting input to all terminals add hot keys to toggle holding exit and broadcasting add desktop option for gnome compatible window manager add text shadow mode add option of transluscent window (true transparent). It requires translucent support of the X server, like Xorg 6.8. It will override the pseudo-transparency. Note: without hardware support to the X server, translucent window can cause significant performance penalty. You have been warned!!! add debian control files to build .deb package. Thanks to Xiong Jiang for help me figure it out. add checksum field to each terminal for checking rxvt_cmd_getc fix debug option, disable it by default since we are preparing a stable branch fix global command input and output buffer, move them to individual terminals. This may break something, so let us test it for a relatively long time. fix children exiting and clean code, so we can handle the case that multiple children terminals exit simultaneously. But a race condition still exists and this code is not robust enough. Is there any way to handle this? fix sigchld handling, enable reentrance of this signal handler fix configure check of iconv.h and libiconv for freetype font support fix compile error when background image is disabled while xpm is enabled fix scrollbar style so that user can use command line option to specify it fix rxvt_set_window_color to restore and switch colors when input color is actually an index to our color list. fix shade value if it is changed by escape sequence fix xftmono flag if the width of freetype CJK font is not even fix xft font height when mfont and font have different height fix xft string drawing length after convert it to UTF-8 fix compile error when there is no xft support fix an assertion failure on possible integer overflow fix tinting shade performance: if shade is 0, do not shade image at all fix global rvideo, rstyle, chstat, lost_multi and multi_byte, move them to individual terminals fix the bug that the background color of current VT is tranferred to the new VT window fix scrollbar mapping after scrollbar window is created fix free clip rectangle of tabbar string fix crash when trying to free session resource strings fix xterm style reverse video fix compile errors on openbsd 0.3.6 to 0.3.7 \----------------------------------- Jimmy Zhou add experimental support to display Chinese/Japanese when use freetype font. add experimental support to display non-monospace freetype font. Basically, if the font is non-monospace (or normal freetype font width is not 1/2 of Chinese/Japanese freetype font), we will output the string one character by one character, not the entire string. This is a bit slow, but much safe. add option of multichar freetype font add option of cursor blinking interval time add option of borderless window (from gentoo) add option of override redirect (from gentoo) add option of bell command (from gentoo) add option to show tabbar at the bottom of terminal window add configure script and related files. We are preparing for a stable release soon add support of text shadow for tab title add hotkey to hide/show menubar/scrollbar add ctrl_tab as hotkey to activate next page (like Windows) add escape sequence to hide/show menubar/scrollbar change text shadow command line option fix desktop option/resource for WindowMaker fix color residual problem when switch to a new tab fix buffer overflow in rxvt_tt_printf (from gentoo) fix sprintf in xdefaults.c fix EUCJ/SJIS encoding (http://gentoo.nedlinux.nl/distfiles/ rxvt-2.7.10-rk.patch) fix Next/SGI style scrollbar width (too fat before) fix selection on 64bit systems (from suse) fix utmpx check for Interix (from netbsd) fix bsd os check (from netbsd) fix window properties, use X11R4 (and later) functions fix window resizing code fix compile dependency on Xt header fix reverse video on individual terminal foreground/background fix tabbar button vertical position fix cursor blinking fix pointer blank fix possible integer overflow when calling rxvt_malloc fix focus/off-focus color code fix fade/shade values, previously they are reversed fix SlackBuild script update README and FAQ 0.3.5 to 0.3.6 \----------------------------------- Jimmy Zhou add xft antialias, hinting, autohint, globaladvance, weight, width, size, slant and rgba options add option syncTabTitle to synchronize terminal title with tab title add support to set foreground and background for individual terminal. It does not work well with off-focus fading now add option hideTabbar to hide tabbar on initialization add hotkey and escape sequence to hide/show tabbar add option to fade transparent background or background image since many people have requested this feature :-) add support to run user's default shell in the /etc/passwd file if the SHELL environment variable is not defined fix mouse report mode (hopefully) by moving PrivateModes and SavedModes from global to individual terminal fix default PrivateModes by removing PrivMode_aplKP. It seems that vim clears this flag anyway. However, if anything goes wrong, we will restore it fix configure.ac, use xft-config instead of pkg-config to find xft since some systems do not have pkg-config fix configure.ac for xft-config's complaint about rejection by preprocessor. fix xft font resource name fix xft font display residual and wipe problems fix tab title when use xft fix text shadow when use xft fix resizing when use xft. But apprently there is something wrong if we want to destroy the old font pattern. So now we do not destroy it, which wastes some system resources. fix active tab title color fix compile error if background image is disabled fix document install directory. Hope it is correct now! 0.3.4 to 0.3.5 \----------------------------------- Jimmy Zhou add saveLines/pixmap/tabtitle option for all tabs add support of utempter library for utmp/wtmp add support of xft, finally! but not support multichar set yet. add hotkey to switch between tabs 1..9 add hotkey to switch between tabs visited previously add escape sequence to change tint color and shade value add support of user supplied foreground color for inactive tab add middle button click on tabbar as shortcut to change tab title add SlackBuild script for slackware add xft code (still not ready yet) fix tab width when resize font fix display problem when enable text shadow (unset clip mask!) fix output of usage fix background color of inactive tab fix display of multichars in tab title fix setuid root permission, give it up immediately after program starts fix compile error when jpeg/png is chosen but not xpm fix sgi style scrollbar fix next style scrollbar buttons fix session init, simplify the logic to choose session fix big5 encoding and default fonts fix korea encoding fix configure.ac to compile mrxvt using -fPIC option by default so that mrxvt can enjoy the benefit of PIE (position independent execution). In plaintext, it means mrxvt can be loaded into random memory location if the system supports it. It may reduce performance a little bit, e.g., 1% on x86, but can improve security. 0.3.3 to 0.3.4 \----------------------------------- Jimmy Zhou add support of user supplied scrollbar background image add support of user supplied menubar background image add support of plain style scrollbar add support of gnome-terminal/konsole's default hotkeys add clean exit routines for debugging purpose add new escape sequence to create a new tab with user supplied tab title (settitle.c, -c option) add new escape sequence to switch tabs (settitle.c, -n -p options) add simple session support add protectSecondary resource to control close of tab add cmdAllSession resource to control session command add initSession option to load session only on initialization add secondary option bitmap to extend options to 60 add MRXVT_TABTITLE environment variable (thanks to wwp) fix close button so that a tab in secondary screen is not closable fix inactive tab background resources name fix font resources loading error (reported by afo@zlug.org) fix 64 bits Atom (rxvt screen.c rev 1.268) fix updwtmpx on Interix (rxvt loggin.c 1.42) fix compile warning of logging.c on Mac OS X fix terminal exit problem on Mac OS X and cygwin fix default scrollbar, do not use SGI scrollbar by default fix command line options fix command line option for individual terminals fix screen refresh problem (thanks to wwp) fix XIM invoking problem in terminal window fix menubar macro fix doc installation directory fix background image and transparent support fix broken transparent background on scrollbar/tabbar/menubar fix off-focus fading (thanks to wwp) update man page update FAQ update README update TIPS update README.configure update sample .Xdefaults file 0.3.2 to 0.3.3 \----------------------------------- Jimmy Zhou fix CHOOSE_GC_FG, using XSetForeground instead of XChangeGC add support of user supplied inactive tab color add support of SGI IRIX style scrollbar (not complete yet!) add support of color text shadow add support of Chinese GBK font add support of Thai (not complete yet!) add rxvt_clean_exit as normal exit routine add xft configure option (not implemented yet!) add doc of XIM specification fix tabbar button transparent background issue fix configure script help message of linespace, int/ext border fix configure script of --enable-everything option fix configure script of multi-language option fix configure script of encoding and terminfo options fix crash on rxvt_scr_poweron when use escape sequence "\033c" fix XIM support (always call setlocale in encoding.c) fix user specified encoding method clean up font code update README and README.configure 0.3.1 to 0.3.2 \----------------------------------- Jimmy Zhou add support of user supplied tabbar foreground/background colors add support of user supplied tabbar background image add option to turn on/off background image on tabs add support for multiple tab's own title, saveLines and bg image add tinting for background image use server side pixmap to improve tabbar buttons performance add sample settitle.c in doc/ add major feature list in README add option to show/hide menubar fix bug in initial window position (thanks to wwp) fix crash on resizing window (thanks to wwp) fix internal/external border, line space and blankdelay features fix mfont for non-multichar charsets fix background image/transparent support fix comments of no_frills configure option fix missing jpeg/png option in the output of feature list fix compile problems on solaris fix lastlog support fix the copyright information fix menubar loading crash fix xresource names cleanup code in rxvtlib.h 0.3.0 to 0.3.1 \----------------------------------- Jimmy Zhou add bell throttle support based on David Hull's patch for rxvt add support for transparent scrollbar/tabbar/menubar add support for off-focus fading add support for background tinting reduce X resource usage (GC) and improve update speed for tabbar reduce X resource usage (GC) for xterm-style scrollbar reduce X resource usage (GC) for rxvt-style scrollbar reduce X resource usage (GC) for next-style scrollbar reduce X resource usage (GC) for menubar fix conflict of non-transparent parent and transparent scrollbar fix conflict of non-transparent parent and transparent tabbar fix conflict of non-transparent parent and transparent menubar fix scrolling problem introduce vterm structure to improve performance of destroying vt fix num_fds adjustment code, move it into tabbar.c fix crash on loading background image rxvt 2.7.11 CVS to mrxvt 0.3.0 \----------------------------------- Jimmy Zhou fix the *horrible* indent of source code, but still not all add jpeg/png background support rewrite configure.ac, add bootstrap script add multi-tab support, and reorganize code add hotkeys for multi-tab support rewrite code on window layout split window resizing code to three parts split font initialization and resizing code reorganize code of x event processing rewrite multi-char encoding and default fonts modify scrollbar code merge external function prototypes into protos.h, remove AWK scripts merge headers into rxvt.h move GC of menubar and scrollbar from rxvt_hidden to scrollBar_t and menuBar_t update documents remove graphics and W11 support remove rclock 2.7.10 to 2.7.11 CVS \----------------------------------- Geoff Wing et al. fixed handling of cursor colour when reverse colour is displayed fixed utmp writing if we have ttyslot fixed compile when --with-encoding=kr added hiding of mouse pointer while the user is typing or from mouse inactivity, with configure --enable-pointer-blank, resource pointerBlank (default: false) and resource pointerBlankDelay (default: 2 seconds) added "-bc" blinking cursor, configure --enable-cursor-blink added 256 colour support for Cygwin Glyn Kennington (glyn_k@sourceforge) added feature ACS_ASCII which converts ACS line drawing characters to similar ASCII characters, resource acsChars Rob McMullen added selection scrolling - scrolling viewpoint when making a selection and going past top/bottom of window, with configure --enable-selectionscrolling Chris Wareham added rconf utility for rclock appointment configuration Lauri Leukkunen (lleukkun@sourceforge) added "-ufbg/--ufbackground colour" to have the background change to this colour when the window is unfocused 2.7.9 to 2.7.10 \----------------------------------- Geoff Wing et al. removed screen dump feature as it can aid as a security hole removed menubar escape sequence access as it can aid a security hole removed reporting of title and icon settings as they can aid a security hole Mikko Leppänen fixed clearing problem when internalBorder is zero Steve O added Cygwin port Rob McMullen fixed handling of control characters inside escape sequences added resource "mouseWheelScrollPage" to allow the mouse wheel scroll a page full added support for VT52 commands 2.7.8 to 2.7.9 \----------------------------------- Geoff Wing et al. added -sbt/--thickness to allow user-supplied scrollbar width (not yet available with NeXT style scrollbars) Matthew W. Roberts fixed rclock -iconic option added rclock day of month on clockface (define DATE_ON_CLOCK_FACE in feature.h) added rclock "-mailspawn cmd" if MAIL_SPAWN is not hard coded in feature.h Kazutoshi Kubota added 256 colour mode (instead of the base 16 colour mode) with configure --enable-256-color 2.7.7 to 2.7.8 \----------------------------------- Geoff Wing et al. fixed determination of NumLock key, noticed by Matthew Gabeler-Lee fixed continual and slipwheel scrolling, noticed by Joshua Swink fixed connecting with IM whenever it is started, partly from Tung-Han Hsieh fixed Ultrix acquiring useful pty/tty pair, noticed by Bert De Knuydt fixed CSI sequence parser overriding a 0 parameter with default value changed -ip to not clear ancestor windows when using inherit pixmap transparency type added -ipf/--inheritPixmapforce to clear ancestor windows when -ip and inherit pixmap transparency is used added "-hc colour" (define OPTION_HC in feature.h) to provide background highlighting of selection, partly from Christian W. Zuckschwerdt added -j/--jumpScroll to provide jump or smooth scrolling, defaults to jump scrolling as per previous behaviour Stephen Isard fixed DECSTBM sequence default when only one parameter is given Rudolf Jaksa added basic support for $XAPPLRESDIR/Rxvt resources T. Alexander Popiel added --scrollBar_align (top|bottom|...) for alignment of scrollbar thumb with middle button. Defaults to centre as per prior state. Supercedes FUNKY_SCROLL_BEHAVIOUR 2.7.6 to 2.7.7 \----------------------------------- Geoff Wing et al. fixed check for GLIBC and STREAMS pty/tty types, noticed by Venkatesh Krishnamurthi fixed check for PTC pty/tty type, noticed by Andreas Bierfert fixed to not automatically clear selection on screen size change, noticed by Dominik Vogt fixed a possible buffer overflow problem, noticed by Samuel Dralet fixed to reallow parallel builds fixed builds for some SYSV utmp/utmpx systems fixed INCR transfers fixed resource "greektoggle_key" as per doc/README.greek, noticed by Martin Husemann fixed STREAMS again, hopefully the last time changed overstrike pixel dropping avoidance to speed/size optimise changed define WTMP_ONLY_ON_LOGIN in feature.h to be the default added CSI s & CSI u as alternative save & restore cursor sequences added pasting-only support for SECONDARY and CLIPBOARD selections, automatically tried if internal selection and PRIMARY selections are not present. CUT_BUFFER0 is tried last Kazutoshi Kubota added "-lsp " option ("--lineSpace ") to give specified spacing between rows with configure --enable-linespace Tomohiro KUBOTA fixed some font default calculations to match previous behaviour Ali Rahimi added slip wheel support providing continual scrolling with the control key depressed and using the mouse wheel as an accelerator. Control key release stops scrolling Mark Schreiber added -sw/--scrollWithBuffer to try to make views into the scrollback buffer stay unmoving upon new lines (needs -si) 2.7.5 to 2.7.6 \----------------------------------- Geoff Wing et al. fixed build with XTERM_COLOR_CHANGE undefined, noticed by John Waggenspack fixed build for Solaris/SunOS (maybe others) using STREAMS fixed default icon name, noticed by Jeremy C. Reed fixed setting of icon name with -e argument, noticed by John Waggenspack fixed problems with selection by changing some types and type casting fixed some parallel build problems fixed text placement in graphics mode fixed some build problems with graphics/qplot fixed reverse video mode to act like the invocation option fixed query of locale ("Setting locale failed.") when locale is set fixed autowrap bug when restoring cursor from last column, noticed by witek@mat.uni.torun.pl fixed build & run when PREFER_24BIT is undefined fixed loading of fonts with noenc multichar encoding, noticed by Mark White fixed an abort on sending some selections, from Xianping Ge fixed tty opening for systems with openpty(), e.g. OSF1 fixed build for utmpx/wtmpx platforms fixed a bug in memmove() if --enable-strings is given, noticed by Larry W. Virden fixed some termcap/terminfo entries fixed some division operations to use the same integer type changed configure detection method for pty/ttys changed handling of ConfigureNotify events for fast event streams changed internal handling of window size calculation changed internal handling of window size and placement manipulation changed define PREFER_24BIT in feature.h to be set via configure --enable-24bit (default is now off) changed screen refresh to optimise X calls more, noticeable with slower machines or over network displays changed pty/tty code to be able to be built separately for testing changed selection sending to send the original raw form if locale conversion fails updated libtool for configure added DEC private modes 1047 / 1048 (no ti/te handling yet) added SCROLL_ON_HOMEEND_KEYS in feature.h a la SCROLL_ON_UPDOWN_KEYS from Marius Gedminas added "tests" target in main directory to build and run basic tests added (frills) -tcw (--tripleclickwords) alternative triple click selection which selects words to the end of possibly-wrapped lines with trailing blanks and blank lines removed Chuan-kai Lin and Brian Mays added -mcc option (--multibyte_cursor) for multibyte cursor movement in legacy programs Maxime Froment fixed placement with OverTheSpot input method fixed characters sent through IM being truncated to 4 bytes fixed encoding method being overridden by default encoding method added loading of locale specific app-defaults from directory /usr/X11R6/lib/X11/$LC_CTYPE/app-defaults/Rxvt (see XAPPLOADDIRLOCALE is feature.h) Tomohiro KUBOTA added method to provide base font sets based on user's locale added more flexible font allocation, specifying a maximum number of fonts in feature.h instead of a set number Marius Gedminas added --enable-smart-resize which may reposition the window on resizing so that we try to stay within the screen boundaries 2.7.3 to 2.7.5 \----------------------------------- Geoff Wing et al. fixed scrollTtyKeypress not active for all keypresses, noticed by Reuben Thomas added -xrm option to accept dummy invocation arguments, from Christian W. Zuckschwerdt & Chris Green fixed documentation for options: -tr, -ic, -pt, -im, -mod, -xrm; and resources: scrollBar_right, scrollBar_floating, scrollTtyOutput, scrollTtyKeypress, preeditType, inputMethod, modifier. fixed OSC sequences to accept 7 and 8 bit ST as well as BEL added MAX_COLS & MAX_ROWS in feature.h to limit columns/rows on resize added copy root pixmap variant of transparency - make this the default with previous method as fallback fixed allocation of new lines to not set base attributes, including underline or reverse video information, noticed by Brian Mays added ability for different scrollbars to be compiled in, determined by --scrollstyle fixed Meta key detection - has priority over Alt, noticed by Paul D. Smith fixed configure check for mawk/gawk/nawk/awk added use of libtool in build procedure added SCROLL_ON_NO_SECONDARY to feature.h to scroll the screen when no swap is compiled in and a change screen request is made removed slightly buggy ConfigureNotify queue/ignore from our resizes fixed use of extended character classes, from Samoylov Olleg fixed timeout in select() call when unmapped, noticed by Tore Bjorkeli changed feature.h NO_BOLDUNDERLINE to NO_BOLD_UNDERLINE_REVERSE added support for XCopyArea() on screen display - good for slower links fixed CSI parameter parsing, including omitted parameters fixed allocation of new lines when in reverse video mode added answerbackString resource which sets the reply to ENQ (CTRL-E) fixed InheritPixmap interaction with fvwm2 by delaying a bit to allow the WM to do its stuff before we meddle with its windows Thomas Woerner added colorRV resource for reverse video colour (dependent on NO_BOLD_UNDERLINE_REVERSE in feature.h) Jun Morimoto fixed argument checking in rclock - ignore bad arguments Matthew W. Roberts added -mailfile option to rclock Christian W. Zuckschwerdt added OSC sequences to change base colours; also cursor, highlight, bold, pointer and underline colours. See rxvtRef Paul Sheer added initial INCR (incremental pasting) support 2.7.2 to 2.7.3 \----------------------------------- Geoff Wing fixed clean up (utmp/wtmp/etc.) on fatal signal, noticed by Jim Diamond added use of configure options --program-prefix, --program-suffix & --program-transform-name, allowing, say, Kanji users to do --program-transform-name='s,rxvt,kxvt,;' for installing changed configure --with-encoding value "euckr" to "kr" to match multichar_encoding option and resource values added configure --with-encoding value "noenc" (and multichar_encoding option and resource values) to disable encoding allowing normal eight bit characters in multichar compile fixed -si/+si option, noticed by Thomas Lofgren fixed detection of struct utmpx, noticed by Paul 'TBBle' Hampson added basic support for openpty() which should help with people on Alpha platform using Tru64/ Jun Morimoto added basic argument checking for rclock to detect missing arguments Tung-Han Hsieh fixed configure notify bypass checking for self window configurations fixed fontset creation to match sizes properly and recreate fontset on size change Chih-Wei Huang added fontset (locale dependent) menubars added example Big5 menu Hans de Goede added colour determination for low colour (4 to 8 bit) displays 2.7.1 to 2.7.2 \----------------------------------- Geoff Wing fixed screen refresh output to handle more cases changed resource storage to a struct rather than a char* arrary, to aid debugging changed how ptys/ttys are opened (again) fixed processing of some resources to strip double-quotes when using XGetDefaults() and also for backspace_key/delete_key fixed large paste problem, noticed by Dominik Vogt fixed utmp removal problem for SYSV style utmps changed BORDERWIDTH in feature.h to EXTERNALBORDERWIDTH to clarify its usage. added (frills) resources "internalBorder" (-b) and "externalBorder" (-w)(-bw)(-borderwidth) added NO_BELL to feature.h to allow disabling all bell indications D J Hawkey Jr added QNX support added logging into lastlog in login shells (-ls option) Oskar Liljeblad added SCROLL_ON_UPDOWN_KEYS to feature.h to allow scrolling via (shift|meta|ctrl) modifier and up/down keys, default off for backward (2.6.x) compatibility 2.7.0 to 2.7.1 \----------------------------------- Geoff Wing cleaned up CSI processing slightly fixed clearing of pixel droppings on right side of cell added clearing of pixel droppings for fonts which exceed the left side of their cells, noticed by J Scott Berg changed --disable-memset to --enable-strings and not enable by default added LOCAL_X_IS_UNIX to feature.h to work-around Irix problem, opens unix:0.0 instead of :0 or :0.0 fixed some configure errors changed how ptys/ttys are opened and which is opened by parent or child added delay to screen refresh when receiving a fast stream of X events Jim Knoble fixed scrollbar slider jitter added named constants for scrollbar calculations MANTANI Nobutaka changed interaction with XIM server to fix several problems 2.6.? to 2.7.0 \----------------------------------- Geoff Wing added OSC escape sequence #55 to dump scrollback/screen to a file SEO Young-Jin fixed XGetDefaults() to use standard files (and then some) 2.6.0 to 2.6.1 \----------------------------------- Geoff Wing fixed setting of tty permission/ownership with grantpt(). ie. don't fixed configuration for some systems changed a timeout to previous setting giving smoother scrolling. fixed reversed --scrollTtyOutput (noticed (this time) by Thomas Lofgren ) fixed offset for writing into BSD utmp file added seperate cursor save/restore information for secondary screen fixed CSI cursor movement fixed typos causing compile failure - reported by various fixed UNSHIFTED_SCROLLKEYS Mike Hopkirk (Hops) fixed SB_BORDER scrollbar delineator 2.6.PRE3 to 2.6.0 \----------------------------------- Geoff Wing et al. fixed configuration for many systems Ha Shao added support for ZH_CN (GB2312) fonts and encoding. 2.6.PRE2 to 2.6.PRE3 \----------------------------------- Geoff Wing fixed several OOB memory accesses and leaks (mostly found by Rob Somerville ) added shift up/down arrows a la shift prior/next added SCROLL_ON_SHIFT, SCROLL_ON_META, SCROLL_ON_CTRL to feature.h Vaughn Cato fixed jerky selection for some people (esp. Linux) Peter H. Chou fixed floating scrollbar (trough) to not affect NeXT scrollbar MANTANI Nobutaka fixed two problems on X Input Method: 1) Can't display preedit area in "OverTheSpot" input style with some input methods. 2) The location of preedit area in "OffTheSpot" input style is wrong. Yasuda Tsutomu <_tom_@sf.airnet.ne.jp> fixed some multichar set (Kanji) selection added better selection request type conversion 2.6.PRE1 to 2.6.PRE2 \----------------------------------- Geoff Wing fixed declaration position for COLORFGBG env var - really fixed this time (noticed by Rob Somerville ) fixed transparent term reparenting/configure issues fixed some documentation (noticed by Richard Browne ) MANTANI Nobutaka added XIM (X Input Method) enhancements added input of multibyte characters with XIM (X Input Method) enhancements via input styles "OverTheSpot", "OffTheSpot" and "Root" added configure option --enable-xim added resources "inputMethod" (-im), "preeditType" (-pt) changed configure to search for libxpg4, needed for FreeBSD's setlocale() 2.4.10 to 2.6.PRE1 \----------------------------------- Geoff Wing fixed scrollbar slider drawing to have a minimum size (noticed by Brian Korver ) fixed backward #ifdef's on JUMP_MOUSE_WHEEL fixed coredump on paste after terminal reset fixed bad marking on selection with old selection (noticed by Paul Slootman ) fixed bad cursor colour setting (noticed by Louis-David Mitterrand ) fixed octal recognition from strings (hopefully no-one noticed) fixed proto generation awk script (noticed by Paul D. Smith ) changed distribution to include protos, for bad systems added configure check for XPointer (needed for SunOS; comments by Moritz Barsnick ) fixed export of COLORFGBG (noticed by Moritz Barsnick ) Alfredo K. Kojima changed NEXT_SCROLLBAR code to produce real NEXTSTEP scrollers added inheritPixmap support - terminal window uses parent pixmap Sasha Vasko fixed handling of background change via property _XROOTPMAP_ID 2.4.9 to 2.4.10 \----------------------------------- Geoff Wing fixed screen refreshing - significant reduction of XDrawString() et al calls in many cases leading to large speed increase, especially for remote X clients fixed source code const stuff fixed DISPLAY_IS_IP feature changed window creation, menubar reading, etc. order and removed one of my earlier hacks changed configure to be less extreme about X libs 2.4.8 to 2.4.9 \----------------------------------- Geoff Wing changed screen allocation to be safer added several xterm style window operations and reports DEC style escape sequences fixed handling of some DEC style escape sequences fixed menubar display fixed outline cursor removal fixed clear selection when writing within a selection added resources to handle backspace and delete changed source code organisation again - also be nicer when making in a different directory added probe of ModifierMapping for Meta/Alt and NumLock keys removed resource to set Meta/Alt key added support to allow compilation of both old and new selection styles changed internals - allocate rs_* as rs[Rs_*] Stanislav Meduna fixed checking of Xsetlocale(), setlocale() in configure 2.4.7 to 2.4.8 \----------------------------------- Geoff Wing fixed XPM handling of position in geometry changed XPM tiling to have the X server tile in the basic case moved several configuration options from feature.h to configure fixed introduced pixel dropping bug when RS_DIRTY was removed added `troughColor' resource - the original patch written by Reid D Rivenburgh (noted below) was lost and never added fixed border pixel colour - if not set, use foreground not background fixed handling of cursorColor/cursorColor/colorBD/colorUL to always use the _current_ fg/bg colours appropriately if unset changed source code organisation - moved some things into screen.h - to allow other add-ons to access screen structures without including all of rxvt.h changed internals - ripped out RS_Cursor/RS_Select to make basic multichar sets (not Kanji/Big5) always enabled - thus handle selection and cursor display differently fixed bug on scroll lines affecting selection changed rmemset to use a type which is the same size as an (int *) - based on comments by Paul Slootman fixed pointer colour change on default fg colour change changed handling of backspace/delete keys - if not disabled during ./configure then settable via resources - defaults similar to previous 2.4.6 to 2.4.7 \----------------------------------- Geoff Wing moved several configuration options from feature.h to configure added configure option to use system memset() added support for no multichar sets to allow 2 byte rendition type changed rmemset for slightly more optimised execution changed source code organisation slightly Guillaume Laurent added Meta modifier selectable via resource ``modifier'' John E. Davis added print mode to accept ESC sequence variation 2.4.5 to 2.4.6 \----------------------------------- Geoff Wing merged support for Big5 & Kanji. changed short option: fk --> fm changed long options: kfont/cfont --> mfont changed long option: kanji_encoding --> multichar_encoding changed font list in feature.h - user define list of fonts fixed configure check for Xlocale() added configure option --enable-dmalloc (Gray Watson's malloc) added configure option --enable-dlmalloc (Doug Lea's malloc) added support for Cygnus Solution's GNU-Win32 extensions (b18 tested) fixed utmp/wtmp handling on machines with updwtmpx() added support for old rxvt style selection - OLD_SELECTION changed define of struct screen_t to rxvt.h changed internal handling of bold overstrike pixel dropping - prescan line changed internal handling of selection mechanism to properly support multiple methods - and optimized changed internal handling of selection sync'ing - and optimized added assert()s via DEBUG_STRICT define to catch some possible bugs fixed scrollbar colour on mono displays changed privilege revocation to before we do anything fixed selection clearing when across the screen boundary and we swap screens fixed resize / screen refresh order when changing scrollbar display fixed font handling when we're given per_char of NULL changed internal handling of row width - maximum line length is now bound by a short - not enforced changed rxvt.1 and refer.html to yodl source Bruce Stephens added support for buttons 4 and 5 (eg. on a mouse with wheel) to scroll screen Frank Chen Hsiung Chan fixed clash of use of BIG5 as define and enum. Also typo fix. John Eikenberry added window_group use to window manager properties added NeXT scrollbar style - group up and down buttons together Denis N. Antonioli fixed setting of application icon name and title Adam Spiers fixed enumeration of *.keysym.* in resources 2.4.4 to 2.4.5 *_Official Release_* \----------------------------------- Geoff Wing changed the approach at the Boldoverstrike-Pixeldroppings front temporarily fixed a bug in the exposure handling added the --enable-ttygid Oezguer Kesim switched rxvt licence to GPL changed copyrights of the modules fixed the terminfo/termcap entries Mark Olesen FINALLY added Double-Click mouse reporting. Uses the upper bits of the Button character for X11 reporting so should cause no compatibility problems. * State = ( - SPACE) & 60 4 = Shift 8 = Meta 16 = Control 32 = Double Click (Rxvt extension) NOTE: no Release is reported after a double-click and the Release for the first click of a double-click is not reported. This also means the Release event of a very fast click/release won't be reported. 2.4.3 to 2.4.4 \----------------------------------- Geoff Wing fixed a bug in the selection mechanism Oezguer Kesim fixed the fontchange-windowresize-racecondition-bug (thanks Geoff!) fixed the broken console-support under solaris added a new terminfo entry for rxvt, based on the one which comes with ncurses (thanks Larry!) some changes on aclocal.m4 and configure removed the XTERM_COLOR_TERM option from feature.h - use --with-term=NAME instead updated the man-page Kikutani Makoto fixed a bug when copy&paste with kanji Paul D. Smith fixed a bug which prevented rxvt to compile when configured with --enable-xterm-scroll 2.4.2 to 2.4.3 \----------------------------------- Geoff Wing fixed a bug in scrolling lots of text more work on avoiding the pixel droppings further cleanups Oezguer Kesim some changes on the configure script Frank Chen Hsiung Chan added experimental big5 support Reid D Rivenburgh added the "troughColor" resource Mike Hopkirk (Hops) added support of SCO OSr5 pty naming (also UW SysVr5) correction of pty hang with large paste buffer (happens on on all tested platforms) fixed Weird default scroll thumb behaviour fixed incorrect setting of WM_COMMAND if specified with -e switch fixed # of lines of context between screen pages (Shift-Prior/Next) Visual delineation of Scrollbar and vt wdw with dark internal border 2.4.1 to 2.4.2 \----------------------------------- Geoff Wing new anti-bold-overstrike-pixel-dropping (plan 3) Oezguer Kesim fixed a bug which caused rxvt to dump core after resizing and selecting 2.4.0 to 2.4.1 \----------------------------------- Geoff Wing added --with-xpm-{include,library} to autoconf/a4local.m4 added VERYBOLD feature fixed some misspelling in autoconf/configure.in added `DEC private modes' 1010 and 1011 for scroll-to-bottom on TTY output inhibit and scroll-to-bottom on keypress together with resources and switches fixed Bold Overstrike Pixel Dropping (Yes Sir!) fixed a bug in scr_E() fixed ^[[*J behaviour - clear to end, clear to beginning, clear whole screen was broken Oezguer Kesim removed DONT_GUESS_BACKSPACE. Instead, you may define either FORCE_BACKSPACE or FORCE_DELETE or leave both undefined in order to get ^H, ^? or the current stty settings for 'erase' fixed positioning of text in the top menubar. fixed some missing #define's fixed conditions for MONO_BOLD in scr_refresh() to make VERYBOLD work. Christoph L. Spiel fixed usage of KEYSYM_RESOURCE only when NO_RESOURCES is *not* defined Paul Slootman added a few XK_KP_* ifdef's in order to get rxvt work with X11R4 Major changes from 2.21b* to 2.4.0 \----------------------------------- Geoff Wing screen.c rewritten with changes including: internal management of screen lines changed rmemset() used as a fast memset() replacement selection now the same as XTerm selection several Kanji display fixes Kanji properly selectable for EUC JP encoding added continuous scrolling with scrollbar buttons fixed colours when using XPM background pixmaps smaller than the window added resources -sr/+sr, -st/+st fixed application Cursor Keys added many configure enhancements added delimiting line between XTerm scrollbars as per XTerm fixed utmp support added minimal support for proportional fonts added integrated use for Gray Watson's dmalloc package added automatic prototype generation via src/makeprotos-sed Grant McDorman added PREFER_24BIT: if the screen is 24 bit, then use 24 bit windows even if default is 8 bit fixed utmpx support added handling for Keypad left/right/up/down, etc. added META8_OPTION for all function keys added RXVT_TERMINFO for setting TERMINFO fixed some bugs in menubar added expanded keysym support Paul D. Smith fixed title setting fixed for building in other directories added pointerColor for changing pointer colour added borderColor for changing border line colour in XTerm scrollbar 2.21a3 to 2.21b* \--------------- 1. From: Conrad Link Fixed a bug in the OffiX Drag and Drop support. rxvt inserted two instances of directories or links when they were dropped onto rxvt. 2. From: Fixed a bug that makes rxvt getting constantly "NoExpose" events which it is not handling. 3. From: Mark Olesen Fixed a bug that caused rxvt to hang indefinitly waiting for a terminating ^G on an XTerm `ESC]' sequence. 4. From: Bernard PERROT Mark Olesen Fixed a bug that prevented to handle DEC VT2xx's ApLineDel correctly 5. From: Mark Olesen Now the Shift/Ctrl cursor key mappings are enabled regardless of App-Cursor settings 6. From: Kai Petzke Fixed a bug with respect to cursor movement. rxvt now handles the 'G' and 'd' sequences correctly 7. From: Geoff Wing Fixed a couple of things in utmp.c 8. From: Denis N. Antonioli Added the "-tn" option and corresponding Xresource variable "termcap". This option specifies the name of the terminal type to be set in the TERM environment variable. 2.20 to 2.21a* \------------- 1. Oops, forgot to include time headers in menubar.c 2. Finally got the correct DEC sequence to toggling the behaviour of the backspace key and removed the other non-standard ones. If anyone has a listing of DEC escape sequences they'd like to donate ... 3. Fixed a bug that prevented an XPM file from being found if it were specified with an absolute path and a geometry string. Made the default scaling zero (tiled) since this is by far the most popular use. 4. The Motif-style scrollbar is back as a compile-time option. 5. Added BUGS file and (thankfully) moved coordination of the project to Oezguer Kesim who also has a mailing list for rxvt development Rxvt Workers To subscribe to the list send email to with the body: subscribe 6. Semi-retirement and finish my thesis ... bye for now - /mark --- Oezguer started working on rxvt 7. Fixed a bug in the new menubar-feature. There were several unchecked strings strcpy'ed which caused rxvt immediately to dump core. 8. From: Robert Bihlmeyer Fixed a bug in rclock.c which prevented it to compile correctly. 9. From: Mark Olesen Overstrike boldfonts and pixmaps now work together without pixel droppings on the screen (at least under Linux). 10. From: Mark Olesen Modified autoconf support: memmove() replacement function supplied for those systems that need it, libXpm should now be correctly found (set in src/Makefile *not* in config.h) 11. From: Mark Olesen Converted doc/rxvt.ref to HTML format. doc/html/refer.html = master copy doc/refer.txt = text version saved using Netscape. All HTML documents are put in here, to ease installation elsewhere. 12. From: Mark Olesen Moved some file search function from main.c and some string functions from xdefaults.c to misc.c. Changed the implementation details so that `keysym' resource is also available as a command-line long option ... even if you have compiled with USE_XGETDEFAULT. 13. From: Mark Olesen When a new pixmap is loaded, revert to the default scaling. 14. From: Mark Olesen Reworked the menubar to permit multiple menubars in a circular linked list (and all the management functions that entains) and new functions including the following: * reading from files * dumping all the menubars * clearing a menu (without removing it) * setting a backgroudPixmap * and many other features. The menu syntax has changed very slightly from the last version, but now provides greater flexibility ... see refer.html for details. Added the `menu' resource/long-option so a startup menu can be specified. eg, rxvt -menu my.menu -e rlogin machine -l user 2.19 to 2.20 \----------- 1. You can now add snazzy looking menus to any plain (non-X) text application. At the moment, the menuing system is simple but functional. The syntax for controlling the menubar is documented in doc/rxvt.doc, but note that an XTerm sequence `ESC ] 10; Pt BEL' is used so menus created for rxvt will be ignored by an ordinary XTerm. It provides sub-menus, click-and-drag, and even some user definable `quick' arrows keys. However menu manipulation could use refinement to permit multiple menus to be defined -- and the menu refreshing could also use some improvement, but it can be extended and refined later as required/desired. The files doc/menu.sh and doc/jedmenu.sl show sample implementations of menus. --> It compiles and runs on my machine (AIX 3.2.5) but THIS IS CONSIDERED BETA (or even ALPHA) CODE! 2. DEC private modes: Bug fix for 's'ave and 'r'estore parameters, added a 't'oggle parameter to DEC private modes. 3. Made Backspace key selectable with DEC private mode ESC [ ? 36 h/l/s/r/t (high/low/save/restore/toggle) 4. Changed the way the scrollBar is realized to permit on-the-fly toggling of the scrollBar display and added a DEC private mode escape sequence for that. Smoother redraw of scrollBar. Better proportions for the arrows allows a slightly narrower scrollBar. 5. Added support for XTerm font changing sequence: `ESC ] 50; Pt BEL', with (as usual) a few extras. See doc/rxvt.ref 6. Adapted experimental XPM buffering from that supplied by Carsten Haitzler . 7. Replaced `wait' with `waitpid' in src/command.c::Child_signal to avoid a race condition and permit use of pclose() on SunOS. Patch provided by , Thanks John! 8. For easier XPM handling, added `path' resource/long-option and substantially enhanced pixmap scaling to provide very exact control over scaling and positioning of the XPM background image. The XPM XTerm escape sequence has been extended to provide a convenient facility for on-the-fly rescaling. Export COLORTERM="rxvt-xpm" instead of COLORTERM="rxvt" 9. Added export COLORFGBG to give hints to color applications. Typically one of these values is exported, in which `fg' and `bg' are numbers 00-15: COLORFGBG="default;default" -fg -bg colors don't match any of color 0-15 COLORFGBG="fg;default" -fg color matches color 0-15, but -bg color doesn't COLORFGBG="default;bg" -bg color matches color 0-15, but -fg color doesn't COLORFGBG="fg;bg" -fg -bg colors match color 0-15 When compiled with XPM support, the last two values are rendered as follows: COLORFGBG="default;default;bg" -bg color matches color 0-15, but -fg color doesn't COLORFGBG="fg;default;bg" -fg -bg colors match color 0-15 10. Disable Shift+Prior/Next and scrollBar if saveLines == 0. Slight change to key-processing so `shift+meta+key' and `shift+ctrl+key' gets processed as `shift+key'. This provides a way to avoid interpretating `Shift+Prior', `Shift+Next', and `Shift+Insert'. Also, added DEC private mode sequence `ESC [ ? 35 h/l/s/r/t' to disable Shift+key interpretation. Provide for Ctrl+Shift+ combinations for function keys. See doc/rxvt.ref 11. Always match long-option names, even when only preceded by a single -/+. 2.18 to 2.19 \----------- 1. Minor alteration to input mode for Kanji processing. 2. rclock: -adjust option, support for exec on startup syntax, date format may now also include the century 3. Made mouse double-click respect autowrap lines. 4. Added marks for folded editing. 5. Added Offix DND (Drag 'n' Drop) protocol. Added support for XA_TARGETS. 6. added Carsten Haitzler XPM patches to load an XPM file for the background of the terminal window. Uses resource `Rxvt.backgroundPixmap' or long-option `--backgroundPixmap' 7. Use these (XTerm) keybindings exclusively and remove the old equivalent bindings: Shift-Prior = scroll up Shift-Next = scroll down Shift-Insert = paste mouse selection Shift-KP_Add = bigger font Shift-KP_Subtract = smaller font 2.17 to 2.18 \----------- 1. Check for NULL pointers in command-line processing (oops) Also fixed processing of `hidden' arguments such as -d, -g, -T 2. Fixed terminfo hpa/vpa: was `\E..' instead of `\E[..' added invisible cursor (ESC[?25h / ESC[?25l) 3. Fixed broken kanji characters (?? and disappeared cursor box ??) thanks to 4. In privileges(), changed setuid/setgid to seteuid/seteguid so that it's possible to switch back to root later. Perhaps fixed svr4 problems (reports no tty, no job control) in get_tty() ... need to detect these SVR4 features in the configure script. 5. Restored scrollColor, topShadowColor, bottomShadowColor resources that somehow got lost between the beta and release versions. For monochrome displays, fixed scrollbar so it will be visible and suppress color changes. 6. Final? iteration on selection. Store selection text with LF line-endings but paste into rxvt with CR endings. Selection now preserves the newline when trailing space is stripped from non-autowrap lines. Compile-time support for using a keystroke to paste from the cut-buffer. 7. Fixed utmp.c to handle both sysv and bsd pty names. More changes in the works to improve documentation and eliminate race conditions ... this, thankfully, is being done by someone else. 8. Added European language support (X11R6) - let me know of problems and fixes since I only have X11R5. 9. Changed names of color10-color17 to color8-color15 to match with those used by color_xterm ... sorry for the inconvenience, but I didn't have an X11R6 xterm manpage until now and long-term compatibility is quite important. Added a real bold font (define USE_BOLDFONT). I still think it's too much work to avoid pixel droppings for overstrike fonts. Added support for specifying colors for bold/underline (colorBD/colorUL) but it's only done when the foreground = the default foreground ... see the manpage. Compile-time selection of TERM="xterm-color". Reduced the number of rarely-used command-line options since they are accessible on the command-line via their resource names as long options. More rigid differentiation between long and short options: long options are --/++ prefixed; short options -/+ prefixed. Added long-option help to give the resource names. Removed run-time selection of right-hand scrollbar and arrows. Removed run-time selection of (pageup_key/pagedown_key/alert_key). 10. Changed Ctrl-Up,Down,Left,Right to emit "\EOa,b,c,d" instead of the previous "\E[^A,^B,^C,^D" to avoid problems associated with having an embedded "^C" in a key-sequence. Disallow 80/132 column switching as the default (same as xterm). 11. Check for seteuid(). Add "ttcompat" module for SVR4. 12. A few people suggested removing the keystroke for toggling MapAlert and so I have. I agree that it was pointless and/or annoying since there was no way of determining the current toggled state anyhow. 13. Fixed missing `ttydev' for _sgi. Fixes for BSD utmp support. Exported WINDOWID before the window was created (oops). 14. Mouse cut&paste of autowrapped lines should be improved, fixed bug in screen.c::scroll_text(). 15. As was pointed by a user -->> in keeping with X conventions, only an application that starts with 'x' should capitalize the first two letters of the resource file, so the rxvt resource file (and class name) should be named Rxvt not RXvt, this is a minor point. 16. rclock: As well as message reminders, rclock can launch programs and (if no message text is given) act as a cron-type of program. Made default font `7x14'. Fixed graphics context when mail is waiting and a reminder is issued - so the message is actually visible! 17. As suggested by a user, changed the bolding algorithm to be slightly more intuitive: 1. colorBD (if specified) 2. color0-7 -> color8-15 (if possible) 3. boldFont (if specified and found) 4. overstrike (last resort) This takes advantage of the color capability and is the most consistent when toggling font sizes on-the-fly. If you never want overstrike (looks ugly and leaves pixel droppings) or boldFont (you like to switch font sizes on-the-fly), you can remove them at compile-time. The other elements are similarly compile-time selectable. 18. Another user suggestion: scrollbar made more distinct by having the `trough' a different color from the slider -- I opted for making it the same as the default background color so that the slider and arrows appear to `float' on the window. Also removed topShadowColor, bottomShadowColor resources as unnecessary. 19. Dropped distribution of vttest since Tom Dickey is working on an improved version. 2.16 to 2.17 \----------- 1. Fixed problem in scr_refesh_region() that was introduced in v2.16 The problem of `pixel droppings' continues when bold is simulated using overstrike. Using XCopyArea() sometimes helps, but the preferred and simplest solution is item 4 below. 2. Removed 7bit mode. Changed definition of meta so that the ESCAPE is the default and using meta to set the 8bit on an option that can be made run-time configurable (assuming people still use this). Added -/+rv command-line option, resource reverseVideo. NB: it works slightly differently from xterm's in that foreground/background are swapped even if they have been explicitly set. Removed NO_COLOR option -- no more monochrome rxvt (one too #ifdef's). Inherit existing stty settings (at least for control characters) and set value of BackSpace appropriately. Added defines DONT_GUESS_BACKSPACE and NO_DELETE_KEY 3. Added 3D style scrollbar and removed all the old bitmapped scrollbars and arrows with the only exception being the xterm lookalike XTERM_SCROLLBAR which is available in a single width. With arrows, scrollbar behaviour somewhat resembles Motif behaviour. Without arrows, it's the standard xterm behaviour. The default scrollbar (defined at compile-time or set by using scrollBar: True) is to have a scrollbar with arrows arranged on the right-hand side. The scrollBar resource is now exclusively a boolean value scrollbar resources: scrollColor topShadowColor bottomShadowColor NB: if topShadowColor/bottomShadowColor are unset, their values are calculated from scrollColor using an algorithm adapted from fvwm so it shouldn't be too hard to find scrollbar colours that look good with your window manager and don't consume an entire colormap. 4. Added smarter handling of bold/blink when applied to the default fg/bg colours: If the pixel value of fg/bg matches the pixel value of colour COLOR0 through COLOR7, then applying bold/blink to the default fg/bg will select the appropriate colour from BOLD0 through BOLD7 instead of using the overstrike bold. This seems to be the best way to handle bold/blink attributes when the foreground/background match and ANSI colour anyhow. For convenience, it is possible to use colour aliases (next item) for the foreground/background colours instead. My preference is a dull Canadian look: RXvt*foreground: 7 RXvt*background: 10 5. Changed colour aliases (item 7 of last change) and dropped the `#' prefix. This avoids confusion with the regular #rrggbb format of specifying colours and is unambiguous since there are no X11 colours starting with a digit. This also avoids the need to quote the `#' to protect against shell interpretation. 6. Added colour cursor support. -cr (cursorColor), as per XTerm -> the (rectangle) cursor colour -cr2 (cursorColor2), only RXvt -> the text colour. The cursorColor2 maintains contrast in a colour environment and is optional. Thanks Raul Garcia Garcia for the idea. Cleaned up scr_refresh (again ) to avoid some unnecessary colour changes and removed the reverse video graphics context and just swap foreground/background colours instead. 7. Typo in command.c: had seteuid() instead of seteguid() Use cfsetospeed()/cfsetispeed() for POSIX termios handling. 8. Ignore the loginShell option/resource for programs that DON'T end with "sh". A hack but it keeps `rxvt -ls -e rlogin machine' from failing and I don't know of (m)any shells that don't end in "sh". 9. Hard-code dependencies in Makefiles to avoid using X11 makedepend. Added check for atexit() to catch the problem that exists on SunOS but not on Solaris. 10. Collected command-line option parsing and X11 resources into a single file (xdefaults.c), and introduced a monolithic structure (with bit-flags for logical options) to eliminate the massive if-else-if parsing and to reduce possible overlaps/oversights Short help provided for an incorrect argument. For more consistency, more flexibility, and fewer switches, made -grk4/-grk9 options obsolete, and replaced with `-grk mode'. Added the resource `greek_keyboard' while I was there. It is also possible to use a `--' or `++' prefix to get so-called `long options' that correspond to the resource name. For example, rxvt +ls -bg Blue rxvt +loginShell -background Blue rxvt ++loginShell --background Blue rxvt ++ls --bg Blue Error! 11. Changed REFRESH_PERIOD to 1 in command.c, the old idea of providing for fast and furious scrolling needs to be reconsidered so that `cat' works. Still needs some investigation. 12. Changed scr_poweron(), which corresponds to `ESC c', to also reset the scrollback buffer. 13. Changed scr_change_screen() (when compiled with NO_SECONDARY_SCREEN) so that switching from the secondary to primary screen will push the old secondary screen into the scrollback buffer. This is fairly useful if your terminfo has have rmcup=\E[?47l\E8, smcup=\E7\E[?47h. It is NOT particularly useful if rmcup includes \E[2J, like some do. Running with NO_SECONDARY_SCREEN provides faster switching than with a real secondary screen and saves memory too. 14. Now that key values have mostly stabilized, moved the compile-time key choices to "feature.h" ("keys.h" now obsolete). 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 (rgg@tid.es). POSIX wtmp support added by Piet W. Plomp (piet@icce.rug.nl) 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 (davis@space.mit.edu) and Piet W. Plomp (piet@icce.rug.nl) 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 color color: where = [0-7], 1[0-7] -fn fontname font: -fontList names fontList: ... -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: -grk4 - -grk9 - -print-pipe name pipe-pipe: -e command arg ... command: -T string title: -n string iconName: -C - -/+7 bits: 7/8 -secure keysym secure_key: -pageup keysym pageup_key: -pagedown keysym pagedown_key: -bigfont keysym bigfont_key: -smallfont keysym smallfont_key: -prkey keysym printscreen_key: greektoggle_key: cutchars: 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. 2.07 to 2.09 1. Fixed some color-usage errors. 2. Added double and triple-click support compliments of ah@doc.ic.ac.uk (Angelo Haritsis) 3. Added Print Screen capability, as in most vt-100's 2.06 to 2.07 1. Fixed problems with rxvt screwing up tty permisssions (?) 2.03 to 2.06 1. Fixed a limit which imposed a maximum width for the terminal window of 255 characters. There is no limit now. 2. Made provision for applications to get mouse-click feedback when user clicks in a graphics window. See graphics_sample 2.02 to 2.03 1. Fixed memory management just a little. 2.0 to 2.02 1. Bug fixes for color and graphics. 1.97 to 2.0 1. Added ANSI color support. Compile with -DCOLOR 2. Added a graphics mode. Compile with -DGRAPHICS 1.96 to 1.97 1. Bug in refresh() which was causing slow refreshes after clear-screens was fixed. Showed up during emacs start-up. 1.95 to 1.96 1. rxvt did bad things if it received mouse - Motion events without a preceeding button-press. Fixed. 1.94 to 1.95 1. Created a substitute for XGetDefaults, which seemed to account for 1/2 to 2/3 of the memory used by rxvt (according to the SIZE field of ps output). My substitute only reads the .Xdefaults file. Compile with -DFAKE_RESOURCES to get my mini- XDefaults handling, -DREAL_RESOURCES to keep XGetDefault. 1.93 to 1.94 1. Fixed some minor long-standing errors in the vt100 emulation. 2. Fixed ALT- handling in command.c 3. Fixed minor bug with start-of-selection location. 4. Added xterm-type "extend selection" feature using mouse button 3. Button 1 always starts a new selection. Button3 tries to extend the current selection if possible. 5. Fixed problem with bold-face fonts overflowing into the next character for some fonts. 1.92 to 1.93 1. ran gprof to find bottle-necks in the code. Halved user time, but had little effect on total time required to update the display. Seems worth keeping for the more efficient user-time, though. At this point, I think that most of the elapsed time is spent waiting for input or waiting for the X buffers to flush. 2. Used to refresh the screen every 2.2 screen-fulls during flat-out scrolling. Really cuts down on scroll-time. Now, refresh every screen-full (or when there's a pause in activity), but when flat-out scrolling starts, decrease the refresh period, so that its every 10th screenful after a little while. This has no noticeable visible effect, since the scrolling text is absolutely unintelligible anyway, but will improve the scroll "feel" when doing just one or two screenfulls, ie in an ls -l. 3. Surrounded the code which uses XCopyArea with #ifdef's I have never seen this help performance, but I think that there may be some video-systems which benefit from this, particularly in a full-screen editor or slow scrolling type of setting. 4. Performance in flat out scrolling, text only, on a sparc-10, displaying rxvt on an HDS x-terminal: nation@snoopy>/usr/bin/time rxvt -e cat k 6.1 real 3.1 user 2.5 sys nation@snoopy>/usr/bin/time xterm -e cat k 40.8 real 4.6 user 3.4 sys 1.91 to 1.92 1. Added greek-keyboard support patches. 1.85 to 1.91 1. assorted minor patches 1.82 to 1.85 1. Fixed ESC c handling. 2. Fixed minor selection handling bug. 1.81 to 1.82 1. Fixed slow refresh during selection process 2. Fixed problem of not correctly clearing selections of 1 character. 1.80 to 1.81 1. Fixed some scrolling problems, problems with partially obscured windows. 2. Added some neat debugging capability in debug.c 3. Patched up rclock. 1.74 to 1.80 1. Fixed core dump from selecting past the bottom of the screen 2. Fixed a few escape sequences, per the vttest program 3. Broke and fixed handling of moved/resize/new-font handling. 4. Still can't change tab stops correctly. 5. Ran vt-100 test suite. Added capability to change tab stops and enter reverse video, and to switch from 80 to 132 columns and back. Fixed a seg-fault in scroll(). 1.70 to 1.74 1. Fixed cursor drawing errors. 2. Improved smoothness of scroll-back operations. 3. Applied some SVR4 patches. 4. Applied HPUX patches, and a few cursor display patches 5. Fixed up font-changing routines a bit. 6. Fixed a scrolling problem for windows taller than the scroll-back buffer. 1.6 to 1.7 1. Fixed the problem with random rendition flags in the scroll back buffer 2. Fiddled with re-drawing on the scroll-bar, and with how often refreshing occurs. 3. Incorporated some AIX patches. 4. Included #ifdef'd changes to support vt100 printer. 5. Fixed send_string routine, so that it doesn't loose data. 6. Complete re-write of screen.c 1.5 to 1.6 1. Removed all use of a seperate bold font. Now uses over-striking exclusively. 2. Added some more optimizations for drawing speed when the window is re-sized or moved. 3. Implemented speed ups in screen.c 1.47 to 1.48 1. Cleaned up re-drawing on expose events, so rxvt only re-draws the newly exposed parts of the screen. 2. Fixed backspace, which must have broken in 1.45. 3. Added command line option of iconic startup. from 1.45 to 1.47 1. Incorporated improved bsd utmp handling from dperry@ringer.cs.utsa.edu (David Perry) 2. Fixed a very minor bug where the solid-cursor can leave a a bit of a ghost when you resize the window. Its stupid, but it always bothered me. from 1.4 to 1.45 1. Fixed scrolling error when switching to larger fonts 2. Fixed utmp-entry removal for SYSV type systems. 3. Icorportated patches for FreeBSD and svr4