Boris Faure
548027a656
termiolink: protect isnan() usage with ubsan and musl
2020-06-15 23:03:36 +02:00
Boris Faure
f9e4cd9699
reorganise settings between options_behavior and options_mouse
2020-06-15 13:21:01 +02:00
Boris Faure
24400e9c69
options_mouse: add links settings
2020-06-15 13:21:01 +02:00
Boris Faure
62b101efd7
options_links: clean up
2020-06-15 13:21:00 +02:00
Boris Faure
75e7e211f2
options_behavior: share OPTIONS_CB/OPTIONS_CX/OPTIONS_SEPARATOR
2020-06-15 13:21:00 +02:00
Boris Faure
af257f2606
options_behavior: remove ELM_WRAP_WORD as it makes labels disappear…
2020-06-15 13:21:00 +02:00
Boris Faure
08bfebcf6d
mv options_helpers.{c,h} options_mouse.{c,h}
2020-06-15 13:21:00 +02:00
Boris Faure
c011c48720
config: add "active_links_color"
2020-06-15 13:21:00 +02:00
Boris Faure
d84304fc2e
termio: color link is not really clickable
2020-06-15 13:21:00 +02:00
Boris Faure
3973f4c348
termiolink: be able to fuzz color parser
2020-06-15 13:21:00 +02:00
Boris Faure
1866e43386
termiolink: parse css hsl color + unit test
2020-06-15 13:21:00 +02:00
Boris Faure
4b0de53914
termiolink: use eina_convert_strtod_c() to avoid issues with $LANG
...
because it may parse ',' as a separator (in french for example).
+ stop parsing forward on ')'
2020-06-15 13:20:59 +02:00
Boris Faure
129cda9536
termiolink: switch case is better than broken bsearch
...
(list was not correctly sorted)
2020-06-15 13:20:59 +02:00
Boris Faure
6dc89a5f6a
termiolink: detect rgb() colors + utest
2020-06-15 13:20:59 +02:00
Boris Faure
2f040f9532
termiolink: handle tabs in (color) links
2020-06-15 13:20:59 +02:00
Boris Faure
f23467407c
termiolink: add unit test on parsing edc color
2020-06-15 13:20:59 +02:00
Boris Faure
0051a28996
termiolink: add tests on some parsing functions
2020-06-15 13:20:59 +02:00
Boris Faure
10c720aa00
termiolink: rework color finder
2020-06-15 13:20:59 +02:00
Boris Faure
2832f79b59
theme: add name to the color being previewed
2020-06-15 13:20:58 +02:00
Boris Faure
2be609daab
termio: add popup on right click on color to copy it
2020-06-15 13:20:58 +02:00
Boris Faure
990ef95c8b
termptyext: be able to test color links
2020-06-15 13:20:58 +02:00
Boris Faure
b05a48d0c9
termiolink: constify
2020-06-15 13:20:58 +02:00
Boris Faure
c1ac8e05a3
color preview: have a better background
2020-06-15 13:20:58 +02:00
Boris Faure
127f0987ee
link: display tooltip on colors like #ff00ff
2020-06-15 13:20:58 +02:00
Boris Faure
f5fe32f70b
termiolink: isalpha() may produce unsigned-integer-overflow
2020-06-15 13:18:56 +02:00
Boris Faure
42cff98227
tytest: reset color just after using it
2020-06-15 12:56:14 +02:00
Boris Faure
2b5f698c91
utf8: avoid implicit signedness conversions
2020-06-13 00:13:18 +02:00
Boris Faure
442ce78874
termiointernals: avoid implicit signedness conversions
2020-06-13 00:13:18 +02:00
Boris Faure
db7ca27635
termptyesc: explicit conversions
2020-06-13 00:13:12 +02:00
Boris Faure
6aff48abe1
termpty: fix ubsan-detected issue
...
../src/bin/termpty.c:988:9: runtime error: implicit conversion
from type 'int' of value -1 (32-bit, signed) to type 'unsigned long'
changed the value to 18446744073709551615 (64-bit, unsigned)
2020-06-12 22:38:33 +02:00
Boris Faure
2d9d1c6a82
md5: disable unsigned-integer-overflow sanitizer
2020-06-12 22:35:22 +02:00
Boris Faure
c37a16151c
termiolink: no need to double semicolons (they don't make a colon…)
2020-06-04 22:44:39 +02:00
Boris Faure
11c7bb2c3b
termiolink: avoid long cascade of cases (implicit fallthrough)
2020-05-31 22:27:28 +02:00
Boris Faure
4144170cfc
termiointernals: use a switch/case
...
and let the compiler do the optimization and unroll the binary search
itself.
I wrote a micro benchmark:
1. switch_fallthrough: 9597502784 ns
2. switch_return: 8921069697 ns
3. binary_search: 18403018625 ns
The results are pretty consistent over multiple runs.
1st is switch case with one return at the end and lots of
fallthrough.
2nd is a return of each case,
3rd is the original code.
2020-05-26 23:27:08 +02:00
Boris Faure
eba80af2ea
sb: extract tests
2020-05-24 19:00:24 +02:00
Boris Faure
745b93e95b
termiointernals: _codepoint_is_wordsep() is const
2020-05-24 18:19:48 +02:00
Boris Faure
abdef9786c
have define BINARY_TYFUZZ/BINARY_TYTEST
2020-05-24 18:05:39 +02:00
Boris Faure
1702931b1b
mv src/bin/md5/md5.{c,h} src/bin/
2020-05-24 17:48:59 +02:00
Boris Faure
4703e374b9
sb: add some more tests
2020-05-24 00:35:27 +02:00
Boris Faure
c2c324c497
sb: fix error: applying zero offset to null pointer
...
Found by UndefinedBehaviorSanitizer
2020-05-24 00:19:33 +02:00
Boris Faure
04a47e0e19
sb: add unit tests + fix a few issues
2020-05-24 00:05:29 +02:00
Boris Faure
15ee3702db
sb: add ty_sb_spaces_ltrim()
2020-05-23 16:26:57 +02:00
Boris Faure
63815156aa
dumb framework to run unit tests in terminology
2020-05-23 11:59:34 +02:00
Boris Faure
392bfdb4a7
tests: rework tytest.c/tyfuzz.c to no longer #include one in the other
2020-05-23 11:59:24 +02:00
Boris Faure
bb09c80ab4
Merge branch 'terminology-1.7'
2020-05-19 23:57:59 +02:00
Boris Faure
5cae99eee1
options: word-wrap some labels
2020-05-19 23:56:06 +02:00
Boris Faure
ec344090aa
scale wizard: word-wrap the labels
2020-05-19 23:41:39 +02:00
Boris Faure
13fce0866c
Merge branch 'terminology-1.7'
2020-05-18 22:29:25 +02:00
Boris Faure
446823b6ea
options_elm: fix original _find_binary
2020-05-18 22:25:20 +02:00
Boris Faure
29cce7e73e
termiointernals.c: do not consider '-' as a word separator
2020-05-18 16:24:51 +02:00
Boris Faure
de969e7cef
Merge branch 'terminology-1.7'
2020-05-16 19:09:53 +02:00
Boris Faure
1d5eee0e60
focus validator: be less strict when changing tabs
...
Closes T8722
2020-05-16 19:07:28 +02:00
Boris Faure
3be858b09b
termiointernals: handle EM (end of medium) as word separator
2020-05-11 23:22:58 +02:00
Boris Faure
876036f009
termptyesc: randomize new entry in the true color cache
2020-05-09 00:04:20 +02:00
Boris Faure
9977b8a63b
termpty: set TERM_PROGRAM/TERM_PROGRAM_VERSION env variables
2020-05-06 23:49:00 +02:00
Boris Faure
106f8b5c9a
termptyesc: handle terminal query
...
New, still debated on https://gitlab.freedesktop.org/terminal-wg/specifications/issues/8
2020-05-06 23:44:05 +02:00
Boris Faure
144db18649
termiointernals: no timer in tests
2020-05-05 21:51:40 +02:00
Boris Faure
38e4935427
termiointernals: skip invisible codepoints when assessing whether they changed
2020-05-05 21:51:40 +02:00
Boris Faure
19ffa91f15
termptyext: add operator to test whether selection is active
2020-05-05 21:51:40 +02:00
Boris Faure
f679d28809
termiointernals: speed up selection scroll in tests + also in real life
2020-05-05 21:51:40 +02:00
Boris Faure
3be01d8b8b
meson: add tytest.{c,h} to improve testing with ENABLE_TEST_UI
2020-05-05 21:51:40 +02:00
Boris Faure
00bb99f3f0
tests: store mouse pointer and fallback evas_pointer_canvas_xy_get()
2020-05-05 21:51:40 +02:00
Carsten Haitzler
0df36aefc9
termio selection strings - fix ownership and alloc/free
...
this was a bit of a mess in terms of who owns, dups, copies etc. so i
fixed this up a bit and have termio_take_selection_text consistently
stringshare_add the string as its own copy so it can free it later.
also fix leak from ty_sb_steal_buf() as this is a malloced buffer not
stringshared and it wasnt freed after a steal
@fix
2020-05-04 10:47:00 +01:00
Boris Faure
286e2ebb59
win: on startup, force a window to be considered as focused
2020-04-29 22:54:50 +02:00
Boris Faure
f3bf486777
win: handle early case when no child is present
2020-04-29 22:53:02 +02:00
Boris Faure
f1857527da
termptyesc: mark _safechar() as pure
2020-04-25 15:20:54 +02:00
Boris Faure
18bfcb5aba
termptyesc: r,g,b are uint8_t
2020-04-22 23:59:02 +02:00
Boris Faure
00c427a20f
termptyesc: avoid issue with integer promotion
...
Found by UBSan:
sgr-truecolors.sh... ../src/bin/termptyesc.c:737:35: runtime error: left
shift of 244 by 24 places cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
../src/bin/termptyesc.c:737:35 in
2020-04-22 23:52:58 +02:00
Boris Faure
f9b6f88be1
termptyesc: cache true color approximations
...
On my stupid benchmark ( https://github.com/billiob/fire ), this goes from
about 45 fps to about 125fps.
2020-04-22 23:43:45 +02:00
Boris Faure
f497b9446c
termiolink: harden functions link_is_*()
2020-04-19 23:23:57 +02:00
Boris Faure
25eac3e842
termio: suspend is an int with values > 1
2020-04-19 23:22:57 +02:00
Boris Faure
32f317cc05
options: use an available default icon for each entry!
2020-04-17 23:54:48 +02:00
Boris Faure
d06ac1c262
update copyright to 2020
2020-04-17 23:10:45 +02:00
Boris Faure
0b48853597
reduce scope of variables
2020-04-17 23:09:07 +02:00
Boris Faure
3172c2cf30
Revert "pleasing cppcheck?"
...
This reverts commit a848b0262f
.
2020-04-17 22:02:09 +02:00
Boris Faure
1e89fcd020
termptyext.c: remove useless assignments
2020-04-17 21:52:06 +02:00
Boris Faure
f56f6cd07e
termptyext: remove useless assignment
2020-04-17 00:02:57 +02:00
Boris Faure
a848b0262f
pleasing cppcheck?
2020-04-17 00:01:32 +02:00
Boris Faure
16f750bee6
backlog: don't convert -1 to unsigned
2020-04-17 00:00:46 +02:00
Boris Faure
d5d61a5b76
termio: hide links when content change underneath
2020-04-16 23:43:21 +02:00
Boris Faure
225b14a54f
win: hide tab bar when restoring the last term
2020-04-16 19:35:19 +02:00
Boris Faure
27f062ff1a
win: reswallow content when it's the only one left
2020-04-16 19:30:27 +02:00
Boris Faure
25496f6689
win: remove hand cursor when drag stops
2020-04-16 19:29:34 +02:00
Boris Faure
338b2c1865
win: fix rollback split + add debug
2020-04-16 17:16:18 +02:00
Boris Faure
985e0b56c5
win: put drag icon under the mouse
2020-04-15 22:52:31 +02:00
Boris Faure
472cfbcff4
win: remove some debug
2020-04-15 22:12:51 +02:00
Boris Faure
7ce4416311
win: save split position when dragging tab
2020-04-14 23:40:08 +02:00
Boris Faure
0d5a796703
win: fix focus display when focusing in/out and grouped input
2020-04-14 22:51:14 +02:00
Boris Faure
cdcc6be05e
show grouped input on inactive tabs
2020-04-14 22:06:53 +02:00
Boris Faure
826801b607
group input: show it on active tabs
2020-04-13 20:30:51 +02:00
Boris Faure
51468de3fd
group input: add config option about default to visible ones or all
2020-04-12 17:16:14 +02:00
Boris Faure
2259519d10
video: no need to force emotion engine anymore
2020-04-12 16:59:43 +02:00
Boris Faure
87ce2720d5
controls: add shortcut to do grouped input
2020-04-11 11:59:36 +02:00
Boris Faure
537af736e8
win: constify
2020-04-11 10:01:13 +02:00
Boris Faure
210ec3b408
win: add win_has_single_child()
2020-04-11 09:55:52 +02:00
Boris Faure
df9700c8a5
win: add win_evas_object_to_win()
2020-04-11 09:50:38 +02:00
Boris Faure
b9f3c7bf05
win: don't resize to 0 + remove useless callback
2020-04-11 00:31:04 +02:00
Boris Faure
f52ea76606
win.h: add missing void
2020-04-11 00:30:20 +02:00
Boris Faure
ec2a96589c
controls: no need for ct_box3
2020-04-11 00:21:54 +02:00
Boris Faure
4c9091c9c6
controls: avoid uses after free
...
CID1422109
CID1422110
CID1422111
2020-04-06 23:11:10 +02:00
Boris Faure
6411f119ce
win: no need to check wn->config. Closes CID1422298
2020-04-06 22:59:26 +02:00
Boris Faure
5da6d66134
termptyesc: add missing debug line on bell
2020-04-06 22:58:48 +02:00
Boris Faure
0eac2752d3
win: don't call elm_win_alpha_set() too many times
2020-04-06 21:58:21 +02:00
Boris Faure
0fb87e2756
win: use edje_object_message_send on edj part…
2020-04-06 00:53:34 +02:00
Boris Faure
cbbfe60aae
config: share translucent+opacity settings accross instances
2020-04-05 23:20:11 +02:00
Boris Faure
6b8da82722
tycommon: ensure common tools are running in terminology
...
This is done by reading the tertiary device attributes and expecting
terminology's value.
2020-04-05 15:50:12 +02:00
Boris Faure
a119ac10cc
tycat/tyls: handle error on write()/scanf()
2020-04-05 15:49:26 +02:00
Boris Faure
58a1adac38
sb: ubsan: do not apply 0 offset to NULL pointer
2020-04-04 16:50:19 +02:00
Boris Faure
d5d96cb655
termpty: only call ecore_main_fd_handler_active_set() on valid fd
...
+ reformat
2020-04-02 22:56:26 +02:00
Boris Faure
ea2b80e5a2
termiolink: isspace can't be used on codepoint larger than uchar
2020-04-02 21:52:04 +02:00
Boris Faure
115cd1ebb4
link detection: handle unicode + mode surrounding cases + test
2020-04-02 00:13:59 +02:00
Boris Faure
e93b8cf619
termiolink: left strip spaces on emails
2020-03-31 23:29:05 +02:00
Boris Faure
5d2e0479b9
win: simplify focus handling when dropping tab to split
2020-03-30 22:30:10 +02:00
Boris Faure
5c85b8c624
win: _focus_validator() saves focused tc + add debug
2020-03-30 22:30:10 +02:00
Boris Faure
d267b57fb1
win: unfocus from correct parent + add focus checks
2020-03-29 13:34:59 +02:00
Boris Faure
6b9a9d680f
win: ensure clear state when recreating tabs
2020-03-28 22:08:19 +01:00
Boris Faure
7eba4c97e0
drag: add animation when dragging tab over other tabs
2020-03-26 22:00:31 +01:00
Boris Faure
7c857b211e
win: show hand cursor when dragging tab
2020-03-26 22:00:31 +01:00
Boris Faure
5a2e394c36
tab drag: have a thumbnail of the tab
2020-03-26 22:00:30 +01:00
Boris Faure
1ca9c13ace
win: add _focus_validator() to help debug focus issues
2020-03-26 22:00:30 +01:00
Boris Faure
81d9063d65
win: handle case where tab dragged is the last term
2020-03-26 22:00:30 +01:00
Boris Faure
0edb5f7913
win: rollback tabs when dragging tabs made last tab lonely
2020-03-26 22:00:30 +01:00
Boris Faure
413e6eb2a2
win: move saved position of tab when other tab is closed
2020-03-26 22:00:30 +01:00
Boris Faure
0fc86663a4
win: rollback tab drag from tabs
2020-03-26 22:00:30 +01:00
Boris Faure
9a6ff3c16c
win: rollback splitted term on tab drag cancellation
2020-03-26 22:00:30 +01:00
Boris Faure
496a307f67
win: drag a tab to split
2020-03-26 22:00:29 +01:00
Boris Faure
7b97a64644
tab dnd: add anim on where to drag the tab to split
2020-03-26 22:00:29 +01:00
Boris Faure
d4d7de118d
split icons: use them on controls
...
+ swap them since they look more natural to me like that
2020-03-26 21:54:51 +01:00
Boris Faure
2dc65380f7
controls: hide them when creating new tab or split
2020-03-25 23:27:18 +01:00
Boris Faure
00f08812be
win: avoid div by 0. CID1421876
2020-03-19 09:27:57 +01:00
Boris Faure
901e9692c1
win: simplify horizontal drag code
2020-03-18 23:31:06 +01:00
Boris Faure
c338286195
win: ensure the term has a container when dragging it
2020-02-25 21:01:33 +01:00
Boris Faure
6f48f706f5
win: have only one tab drag at a time
2020-02-23 21:52:24 +01:00
Boris Faure
3d6a9e1bf5
Merge branch 'terminology-1.6'
2020-02-16 18:53:50 +01:00
Boris Faure
2a3a34f503
termptyesc: handle zero-width spaces, with test
2020-02-16 18:51:36 +01:00
Carsten Haitzler
da88dd1128
scale - dont use nan as unsed but < 0.0 because this messes up
...
i found that the isnan messes up... and even tho it's nan it says its
not thus forcing tmp to be on all the time. using < 0 will be more
reliable for sure as scaling valuses <= 0 are just "invalid" anyway.
2020-02-16 13:11:46 +00:00
Boris Faure
1a7df68b84
win: test calloc()
...
Closes CID1419432
2020-02-15 23:09:32 +01:00
Boris Faure
2316b92d67
win: reinsert the tab when the mouse is
2020-02-15 22:33:51 +01:00
Boris Faure
82aa688f97
win: attach/detach term from structure to be able to move them
2020-02-15 21:28:15 +01:00
Boris Faure
033840c4c4
main: add --scale option to set scale factor
...
Useful for my tests :)
2020-02-15 21:27:57 +01:00
Boris Faure
daf5e03406
win: no need to set "tabs" in object data
2020-02-13 19:24:32 +01:00
Boris Faure
9dc5249224
win: handle drag on tab shown in splits
2020-02-13 19:24:32 +01:00
Boris Faure
300ddee81a
win: remove animation on long press on tab
2020-02-13 19:24:32 +01:00
Boris Faure
ee2c3e5ae9
theme: add active style to tabbar_back when tab is being dragged
2020-02-13 19:24:31 +01:00
Boris Faure
ef29315736
drag tabs to reinsert them
2020-02-13 19:24:31 +01:00
Boris Faure
756e5d63a1
Merge branch 'terminology-1.6'
2020-02-09 23:12:25 +01:00
Boris Faure
91e6ae31fc
ipc/main: restore ability to set multiple commands at startup.
...
Closes T8563
2020-02-09 23:10:39 +01:00
Boris Faure
941328d3f2
win: remove useless elm_layout_content_unset()
2020-02-03 21:56:53 +01:00
Boris Faure
2051978591
win: fix sizing
2020-02-03 21:00:09 +01:00
Boris Faure
d3147b1880
win: current tab shouldn't count for missed bell
2020-01-29 00:09:24 +01:00