--- rxvt-unicode/Changes 2013/03/26 14:16:46 1.1120 +++ rxvt-unicode/Changes 2022/12/27 08:34:10 1.1287 @@ -16,23 +16,371 @@ WISH: load system-wide config file even if we don't have one WISH: look into XAddConnectionWatch, does anybody need that? DUMB: support tex fonts -TODO: decrqm http://ue.tst.eu/71d7dbd1fcfeaa7d2a4b96eb957d570c.txt TODO: perl-shell-window? perl-unix-socket? TODO: command line editing when icanon? TODO: split ROW into a ROW_fast (0..total*2-1) and ROW macros? TODO: catch exceptions when calling perl hooks TODO: xdbe TODO: optimise bg reeval for resize for common patterns (pixmap bigger than window?) -TODO: DEC PM 4h/4l should toggle jumpscroll on or off (PrivMode_smoothScroll) TODO: pack rxvt_fatal messages into the exception object TODO: load must not cache, but global image cache must be cleaned -TODO: provide something like % for easy access for parse_keysym TODO: description into --help output? TODO: rxvt -help => (see rxvt-XXX(1))? +TODO: xor_rect should shift right +TODO IMPL: recalc bg only when not fully covering (no alpha, repeat|extend etc..) +TODO IMPL: colour-change event with index +TODO IMPL: recalc bg always on bg colour change + +TODO: document typical actions in rxvt.1.pod keysyms +TODO: warn with a graphical message when env has been modified +TODO: c&c perl socket via daemon-ext mechanism +TODO: simplify extension metainfo cache, cache on disk +TODO: URxvt::Ext::Name installs urxvt ext name and provides pod/manpage for URxvt::Ext::Name +TODO: pixel droppins idenrasm,ll,scrollup +TODO: cuu/cud and probably others default to 1 when arg is 0, not just missing, in xterm/vt102, but not in rxvt +TODO: clean up the resource vs. long option mess, especially in the manpage. +TODO: think about daemon delaying urxvt client exit. +IDEA: use harfbuzz to render combining sequences, maybe also complex scripts +TODO: https://github.com/bbidulock/icewm/issues/492 urxvt wrongfully(?) needa configurenotify after mapwindow? also, black border? + +TODO: rclock horribly time-biased +TODO: rclock iso mode? + +TODO: printf "\e[4:3m" - "undercurl" - should probbaly be interpreted as underline, rather than \e[43m +TODO: click through mode / https://shallowsky.com/blog/2017/Apr/06/ + +TODO: +03:32:26 Hi. I think I found a bug in special_encode in rxvtperl.xs +03:33:37 special_encode('لا') or any other string that contains 'لا' returns a disturbed string +03:33:40 hi BlueFish +03:34:10 whats a disturbed string? +03:34:25 for example سلام becomes ملام +03:35:05 see this issue: https://github.com/mkamensky/Text-Bidi/issues/10 I was trying to fix it + and after playing around for a while found out that special_encode is causing the problem +03:35:36 does this happen when you compile without --enable-combining (or with --disable-combining)? +03:37:40 I don't know the one that I installed from my distro repository has this flag or not. Is + there anyway to check? +03:38:49 rxvt --help will output a options: line at the top, whioch will list "combining" +03:39:10 anyway, I don't think i will understand this at my current tiredness level, I'll have a + look when I have time +03:39:26 are you usually around on this network, so I coulöd ask you in cas eI have questions? +03:40:25 yes combining is enabled. No I don't check IRC that much. You can reach me via email +03:40:44 ok, thats fine +03:40:40 avestasabayemoghadam@gmail.com + + - implement a fix for CVE-2022-4170 (reported and analyzed by David Leadbeater). + While present in version 9.30, it should not be exploitable. It is exploitable + in versions 9.25 and 9.26, at least, and allows anybody controlling terminal + input to execute arbitrary code in the urxvt process. + - the background extension no longer requires off focus fading support + to be compiled in. + - the confirm-paste extension now offers a choice betwene pasting the original + or a sanitized version, and also frees up memory used to store the paste text + immediately. + - fix compiling without frills. + - fix rewrapMode: never. + - fix regression that caused urxvt to no longer emit responses + to OSC color queries other than OSC 4 ones. + - fix regression that caused urxvt to no longer process OSC 705. + - restore CENTURY to be 1900 to "improve" year parsing in urclock (or at + least go back to the old interpretation) (based on an analysis + by Tommy Pettersson). + - exec_async (used e.g. by the matcher extension to spawn processes) now + sets the URXVT_EXT_WINDOWID variable to the window id of the terminal. + - implement -fps option/refreshRate resource to change the default 60 Hz + maximum refresh limiter. I always wanted an fps option, but had to + wait for a user requesting it. + +9.30 Sat 27 Nov 2021 21:07:09 CET + - the background extension did not initialise properly when automatically + loaded via the OSC. + - new "on_attach" hook type implemented, to initialise late-loading + extensions. + +9.29 Mon 22 Nov 2021 18:07:14 CET + - libptytty (http://dist.schmorp.de/libptytty/) is now a required + external dependency. + - enable confirm-paste extension by default, can be disabled by e.g. + URxvt.perl-ext: -confirm-paste + - Key bindings specified with the -keysym option or with resources of + the form URxvt*keysym work again. Such resources, as opposed to + resources of the form URxvt.keysym, were not officially allowed but + accepted, so ignoring them is considered a regression. + - new option/resource -rm/rewrapMode, which sets the line rewrap + mode to auto, never or always. + - new option/resource -dpb/disablePasteBrackets, which can be used to + disable bracketed paste mode sequences, as more and more programs + abuse these sequences (typically in the name of security, but these + sequences are not improving security). Also, bracketed paste mode + is now under frills. + - add manpage for urclock. + - confirm-paste wrongly considered brackets as ctrlchars (patch by + Jakub Wilk, debian bug #995244). + - if urxvt cannot detect a good estimate for font width (because a font does + not contain latin characters at all for example), it will now fall + back to xft's max_advance_width, which works well with some fonts. It + currently will warn about this. + - do not render variation selectors in the default font as boxes, treat + them as zero-width characters. + - change combining character architecture to allow fonts to handle + combining sequences on their own. This could allow future renderers + to be more intelligent about these sequences. + - use the previous enhancement to allow unicode characters outside of the + BMP to be rendered even without --enable-unicode3, as long as an + xft with the character is configured. + It's recommended to stay with disabled unicode3 even more now. + - freetype/xft have been verified to return nonsensical offsets for + combining characters. urxvt tries to compensate to some extent, + but diacritics will be slightly off in many cases, and far off in + some cases (e.g. input mono). + - when checking for overlap/careful handling, take non-basefont + character shifts into account. + - extensions can now request autoloading on OSC and Perl OSC sequences, + implement this for the background, clipboard-osc and overlay-osc + extensions. + - the background extension will now be autoloaded when the OSC 20 or 705 + sequence is received. + - added OSC 776 sequence to return character cell width, height and font + ascent, which is useful when using urxvt as slave to calculate window + size form or to row/column count. + - matcher extension documentation now points out some requirements for + regular expressions. the default url matching regex will now try + to match IRLs in addition to URLs. + - The view_start perl method now scrolls to the bottom also when the + argument is greater than 0. + - eval scroll actions now scroll to the bottom when scrolling down and + there are less lines to scroll than the ones requested (reported by + Stephen Talley). + - allow perl-ext and perl-ext-common to override autoloaded extensions. + this allows tabbed to disable itself in subtabs, avoiding recursive + loading. + - update precompose table to unicode 13.0. + - update charset conversion tables to perl 5.32 (this only affected + cs_koi8_u_from_unicode). + - unicode characters > 0x100000 were not handled correctly w.r.t. + font rendering. + - replace bitstream vera by dejavu sans, as it has replaced the former + almost everywhere. + - urxvt will now try tic -x first and only fall back to tic without -x + when tic -x fails. + - fix urclock not erasing the old date on the clock face, causing + overdraw, plus a host of other small fixes and improvements. + - shave off over 1K of code size from urclock by replacing the sine table + with a slightly less accurate fixed point approximation. + - do not specify indentation with =over in pod, this is no longer + needed with semi-modern pod tools and gives the formatter more + stylistic freedom. + - background extension did not set the "size-sensitive" flag + when repeat mode wasn't normal. + - extensions are now subjected to "use strict 'subs'". + - avoid crashing when xft successfully opens a font but then somehow + can't lock the face. + - locale_decode/encode api methods now pass through undef unchanged. + - fix undefined behaviour in the perl hook function, as diagnosed by clang. + +9.26 Fri May 14 19:14:14 CEST 2021 + - ev_iouring.c was wrongly required during compilation, and wrongly + not packaged. + +9.25 Fri May 14 15:51:36 CEST 2021 + - for the 17.5th anniversary, and because many distributions seem to + remove rxvt in favour of urxvt, this release resurrects rclock as + urclock. + - add support for systemd socket-based activation - debian bug #917105, + freebsd bug #234276. + - do not destruct perl on exit anymore: this might fail for a variety of + reasons, and takes unnecessary time. + - remove any macros from urxvtperl manpage(s), should fix debian + bug 858385. + - the old bg image resources are now provided by the background + extension, and perl is thus required for bg image support. No + configuration change is needed: urxvt autoloads the background + ext if any bg image resource/option is present (for OSC sequences to + work you need to enable it explicitly). The old bg image + resources are also now deprecated; users are encouraged to + switch to the new bg image interface (see man urxvt-background). + - confirm-paste now checks for any ctlchars, not just newlines. + - searchable scrollback will now ignore bracketed paste mode sequences + (prompted by Daniel Gröber's patch). + - drop ISO 2022 locale support. ISO 2022 encodings are not supported in + POSIX locales and clash with vt100 charset emulation (the luit + program can be used as a substitute). + - perl didn't parse rgba colours specified as an array correctly, + only allowing 0 and 100% intensity for each component (this affected + fill and tint). + - when iterating over resources, urxvt will now try to properly handle + multipart resources (such as "*background.expr"), for the benefit + of autoloading perl extensions. + - ESC G (query rxvt graphics mode) has been disabled due to security + implications. The rxvt graphics mode was removed in rxvt-unicode 1.5, + and no programs relying on being able to query the mode are known. + - work around API change breakage in perl 5.28, based on a patch by + Roman Bogorodskiy. + - improved security: rob nation's (obsolete) graphics mode queries + no longer reply with linefeed in secure/default mode. + - ISO 8613-3 direct colour SGR sequences (patch by Fengguang Wu). + - xterm focus reporting mode (patch by Daniel Hahler). + - xterm SGR mouse mode. + - implement DECRQM. Patch by Přemysl Eric Janouch. + - add missing color index parameter to OSC 4 response. Patch + by Přemysl Eric Janouch. + - in some window managers, if smart resize was enabled, urxvt + erroneously moved the window on font change - awesome bug + #532, arch linux bug ##34807 (patch by Uli Schlachter). + - fix urxvtd crash when using a background expression. + - properly restore colors when using fading and reverse video + is enabled while urxvt is focused and then disabled while it + is not focused, or vice versa (patch by Daniel Hahler). + - fix high memory usage when an extension repeatedly hides and + shows an overlay (reported by Marcel Lautenbach). + - expose priv_modes member and constants to perl extensions + (patch by Rastislav Barlik). + - fix a whole slew of const sillyness, unfortunately forced upon + us by ISO C++. + - update to libecb 0x00010006. + - disable all thread support in ecb.h as we presumably don't need it. + - slightly improve Makefile source dependencies. + - work around bugs in newer Pod::Xhtml versions (flags incorrect formatting codes + in xhtml/html sections but does not interpret correct ones). + +9.22 Sat Jan 23 21:07:33 CET 2016 + - NOTICE: this release updates terminfo. + - add terminfo capabilities for various ctrl and shift-ctrl key variants + (patch by Sebastian Schmidt). + - fix longstanding core font encoding bug where some character + ranges could not be mapped from unicode to the font: affected + encodings are big5, gb2312, iso8859-8 (hebrew), jis0201 and + ksc5601 (reported by Mikachu). + - fix crash when the number of columns is 1 and a 0 width character is inserted + (reported by Kuang-che Wu). + - fix a crash when parsing an invalid color specification (reported by Kuang-che Wu). + - fix a buffer overflow in font name parser (reported by Kuang-che Wu). + - do not start blinking cursor if the window is unfocused (reported by + Devin J. Pohly). + - change the width of underline and i-beam cursor to 2 pixels (based on + a patch by Omar Sandoval). + - add pointerShape resource to change the mouse pointer shape + (based on a patch by Brian Watson). + - a keysym resource for a key which is already bound to an + action now properly rebinds the key. + - do not report mouse motion events if Shift is active (patch by Daniel Hahler). + - put the alpha component last in responses to OSC color queries + (patch by Benjamin Herr). + - the key_press hook is now invoked before processing the + event, as documented. This change was done in 9.21 but not + announced and fixes debian bugs #511377, #531751 and red hat + bug #1105069. Note that this change breaks a few scripts, + such as mark-yank-urls, which rely on the previous buggy + behaviour that urxvt processes the event (in particular + keysym bindings) before invoking the hook. + - the tabbed extension now properly refreshes the active tab + on a key press when the mouse pointer is outside the terminal + window. + - add 'lookup_keysym' perl method to lookup the action bound + to a key combination. + - a key combination bound to 'matcher:select' can now be used + to cycle through the matches in matcher. + - change perl integer accessors (->width et al.) into mutators. + - this version has ben verified to work with perl 5.8.3. + +9.21 Wed Dec 31 14:50:03 CET 2014 + - the "moa redraw 8-bit british vintage colour management" release. + - NOTICE: this release updates terminfo. + - fix pixel droppings on overdraw when a secondary core font has the + same height but different ascent. + - implement cvvis in terminfo as blinking cursor, to distinguish it + from cnorm (emacs uses cvvis which is commonly a blinking cursor). + - when xft support was compiled in, colour queries erroneously returned + premultiplied values, this also affected internal queries, for example + when calculating faded colour. alpha is now divided out when possible, + which is more correct but loses colour resolution. + - add DECSCUSR xterm extension to set the cursor to a vertical bar. + - add 'extension:string' action, and associated on_action perl + hook, for keysym resources that invokes actions provided by + perl extensions. The 'perl:string' action and + on_user_command hook are deprecated but still supported. + - add 'builtin-string' action for keysym resources that restores string + mappings for keys that have predefined actions in urxvt. + - add -k option to urxvtc for killing the daemon process. + - document urxvtd's -e/--eval option that was implemented in 9.16, + but not documented. + - add -dockapp option to make the wm treat urxvt as a dockapp. + - add -mc option and multiClickTime resource to set the maximum time + between multi-click select events (patch by Joe Peterson). + - new 'eval' extension to evaluate arbitrary perl code with keysym + bindings. The extension also provides methods that implement basic + actions, such as pasting selections and scrolling. + - the macosx-clipboard and macosx-clipboard-native extensions have been removed. + - kuake extension now uses the kuake.hotkey resource to specify the hotkey. + - new 'matcher:select' mode of matcher to iterate over the matches with the keyboard. + - the 'matcher:list' feature of matcher now honours the launcher + associated to a matched pattern. + - speed-up matcher underlining on very long lines (reported by Edward Z. Yang). + - fix up/down commands of searchable-scrollback so that they always move + to the previous/next logical line with a match, if any. + - searchable-scrollback resource has been deprecated (use keysym instead). + - extension parameter passing is deprecated (use resource mechanism instead). + - upgrade to GPLv3 (see COPYING). + - compile out of the box on Solaris 10, again. + - fix height and position of the stippled area in next scrollbar (patch + by Thomas Otto). + - fix off-by-one bug causing the iso14755 window not to jump out of the + way properly. + - fix crash that may happen if a lib to which urxvt is linked to calls setenv. + - fix memory leak in special_{encode,decode} perl methods. + - fix refresh bug that occurs when reverse video is set on a cell + containing a space and with the same bg and fg colour, red hat bug + #830236. + - fix crash that may happen if an x error is received after a terminal + window/popup has been destroyed already. + - removed superfluous 0 digit from sgr terminfo sequence. + - greatly improve colour allocation on colour-starved pseudocolour + displays to avoid read-write cells instead of simply failing + (this is only relevant for antique 8bpp frame buffers). + - do not free fade colours when not doing fading (this is likely + only relevant for antique 8bpp frame buffers). + - do not specialcase 2 or 4 colour visuals, leading to + simpler and actually more correct code. + - hopefully no longer leak colours on !truecolour visuals. + - use consistent method names (scr_recolour => scr_recolor). + - use simpler (but slightly less bogus) formula for nearest + colour choice (this is likely only relevant for antique 8bpp + frame buffers). + - remove fallback behaviour when initialising colours - the + behaviour was inconsistent between startup vs. later and + was only effective when valid colours couldn't be allocated. + +9.20 Sat Apr 26 16:22:27 CEST 2014 + - (libptytty) fix bug that prevented urxvtd from writing utmp + entries when using --fork (reported by Ryan Kavanagh). + - security bugfix: window property values could be queried even + in secure mode (reported by Conor McCarthy). + - fix build when perl is enabled and fading is disabled. + - fix regression that broke continuous scrolling when pressing + and holding the scrollbar up or down button, gentoo bug #493992. + - increase the maximum length of a command sequence to 32k bytes, + to allow longer OSC sequences (previous limit was 2k). + - new Ctrl-Meta-c and Ctrl-Meta-v bindings to interact with + the CLIPBOARD selection. + - new extension: selection-to-clipboard. + - the extensions macosx-clipboard and macosx-clipboard-native + are deprecated and will be removed in the next release. + Support for the clipboard on OS X can be more generally + enabled by setting the XQuartz preference to sync the OS X + pasteboard and the X11 clipboard. + +9.19 Sun Oct 27 17:16:07 CET 2013 + - work around perl 5.18.0 breakage in tabbed extension + (reported by Karol Blazewicz) and in pod (Dominic Hargreaves). + - fix regression that caused the double-click word selection to + erroneously include a tab on the left of the selected word. + - implement FOCUS variable and focus_fade function in background + expression, to allow focus-sensitive background images. - add support for the set cursor style (DECSCUSR) control function. - honour cursorColor also when the cursor style is underline. + - export some Color_xxx constants to Perl. 9.18 Sun Mar 24 15:33:35 CET 2013 - fix regression that caused artifacts on resize. @@ -40,7 +388,7 @@ 9.17 Fri Mar 1 13:46:08 CET 2013 - add shade operator in background perl extension. - avoid starting or ending the selection in the middle of wide - characters to avoid artifacts (reproted by Tiago Resende). + characters to avoid artifacts (reported by Tiago Resende). - fix artifacts that may occur if the character in the cursor cell has width > 1 (reported by Tiago Resende). - fix regression that causes artifacts on scrolling if