Tiago Cunha
920b9c5872
Sync OpenBSD patchset 189:
...
Change mode key bindings from big switches into a set of tables. Rather than
lumping them all together, split editing keys from those used in choice/more
mode and those for copy/scroll mode.
Tidier and clearer, and the first step towards customisable mode keys.
2009-07-28 22:55:59 +00:00
Tiago Cunha
1880b83c37
Sync OpenBSD patchset 188:
...
Get rid of empty mode_key_free function.
2009-07-28 22:49:26 +00:00
Tiago Cunha
2a146852ef
Sync OpenBSD patchset 185:
...
Change previous-word behavior to move to the beginning of the word (matches
emacs and vi). From Kalle Olavi Niemitalo.
2009-07-28 22:39:29 +00:00
Tiago Cunha
2e4df706f6
Sync OpenBSD patchset 171:
...
Redraw after starting selection to correctly remove any existing selection.
2009-07-23 23:37:14 +00:00
Nicholas Marriott
5ef5bd7c31
Add a "back to indentation" key in copy mode to move the cursor to the first
...
non-whitespace character. ^ with vi and M-m with emacs key bindings. Another
from Kalle Olavi Niemitalo, thanks.
2009-07-14 06:39:25 +00:00
Nicholas Marriott
7f98193beb
Merge three copies of identical code to move the cursor x position into a
...
single function, from Kalle Olavi Niemitalo.
2009-07-14 06:38:32 +00:00
Nicholas Marriott
d8de72ca77
Copy was using the real line length which after resize can be larger than the
...
screen width. When built with -DDEBUG, this made the grid bounds checking code
kill the server. Restrict copying to the actual width.
From Kalle Olavi Niemitalo, thanks.
2009-07-12 17:11:07 +00:00
Nicholas Marriott
d4a143a425
Stop in the right place so all the lines selected are copied. Reported by Kalle
...
Olavi Niemitalo, thanks.
2009-07-12 16:56:56 +00:00
Nicholas Marriott
29ac832cb3
Fix two copy/paste bugs: forbid zero-length buffers to prevent a fatal error
...
when trying to paste them, found by me, and miscalculation of the start/end
causing random fatal errors when copying in copy-mode, reported by sthen.
2009-07-02 16:23:54 +00:00
Nicholas Marriott
143aa718e5
Space trimmage mega-diff.
2009-05-04 17:58:27 +00:00
Nicholas Marriott
9bdba2e84f
Er, i should be j and c should be u.
2009-03-31 15:10:43 +00:00
Nicholas Marriott
b0dc1712ec
UTF8_SIZE.
2009-03-31 12:28:45 +00:00
Nicholas Marriott
aecded5da0
Copy columns correctly.
2009-03-30 21:08:04 +00:00
Nicholas Marriott
fb5a92ff9f
Only need to print this once...
2009-03-30 20:58:25 +00:00
Nicholas Marriott
8a160f2d58
- Unbreak selection colouring.
...
- Get UTF-8 check the right way round...
2009-03-30 20:14:50 +00:00
Nicholas Marriott
e2a7ac4b36
Fix UTF-8 in c&p mode.
2009-03-30 19:57:02 +00:00
Nicholas Marriott
23fef99009
8 -> UTF8_SIZE.
2009-03-29 11:18:28 +00:00
Nicholas Marriott
cf7b384c43
Better UTF-8 support, including combined characters. Unicode data is now stored
...
as UTF-8 in a separate array, the code does a lookup into this every time it
gets to a UTF-8 cell. Zero width characters are just appended onto the UTF-8
data for the previous cell. This also means that almost no bytes extra are
wasted non-Unicode data (yay).
Still some oddities, such as copy mode skips over wide characters in a strange
way, and the code could do with some tidying.
2009-03-28 20:17:29 +00:00
Nicholas Marriott
6c0728fe07
Step 2 of the Grand Plan To Make UTF-8 Better.
...
Split grid into two arrays, one containing grid attributes/flags/colours (keeps
the name grid_cell for now) and a separate with the character data (called
text). The text is stored as a u_short but is treated as a uint64_t elsewhere;
eventually the grid will have two arrays.
I'm not happy with the naming so that might change.
Still need to decide where to go from here. I'm not sure whether to combine
the peek/set functions together, and also whether to continue to treat the
text as a uint64_t (and convert to/from Unicode) or make it a char array
(of size one when UTF-8 disabled, eight when enabled) and keep everything
as UTF-8.
Also since UTF-8 will eventually become an attribute of the grid itself it
might be nice to move all the padding crap into grid.c.
2009-03-28 16:30:05 +00:00
Nicholas Marriott
95c8c049f5
Redo mode keys slightly more cleanly and apply them to command prompt editing. vi or emacs mode is controlled by the session option status-keys.
2009-02-13 21:39:45 +00:00
Nicholas Marriott
2057e666a2
Mouse in copy mode.
2009-01-28 22:00:22 +00:00
Nicholas Marriott
4428987e95
* Better support for at least the most common variant of mouse input: parse it and adjust for different panes. Also support mouse in window/session choice mode.
...
* Bring back the fancy window titles with session/window names: it is easy to work around problems with elinks (see FAQ).
2009-01-28 19:52:21 +00:00
Nicholas Marriott
2af52440ba
-u to start with screen scrolled up.
2009-01-27 23:35:44 +00:00
Nicholas Marriott
c6bd9e2063
Allow status, mode and message attributes to be changed by three new options: status-attr, mode-attr, message-attr. A comma-separataed list is accepted containing: bright, dim, underscore, blink, reverse, hidden, italics, for example: set -g status-attr bright,blink
...
From Josh Elsasser, thanks!
2009-01-27 20:22:33 +00:00
Tiago Cunha
d60ad6f483
Make the caller responsible for allocating memory for the paste buffer data
...
(needed by the load-buffer command when dealing with big files since it'll
prevent tmux from dying due to memory exhaustion). From nicm.
2009-01-25 18:51:28 +00:00
Nicholas Marriott
e0861a2cd0
Missed a reverse.
2009-01-23 20:50:58 +00:00
Nicholas Marriott
6146cab3bd
Use reverse so status line etc works in terminals w/o colour.
2009-01-23 20:49:01 +00:00
Nicholas Marriott
7118baa340
Allow a selection in vi keys mode...
2009-01-21 18:19:32 +00:00
Nicholas Marriott
0691217742
These should be u_int.
2009-01-18 15:40:19 +00:00
Nicholas Marriott
c4d5989a4e
This is fixed.
2009-01-18 13:20:46 +00:00
Nicholas Marriott
440a84b2aa
Use -O0 to prevent copy issues.
2009-01-12 00:52:37 +00:00
Nicholas Marriott
162bacdcd9
Window splitting. Two vertical panes fixed 50% each. This is a huge diff, still a couple of bugs (notably heap corruption somewhere causing segfault on exit).
2009-01-11 23:31:46 +00:00
Nicholas Marriott
88ab74ac20
Clock mode.
2009-01-10 19:35:40 +00:00
Nicholas Marriott
a1b43faa43
Trim spaces.
2009-01-10 01:51:22 +00:00
Nicholas Marriott
f26c691b08
Should redraw 1 too.
2008-12-11 21:10:04 +00:00
Nicholas Marriott
7a82e86827
Make window options work the same was as session options, add mode-fg/mode-bg options, force -g for global on set/show/setw/showw/
2008-12-08 16:19:51 +00:00
Nicholas Marriott
1425738790
y not x :-/
2008-11-12 23:39:25 +00:00
Nicholas Marriott
62457bce0b
Trim.
2008-09-26 06:45:28 +00:00
Nicholas Marriott
efe557313a
Internal screen data rewrite for better 256 colour/UTF-8 support.
2008-09-25 20:08:57 +00:00
Nicholas Marriott
f07cedf048
Rename some functions.
2008-09-10 19:15:06 +00:00
Nicholas Marriott
4235ddb4e8
Initial 256 colour support, lightly tested.
2008-09-08 17:40:51 +00:00
Nicholas Marriott
de0e1c6284
Lose ensure* stuff.
2008-08-07 20:20:52 +00:00
Nicholas Marriott
3337dfcae5
Support keypad mode, and get rid of SCREEN_DEF*. Meant to commit these separately but forgot :-/.
2008-07-24 21:42:40 +00:00
Nicholas Marriott
892d1b534e
Split emacs/vi keys into seperate tables.
2008-07-02 21:22:57 +00:00
Nicholas Marriott
09a4f6a62d
Make previous-word stop at BOL.
2008-06-27 17:41:48 +00:00
Nicholas Marriott
758efb3947
Handle escaped keys properly and use M-f/M-b in copy mode.
2008-06-25 07:30:08 +00:00
Nicholas Marriott
cb6c14502b
Next/previous word in copy-mode.
2008-06-24 07:00:39 +00:00
Nicholas Marriott
c4d09c0511
Convert 0x70 -> 0x88.
2008-06-22 16:56:47 +00:00
Nicholas Marriott
3128de3f19
buffer-limit option.
2008-06-20 18:45:35 +00:00
Nicholas Marriott
4e4f71febb
Swap in new paste buffer code and add a couple more commands.
2008-06-20 17:31:48 +00:00
Nicholas Marriott
c3b7a49cc1
Editable prompt. Not used for anything yet. More to come.
2008-06-19 19:40:35 +00:00
Nicholas Marriott
99df48d70f
Trimify.
2008-06-18 22:21:51 +00:00
Nicholas Marriott
39be570b20
vi keys from Will Maier.
2008-06-04 18:50:35 +00:00
Nicholas Marriott
9e6090a7a2
Per-session configuration options.
2008-06-03 21:42:37 +00:00
Nicholas Marriott
73d882124c
Handle EOL properly when scrolled.
2007-12-07 09:49:18 +00:00
Nicholas Marriott
7dc18f68e3
set/reset mode window functions.
2007-12-06 10:04:43 +00:00
Nicholas Marriott
103748d6ad
Major reorganisation of screen handling.
2007-12-06 09:46:23 +00:00
Nicholas Marriott
2fabfb30b0
Make reset actually work.
2007-11-27 19:43:50 +00:00
Nicholas Marriott
80e30f693c
Minor tweaks/missed bits.
2007-11-27 19:32:15 +00:00
Nicholas Marriott
76c8a590db
Big internal reorganisation to move tty control into parent.
2007-11-27 19:23:34 +00:00
Nicholas Marriott
6b2debfbfa
Erm, check the right cell... d'oh.
2007-11-26 20:57:54 +00:00
Nicholas Marriott
f903cc9a56
Rv EOL optimisation, it screws up selection.
2007-11-26 20:45:13 +00:00
Nicholas Marriott
818df923de
Add ^A && ^E to copy mode. Also use STDIN instead of STDOUT in a couple of places.
2007-11-26 20:36:30 +00:00
Nicholas Marriott
8da0b1fb99
Mostly-complete copy and paste.
2007-11-23 17:52:54 +00:00
Nicholas Marriott
68b2d36e07
Rm some redundant checks, prevent issues when data->size == 0.
2007-11-23 16:43:04 +00:00
Nicholas Marriott
26c8303733
Tidier code by moving mess into functions.
2007-11-22 19:40:17 +00:00
Nicholas Marriott
7b4556946d
Make C-space toggle. Fix sel on same line.
2007-11-22 19:26:20 +00:00
Nicholas Marriott
7ab0b466fe
Text selection with C-space.
2007-11-22 19:17:01 +00:00
Nicholas Marriott
18d72e6928
Partial copy mode. Currently does the same as scroll mode but using a cursor. Also fix bug where resizing would leave crap lying around.
2007-11-22 18:09:43 +00:00