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
Boris Faure
a925de13dc
tyfuzz: read from stdin but write to /dev/null
2015-11-08 13:06:13 +01:00
Boris Faure
01421754ec
make termpty_handle_buf() public to ease fuzzing
2015-11-08 13:05:43 +01:00
Boris Faure
755a4c3f2f
enable fuzzing with --enable-fuzzing
...
Only enable it if you know what you're doing
2015-11-08 13:05:43 +01:00
Boris Faure
d11ebd1247
add code to fuzz terminology (wip)
2015-11-08 13:05:43 +01:00
Boris Faure
a334bf6554
termpty: fix resizing
...
do not add a useless newline
do not copy the same content few times
2015-09-13 23:17:17 +02:00
Boris Faure
386cf11b19
fix backlog locking
2015-09-13 23:17:03 +02:00
Boris Faure
78cb50c7a3
fix line length computation
2015-09-13 23:16:30 +02:00
Boris Faure
fe58cd058b
only use beacon when it seems efficient
2015-08-10 21:44:05 +02:00
Boris Faure
d0bedb9a8a
backlog: update beacon while browsing
2015-08-10 21:31:24 +02:00
Boris Faure
7af60a58c8
BACKLOG_ROW_GET() should not be called with a "screen" value
...
the backlog is independent of the screen size. Thus a single line in the
backlog can span many lines on the screen.
2015-08-09 14:10:12 +02:00
Boris Faure
b4c91eee47
fix scroll after resize
2015-08-08 16:40:05 +02:00
Boris Faure
5c37589e39
fix resize when cursor alone on last line
2015-08-05 22:57:01 +02:00