Commit Graph

2117 Commits

Author SHA1 Message Date
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