Commit Graph

216 Commits

Author SHA1 Message Date
Boris Faure dd8e9cedcc move code about hyperlinks to termpty.c to avoid issues with tyfuzz 2018-10-17 22:53:31 +02:00
Boris Faure dc5c291bb9 highlight links on mouseover
+ related fixes
2018-10-13 19:21:19 +02:00
Boris Faure 258cf5c173 add termpty_cell_get() 2018-10-13 18:07:27 +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 643e783558 termpty: rewrite conditions on size_t ty->backsize 2018-09-13 07:47:49 +02:00
Boris Faure 0bf5343c34 termpty: simplify code 2018-09-13 07:43:57 +02:00
Boris Faure 780e95a8fb termpty: remove useless code 2018-08-12 19:22:39 +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 7c6d581465 Bring back the user title per tab
Summary: T6719

Reviewers: billiob

Reviewed By: billiob

Differential Revision: https://phab.enlightenment.org/D5852
2018-04-22 17:27:14 +02:00
Carsten Haitzler 1a55a67654 termpty - set ty_hand to null if returning cancel which dels the fdhand
this avoids later accidentally accessing an invlid hd handler.

@fix
2018-03-26 23:18:31 +09:00
Boris Faure dad9e0db58 remove compatibility #ifs to work with EFL < 1.16 2018-03-13 18:58:41 +01:00
Boris Faure d7432a52d6 move input handling to win.c 2018-02-05 00:07:47 +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 496a5f178e have only one concept of title. Ref T5704 2017-08-28 21:41:21 +02:00
Boris Faure 38da9b2ded correctly handle -T option. Ref T5704 2017-08-28 21:41:10 +02:00
Boris Faure acbf3387fa fix selections in the backlog. Closes T5743
In the backlog, every cell but the last one has the autowrapped flag set.
_termpty_cellrow_from_beacon_get() now returns a length in the
"screen space".
2017-08-26 18:51:22 +02:00
Boris Faure 6315ed2949 termpty: remove termstate.had_cr since it's unused 2017-08-21 23:46:28 +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 387cafa463 tyfuzz needs termpty_resize_tabs() 2017-05-17 22:35:01 +02:00
Boris Faure e188244c72 pty: fallback to ~ or / when creating new term if current dir is not available
Closes T5186
2017-02-17 21:57:57 +01:00
Carsten Haitzler 71f1fdc66c terminology tabs resize - fix access of invalid memory beyond bounds
we memcpy'd the currenty size over, so if prev size was smaller - this
was wrong and valgrind threw a complaint. also the rounding seems
utterly bizarre. it looks like it was meant to round up to the nearest
"lot of 8 tabs" so actually do that... which makes is easy to pass in
old width nicely now to fix the problem.

@fix
2017-01-31 13:03:36 +09:00
Boris Faure 41c4479dc5 termpty: verify that $SHELL is valid before using it. CID1366816 2016-12-24 18:40:18 +01:00
Boris Faure f3dd6f62fb termpty: Tab markers are the same for each line. Ref 4992 2016-12-18 18:48:03 +01:00
Boris Faure fae0d7ccee termptyesc: handle correctly Cursor Back Tab. Ref T4992 2016-12-15 23:11:22 +01:00
Carsten Haitzler 60d1c6d05c term pty fd - properly shut down without a 100% cpu hang
i've noticed that the exe cb tries to drain the pty fd but reads
return -1 with EAGAIN so terminology just spins forever in cpu trying
to drain a buffer that does not drain, so make a special case on exe
exit - drain until there just is nothing else to read then give up.

@fix
2016-12-13 11:53:50 +09:00
Al Poole 8dd7aefcb4 Fix bogus hack and restore cursor position to its right place. On OpenBSD and DragonFly the cursor is being incorrectly placed. Seems there was a Linux workaround too. My guess is this will fix that also.
Summary: Should help anyway.

Reviewers: billiob, raster

Differential Revision: https://phab.enlightenment.org/D4465
2016-12-06 23:42:10 +01:00
Boris Faure 273a85af00 termpty: handle BSD special case when the other side of the tty pair has quit 2016-12-06 21:49:15 +01:00
Boris Faure 5770c51d86 termpty: handle read() from tty pair when the other end has died, on some BSD
In such a case, read() returns 0 and sets errno to ECHILD…
2016-12-05 23:39:29 +01:00
Boris Faure 7508c8658b termpty: ensure we're not reading from invalid fd 2016-12-05 22:45:44 +01:00
Boris Faure 9b6bed8033 termpty: fix dead code and remove debugging code. CID1366815 2016-12-05 22:13:54 +01:00
Boris Faure 4b3225bfa9 termpty: make verify_beacon silent by default 2016-12-05 22:13:30 +01:00
Boris Faure 390e4193d0 termpty: fix possible issue when reading and the shell exited 2016-12-05 21:53:15 +01:00
Boris Faure 1f62588e97 termpty: avoid race between exit of the program and reading from it
Also ensure we read what was already in the pipe before we ever polled it.

Closes T4925
2016-12-04 23:24:28 +01:00
Boris Faure 32dbc65c6d env: unset COLUMNS, LINES, TERMCAP 2016-12-04 23:21:58 +01:00
Boris Faure 86f27f0474 termpty: remove useless code 2016-12-04 23:17:56 +01:00
Boris Faure d5f4811b2d improve error message 2016-12-04 18:05:43 +01:00
Boris Faure 51fe6b3428 fix getting lines with the beacon
add quite some testing that is disabled by default, used to ensure that
the beacon is always valid
2016-11-30 23:25:33 +01:00
Boris Faure c47b0c39d5 scrolling: fix issues with the beacon
Add a few comments on how it works
2016-11-20 18:23:56 +01:00
Boris Faure 566c6d3680 termpty: correctly handle saving cursor + switching to/from altbuf
Closes T4718
2016-10-18 00:15:06 +02:00
Boris Faure 76f1bf4342 prefix EINA_UNUSED parameters with an underscore
and fix related issues
2016-10-05 22:00:22 +02:00
José Roberto de Souza ae7e96633a Allow user to set the title of the each tab 2016-03-04 11:34:24 -03:00
Andy Williams fbf61bf815 [zoom] fix crash fix.
Sorry to anyone who lost character selection this morning...
2016-01-31 15:01:00 +00:00
Andy Williams 459cf7383d [zoom] Fix some potential crashes when zooming.
Generally just being a little more defensive against
potential errors.
2016-01-31 09:01:44 +00:00
Boris Faure 904f49ccc4 remove statement with no effect 2015-12-26 11:52:31 +01:00
Boris Faure 3091a4e479 Closes T2911. fix reflow
- correctly set `autowrapped`
- reflow the top line when part of its content is in backlog
2015-12-10 21:15:17 +01:00
Boris Faure 66d05abb11 fix text reflow. Closes T2911
I should write unit tests on that someday
2015-12-07 22:05:49 +01:00
Carsten Haitzler 5a5b80ebec fix fuzzing so terminology works at all again
if (len <= 0)

in _cb_fd_read() is ALWAYS coming up with len < 0 for me and that'd
be LOGICAL... eg if read() returns an error (something ok to allow us
to continue) and so my terminal content NEVER appears - because
terminology is returning false from the fb handler asking it to be
deleted. this is wrong so put it inside #ifdef of fuzzing so it
doesn't affect "normal people". i still think it is broken tho... but
at least i have my terminal back now.
2015-11-12 09:53:32 +09:00