summaryrefslogtreecommitdiffstats
path: root/grid.c
AgeCommit message (Collapse)Author
2017-04-19Style nits and a missing cast.nicm
2017-03-22Add support for the strikethrough attribute (SGR 9), using the new smxxnicm
terminfo capability. This means there are now nine attribute bits, so anything above 0xff uses an extended cell.
2017-03-07If moving cells outside the current used count, update it.nicm
2017-02-22Minor bits: fix an array size, add comment, make grid_cell_entry static.nicm
2017-02-13Collected cells may still need to be extended for RGB colours.nicm
2017-02-08Collect sequences of printable ASCII characters and process themnicm
together instead of handling them one by one. This is significantly faster. Sequences are terminated when we reach the end of the line, fill the internal buffer, or a different character is seen by the input parser (an escape sequence, or UTF-8). Rather than writing collected sequences out immediately, hold them until it is necessary (another screen modification, or we consume all available data). This means we can discard changes that would have no effect (for example, lines that would just be scrolled off the screen or cleared). This reduces the total amount of data we write out to the terminal - not important for fast terminals, but a big help with slow (like xterm).
2017-02-08Add a helper to store a cell, and some tidying.nicm
2017-02-08Tweak how much we expand lines by.nicm
2017-02-03Expand lines more aggressively to reduce rate of allocations.nicm
2016-10-18Clear cell entry with grid_default_entry not grid_default_cell.nicm
2016-10-18Make grid_clear_cell set up the entry properly for 256 and RGB cells.nicm
2016-10-13Add support for BCE (background colour erase). This makes various escapenicm
sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank cells using the current background colour rather than the default colour. On modern systems BCE doesn't really have many benefits, but most other terminals now support it, some (lazy) applications rely on it, and it is not hard to include now that we have pane background colours anyway. Mostly written by Sean Haugh.
2016-10-11Add static in window-*.c and move some internal functions out of tmux.h.nicm
2016-10-10Loads more static, except for cmd-*.c and window-*.c.nicm
2016-09-02Remember the number of lines scrolled into the history (versus clearednicm
into the history) and when resizing only use scrolled lines and not cleared lines (which are probably not intended to reappear). From Chaoren Lin.
2016-07-15Don't update cells in each block of data read from a pane immediately,nicm
instead track them as change (dirty) and update them once at the end, saves much time if repeatedly writing the same cell. Also fix comparison of cells being equal in a few places (memcmp is not enough).
2016-01-31Add RGB escape sequences for capture-pane -e.nicm
2016-01-29Support for RGB colour, using the extended cell mechanism to avoidnicm
wasting unnecessary space. The 'Tc' flag must be set in the external TERM entry (using terminal-overrides or a custom terminfo entry), if not tmux will map to the closest of the 256 or 16 colour palettes. Mostly from Suraj N Kurapati, based on a diff originally by someone else.
2016-01-19I no longer use my SourceForge address so replace it.nicm
2015-11-22Don't leak extddata, memset after freeing it, not before. From Patricknicm
Palka.
2015-11-13Long overdue change to the way we store cells in the grid: now, insteadnicm
of storing a full grid_cell with UTF-8 data and everything, store a new type grid_cell_entry. This can either be the cell itself (for ASCII cells), or an offset into an extended array (per line) for UTF-8 data. This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the majority for most users) without the complexity of the shadow array we had before. Grid memory without any UTF-8 is about half. The disadvantage that cells can no longer be modified in place and need to be copied out of the grid and back but it turned out to be lot less complicated than I expected.
2015-11-12grid_put_utf8 is unused, remove it.nicm
2015-09-25Free the history when it is cleared, based on a diff from Carlo Cannas.nicm
2015-09-02Fix indentation of grid_string_cells_fg.nicm
2015-08-24In grid_duplicate_lines, if the line is empty (cellsize == 0) then clearnicm
the destination celldata pointer rather than leaving a stale copy of the source pointer (which may later be freed). Fixes a crash found by Kuang-che Wu.
2015-05-08Remove some stuff that accidentally ended up here from portable, andnicm
remove a little-used debug function.
2015-04-23use reallocarray instead of calloc; avoid the zero before infillderaadt
ok nicm
2014-10-08Add xreallocarray and remove nmemb argument from xrealloc.nicm
2014-10-08Use xrealloc(NULL, n, m) instead of xmalloc(n * m) to get overflownicm
check.
2014-09-17Fix some comments (c -> colour) and join unnecessary line splits.nicm
2014-09-01Various minor style and spacing nits.nicm
2014-04-16Memory leak in error path and unnecessary assignment, from clang.nicm
2014-03-31GRID_DEBUG is no longer needed.nicm
2014-02-14Style nit - no space between function name and bracket.nicm
2014-01-28Allow replacing each of the many sets of separate foo-{fg,bg,attr}nicm
options with a single foo-style option. For example: set -g status-fg yellow set -g status-bg red set -g status-attr blink Becomes: set -g status-style fg=yellow,bg=red,blink The -a flag to set can be used to add to rather than replace a style. So: set -g status-bg red Becomes: set -ag status-style bg=red Currently this is fully backwards compatible (all *-{fg,bg,attr} options remain) but the plan is to deprecate them over time. From Tiago Cunha.
2014-01-15Couple of fixes from cppcheck via Tiago Cunha.nicm
2014-01-09Style and comment fixes from Tiago Cunha.nicm
2013-10-10Trivial style and spacing nits.nicm
2013-10-10Only include actual trailing spaces not unused cells with capturep -J,nicm
from George Nachman.
2013-03-25Allow lastgc to be NULL in grid_string_cells so find-window doesn'tNicholas Marriott
crash, problem reported by eugene everson.
2013-03-22Add -C and -J to capture pane to escape control sequences and to joinNicholas Marriott
wrapped line, based on a diff from George Nachman.
2013-03-21Rework reflow code so it does not do so much allocation which should beNicholas Marriott
faster with large histories.
2013-02-05Automatically reflow wrapped lines when a pane is resized, requested byNicholas Marriott
many over the years and finally implemented by Richard Woodbury.
2013-01-18Rather than having two grids for each pane, one for ASCII and one forNicholas Marriott
UTF-8, collapse the two together. Simplifies the code at the expense of more memory (which can probably be reduced again later).
2012-07-10xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott
2012-05-23Use a predefined structure for not-space cells used to set attributes.Nicholas Marriott
2010-04-06Merge copy mode and output mode, dropping the latter. Idea and code fromNicholas Marriott
Micah Cowan.
2009-12-03Massive spaces->tabs and trailing whitespace cleanup, hopefully for the lastNicholas Marriott
time now I've configured emacs to make them displayed in really annoying colours...
2009-11-18Cleanup by moving various (mostly horrible) little bits handling UTF-8 gridNicholas Marriott
data into functions in a new file, grid-utf8.c, and use sizeof intead of UTF8_DATA. Also nuke trailing whitespace from tmux.1, reminded by jmc.
2009-10-13Move lines into the history when scrolling even if the scroll region is notNicholas Marriott
the entire screen. Allows ircII users to see history, prompted by naddy.