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
Boris Faure
21764bbf85
remove wrong assert when no backlog ever generated
2015-08-03 21:23:38 +02:00
Boris Faure
8fbffdd869
renames to make the code more consistant
2015-08-03 20:44:55 +02:00
Boris Faure
35c8fd79c0
speed up browsing backlog
...
have a "beacon": single point where the link between an offset in the
backlog and one in screen coordinates
2015-08-03 20:44:55 +02:00
Boris Faure
34592ab5b3
new resize/backlog implementation. Closes T2461
...
idea: store full lines in the backlog. No need to change them on resize
2015-08-03 20:43:17 +02:00
Boris Faure
681bb029c2
ensure cursor coordinates are always valid, 2nd version
2015-06-03 23:02:31 +02:00
Carsten Haitzler
074eece5f7
Revert "ensure cursor coordinates are always valid"
...
This reverts commit 1f3f779258
.
this breaks terminal scrolling entirely! can't scroll anymore at all
in standard shell. just try a simple: find / -print
2015-06-03 15:00:13 +09:00
Boris Faure
1f3f779258
ensure cursor coordinates are always valid
2015-06-02 22:48:50 +02:00
Boris Faure
c86b35309c
rename a bunch of _termpty_*() to termpty_*()
2015-06-02 21:47:06 +02:00
Boris Faure
be62d87f89
separate "termstate" from cursor state and screens. Closes T725
2015-04-23 20:02:53 +02:00
Boris Faure
4abdf4b327
code cleanup: s/if (X) free(X);/free(X);/
2015-03-18 15:23:39 +01:00
Boris Faure
ed178f5a13
typo
2015-03-17 18:47:26 +01:00
Boris Faure
7edeea3503
correctly swap term states. Ref T725
2015-03-17 17:15:50 +01:00