Commit Graph

197 Commits

Author SHA1 Message Date
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
Boris Faure 2b9c9a8351 add some padding fields to be sure holes are initialized (hi valgrind!) 2014-05-08 13:55:01 +02:00
Boris Faure 9346db3ba7 initialize some variables 2014-03-25 21:57:34 +01:00
Boris Faure 0313446e79 let's try to recover from malloc failure: ahah 2014-03-25 21:43:49 +01:00
Boris Faure 8f3258f1b3 use a bit more Eina_Unicode 2014-03-25 21:35:31 +01:00
Sebastian Dransfeld 2263fd872e return after failed memory allocation
CID 1100649
2014-03-24 13:38:42 +01:00
Sebastian Dransfeld 1c53e10b42 don't write to NULL buffer
If we have checked for allocation failure, no need to write to buffer.

CID 1100648
2014-03-24 13:37:07 +01:00
Sebastian Dransfeld fe45b5c73f remove weird check
After allocation of new_screen, we should check the allocation of this
variable, and return if we cannot allocate.

CID 1100647
2014-03-24 13:35:08 +01:00
Aleksandar Popadić ca143565a4 Fix disappearing prompt on resize
...and break reflow of multiline prompt lines.
2014-03-15 21:40:05 +01:00
Boris Faure 864fa1e368 set IUTF8 flag. Closes T656 2014-01-29 22:57:49 +01:00
Boris Faure 7cc50d4e05 fix wrong cast. thanks to OnlyHuman 2014-01-22 23:22:42 +01:00
Carsten Haitzler 870d592139 set EMOTION_ENGINE to tyls (and ethumb etc.) can use it inside shell
this should fix T291
2014-01-22 20:32:25 +09:00
Aleksandar Popadić 4ed6ca9385 Close T643 for the time being.
Reviewers: billiob

Maniphest Tasks: T643

Differential Revision: https://phab.enlightenment.org/D408
2013-12-25 11:57:13 +01:00
Aleksandar Popadić 59a7627e86 Fix reflow on resize when in alternate buffer. Closes T637
Summary:
After commit 05d091483a screen swap form
alternate buffer to primary buffer is not the same as the reversed. Take this
into account when resizing.

Test Plan: Build history, man echo, resize, quit manual.

Reviewers: billiob

Differential Revision: https://phab.enlightenment.org/D370
2013-12-10 21:23:32 +01:00
Carsten Haitzler 6cbc4c1a09 wrap code - line2 COULD be NULL technically, so handle that case 2013-12-06 19:00:23 +09:00
Boris Faure 05d091483a fix changing state when swapping buffers. Closes T605
For some reason, this is not a real swap. Thanks to gregkh for the great
bug report.
2013-12-05 22:48:58 +01:00
Aleksandar Popadić b31638a630 Fix resize from width=1 to wider.
Test Plan:
Shrink terminal to width=1 and expand. Empty lines appear above
prompt line.

Reviewers: billiob

Differential Revision: https://phab.enlightenment.org/D361
2013-12-02 21:51:03 +01:00
Boris Faure fa0cdc0e1d remove unused parameter 2013-12-01 23:19:54 +01:00
Aleksandar Popadić d0c6c1d457 Rewrite reflow on resize
Summary:
simplify code (treat every resize as a single case) and fill the lines
from the bottom up

Reviewers: billiob

Differential Revision: https://phab.enlightenment.org/D355
2013-12-01 19:47:12 +01:00
Aleksandar Popadić 11db9a1117 Fix screen swap when using alternate buffer.
Summary:
The circular_offset should not be set to 0 because the first line from
screen2 is copied to the offset line in screen.

Test Plan:
Try "man echo", scroll down and exit. The screen is not restored
properly.

Reviewers: billiob

Reviewed By: billiob

Differential Revision: https://phab.enlightenment.org/D345
2013-11-22 22:17:02 +01:00
Boris Faure df2b87308b add termpty_screen_swap() to simplify code 2013-11-18 21:41:30 +01:00
Aleksandar Popadić 7447178071 Fix screen refresh with screen, ssh, vim, ...
Summary: This closes T143.

Reviewers: billiob

Reviewed By: billiob

Maniphest Tasks: T143

Differential Revision: https://phab.enlightenment.org/D340
2013-11-18 20:45:47 +01:00
Boris Faure 4d629c5575 do not try to reflow altbuf 2013-11-10 15:34:40 +01:00
Cedric Bail 433b18b211 terminology: let the compiler inline more agressively the common case for a 1% win. 2013-10-28 18:55:19 +09:00
Carsten Haitzler 8585c3e9c2 maybe speed up term scroll byt skipping compare work
since nothing useful is actually done unless either oldc or newc have
a media char - then try return/skip early. might speed up by 2-5%...
(i see 4.05 vs 4.15 or so cat times for a test case).
2013-10-25 23:37:10 +09:00
Boris Faure f539eba7ca screw terminfo: have a config to decide whether erase is del or backspace
One day I'll have to dig into the terminfo/termcap mess :(
Maybe get the O'Reilly book about it…
2013-09-26 21:19:18 +02:00
Boris Faure ed36063690 set correct mode with fcntl 2013-09-26 21:19:08 +02:00
Boris Faure ef543aa753 have a config to choose whether to set TERM to xterm-256color 2013-09-26 21:18:27 +02:00
Cedric Bail 40c3cedd6a terminology: let's help the compiler and tell him about this hot spot. 2013-08-30 16:06:49 +09:00
Carsten Haitzler e8addbac90 don t consider greantpt failure an error, but a warning. 2013-08-30 14:17:42 +09:00
Carsten Haitzler 6c2884bdcb oops.. , not m 2013-08-30 12:15:07 +09:00
Carsten Haitzler 3a2a58473b ad erro handling for pty alloc (never seen it fail!) 2013-08-30 12:14:18 +09:00
Boris Faure 30392f23a9 s/__UNUSED__/EINA_UNUSED/g 2013-08-27 15:36:50 +02:00
Boris Faure 9d000c7c1d fix word selection on multiple lines. Closes T305 2013-08-26 20:44:46 +02:00
Boris Faure 8e576f3978 reflow: do not add a newline when consolidation backscroll 2013-05-23 23:04:33 +02:00
Boris Faure e8499b46aa fix reflow on horizonal expansion 2013-05-23 22:34:14 +02:00
Carsten Haitzler 5549fc05a0 add compressed backscroll to terminology...
we get about 0.35-0.4 or so ratio of compression. it also now
defragments memory used for backscroll and holed it in mmaped blocks
so when the blocks go all memory goes used for backscroll.
2013-05-05 23:10:44 +09:00
Carsten Haitzler 3fc3ce4c79 add whitepsace debug mode and termsave abstraction infra. 2013-05-04 11:45:45 +09:00
Carsten Haitzler 854dd69c31 clean some formatting. 2013-05-03 19:53:41 +09:00
Boris Faure 7a92b145e5 fix issue when buffer cuts last unicode 2013-04-28 22:47:14 +02:00
Boris Faure 07f4b23b16 reflow: fix segv sometimes when vertically shrinking 2013-04-20 17:38:31 +02:00
Carsten Haitzler f5b84edbfd more work ok direct edje inline content. u can send messages toit now
on init... and get signals... and drag events... but cant get messages
yet.
2013-04-20 16:54:11 +09:00
Carsten Haitzler bbdf50fd62 protect against segv. see comments. 2013-04-20 12:50:31 +09:00
Carsten Haitzler ef00ad2010 1. make notes of crash in term resizing.
2. fix memset to use term cell filler that handles block refs.
2013-04-20 12:07:13 +09:00
Carsten Haitzler 3aa98cd6f6 allow for raw edje files to be inlined ANd to set tet, emit signals to
them etc.
2013-04-20 10:37:05 +09:00
Boris Faure 0c47c4ba4d reflow: fix horizontal shrinking 2013-04-12 22:13:17 +02:00
Boris Faure 274e2b13b2 reflow: fix vertical shrinking 2013-04-12 22:13:17 +02:00
Boris Faure ce65369d57 reflow: fix displaying history on vertical expansion 2013-04-12 22:13:17 +02:00
Boris Faure b749acfc3c reflow: use termpty_cell_copy() instead of memcpy()
Also get rid of _termpty_text_copy().
2013-04-12 22:13:17 +02:00
Boris Faure ea60fdf9a4 reflow: fix setting cursor position on vertical shrink 2013-04-12 22:13:17 +02:00
Boris Faure 66e8493154 reflow: skip last empty lines when vertically shrinking 2013-04-12 22:13:17 +02:00
Boris Faure a7858ecc2e reflow: display content from backlog when vertically expanding 2013-04-12 22:13:17 +02:00
Boris Faure fc7dcbdad6 reflow: don't let resize to 1x1
this occurs on terminolog start. dunno why ftm but it annoys me
2013-04-12 22:13:17 +02:00
Boris Faure 57032d607e reflow: do not shrink unused lines 2013-04-12 22:13:17 +02:00
Boris Faure 9c9a05e958 reflow: do not always reset circular_offset on resize 2013-04-12 22:13:16 +02:00
Boris Faure df08549f84 reflow: horizontally shrink the screen buffer 2013-04-12 22:13:16 +02:00
Boris Faure 74aa62f13c reflow: horizontally shrink backlog 2013-04-12 22:13:16 +02:00
Boris Faure d90396a803 reflow: define OLD_SCREEN() on a higher level 2013-04-12 22:13:16 +02:00
Boris Faure f810600875 reflow: move cursor line when horizontally expanding 2013-04-12 22:13:16 +02:00
Boris Faure 25928a31b4 reflow: shrink vertically in place if needed 2013-04-12 22:13:16 +02:00
Boris Faure 55d2d0e483 reflow: dummy vertical shrink 2013-04-12 22:13:16 +02:00
Boris Faure b605913b1d reflow: fix backscroll expansion when full 2013-04-12 22:13:16 +02:00
Boris Faure 18c8aff57c reflow: add vertically expansion support 2013-04-12 22:13:16 +02:00
Boris Faure 591529c05f reflow: WIP: vertical expansion 2013-04-12 22:13:16 +02:00
Boris Faure 852400f039 reflow: correctly set line length when pushing to backscroll 2013-04-12 22:13:16 +02:00
Boris Faure 050892a04c reflow: remove empty lines due to screen expansion 2013-04-12 22:13:16 +02:00
Boris Faure 04cfd43af4 reflow: rewrap correctly between backscroll and screen
Refs: #1184
2013-04-12 22:13:16 +02:00
Boris Faure ee9e6af8c0 reflow: add backscroll expanding
Refs: #1184
2013-04-12 22:13:16 +02:00
Boris Faure 8208428e89 reflow: expand screen
Refs: #1184
2013-04-12 22:13:16 +02:00
Carsten Haitzler 735d93fbc4 1. add the ability to have a link AND image path in inline images and
thumbs (allows for different thumbnail compared to what it links to).
2. fix if media obj is deleted on its own (stop button).
2013-03-11 16:56:07 +09:00
Carsten Haitzler f32952ce49 redundant set to 0.
SVN revision: 83568
2013-02-02 07:39:29 +00:00
Carsten Haitzler 0015767f4b tidy yp tycat - handle edj and mp3/audio files - ahare extensions
handling and filtering, actually free tup termblocks when no longer
referenced without needing a gc, etc. ...



SVN revision: 83441
2013-01-29 15:54:47 +00:00
Carsten Haitzler 95c757c449 allow terminology top build with 1.7?
SVN revision: 83400
2013-01-29 03:52:57 +00:00
Carsten Haitzler 3b9b38b86c make block insert allow the inserter to specify a character to replace
on insert. this allows multiple insertions to be "active
simultaneously". until all the inset chars are used up. need to wrap
these insert chars with begin/end escapes still for efficiency and so
you can use insert chars elsewhere in the same text output area.

also clean up warnings.



SVN revision: 83394
2013-01-29 00:43:13 +00:00
Carsten Haitzler 2781da8076 tcat... comes out to play fir the first time. not final... but a start.
SVN revision: 83385
2013-01-28 16:06:26 +00:00
Cedric BAIL 1b69c6c544 efl: deprecate eina_unicode_utf8_get_next, add eina_unicode_utf8_next_get.
SVN revision: 83048
2013-01-22 02:00:55 +00:00
Cedric BAIL e36295ce3e terminology: improve speed of text scrolling by using a circular buffer.
SVN revision: 83038
2013-01-21 14:02:32 +00:00