aboutsummaryrefslogtreecommitdiff
path: root/screen-write.c
Commit message (Collapse)AuthorAge
* Sync OpenBSD patchset 1055:Tiago Cunha2012-03-18
| | | | | | | Revert screen-write.c r1.54 and fix the bug properly. After wrapping a line in a pane, the cursor needs to move to the next line unless it scrolled.
* Sync OpenBSD patchset 1050:Tiago Cunha2012-03-18
| | | | | | Store context off before moving the cursor when wrapping, to fix long standing bug drawing over the status line.
* Sync OpenBSD patchset 1037:Tiago Cunha2012-03-07
| | | | | | | | | Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if this is used and the application has requested bracketed pastes, then tmux surrounds the pasted text by \033[200~ and \033[201~. Applications like vim can (apparently) use this to avoid, for example, indenting the text. From Ailin Nemui.
* Sync OpenBSD patchset 1004:Tiago Cunha2012-01-21
| | | | | | Add a -R flag to send-keys to reset the terminal. Written ages ago and Suggested by someone, I forget who.
* Sync OpenBSD patchset 969:Tiago Cunha2011-10-23
| | | | | | Support for \e[3J to clear the history. Also send the corresponding terminfo code (E3) before locking.
* Expand the Id keyword. Tiago Cunha2011-07-09
|
* Sync OpenBSD patchset 914:Tiago Cunha2011-05-22
| | | | | | | | | | Support setting the xterm clipboard when copying from copy mode using the xterm escape sequence for the purpose (if xterm is configured to allow it). Written by and much discussed Ailin Nemui, guidance on xterm/termcap/terminfo from Thomas Dickey.
* |PatchSet 890Nicholas Marriott2011-04-18
| | | | | | | | | | |Date: 2011/04/17 20:21:19 |Author: nicm |Branch: HEAD |Tag: (none) |Log: |Fix character position check, from Tiago Resende.
* Fix to properly wrap wide characters.Micah Cowan2011-03-24
|
* Sync OpenBSD patchset 866:Tiago Cunha2011-03-19
| | | | | | | | | | | | Support passing through escape sequences to the underlying terminal by using DCS with a "tmux;" prefix. Escape characters in the sequences must be doubled. For example: $ printf '\033Ptmux;\033\033]12;red\007\033\\' Will pass \033]12;red\007 to the terminal (and change the cursor colour in xterm). From Kevin Goodsell.
* Sync OpenBSD patchset 853:Tiago Cunha2011-02-15
| | | | | | When clearing the entire screen, clear lines that are used into the history like xterm does. Requested ages ago by someone I've forgotten.
* Sync OpenBSD patchset 828:Tiago Cunha2011-01-07
| | | | | | | | | | | | Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262 and supports larger terminals than the older way. If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all UTF-8 terminals. The option defaults to on if LANG etc are set in the same manner as the utf8 option. With help and based on code from hsim at gmx.li.
* Sync OpenBSD patchset 812:Tiago Cunha2010-12-30
| | | | | | Support all four of the xterm mouse modes. Based on a diff from hsim at gmx.li.
* Ensure we overwrite wide characters properly, and never overwrite characters ↵Micah Cowan2010-06-16
| | | | | | | we weren't overlapping. Fixes "disappearing wide characters" glitch.
* Merge output (more) and copy modes into one single mode (called copy).Micah Cowan2010-04-05
|
* Sync OpenBSD patchset 581:Tiago Cunha2009-12-04
| | | | | | | Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last time now I've configured emacs to make them displayed in really annoying colours...
* Sync OpenBSD patchset 567:Tiago Cunha2009-11-28
| | | | | | Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to the rest to reduce lint output.
* Sync OpenBSD patchset 547:Tiago Cunha2009-11-19
| | | | | | | | | Cleanup by moving various (mostly horrible) little bits handling UTF-8 grid 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.
* Sync OpenBSD patchset 542:Tiago Cunha2009-11-18
| | | | | A screen can be one cell wide; don't crash if that is the case.
* Sync OpenBSD patchset 529:Tiago Cunha2009-11-13
| | | | | | | | | | Add an explicit zero-length check for UTF-8 input data, prompted by a report from parfait via deraadt. While here, add a statement to set the width when filling with _s if not enough space (width should never be high enough at the moment anyway), and wrap some long lines.
* Sync OpenBSD patchset 421:Tiago Cunha2009-10-23
| | | | | | | | | | | | | | | Try to reduce the UTF-8 mess. Get rid of passing around u_char[4]s and define a struct utf8_data which has character data, size (sequence length) and width. Move UTF-8 character collection into two functions utf8_open/utf8_append in utf8.c which fill in this struct and use these functions from input.c and the various functions in screen-write.c. Space for rather more data than is necessary for one UTF-8 sequence is in the utf8_data struct because screen_write_copy is still nasty and needs to reinject the character (after combining) into screen_write_cell.
* Sync OpenBSD patchset 420:Tiago Cunha2009-10-23
| | | | | | | | | | | | | UTF-8 combined character fixes. Thai can have treble combinations (1 x width=1 then 2 x width=0) so bump the UTF-8 cell data size to 9 and alter the code to allow this. Also break off the combining code into a separate function, handle any further combining beyond the buffer size by replacing the character with _s, and when redrawing the UTF-8 character don't assume the first part has just been printed, redraw the entire line.
* Sync OpenBSD patchset 419:Tiago Cunha2009-10-23
| | | | | | Move the check for whether to force a line wrapper lower down into the tty code where it has access to the tty width, which is what should have been checked.
* Sync OpenBSD patchset 416:Tiago Cunha2009-10-23
| | | | | | | | Always move the cursor position on !xenl terminals, since there is no invisible last cursor position. Also nuke an unused variable.
* Sync OpenBSD patchset 415:Tiago Cunha2009-10-23
| | | | | | Don't print wide characters at screen width - 1. Matches uterm behaviour and is probably a better idea anyway.
* Sync OpenBSD patchset 414:Tiago Cunha2009-10-23
| | | | | | | | Instead of having a complicated check to see if the cursor is in the last position to avoid an explicit wrap, actually move it there. Some UTF-8 fixes to come.
* Sync OpenBSD patchset 401:Tiago Cunha2009-10-15
| | | | | | | | | | | | | | When drawing lines that have wrapped naturally, don't force a newline but permit them to wrap naturally again. This allows terminals that use this to guess where lines start and end for eg mouse selecting (like xterm) to work correctly. This was another long-standing issue raised by several people over the last while. Thanks to martynas@ for much testing. This was not trivial to get right so bringing it in for wider testing and adn to fix any further glitches in-tree.
* Sync OpenBSD patchset 400:Tiago Cunha2009-10-15
| | | | | | | | | | When backspace is received at the beginning of a line and the previous line was wrapped, move the cursor back up to the end of the previous line. Another one of the forgotten persons requested this quite a while ago (I need to start noting names on todo items...) when it was quite hard to implement. Now it is easy and I don't see it can do any harm, so hey presto...
* Sync OpenBSD patchset 397:Tiago Cunha2009-10-15
| | | | | Wrap a couple of long lines.
* Sync OpenBSD patchset 394:Tiago Cunha2009-10-15
| | | | | | Permit attributes to be turned off in #[] by prefixing with "no", for example "noblink".
* Sync OpenBSD patchset 328:Tiago Cunha2009-09-15
| | | | | | | | | | Stick line length to what is actually used (removing an optimization that allowed it to be bigger), and use clear line/EOL sequences rather than spaces in copy/scroll mode. This fixes xterm copy/paste from tmux which treats trailing spaces differently from clearing a line with the escape sequences. Reported by martynas@.
* Sync OpenBSD patchset 322:Tiago Cunha2009-09-11
| | | | | | Permit options such as status-bg to be configured using the entire 256 colour palette by setting "colour0" to "colour255".
* Sync OpenBSD patchset 317:Tiago Cunha2009-09-07
| | | | | | Permit embedded colour and attributes in status-left and status-right using new #[] special characters, for example #[fg=red,bg=blue,blink].
* Sync OpenBSD patchset 285:Tiago Cunha2009-08-21
| | | | | | Ugh, committed the wrong version of this change and got both solutions rather than just the second. Remove unused assignment.
* Sync OpenBSD patchset 282:Tiago Cunha2009-08-21
| | | | | | | | A few trivial optimisations: no need to check for zero size if calling buffer_ensure in buffer.c; expand grid lines by a greater increase than one each time; and don't read UTF-8 data unless it actually needs to be checked when overwriting a cell.
* Sync OpenBSD patchset 252:Tiago Cunha2009-08-14
| | | | | | | | | It was originally intended that scroll mode would show content that was currently off-screen due to resize, but somewhere along the way this got lost. Restore this behaviour to scroll mode by fixing screen_write_copy to read up to the saved line length rather than the current screen width. Copy mode remains unaltered for now.
* Sync OpenBSD patchset 227:Tiago Cunha2009-08-09
| | | | | | | Add a flags member to the grid_line struct and use it to differentiate lines wrapped at the screen edge from those terminated by a newline. Then use this when copying to combine wrapped lines together into one.
* Sync OpenBSD patchset 207:Tiago Cunha2009-07-30
| | | | | Plug some memory leaks.
* Sync OpenBSD patchset 186:Tiago Cunha2009-07-28
| | | | | Draw UTF-8 characters under the selection correctly.
* Sync OpenBSD patchset 162:Tiago Cunha2009-07-23
| | | | | | More tty code tidying: move the saved cursor/region position (from before the screen was updated) out of struct screen and into struct tty_ctx.
* Sync OpenBSD patchset 160:Tiago Cunha2009-07-23
| | | | | | | enum tty_cmd is only used as an index into the array of command function pointers, so remove it and use the function pointers directly to represent themselves.
* Sync OpenBSD patchset 159:Tiago Cunha2009-07-22
| | | | | | There are relatively few arguments to tty_cmd_* functions now, so tidy them up by using a struct rather than hiding everything with varargs.
* Sync OpenBSD patchset 158:Tiago Cunha2009-07-22
| | | | | | tty_cmd_raw is only used once, for raw UTF-8 output, so rename it to tty_cmd_utf8character and eliminate the size argument.
* The scroll region cannot be one line only, ignore attempts to make it so.Nicholas Marriott2009-07-15
|
* Cursor up and down should be limited by the scroll region (cuu should stop atNicholas Marriott2009-07-09
| | | | | | the scroll region top if starting from below it and cud stop at the bottom if starting from above). Fixes another vttest test.
* Change inserting and deleting lines inside the scroll region to properly clearNicholas Marriott2009-07-09
| | | | | | lines that should be inserted/deleted but not moved. Fixes problems with mutt reported by Brian Lewis, thanks.
* Tidy by removing unused argument from grid_view_{insert,delete}_line_regionNicholas Marriott2009-07-09
| | | | | functions (currently don't fully work, this is to make fix easier).
* Fix two errors with character/line insertion and deletion: the maximum numberNicholas Marriott2009-07-01
| | | | | | | | | | | 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.
* Whoops, revert.Nicholas Marriott2009-06-26
|
* Remove some unused function declarations; no binary change.Nicholas Marriott2009-06-26
|