-dpb
a rare codesize + time optimisation
add can_compose flag tor xvt_font, to indicate whether the font handles glyph composiiton (might go away) allow rxvt_composite.expand to work with whcar_t and text_t as output, will likely change.
Require C++11
*** empty log message ***
Account for focus fading when enabling/disabling reverse video. Patch by Daniel Hahler.
24-bit direct color support (patch by Fengguang Wu) Support directly setting RGB fg/bg colors via ISO-8613-3 24-bit ANSI color escapes: ESC[38;2;<r>;<g>;<b>m Select RGB foreground color ESC[48;2;<r>;<g>;<b>m Select RGB background color The killer applications for me are vim in tmux. It'll not only modernize their look and feeling, but also bring more eye friendly color schemes. Very helpful for long time programmers. To avoid memory overheads and keep the patch non-intrusive, it takes the approach to adapt the nearest color in an hidden 6x6x4 (88-color mode) or 7x7x5 (256-color mode) color cube to the new 24-bit RGB color. The pros/cons are: +) least memory footprint (close to 0) comparing to konsole, gnome-terminal etc. real 24-bit arrays +) exact colors and excellent user feelings comparing to xterm, mlterm, etc. approximating to 256 palette +) usable in both the existing 88/256-color modes Most vim GUI color schemes show up the same as gvim in rxvt-unicode's 88-color mode, not to mention the 256-color mode. Typical applications only use one or two dozens of colors at the same time. -) may not be able to show 2+ close 24-bit colors RGB colors close to each other will likely fall into the same slot in the 6x6x4 or 7x7x5 color cube. If necessary, it could be improved effectively by implementing some collision avoidance logic, trying to find empty/eldest slot in the +1/-1 r/g/b indices (ie. 3-8 neighbors). The CPU overheads of map_rgb24_color() look ignorable: I feel no perceptible slow down when doing vim operations in 24-bit color mode. A micro benchmark running a test script from [1]: % time (for i in {1..100}; do 24-bit-color.sh; done) vanilla rxvt-unicode ==================== 2.42s user 1.88s system 31% cpu 13.555 total 2.59s user 1.74s system 31% cpu 13.615 total 2.46s user 1.85s system 31% cpu 13.631 total THIS PATCH (adapt hidden color cube to 24-bit) ============================================== 2.33s user 1.97s system 31% cpu 13.598 total 2.46s user 1.89s system 31% cpu 13.613 total 2.51s user 1.82s system 31% cpu 13.556 total https://github.com/spudowiar/rxvt-unicode (real 24-bit array) ============================================================= 2.61s user 1.75s system 31% cpu 13.721 total 2.48s user 1.82s system 31% cpu 13.566 total 2.60s user 1.76s system 31% cpu 13.631 total USE_256_COLORS is defined in all the above rxvt-unicode builds. References: [1] True Colour (16 million colours) support in various terminal applications and terminals https://gist.github.com/XVilka/8346728 [2] https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
Update copyright years.
Fix crash when the number of columns is 1 and a 0 width character is inserted. In scr_add_lines, in the case when a 0 width character must be inserted in the first column of the current row, the calculation of the previous character (i.e., the last character of the previous row) is bogus. In particular, if the number of columns is 1, the 'tp' pointer points to either the first or third byte (depending on the size of text_t) of the rendition of the previous character, which is therefore corrupted by the assignment '*tp = n'. This triggers a crash if the font id in the rendition gets changed to the id of a font which is not loaded. Bug reported by Kuang-che Wu.
Change the width of underline and i-beam cursor to 2 pixels, based on a patch by Omar Sandoval.
*** empty log message ***
*** empty log message ***
need to check for both win and state
fix wrong check for scrollbar being active
Remove optimization in refresh for cells containing a space. The recent change introduced a regression and, while it can be fixed, it is not worth the risk.
Fix optimization in refresh for cells containing a space. scr_refresh skips refresh for cells containing a space and whose rendition attributes defining the bg color have not changed. However, the computation of such attributes erroneously assumes that, if reverse video is set, the bg color is given by the fg color, which is not true in the case where bg == fg. This causes cells with a space and bg == fg not being refreshed also when the reverse video attribute has changed, as observed in red hat bug #830236. Fix the bug by amending the attributes test so that the refresh of such a cell is performed if the reverse video attribute has changed.
Add DECSCUSR xterm extension to set the cursor to a vertical bar.
GPLv3
Simplify and correct lerp expression.
Fix regression in 2013-02-16 change. Do not include a leading partial wide char in the selection, as otherwise a leading tab is erroneously included in the case of a double-click word selection if pastableTabs is enabled.
Revert 2013-03-30 change.
Fix bug in core double-click word selection. selection_delimit_word does not account for (left) delimiters with width > 1. In such a case, it sets the starting position of the selection to the second column of the delimiter (thereby including the delimiter in the selection) rather than to the first column of the character next to it. This bug was masked before by 'selection_make' but a recent fix to the selection code revealed it.
Simplify.
if it breaks, the pieces will be sharp
Cleanup the code to save the current cursor coordinates when needed.
Honour cursorColor also when the cursor style is underline.
Simplify. ccol1 already accounts for Color_cursor if it is set.
Remove obsolete comment.
Fix regression in 2013-01-13 change. Do not use copy_line for drawn_buf since the 'l' field of lines in drawn_buf is always 0.
*** empty log message ***
When rendering the cursor, modify also the rendition of the filler chars that belong to the char in the cursor cell. This fixes a rendering bug that occurs if the character in the cursor cell has width > 1 and both it and the character to the right have the careful bit set and the same rendition. Bug reported by Tiago Resende.
Factor the code to copy a line into a method.
more fixes
more fixes
fix for secondary screen
Fix bug introduced in 2012-05-28 change. If no scrollback exists and the terminal is resized, the lengths of the lines copied from the old screen buffer the new one are not properly initialized, causing artifacts on scrolling if saveLines is 0 (due to an optimization in scr_scroll_text). Bug reported by Bert Münnich.
Make code needed to set the bg pixmap conditional to HAVE_IMG.
Fix longstanding regression in handling of the scrollbar trough color for rxvt style, introduced in 2008-01-15 change.
*** empty log message ***
*** empty log message ***
Fix crash on resize.
add emman.h/c and use it for scrollback
Switch background.C to rxvtimg api (xrender is now required).
some #ifdef => #if changes
fix crash
Fix typos.
add some ecb_hot/ecb_cold
remove references to salloc.h
use one big chunk for all line_t's and rend/text data, get rid fo salloc
Fix height mismatch between active and inactive cursor when lineSpace is non zero, patch by Stanislav Seletskiy.
*** empty log message ***
*** empty log message ***
Store the size of the vt window into two new members vt_width/height and keep the maximum size in width/height, so that the $term->width/height accessors return the same value as in pre 9.14.
Remove unused variable.
Remove non-working code in scr_dump.
Fix typo.
Inline selection_check calls with argument 2 or 3.
Remove useless selection checks in scr_erase_screen. The check below the switch already clears the selection if it overlaps with the screen area to be erased. Moreover, the selection check used in the 'clear screen before the cursor' case was incorrect as it cleared the selection even when outside of the relevant screen area.
Undo part of previous commit that was not supposed to be checked-in.
Use bool for boolean variable.
Use bool for boolean variables.
*** empty log message ***
do not move the selection when scrolling up and the selection is outside the scrolling region.
Revert 2011-11-02 change.
Remove dead code.
Unify selection fixup in scr_scroll_text. Fixes selection update when scrolling up and the selection is outside the scrolling region. Before this change urxvt would wrongly scroll the selection in this case.
*** empty log message ***
optimisation||| effz|||
*** empty log message ***
Cosmetics, rename enum constants.
ugh
ugh
ugh
Use rxvt_temp_buf to allocate the temporary line objects needed in scr_scroll_text rather than allocating more space in row_buf.
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
Sanitise the argument of SD / SU sequences so that it never exceeds the size of the scrolling region. Fixes a possible crash when the argument is big enough, red hat bug #711137.
Migrate to libecb.
Remove some comments.
Fix some comments.
If the specified property of a SelectionRequest event is None, use the target atom as the property name for the reply, as suggested in ICCCM 2.2. Patch by Marcin Cieslak.
Change type of 'parent' from array of Window to Window as all the elements except the first are unused.
Disable the overlay in scr_reset as its offsets become invalid after calling this function. Fixes crash when the window is resized and the overlay is active.
Move into the selection object and generalize the handling of a selection request of primary when the owner is an urxvt terminal that belongs to the same process of the requestor.
*** empty log message ***
the pcg is now the schmorp
refactor
Simplify.
Do not allow more than one concurrent selection request and delete the ongoing selection request, if any, on destruction of the terminal, to avoid a use-after-free crash.
Factor the code to request a selection property into a new toolkit-level object.
Set incr_buf to 0 after freeing it in the incr timer callback. Fixes a possible crash if the INCR transfer process for a selection property timeouts and at least one chunk is received.
Remove useless code.
Get the selection data in a single pass by specifying 2^31 - 1 as maximum length.
Use true/false rather than True/False when the type is bool.
Simplify.
Cosmetic, rename background pixmap flags.
Remove bgPixmap_t struct, move background pixmap handling in rxvt_term.
Merge bgPixmap_t::apply in rxvt_term::scr_recolour.
Fix indent.
Use rxvt_realloc instead of realloc.
Merge linefeed handling for the last line of the selection into the loop.
Fix error in loop condition that prevented tabs[0] from being initialized.
Simplify.
Do not append a linefeed to the selection buffer after reading the first line if selection.beg.col == ncol (i.e., no portion of the first line is highlighted).
Cosmetic, rename variable.
Add const qualifier where appropriate.
Fix typo.
*** empty log message ***
*** empty log message ***
*** empty log message ***
Tune last change to insertion of a character when DECAWM is not set; kill rather than truncate wide char spanning over the insert position.
*** empty log message ***
*** empty log message ***
Change scr_add_lines to remove characters from the right when there are not enough columns to insert a character and DECAWM mode is not set, rather than looping endlessly.
Fix scr_erase_screen to work properly when view_start != 0.
Fix typos.
Add on_tt_paste perl hook and tt_paste perl binding.
Remove unused function.
Fix style.
*** empty log message ***
*** empty log message ***
Disable colorRV resource. Make OSC 17 apply to highlightColor. Make highlightColor apply also to selected cells with reverse video. Add highlightTextColor resource to change the foreground colour of highlighted characters.
Fix typo.
Replace leading tabs with spaces, patch by Mikachu.
d'oh
revert fontidx stupidity
*** empty log message ***
Remove TODO.
Add support for copying to clipboard (based on patch by Dana Jansens).
Remove useless assignments.
Add on_bell perl hook that is called on receipt of a bell character.
*** empty log message ***
*** empty log message ***
*** empty log message ***
minor overlay refactoring, syntax changes
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
src/background.C
*** empty log message ***
implement scr_kill_char
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
refactoring
*** empty log message ***
Replace references to nsaved with top_row.
Make scrollbar_{resize,mapping,show} methods of scrollBar_t.
Simplify.
fixed scr_recolour to properly refresh screen when bgPixmap is on but color is still plain
Add enum for scrollbar states and remove methods/macros to set/check it.
Always compile in plain style scrollbar.
*** empty log message ***
implement bracketed paste mode (xterm private mode 2004).
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
you should do it, too, and less sloppily than me
*** empty log message ***
*** empty log message ***
*** empty log message ***
Cosmetics.
first rough cut at libev integration
*** empty log message ***
Remove trailing whitespace.
Nuke pixel_position.
improved flickering on move/resize with transparent background
clean up some code
sizeof(char) is 1.
Make some inline functions static.
fixed segfault on resize by getting rid of touch() in apply(). rearranged redraw calls on configure notify to be sane
refactored check_parents into bgPixmap.render(), started cleaning up am_transparent stuff
Remove unneeded include.
clear rvideo mode differently to avoid race
updated comments explaining pixmap geometry string; added differentiation between HAVE_AFTERIMAGE and XPM_BACKGROUND; began moving background handling functions under bgPixmap_t - work in progress
TRANSPARENT => ENABLE_TRANSPARENCY rename to avoid symbol conflict on solaris..
*** empty log message ***
remove OPTION macro
*** empty log message ***
misc fixes inspired by an idiot
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
*** empty log message ***
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.