Commit Graph

77 Commits (59a57285278de78d0a69b89fe7851a56bad4240a)

Author SHA1 Message Date
Nicholas Marriott 7d6896ae79 Support NEL. 2009-04-23 21:28:45 +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 4cdc228353 Unbreak UTF-8. 2009-01-18 21:46:30 +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 a1b43faa43 Trim spaces. 2009-01-10 01:51:22 +00:00
Nicholas Marriott 4ebb85aae8 Don't return NULL when retrieving a string that is too long. 2009-01-08 21:22:01 +00:00
Nicholas Marriott 4846ad1657 Introduce nitems() and use it; use bsearch. 2009-01-07 22:52:33 +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 d0342f4a04 Ability to show window title on status line. 2008-12-05 20:04:06 +00:00
Nicholas Marriott 5ca710d9e3 Disable UTF-8 by default and add options to enable it. 2008-11-16 13:28:59 +00:00
Nicholas Marriott 6304e23984 Record intermediate for p2/s2 and fake up charset redefinition (some programs use it to switch character set). 2008-11-04 20:41:10 +00:00
Nicholas Marriott cf092dc27f This breaks mutt. 2008-11-04 20:06:48 +00:00
Nicholas Marriott 25975cf5ae Alternative charset commands. 2008-11-04 19:28:58 +00:00
Nicholas Marriott 185f7297e8 Better OSC support for title setting, and support APC as well. 2008-10-09 21:22:16 +00:00
Nicholas Marriott 22ef1a1379 SGR should not reset charset... don't know how this worked before... 2008-09-26 07:41:01 +00:00
Nicholas Marriott 93aa3f3c21 Make RIS also reset scroll region. 2008-09-26 07:34:12 +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 19a2c87f04 Initial UTF-8 support. 2008-09-09 22:16:37 +00:00
Nicholas Marriott 1e145a639b Unbreak 256 colours when commands are combined. 2008-09-09 17:35:04 +00:00
Nicholas Marriott 6674197e85 Fix bold/non-bold mismatch in 256 colour mode by adding an extra 8 bits (ick) onto the attributes and using two of them to mark the fg and bg as 256 colours when necessary. If only it was 255 colours we would have one value for default and wouln't need this :-/. 2008-09-08 22:03:56 +00:00
Nicholas Marriott cecd7c0cc8 Comments. 2008-09-08 21:05:41 +00:00
Nicholas Marriott 0ba3bab997 Get the colours right. 2008-09-08 20:51:19 +00:00
Nicholas Marriott 4235ddb4e8 Initial 256 colour support, lightly tested. 2008-09-08 17:40:51 +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 97212771b5 Support keypad. Change cursor key output. 2008-07-23 23:44:50 +00:00
Nicholas Marriott 83a9f272d8 Missing NULL check. 2008-06-18 19:06:51 +00:00
Nicholas Marriott 7842d29673 Revert attempt to fix stray updates, turns out it was clock :-/. 2008-06-04 19:20:10 +00:00
Nicholas Marriott 39be570b20 vi keys from Will Maier. 2008-06-04 18:50:35 +00:00
Nicholas Marriott 14b9512546 Add activity monitoring, also invert items on taskbar which have activity. 2008-06-04 16:46:23 +00:00
Nicholas Marriott 205b78ec58 Some key tweaks, fix status bar to not rely on attr. 2008-01-03 21:32:11 +00:00
Nicholas Marriott 08d7be638e Fix charset stuff. 2007-12-06 13:54:33 +00:00
Nicholas Marriott 103748d6ad Major reorganisation of screen handling. 2007-12-06 09:46:23 +00:00
Nicholas Marriott 3962c5f706 Change window name on \ek...\e\. 2007-11-30 11:08:35 +00:00
Nicholas Marriott 043514a834 Preliminary mouse support. 2007-11-27 23:28:51 +00:00
Nicholas Marriott f47ab8f13f Don't nuke charset flag on [0m. Also rename DRAWING -> CHARSET flag. 2007-11-27 23:01:27 +00:00
Nicholas Marriott 43c99c2fab Clear current line properly on clear eos. 2007-11-27 22:12:14 +00:00
Nicholas Marriott 76c8a590db Big internal reorganisation to move tty control into parent. 2007-11-27 19:23:34 +00:00
Nicholas Marriott 15511cb41a Support for VT100 graphics mode. Also lose some redundant checks. 2007-11-24 23:29:49 +00:00
Nicholas Marriott 5ad9b31ac5 Scroll region reset homes the cursor, so start at 0,0 when drawing. Also don't set region after DECRC. 2007-11-24 19:29:56 +00:00
Nicholas Marriott a01093603b Inc region in debug msg. 2007-11-23 22:51:13 +00:00
Nicholas Marriott 2cdc75fa4e Fix clear. 2007-11-21 14:50:41 +00:00
Nicholas Marriott 9a6e47cfa8 Initial history support. 2007-11-21 13:11:41 +00:00
Nicholas Marriott ceab127fac Mass screen.c rename/tidy. Add a actual size (ysize) as distinct from display size (now dx,dy). Move functions which work on the displayed area into screen-display.c and tidy. Use macros consistently when accessing screen data (may want to move everything about again later!). This the first step on the road to scrollback. 2007-11-20 21:42:29 +00:00
Nicholas Marriott 0be6a3041f Style: ry_* -> r* 2007-11-20 18:46:32 +00:00
Nicholas Marriott 86b73cec72 Check for scrolling when _cursor_ is inside region, not number of lines. Duh. 2007-11-16 16:28:14 +00:00
Nicholas Marriott 5940c5ff88 Support tab. 2007-11-09 17:06:01 +00:00
Nicholas Marriott ab097f0c0c Don't save/restore ry_*. 2007-10-26 17:15:50 +00:00
Nicholas Marriott 4df168c986 Use local var and pull screen out of ictx. 2007-10-24 15:40:59 +00:00