Commit Graph

310 Commits

Author SHA1 Message Date
Boris Faure 19631a70f6 termptyesc: 'T' can also refer to Unset Title Modes (not handled) 2019-01-07 22:32:42 +01:00
Boris Faure ca9616bad8 termptyesc: extract SD/SU to their own functions
SD 0 is used for "track mouse" (TODO).
2019-01-06 23:01:52 +01:00
Boris Faure 5b16b455ff termptyesc: DL moves the cursor to left margin + tests
also remove some debug leftover
2019-01-06 22:30:09 +01:00
Boris Faure 822f959163 termpty: handle IL with left/right margins + tests 2019-01-05 19:25:37 +01:00
Boris Faure 0ca634cd69 termptyesc: export EL handler to its own function + add tests 2019-01-02 23:32:38 +01:00
Boris Faure 06abd7e9bc termptyesc: move ED handler to its own functions + add tests 2019-01-02 22:41:41 +01:00
Boris Faure f7576fb01c termptyesc: move CHT handler to its own function 2019-01-01 20:32:45 +01:00
Boris Faure 36682a1b4e termptyesc: CHA has to take into account DECOM + tests 2019-01-01 20:19:17 +01:00
Boris Faure a0db416469 termptyesc: cleanup 2019-01-01 20:13:09 +01:00
Boris Faure eb84e538b1 termptyesc: move CUF/CUB handlers to their own functions 2019-01-01 18:53:46 +01:00
Boris Faure bf853e8b91 termptyesc: move CUU/CUD handlers to their own functions 2019-01-01 18:53:01 +01:00
Boris Faure 59c547179d termptyesc: support DECCRA + tests 2019-01-01 18:12:06 +01:00
Boris Faure 6661719829 termptyesc: extract ICH to its own function and add tests 2019-01-01 18:10:36 +01:00
Boris Faure 12cc6aaf42 termptyesc: support DECIC/DECDC + tests 2018-12-30 18:36:27 +01:00
Boris Faure fee45b5492 termptyesc: DECCRARA/DECRARA when not in rectangle mode + tests 2018-12-29 22:13:58 +01:00
Boris Faure 288bea982d termptyesc: handle DECRARA in its rectangular form + tests 2018-12-29 18:00:57 +01:00
Boris Faure 68787ad524 tests/termptyesc: handle DECSACE
Also regenerate tests since checksums changed due to new attribute
2018-12-29 17:21:07 +01:00
Boris Faure 63911989fc termptyesc: handle deccara in its rectangular form + tests 2018-12-29 16:58:36 +01:00
Boris Faure 6e8faa30a7 termptyesc: refuse no value on decfra on the character to fill up + tests 2018-12-29 15:19:31 +01:00
Boris Faure 19a99dadff termptyesc: support DECFI
Introduce different behaviour from xterm as I don't see why it behaves
like that when outside of left/right margin and on right border. Xterm
does not wrap.
2018-12-28 23:11:54 +01:00
Boris Faure fd92428c57 termptyesc: add debug on DECCAPSLK and clean up other debug 2018-12-28 22:01:47 +01:00
Boris Faure 02a9c5325a termptyesc: add debug on DECCANSM 2018-12-28 21:59:42 +01:00
Boris Faure 7d668d79d1 termptyesc: remove unused parameter 2018-12-28 21:56:29 +01:00
Boris Faure 090f6a64f2 termptyesc: support DECBI 2018-12-28 21:56:02 +01:00
Boris Faure 6f1e3ea077 termptyesc: always check return of _csi_truecolor_arg_get()
CID1398478
CID1398479
CID1398480
2018-12-28 19:04:43 +01:00
Boris Faure a940556cff termpty: correctly handle wrap (DECAWM) 2018-12-28 17:41:33 +01:00
Boris Faure a95bbbe731 termptyesc: DECALN only reset margins and cursor position 2018-12-28 17:25:28 +01:00
Boris Faure 54c3e4790b termptyesc: add debug on DECARSM 2018-12-27 22:14:44 +01:00
Boris Faure edc469d16f termptyesc: add debug on DECARM 2018-12-27 22:14:44 +01:00
Boris Faure 19e8bf13f9 termptyesc: add debug on DECANM 2018-12-27 22:14:44 +01:00
Boris Faure 81fb1959eb termptyesc: add debug on DECAAM 2018-12-27 22:14:44 +01:00
Boris Faure e23d78e102 termptyesc: cpl and margins + tests 2018-12-27 22:14:44 +01:00
Boris Faure 3c47cc36e0 termptyesc: CNL and margins + tests 2018-12-27 22:14:44 +01:00
Boris Faure 4b32aec0ed termptyesc: DCH shall handle margins. space created follows SGR + test 2018-12-27 22:14:44 +01:00
Boris Faure fb24dfabb1 termptyesc: add some debug 2018-12-27 22:14:44 +01:00
Boris Faure 5f715b9290 termpty: add debug on CHA + test 2018-12-27 22:14:44 +01:00
Boris Faure 9c2b3887d1 termptyesc: support DECSCLM but ignore it + test 2018-12-27 22:14:44 +01:00
Boris Faure eab5ffb956 termptyesc: 98/108 are not valid color codes + test 2018-12-27 22:14:44 +01:00
Boris Faure add8b71778 termptyesc: fix truecolors parsing + tests 2018-12-27 22:14:44 +01:00
Boris Faure 3cc3f3ee2a add tytest.h and colors_256_get() to be able to test truecolor 2018-12-27 22:14:44 +01:00
Boris Faure 119a4d12af termptyesc: handle CSI_ARG_ERROR in some SGR.
Closes T7475
2018-12-27 22:14:44 +01:00
Boris Faure 6931f96d0d termptyesc: handle CSI_ARG_ERROR 2018-12-27 22:14:44 +01:00
Boris Faure a4418b85f6 termpty: display escape sequence when can't decode it 2018-12-27 22:14:44 +01:00
Boris Faure e6d13fceb5 termptyesc: support DSR-UDK + test 2018-12-27 22:14:44 +01:00
Boris Faure d2958cd301 termpty: support DSR-PP (Printer Port) + test 2018-12-27 22:14:44 +01:00
Boris Faure 8f2e15478d termptyesc: support DSR-OS + test 2018-12-27 22:14:44 +01:00
Boris Faure aebbed39e6 termptyesc: add support DSR-DECCKSR + test 2018-12-27 22:14:44 +01:00
Boris Faure f54bd2350f termptyesc: support DSR-MSR (0 Macro Space) + test 2018-12-27 22:14:44 +01:00
Boris Faure e0ed4b4ad9 termptyesc: handle DSR-KBD but hardcode keyboard + test 2018-12-27 22:14:44 +01:00
Boris Faure 9ed1b61f23 termptyesc: handle DSR-DIR (Data Integrity Report) + test 2018-12-27 22:14:44 +01:00
Boris Faure feb7495fbb termptyesc: DSR-CPR takes cursor restriction into account + test 2018-12-27 22:14:44 +01:00
Boris Faure 479d96e5dc termptyesc: act like xterm, do not report title/icon-name 2018-12-27 22:14:44 +01:00
Boris Faure e4d7cb93f2 termptyesc: act as xterm-337 2018-12-27 22:14:44 +01:00
Boris Faure d43110e0fd termptyesc: fix decera/decfra when bottom coordinate is too large 2018-12-27 22:14:44 +01:00
Boris Faure 713bb211fc termptyesc: fix VPR (now goes down instead of up) 2018-12-27 22:14:44 +01:00
Boris Faure 2db4a0e980 termptyesc: fix _clean_up_rect_coordinates() when cursor is restricted 2018-12-27 22:14:44 +01:00
Boris Faure f83e66a478 add tytest, a tool to add tests on escape sequence parsing 2018-12-27 22:14:44 +01:00
Boris Faure 8fb44906cc Revert "termpty: better handle ';' in escape sequences. Closes T7475"
This reverts commit 3f432544df.
2018-11-20 10:34:37 +01:00
Boris Faure 3f432544df termpty: better handle ';' in escape sequences. Closes T7475 2018-11-19 23:14:51 +01:00
Boris Faure df81992e90 termptyesc: fix bug found by tyfuzz 2018-10-17 22:54:24 +02:00
Boris Faure 4c54edaa52 termptyesc: handle some utf8 control codes 2018-10-14 11:12:04 +02:00
Boris Faure a11c591cce fix const on hyperlink urls 2018-10-13 22:05:48 +02:00
Boris Faure dc5c291bb9 highlight links on mouseover
+ related fixes
2018-10-13 19:21:19 +02:00
Boris Faure 05ee717fc0 compute refcount on hyper links 2018-10-13 10:52:50 +02:00
Boris Faure cc83e6b6f2 parse hyperlinks
Ref: T6329
2018-10-13 10:52:50 +02:00
Boris Faure 43ad696570 Merge branch 'terminology-1.2' 2018-10-12 20:19:06 +02:00
Boris Faure aa0f968860 termpty: soft reset should only reset attributes 2018-10-12 20:17:50 +02:00
Boris Faure bd0ca2c224 Merge branch 'terminology-1.2' 2018-09-29 17:24:47 +02:00
Boris Faure 9fc660ccb2 termptyesc: DECFRA/DECERA finishes by $x/$z
And not just x/z
2018-09-29 12:17:51 +02:00
Boris Faure 873656483b termpty: remove useless code. termio.h is already included 2018-09-26 08:13:47 +02:00
Boris Faure 7855175ea4 tyfuzz: make it compile again! 2018-05-02 16:19:55 +02:00
Boris Faure 0991479fcb try to optimize cell copy
On my stupid benchmark: having tyfuzz parse a 628MB text file (few times
war and peace concatenated) over 10 sessions, it went from 15.2MB/s to
16.8MB/s \o/ That's a 10.5% improvement!
2018-04-24 23:41:18 +02:00
Boris Faure 8308514420 termptyesc: document Media Copy 2018-03-19 23:54:00 +01:00
Boris Faure 4e1beca3f8 termptyesc: handle Horizontal Position Absolute (HPA) 2018-03-19 23:24:31 +01:00
Boris Faure 740e96da66 handle DECSCUSR (changing cursor shape). Closes T6338 2018-03-15 19:20:09 +01:00
Boris Faure 71c1b37675 termptyesc: sort CSI escape code by ascii value 2018-03-15 17:58:41 +01:00
Boris Faure dad9e0db58 remove compatibility #ifs to work with EFL < 1.16 2018-03-13 18:58:41 +01:00
Boris Faure 9e0243d9f1 support encircled escape code. Closes T6769 2018-03-13 09:15:32 +01:00
Boris Faure 0a0f3605e4 termptyesc: handle CMY/CMYK in SGR38/SGR48. Ref T746 2018-03-11 22:38:45 +01:00
Boris Faure c7c054bf0d termptyesc: handle transparent in SGR38/SGR48 2018-03-11 22:35:41 +01:00
Boris Faure 91ced6390f termptyesc: skip colorspace id if present. Ref T746 2018-03-11 20:31:56 +01:00
Boris Faure 0eb223f1b8 termptyesc: approximate true color. Ref T746 2018-03-11 19:51:11 +01:00
Carsten Haitzler 8cfa269b54 tysend - optimize sending - pretty much double the speed
yes. it's still inefficient because we transfer in ascii-ized nibbles
(4 bits) within a utf8 stream that becoems a 32bit per char unicode
buffer then back to utf8 before being "parsed" as a command etc. etc.
... it's not brilliant for transferring binary data. it's horrible
actually. but at least i've dropped overhead for some of the large
escape handling code.

this increases buffer size to 32k per block sent, and have the
terminal escape/buffer handling track if a zero byte exists in the
buffer at all to avoid hunting for one if none is there, making
terminology escape handling much more efficient for large escapes and
buffers.
2017-12-18 15:32:02 +09:00
Boris Faure 180799d2c5 support the REP escape code. Closes T6042 2017-09-18 22:01:42 +02:00
Boris Faure 6100f8f4e3 harden the code around manipulation of cursor_state 2017-09-08 23:06:19 +02:00
Boris Faure 496a5f178e have only one concept of title. Ref T5704 2017-08-28 21:41:21 +02:00
Boris Faure 7c358c3592 termptyesc: correctly handle going to start of line when there is a left margin 2017-08-22 20:51:20 +02:00
Boris Faure 6315ed2949 termpty: remove termstate.had_cr since it's unused 2017-08-21 23:46:28 +02:00
Boris Faure 2343efd6a1 termptyesc: clearing the screen (from ED2) should not reset bottom margin
Thanks to @ncim for the report.
2017-08-21 23:19:41 +02:00
Carsten Haitzler d80e60f25c fix buffer size - was 1 byte too short on stack
7 not 6 bytes. include nul byte.
2017-08-02 18:21:08 +09:00
Boris Faure 3a28d99649 termpty: fix inserting blank chars. Closes T5802 2017-07-27 23:27:23 +02:00
Boris Faure b35c7cd539 termptyesc: add missing break. CID1377552 2017-07-11 22:01:31 +02:00
Boris Faure 6f1a2dd452 constify 2017-07-06 21:37:56 +02:00
Boris Faure b0226726f8 termpty: correctly handle DECFRA wrt SGR 0 2017-06-26 23:36:23 +02:00
Boris Faure 7ac685b68c termpty: DECERA only changes codepoints 2017-06-26 21:58:59 +02:00
Boris Faure 956f1eaa13 termptyesc: restrict right/bottom rectangle coordinates 2017-06-07 20:40:17 +02:00
Boris Faure 400b675fc9 termptyesc: restrict CUP/HVP to right/bottom margins 2017-06-06 23:00:22 +02:00
Boris Faure cc5fcac03d termptyesc: fix handling of DECSLRM. Ref T5533 2017-06-05 23:53:07 +02:00
Boris Faure bbfa60120e termpty: handle DECERA 2017-06-05 21:04:29 +02:00
Boris Faure 9f72ea3a9d termptyesc: handle DECFRA 2017-06-05 20:47:41 +02:00