Commit Graph

173 Commits

Author SHA1 Message Date
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
Boris Faure b4ba773e17 fix CSI DECSET 1049. Should fix T725 2015-03-01 17:20:18 +01:00
Boris Faure 27304c456f make terminology start on solaris 2015-02-23 23:33:06 +01:00
Boris Faure cf1a9a3a01 verify that tcgetattr() does not fail 2015-02-23 23:33:01 +01:00
Boris Faure e4d357ace2 make terminology work on solaris
tcsetattr() should only be called on the slave fd. On linux, both master
or slave are accepted, not on solaris.
2015-02-17 22:08:47 +01:00
Carsten Haitzler 6268dc32e4 terminology - fix double click selection and jed display
this fixes breaks introduced by
e94051dd86 (the previous commit).

latest commit: e94051dd86

breaks 2 things.

1. double-click to select a "word" is broken. the right end of the selection is
stuck at the point where the cursor is, not the right end of the word. try it.
at least that is what i see. either way double-click to select a word is now
broken. ;(

2. what used to be black whitespace bg is now "empty" chars (so i see
terminology bg). this breaks jed output pretty badly.

see...

working:
http://www.enlightenment.org/ss/e-54d05f357a3391.24747752.png

not working:
http://www.enlightenment.org/ss/e-54d05f672a4df7.83729511.png
2015-02-03 14:45:23 +09:00
Boris Faure e94051dd86 make selection consistent when selecting space with no text. Closes T2013 2015-01-30 00:24:55 +01:00
Boris Faure cd04b71611 check tcsetattr() 2015-01-10 21:02:05 +01:00
Boris Faure 7f98dba714 set a title to the term based on the shell started 2014-12-16 22:11:06 +01:00
Boris Faure cbc92a55fc Fix screen mangling from prompt redraws on resize. Closes T1193
There are still some oddities because the shell doesn't expect us to
reflow.

Let's say we have the following where X is the cursor.

+-------+
|foobar$|
|X      |
+-------+
Here, the shell explicitly told us to go to a new line after '$'. We don't
consider '$' is on the same line as 'foobar'.
Decrease the width of that window.
+------+
|foobar|
|$     |
|X     |
+------+
Let the shell know the new size. It decides to redraw the prompt. It
remembers it told us to go to a new line, so the first thing it tells us
is to go one line up: to '$' and not 'foobar'. Then it tells us to clear
the screen downward from there and to print "foobar$" (and go to new
line).

Thus we have the following:
+------+
|foobar|
|foobar|
|$     |
|X     |
+------+
2014-12-07 23:51:23 +01:00
Boris Faure 978f83dc03 just sighup the shell, don't sigpipe it. Closes T1685 2014-09-28 13:46:04 +02:00
Boris Faure b9a994c4bd fix compilation. I'm tired… 2014-09-15 23:30:48 +02:00
Boris Faure 2eb2b9646f fix segfault when OOM on the termpty_save module 2014-09-15 22:07:22 +02:00
Boris Faure 90c53f5974 fix CID 1238659: Dereference after null check (FORWARD_NULL) 2014-09-15 21:04:26 +02:00
Boris Faure 51555f9c35 fork can fail 2014-09-14 22:46:22 +02:00
Boris Faure 6d4219137f try to handle OOM on "termpty_save" 2014-09-14 14:11:14 +02:00
Carsten Haitzler 15b55d5eb7 Revert "do not crash when the scrollback mempool is OOM"
This reverts commit 815a357ad9.

this patch breaks paging and backscroll completely. just try less or
more - eg

man ls

then resize the window. :)
2014-09-10 16:57:32 +09:00
Boris Faure 815a357ad9 do not crash when the scrollback mempool is OOM 2014-09-08 21:28:26 +02:00
Boris Faure 601450db01 review translation strings. Closes T1433 2014-07-26 11:37:27 +02:00
Boris Faure 8a3c15e08e gettextify termcmd.c,termio.c,termpty.c,termptyesc.c 2014-07-26 11:37:26 +02:00