Commit Graph

1939 Commits

Author SHA1 Message Date
Carsten Haitzler 208e877e8f dbl chars - another range with only some emoji to be doubled 2019-04-23 12:12:02 +01:00
Carsten Haitzler ce61d0c648 dbl char - add final unicode full emoji list link 2019-04-23 11:21:08 +01:00
Boris Faure d197d2207e termptydbl: unbreak mutt/nethack/my shell prompt…
The following ranges are not double-width:
2500-257F Box Drawing
2580-259F Block Elements
25A0-25FF Geometric Shapes
E000- F8FF Private Use Area
2019-04-22 22:19:50 +02:00
Carsten Haitzler f0191d0ffc double width check - optimize by more tree-like parent range checks 2019-04-18 15:31:35 +01:00
Carsten Haitzler 1cf54d7dfd emoji- handle as double width as they probably should
emoji render as if being double width and their origin is from asian
langs (japan came up with them), so we should make them double width.
2019-04-18 15:12:32 +01:00
Carsten Haitzler bbe5b3eb03 focus - ensure focus is properly handled first time for unfocused wins
this fixes a case where ecore imf is never told about a newly focused
context because the relative term is already the child in an initial
case... this gets input methods working again

@fix
2019-04-15 17:19:33 +01:00
Boris Faure 1ce26c51f7 termiointernals: fix regression on selecting word at start of line
In case of double-click.
2019-03-21 22:18:07 +01:00
Boris Faure 3378f033f5 termio: remove leak. CID1399747 2019-03-20 22:31:58 +01:00
Boris Faure 756a45e654 termio: skip pasted chars < ' ' but keep '\n'
See https://www.openwall.com/lists/oss-security/2018/03/05/2
2019-03-19 23:18:03 +01:00
Boris Faure 9785beaef0 termiointernals: fix possible NULL-dereference. CID1399748 2019-03-18 23:05:06 +01:00
Boris Faure 485d7a3edf termio: fix leak. CID1399746 CID1399747 2019-03-18 23:02:36 +01:00
Boris Faure 8076e4673f termiointernals: fix possible NULL-dereference CID1399745 2019-03-18 22:56:49 +01:00
Boris Faure 6c55ecf1a1 termptyesc: fix hangs spotted by afl-fuzz + tests 2019-03-18 22:34:21 +01:00
Boris Faure 674a87287d termiointernals: fix reporting mouse move with no button pressed + tests 2019-03-05 21:20:50 +01:00
Boris Faure 93a25e6123 termiointernals: report alt on mouse move + tests 2019-03-04 23:39:57 +01:00
Boris Faure 61a56ae029 termiointernals: handle mouse wheel with alt + tests 2019-03-04 23:05:40 +01:00
Boris Faure c9b5c52a5d termptyesc: typo in comment 2019-03-03 22:49:11 +01:00
Boris Faure 8bc4c030c3 termiointernals: handle mouse wheel on normal mode after pos 94 2019-03-03 19:40:19 +01:00
Boris Faure acee5d2d67 it's possible to use alt with mouse wheel 2019-03-03 19:26:45 +01:00
Boris Faure bc45dba7c9 termiointernals: after x:94, no more reporting in normal mode 2019-03-03 19:25:56 +01:00
Boris Faure 69e8255d25 termiointernals: cleanup 2019-03-03 18:36:09 +01:00
Boris Faure b9542183e6 termiointernals: handle meta & MOUSE_X10 in mouse_down 2019-03-03 18:35:27 +01:00
Boris Faure 36fcd2d2c4 tests: add tytest_termio_resize() 2019-03-03 18:22:18 +01:00
Boris Faure 490d388314 termptyesc: resize parameters were inverted 2019-03-03 15:55:01 +01:00
Boris Faure 72ff9cbe3c termiointernals: mouse wheel is not reported in X10 mode 2019-03-03 15:47:37 +01:00
Boris Faure 5a98842d63 termiointernals: do not emit mouse wheel on mode X10 2019-03-03 13:20:03 +01:00
Boris Faure 72afb80d6e win: use min_* as base step since the old formula may < 0
Closes T7699
2019-03-02 18:26:04 +01:00
Boris Faure f0605c697d private.h: helper for testing escape codes on terminology's binary 2019-03-01 13:28:01 +01:00
Boris Faure 0f45747925 termpty: fix _termpty_cell_is_empty()
was not working on cell = {}
2019-03-01 13:23:02 +01:00
Boris Faure 1c9c2a19ed termptyesc: handle window manipulations that resizes the terminal
only for testing purpose
2019-02-27 23:46:04 +01:00
Boris Faure 4d89080d71 termiointernal: handle empty celles in selections.
Condition was wrong
2019-02-27 20:23:41 +01:00
Boris Faure 5300a89013 termiointernals: fix segfault 2019-02-25 22:51:03 +01:00
Boris Faure 1e5825832f termiointernals: rewrite _sel_word_to() + update tests 2019-02-25 22:02:11 +01:00
Boris Faure 48496b2eb5 termpty: cell is empty if bg is invisible. Closes T7707 2019-02-24 17:06:31 +01:00
Boris Faure 52a0ba46e0 termiointernals: selection is based on relative y, not on-screen y 2019-02-23 17:56:25 +01:00
Boris Faure eaaf63172d tyfuzz: test terminal is only 24 lines 2019-02-23 17:52:42 +01:00
Boris Faure bebb0872c3 termiointernals: remove empty selections 2019-02-23 13:34:31 +01:00
Boris Faure 2ca440ba93 tytest: use same offset as "real life"
makes it easy to write tests
2019-02-23 11:19:20 +01:00
Boris Faure 5fedd2c0a4 termiointernals: unset selection when codepoint is different
but do not make a difference between space and no codepoint
2019-02-23 11:12:14 +01:00
Boris Faure 510032df70 termiointernals: fix leak in termio_internal_get_selection() 2019-02-22 20:15:16 +01:00
Boris Faure 16637c3515 termptyext: fix eina_stringshare_del() on bad pointer 2019-02-21 18:43:11 +01:00
Boris Faure e024618dba termpty: compute exact line length in termpty_cellrow_get() 2019-02-21 18:42:28 +01:00
Boris Faure 4bc04c5421 termiointernals: be able to mock mouse wheel 2019-02-19 20:03:14 +01:00
Boris Faure f93f1ef3ba termiointernals: right-trim line selections 2019-02-18 22:04:37 +01:00
Boris Faure b7305bfc59 tyfuzz: better mock termio_take_selection()
+ fix leak
+ make the code more readable to me
2019-02-18 20:57:38 +01:00
Boris Faure 376c0a962b termptyext: add testing escape code to set/unset selection corners 2019-02-17 12:32:16 +01:00
Boris Faure eb4a3f9920 termptyext: skip spurious \r + improve asserts + add doc 2019-02-14 22:16:33 +01:00
Boris Faure 7eaba7447c termiointernals: set mouse position on mouse down/up 2019-02-14 22:11:35 +01:00
Boris Faure 8169dcca63 termiointernals: evas_pointer_canvas_xy_get() is expecting an evas 2019-02-14 20:35:29 +01:00
Boris Faure 23a76357f9 termptyext: remove spurious return in _handle_selection_is() 2019-02-13 23:21:53 +01:00
Boris Faure b09a70f04d termptyext: clean up modifiers parsing 2019-02-13 23:21:32 +01:00
Boris Faure 07cd8089e0 termiointernals: don't use ecore_job_add in tests 2019-02-11 22:46:39 +01:00
Boris Faure 73f461e281 tytest: add test_textgrid_cellrow_get()
to mock evas_object_textgrid_cellrow_get()
2019-02-11 22:44:16 +01:00
Boris Faure 904b3cf62e termptyext: use real selection to test
And not just compare with the codepoint array that may not have \n and too
many spaces
2019-02-10 23:56:30 +01:00
Boris Faure 8533d8d042 termptyext: add escape codes to force internal rendering 2019-02-10 23:53:55 +01:00
Boris Faure 35587220c7 termiointernals: add termio_internal_get_selection() 2019-02-10 20:09:20 +01:00
Boris Faure ac82934c83 termptyext: add testing escape codes about selections 2019-02-10 19:36:46 +01:00
Boris Faure 5e4f814104 termiointernals: fix selection invalidation + add doc 2019-02-10 19:00:43 +01:00
Boris Faure 43c6777e57 termiointernals: add termio_internal_render()
used to test selection invalidation later on
2019-02-09 23:48:15 +01:00
Boris Faure e9ce3d02a3 tytest: add escape codes to simulate mouse interactions 2019-02-07 22:20:36 +01:00
Boris Faure fd8120091d tytest: add framework to add special escape codes for tests 2019-02-06 23:19:29 +01:00
Boris Faure 4e38d0d2c7 termio: simplify code by passing sd instead of obj
Stub function to get Termio from Evas_Object
2019-02-06 23:19:29 +01:00
Boris Faure 2f432dcd33 tyfuzz: stub functions from termio 2019-02-06 23:19:29 +01:00
Boris Faure e6886bcaee move some code to termiointernals to be able to test it 2019-02-06 23:19:29 +01:00
Boris Faure b05e20333d termio:_smart_update_queue() needs only sd 2019-02-06 23:19:29 +01:00
Boris Faure 4c8634686c termio: unset selection in _smart_apply if codepoints have changed in sel 2019-02-06 23:19:29 +01:00
Boris Faure 988a9dad4d termio: add functions to get selection as an array of codepoints 2019-02-06 23:19:29 +01:00
Boris Faure 5303f9eb28 termio: use ty_sb to deal with selections 2019-02-06 23:19:29 +01:00
Boris Faure 891168a9a7 termio/termptyops: remove termio_content_change()
It shall no longer be needed.
2019-02-06 23:19:29 +01:00
Boris Faure 3d82c70793 tests: get rid of that useless UTF8CC code
@glima: this should fix your issue
2019-02-06 22:35:12 +01:00
Boris Faure 09bd49ea34 termptyesc: better debug 2019-02-06 22:33:15 +01:00
Boris Faure 4eefb44ee1 termptyesc: handle DECSWBV + tests 2019-01-26 22:27:44 +01:00
Boris Faure 14e501c15a we're in 2019 2019-01-23 21:26:54 +01:00
Boris Faure 2e34b8e962 add configuration on whether to activate links
- on email
- on file paths
- on URLs
- from escape codes (called hyper links in the code)

Closes T6339
2019-01-21 22:11:22 +01:00
Boris Faure 54565e32a6 options_keys: clean up a bit
options: no need for delay
2019-01-20 23:13:05 +01:00
Boris Faure 2ffbe38d43 termptyesc: support aliases for cursor Up/Left + tests 2019-01-20 20:09:32 +01:00
Boris Faure 7dccab5481 termptyesc: export VPA handler to its own function + tests 2019-01-20 18:44:08 +01:00
Boris Faure bef8cb1373 termptyesc: add debug on CUD or VPR 2019-01-20 18:35:03 +01:00
Boris Faure 392c04bbe0 termptyesc: support Unset Tab Stop (only VTE so far) + tests 2019-01-20 12:06:19 +01:00
Boris Faure 96bbfd054b termptyesc: export DA handler to its own function + tests
Also support DA3.
2019-01-19 23:50:31 +01:00
Boris Faure b7e84963c7 reindent code 2019-01-19 23:07:07 +01:00
Boris Faure 3833252ad2 termptyesc: extract REP handler to its own function + tests 2019-01-19 23:02:51 +01:00
Boris Faure a0738339dd termptyesc: CHA and HPA are the same 2019-01-19 22:10:12 +01:00
Marcel Hollerbach b37a3eefb6 terminology: move log dom registering
the log domain should be registered when there is a new window, not when
there is a new term. A windows can exist before a term can exist.
Further more, win_new function is using this log domain so it should be
inited.
2019-01-14 22:45:32 +00:00
Boris Faure c1d030da0a termptyesc: extract CBT handler to its own function + tests 2019-01-13 00:08:52 +01:00
Boris Faure 505772602e termptyops: do not wrap to left margin when already past right margin
Fix ech.sh test that detected the issue
2019-01-12 16:14:14 +01:00
Boris Faure 89a6a9d652 termptyesc: extract ECH handler to its own function + test
Test is not fully working at the moment.
There seems to be an issue with appending text outside margins
2019-01-11 23:30:43 +01:00
Boris Faure ff830fbc42 termptyesc: extract TBC to its own function + tests 2019-01-08 23:16:06 +01:00
Boris Faure 395404c243 termptyesc: handle CTC + tests 2019-01-08 22:55:48 +01:00
Boris Faure 24cc5eaf8d termptyesc: Printer and Selective Erase are not supported 2019-01-07 23:39:34 +01:00
Boris Faure 5475920c56 termptyesc: add debug on sixel/regis graphics attributes 2019-01-07 23:31:31 +01:00
Boris Faure a2656754bd termptyesc: support DECST8C + tests 2019-01-07 23:13:52 +01:00
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 571d2d03f1 Merge branch 'terminology-1.3' 2019-01-05 18:33:53 +01:00
Boris Faure 09d6660ae7 termio: fix invalid initial resize. Closes T7548 2019-01-05 18:28:43 +01:00
Boris Faure 8841e5259a Merge branch 'terminology-1.3' 2019-01-04 23:37:48 +01:00
Boris Faure 007dfb60e3 termpty: reset circular_offset2 (for the 2nd buffer) to 0 (as it's cleared)
Closes T7543
2019-01-04 23:35:48 +01:00
Boris Faure 6952836a32 termio: allow 1 line or 1 column windows. Closes T7532 2019-01-04 23:34:08 +01:00
Boris Faure a5d364bcbf termptyops: ensure clearing cells do not increase link count 2019-01-03 22:46:07 +01:00
Boris Faure 99da684d81 config: s/;;/;/ 2019-01-02 23:45:49 +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 9cb340e29f termio: inverse colors only after applying bold/faint (more precise) 2018-12-29 16:57:44 +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 c162b07b16 col: assert in case of invalid values 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 5cef3b68b6 tytest: add write buffer to checksum 2018-12-27 22:14:44 +01:00