summaryrefslogtreecommitdiffstats
path: root/grid-view.c
AgeCommit message (Collapse)Author
2022-09-28Add a -T flag to capture-pane to stop at the last used cell instead ofnicm
the full width. Restore the previous behaviour by making it default to off unless -J is used (the only time it matters). Fixes mosh unit tests; GitHub issue 3339.
2022-07-06Support hyperlinks with capture-pane -e and add a mouse_hyperlinknicm
format, GitHub issue 3247 from Jeff Chiang.
2020-06-02Move the code to set up a padding cell into grid.c.nicm
2019-08-16grid_view_delete_cells does need to clear, GitHub issue 1871.nicm
2019-07-16Fix grid clear code to correctly clear with the default backgroundnicm
colour rather than ending up with the used count higher than the total size, GitHub issue 1829.
2018-07-04Add accessors for grid linedata member, for some future work. From Dannicm
Aloni.
2017-08-30Instead of overloading the line clear function to mean free ifnicm
background is default (8), introduce an explicit free function and use it where a free alone is needed. Likewise, use memmove directly rather than grid_move_lines where it makes sense. Based on a memory leak fix by Dan Aloni in GitHub issue 1051.
2017-05-12Scrolling needs to use background colour.nicm
2017-02-16Handle insert cells when cursor at edge of screen correctly, and do anicm
full flush before insert.
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).
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-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-01-19I no longer use my SourceForge address so replace it.nicm
2015-11-13Two spacing and spelling nits.nicm
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-01-06Revert to r1.16 since this is still clearly broken and I can't see hownicm
right now.
2014-12-01Another fix for insertion from Balazs Kezes. On insertion, size the linenicm
just enough for the inserted characters.
2014-11-12Restore change in r1.17 but add checks to prevent the line lengthnicm
overflowing, from Balazs Kezes.
2014-11-10Revert r1.17 as it breaks inserting in some cases.nicm
2014-11-08Two improvements to reflow from Balazs Kezes:nicm
- Don't extend the line to full width on insert/delete character which means leaves extra spaces when reflowing. - Only mark a line wrapped when the cursor actually goes off the end, not on newlines which can be used for positioning.
2014-04-17Some more long lines.nicm
2014-03-31GRID_DEBUG is no longer needed.nicm
2013-03-25Preserve trailing spaces with capture-pane -J, from George Nachman.Nicholas Marriott
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-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-01-29Enforce history-limit option when clearing the screen, memory leakNicholas Marriott
spotted by R I Pienaar.
2011-01-25When clearing the entire screen, clear lines that are used into theNicholas Marriott
history like xterm does. Requested ages ago by someone I've forgotten.
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-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.
2009-07-13Support "alternate screen" mode (terminfo smcup/rmcup) typically used by fullNicholas Marriott
screen interactive programs to preserve the screen contents. When activated, it saves a copy of the visible grid and disables scrolling into and resizing out of the history; when deactivated the visible data is restored and the history reenabled.
2009-07-09Change inserting and deleting lines inside the scroll region to properly clearNicholas Marriott
lines that should be inserted/deleted but not moved. Fixes problems with mutt reported by Brian Lewis, thanks.
2009-07-09Tidy by removing unused argument from grid_view_{insert,delete}_line_regionNicholas Marriott
functions (currently don't fully work, this is to make fix easier).
2009-06-29Fix two errors with character/line insertion and deletion: the maximum numberNicholas Marriott
of characters which may be inserted or deleted is the screen width, not one less (and similarly for lines and height); and if characters or lines are deleted by moving the ones that follow, the space at the end needs to be cleared. This appears to solve long-standing redraw issues most visible when using the force-width option then scrolling in view(1) or unwrapping lines in emacs.
2009-06-24Add a dedicated function to convert a line into a string and use it to ↵Nicholas Marriott
simplify the search window function.
2009-06-01Import tmux, a terminal multiplexor allowing (among other things) a singleNicholas Marriott
terminal to be switched between several different windows and programs displayed on one terminal be detached from one terminal and moved to another. ok deraadt pirofti