Subject: CVS commit: pkgsrc/x11/mrxvt
To: None <pkgsrc-changes@NetBSD.org>
From: Tobias Nygren <tnn@netbsd.org>
List: pkgsrc-changes
Date: 05/09/2007 23:14:41
Module Name:	pkgsrc
Committed By:	tnn
Date:		Wed May  9 23:14:41 UTC 2007

Modified Files:
	pkgsrc/x11/mrxvt: Makefile PLIST distinfo
Added Files:
	pkgsrc/x11/mrxvt/patches: patch-aa

Log Message:
Update to mrxvt-0.5.2. Big list of changes:

0.5.1 to 0.5.2
\-----------------------------------
Gautam Iyer <gi1242@sf>
    * Bug Fixes:
	0. Did a HUGE REWRITE of the multi-tab code base. Incomplete escape
	   sequences longer cause lockups. Really busy tabs no longer starve
	   everything else!
	1. Fixed detecting xft support if xft-config is missing.
	2. Fixed segfault obtained when the last macro in r->macros is executed
	4. Convert sources from ts=8 to ts=4. Yes ts=8 was a bug :). Added a
	   script ts4to8.pl to do this.
	3. Make text under cursor visible if cursorcolor2 is not defined.
	5. Added "Exec" macro to execute external programs
	6. Added % expansion to macros. %s=selection, %t=tab title, %n=tab#.
	7. Added a menu option to open the selection in a new tab in mutt /
	   w3m, or in firefox.
	8. Implemented a "-into" option to embed mrxvt into. Thanks to Bruno
	   Deferrari <utizoc@gmail.com> for the patch.
	9. Fix buffer overflow. Thanks to Frederik Deweerdt <deweerdt@free.fr>
	   for the patch.
       10. Made -ufbg and -fade options work under Xft ;).
       11. Font specified with --boldFont is correctly handled (even if it's
	   of a different dimension).
       12. Exited tabs are now correctly held. Output from them is not lost
	   even if they exit very quickly.
       13. Rewrote the -ufbg and focus fading code completely. Now works
	   correctly if tabs are switched on on unfocussed window, or if the
	   bg is changed (via an escape sequence) from an inactive tab /
	   unfocussed window.
       14. Removed round trip to server when allocing Xft colors. (Reduces
	   protocol requests by about 750 on startup, which should speed
	   things up on a slow connection).
       15. Defined CURSOR_COLOR_IS_RENDITION_COLOR by default in
	   src/feature.h. This makes the cursor better visible when the cursor
	   color is not defined, and makes the behaviour similar to the
	   default behaviour of Xterm.
       16. BugFix: Str and Esc macros caused a beep on execution.
       17. Updated examples / menus to use new word splitting.
       18. When user closes the mrxvt window, don't forcefully exit. Instead
	   send SIGHUP to all child processes, and wait for childs to exit.
	   Previous behaviour caused problems if the child produced some
	   output on SIGHUP, or took a few seconds to exit.

    * Enhancements:
	0. Really busy tabs (even with Xft+anti aliasing) no longer starves
	   anything else!
	1. Reduced memory footprint by roughly 5kb.
	2. Converted all source files to use the standard ts=8 for easier
	   diffing / online viewing.
	3. Added a --focusDelay option to collect focus changes events over an
	   interval. This is mainly to work around a bug in some window
	   managers.
	4. Xft bold fonts now actually use the bold font, instead of over
	   striking.
	5. Added a --xftBoldWeight option to control the weight of the Xft
	   bold font.
	6. Made --holdExit a string option, so that tabs can be held based on
	   the exit status of the child.
	7. Added --holdExitTitle and --holdExitText options to specify the
	   title of an exited tab, and the text printed in the tab of an
	   exited child process.
	8. Removed the "jumpScroll" option, and replaced it with
	   --refreshLimit and --skipPages (see man page).
	9. Changed word splitting of commands executed via NewTab and exec
	   macros. Now words are split only at spaces or tabs (unless
	   backslashed). If command starts with "!", it is passed to /bin/sh
	   -c, which does all the word splitting / executing. For the old
	   behaviour define INERNAL_WORD_SPLIT in src/feature.h.

Jimmy Zhou <jimmyzhou@sf>
    * Bug Fixes:
	1. Fix mrxvtset.pl as pointed by Avi Yagodnick.
	2. Fix mouse button 4/5 behavior. Make it the same as firefox
	   as pointed out by Yoshihiko Kashio.
	3. Fix reverse video when foreground/background colors are not
	   defined. Thanks to Yoshihiko Kashio.
	4. Disable slave macros in the macro chains if the first (master)
	   macro is defined as dummy.
	5. Fix off-focus fading. Thanks to Ken Zalewski for the report.
	6. Add macros to check and set options. Extend the number of
	   options.
	7. Add macros to check and unset X resources.
	8. Add macros to check and set NULL pointers.
	9. Fix some freeing NULL pointer issues.
	10.Fix black and white icons. Thanks to William Poetra Yoga
	   Hadisoeseno for the patch!
	11.Lots of code cleanup in command.c:rxvt_cmd_getc. Previously
	   it is lengthy and nearly unmaintenanble.
	12.Fix round-robin algorithm of command.c:rxvt_find_cmd_child.
	13.Fix crash if click on empty space of menubar. Thanks to Zhu
	   Qunying for the patch.
	14.Fix severl compile error - we must call DBG_MSG after variable
	   declaration in functions as we are using C, not C++. Thanks to
	   lzl@mitbbs.com for bringing this issue to me and provide patch.
	15.Fix unclosed file descriptors in child process.
	16.Fix session support. We actually did not listen on it because
	   the number of open file descriptor is small - we did not count
	   it!

    * Enhancements:
	1. Add --with-max-profiles to configure script as suggested
	   by Avi Yagodnick.
	2. Add experimental fast (hopefully) memory management code. It
	   is disabled by default.

0.5.0 to 0.5.1
\-----------------------------------
Jimmy Zhou <jimmyzhou@sf>
    * Bug Fixes:
	1. Compile error at rxvt_free_clipping (screen.c) when XFT
	   support is not enabled.
	2. Fix typo in acute acent. Thanks to Benedikt Magnusson
	   for the bug report.
	3. Fix file descriptor leakage - we should close /dev/ptmx
	   after forking. Thanks to Edgar Toernig for the report
	   and patch.
	4. Always show cursor while mrxvt loses focus. Thanks to
	   Edgar Toernig for the patch.
	5. Adjust several limits, e.g., max border width and min
	   blink time according to Edgar Toernig's patch.
	6. Fix rpmbuild (Sourceforge Bug #1482311)
	7. Fix crash on OpenBSD 3.9 when MULTI_CHAR is enabled -
	   the variable morecur (defined as char) in screen.c is
	   treated as unsigned (WtF!).
	8. Fix compile error on OpenBSD 3.9 when MULTI_CHAR is
	   enabled (OpenBSD keeps playing game with us!).
	9. Saving session behavior now conforms to profile support.
	10. Apply patches from FreeBSD ports.
	11. Fix crash on Solaris when calling XLookupString. Xlib
	   manual states that a portable program should pass NULL
	   to the last (compose) parameter.
	12. Add mrxvt 0.4.x compatible keyboard combinations to
	   mrxvtrc. They are disabled by default though. Thanks to
	   Mihail Zenkov for the report and Dimitri AT sun.com for
	   the solution.

    * Enhancements:
	1. Enable multiple bold fonts. Thanks to Edgar Toernig for
	   the patch.
	2. Add Fink package build. Thanks to Jeremy Anthony for the
	   submission.

Gautam Iyer <gi1242@sf>
    * Bug Fixes:
	1. Macros now ignore the state of caps lock (as they should).
	2. The highlight flag is now set even if the tabbar is hidden (so
	   showing the tabbar will show which tab produced the beep).
	3. Macros without modifiers did not work. Fixed this.
	4. Ignore SIGHUP (caused exit when parent shell is killed).
	5. Ignore SIGPIPE (caused exit when print command crashes).
	6. Some Xft fonts, e.g., aquafont, report double the actual width.
           This cause some text being clustered together while the cursor
           and user input have double size. Test, and correct for this.
           Notice that this fix will work for fontconfig 2.3.2 (as we have
           tested) or later version, and you must run ``fc-cache -f'' after
           upgrading fontconfig. It will not work for fontconfig 2.2.3 and
	   earlier versions due to the bug of fontconfig.
	7. Also dump initial tab titles when the --cmdInitTabs options are
	   given (this used to cause incorrect behaviour when the user closes
	   tab 0, and opens a new tab).
	8. Fixed bug #1473987. (Jagged edges of screen fonts)
	9. Fixed bug #1357219. (Made bg changes via escape sequences sticky)
       10. Saved configuration file is now profile compliant.
       11. Setting the tab title via \e]0 behaves like \e]2 (i.e. honors the
	   macros SET_TAB_TITLE_ON_XTERM_SEQUENCE & SET_TAB_TITLE_NOT_WIN_TITLE
	   defined in feature.h). Previously only \e]2 would honor these
	   macros. To only set the window title, the new escape sequence \e]60
	   has been added.

    * Code cleanup:
	1. Made coding & comment style similar to that of Vim (works well with
	   Vim7's syntax folding).
	2. Removed --confFileSave option. It's no longer needed as the
	   SaveConfig macro accepts an argument.

    * Enhancements:
	1. Warn if closing mrxvt with multiple tabs (and the tabbar is
	   hidden).
	2. Code cleanup (OK. That's not really an enhancement for users)
	3. Update documentation.

    * New features:
	1. Changed the behaviour of the --vt%d.xx resources. The settings are
	   now tied to profile %d (as opposed to the %d'th tab). A new tab
	   with profile %d can be opened on demand, or on startup.
	2. Added option --initProfileList to replace -tnum. (Marked -tnum as
	   obsolete).
	3. Removed option --cmdInitTabs as it is no longer meaningful with
	   profiles.
	4. When the command specified via the --profile%d.command option is
	   prefixed with an '!', run the shell first and then execute the
	   command. Removed the --tabShell option (as the prefix with '!' is
	   more flexible).
	5. Macros can now be chained (i.e. you can execute upto 16 actions in
	   sequence with any macro).
	6. Made the print screen macro take a command argument. You can use
	   this to define a macro to open the scroll back buffer in less (for
	   instance) in a new tab, and search regexp's to your heart's content
	   :).
	7. Made the extra height of active tabs, and radius of tab corners
	   compile time options.
	8. Added a --workingDirectory (profile) option to set the working
	   directory of new tabs. Set to "." to use the cwd of the active tab.
	9. Added a ToggleFullscreen macro. (Use with --smoothResize enabled).

0.4.2 to 0.5.0
\-----------------------------------
Gautam Iyer <gi1242@sf>
    * 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 <jimmyzhou@sf>
    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 <jimmyzhou@sf>
    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.


To generate a diff of this commit:
cvs rdiff -r1.9 -r1.10 pkgsrc/x11/mrxvt/Makefile
cvs rdiff -r1.1.1.1 -r1.2 pkgsrc/x11/mrxvt/PLIST pkgsrc/x11/mrxvt/distinfo
cvs rdiff -r0 -r1.1 pkgsrc/x11/mrxvt/patches/patch-aa

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.