Keith Winstein
8026c924dc
Quit with cursor visible.
2012-05-23 11:44:49 -04:00
Larry Doolittle
eda48085ba
Simple spelling fixes
2012-05-23 05:11:05 -04:00
Keith Winstein
1cf12f9e9b
Prevent integer overflow of very large escape sequence params. Fixes #274 .
2012-05-16 12:16:50 -04:00
Keith Winstein
9791768705
Cap escape sequence parameters to prevent long loops.
...
Fixes #271 github issue.
2012-05-15 23:46:09 -04:00
Keith Winstein
22375a2d54
Tabulation clear preserves wrap state (per davidben)
2012-05-06 20:01:39 -04:00
Keith Winstein
43182729ec
More graceful output from failed verification
2012-05-05 01:53:28 -04:00
Keith Winstein
48fbe3d0e1
Correctly handle wrapped lines where first portion is blank
2012-05-05 01:45:19 -04:00
Keith Winstein
3bdcc98ba4
Tab preserves, but does not set, wrap state when used in last col.
...
Fixes vttest regression.
2012-05-05 00:04:43 -04:00
Keith Winstein
c8951c7dfd
Use memmove() where ranges may overlap. Fixes #200 (Matthew Dempsky).
2012-04-16 18:22:27 -04:00
Keith Winstein
bfa0999089
Final tab-related bugfix (of the morning). Now matches xterm more closely.
2012-04-16 11:31:37 -04:00
Keith Winstein
0293e579d2
Properly reset tab stops on resize
2012-04-16 09:55:59 -04:00
Keegan McAllister
c390ee9b80
Hardcode the terminals which accept "set window title"
...
terminfo does not have reliable information on this, so we hardcode a whitelist
of terminal type prefixes. This is the list from Debian's default screenrc,
plus "screen" itself (which also covers tmux).
Closes #172 .
Closes #191 .
2012-04-16 09:23:30 -04:00
Keith Winstein
feb352c809
Optional verifier for round-trippability, and fix wrapping and tab bugs.
2012-04-16 09:09:20 -04:00
Keith Winstein
c15d3d0c48
Use "ANSI-mode" cursor keys only on actual cursor keys (A through D).
...
Fixes #161 .
2012-04-16 03:44:07 -04:00
Keith Winstein
6b6747cda7
Fix valgrind error with 1-col char then 2-col char in a 1x1 terminal
2012-04-15 17:11:40 -04:00
Keegan McAllister
cd2d482484
Don't use *_t for our own typedefs
...
It's reserved by POSIX.
(closes #158 pull request)
2012-04-15 13:50:18 -04:00
Keegan McAllister
8bcc001b52
Remove Boost entirely
2012-04-15 13:49:15 -04:00
Keegan McAllister
8f099cafbb
Remove boost::lambda from ConditionalOverlayCell::get_validity
2012-04-15 13:49:15 -04:00
Keegan McAllister
6e56fd2157
Remove BOOST_AUTO from terminaldisplay.cc
2012-04-15 13:49:15 -04:00
Keegan McAllister
87a5f86794
Remove BOOST_AUTO from terminalframebuffer.cc
2012-04-15 13:49:15 -04:00
Keith Winstein
a4221d17a4
Disable posterization and rely solely on TERM to tell remote end about colors
...
(should help #155 github issue)
2012-04-14 13:46:38 -04:00
Keith Winstein
5c20c8d4be
Keep using OSC 0 when possible to preserve compability with older clients.
...
Re: #137
2012-04-14 02:11:31 -04:00
Keith Winstein
d0a818d2e2
Track icon name and window title separately. Implement MOSH_TITLE_NOPREFIX
2012-04-14 01:55:28 -04:00
Keith Winstein
53f79e4261
Fix vttest "Funny scrolling regions" by ignoring some invalid scroll regions
...
Addresses #155 github issue.
2012-04-14 01:11:57 -04:00
Keegan McAllister
d2434d1a79
Check compiler support for -fno-default-inline and -pipe
...
clang was spewing warnings about the unrecognized -fno-default-inline. (Oddly,
it warns only with -c, not when compiling directly to an executable.) For
completeness we also check -pipe, even though clang is OK with that one.
It should be fine to omit either flag. gcc -fno-default-inline drops the
implicit 'inline' annotation on functions defined inside a class scope, but
'inline' is only a hint anyway. -fno-default-inline does not change linkage.
-pipe is merely a compile speed optimization.
2012-04-13 12:27:27 -04:00
Keegan McAllister
349e2d20c8
Use the hardening flags
...
Closes #79 .
2012-04-13 12:25:09 -04:00
Keith Winstein
a67ae7b0f4
Support 16-color set (per Anders Kaseorg).
...
Closes #106 github issue.
Closes #133 github issue.
Closes #131 github issue.
2012-04-11 03:09:26 -04:00
Anders Kaseorg
9cec566cd1
Find ncurses from pkg-config if possible, and prefer separate libtinfo
...
Recent ncurses can be configured --with-termlib, which splits out the
terminfo-level functions from libncurses into a separate libtinfo.
This allows us to avoid an unnecessary dependency on libncurses. (We
already avoided this on distributions that link with -Wl,--as-needed.)
Signed-off-by: Anders Kaseorg <andersk@mit.edu >
Closes #128 github pull request.
2012-04-11 02:47:55 -04:00
Peter Jeremy
fd0ddf0e22
strtol(3) can optionally set errno to EINVAL if no conversion could be
...
performed and FreeBSD (at least) implements thin behaviour. Add an
explicit test to detect this situation in Dispatcher::parse_params().
(This behaviour difference is not relevant to other uses of strtol()).
This corrects the mishandling of (eg) "CSI m" on FreeBSD.
Closes #129 github pull request.
[keithw -- also fixes same issue with mosh-server on OS X]
2012-04-11 02:46:26 -04:00
Keith Winstein
b4c47b77cf
Fix bug involving wraparound copy-and-paste to a blank line.
...
Identified by Anders Kaseorg.
Test case:
( reset; seq 100; printf 'Hello, world!'; sleep 1;
printf '\t\t\t\t\t\t\t\t\t\t \r\e[K'; sleep 1; printf '\n' )
> /dev/pts/16 2>&1
(replace /dev/pts/16 with mosh or termemu terminal)
2012-04-11 02:40:18 -04:00
Keith Winstein
4144f2e4f0
Don't clear wrap state on DEC set mode escape (matches xterm)
2012-04-11 01:58:20 -04:00
Keith Winstein
8221838f51
Fix bug sometimes causing missing (or spurious) wraparound copy-and-paste
2012-04-02 19:04:26 -04:00
Keith Winstein
eea48e59d3
Avoid compiler warning on platforms where wchar_t is uint32_t (arm)
2012-03-31 14:30:24 -04:00
Keegan McAllister
7ed5174aa7
Move some locale handling into one place
2012-03-26 20:08:55 -04:00
Keith Winstein
00561a95d3
No need to reset scrolling region on close -- we always clean this up
2012-03-21 19:01:35 -04:00
Keith Winstein
76612229d5
Change shutdown sequence (take away DECSTR)
2012-03-21 18:59:04 -04:00
Keith Winstein
e4780c5d05
Invalidate cursor location (but don't actually move cursor) after scroll reset
2012-03-18 16:26:16 -04:00
Keith Winstein
231c181101
Scroll only scrolled region ( fixes #31 github issue)
2012-03-18 16:07:23 -04:00
Keith Winstein
13bd38aa51
Switch to deltaE method for color posterization
2012-03-18 01:52:13 -04:00
Keith Winstein
d88ae9bfd0
Fix erroneous blinking in emacs (sgr with >15 fg but <16 bg)
2012-03-17 15:00:54 -04:00
Keith Winstein
170bc8366a
Posterize to 8 colors when outer terminal does not support 256 colors
...
Fixes #58 github issue.
2012-03-16 17:43:01 -04:00
Keith Winstein
c896055d15
Correctly render on terminals without BCE ( fixes #56 github issue)
2012-03-16 13:46:55 -04:00
Keith Winstein
57d97209c0
Support 256color (and assume 256color terminal). Closes #3 github issue.
2012-03-16 13:46:55 -04:00
Keith Winstein
4783e7cd82
Eliminate unnecessary snprintf()
2012-03-14 02:14:10 -04:00
Keith Winstein
561a2be761
Optimize out use of sgr() by storing rendition instead (11% speedup)
2012-03-14 01:11:47 -04:00
Anders Kaseorg
843401a935
Display::Display: Fix undefined pointer comparison
...
“If two pointers p and q of the same type point to different that are
not members of the same object or elements of the same array or to
different functions, or if only one of them is null, the results of
p<q, p>q, p<=q, and p>=q are unspecified.”
Signed-off-by: Anders Kaseorg <andersk@mit.edu >
2012-03-10 15:58:19 -05:00
Keith Winstein
bc3297aa75
Small cleanup to generated output when predictions active
2012-03-10 06:42:21 -05:00
Keith Winstein
122d9fbccf
Eliminate warning on OS X where argument to tigetstr is not const
2012-03-10 06:02:17 -05:00
Keith Winstein
b8457dd308
Use TERM env var / terminfo to decide whether to send ECH. Fixes tmux bug.
...
Closes #28 github issue.
2012-03-10 05:41:03 -05:00
Keith Winstein
ac16f9127c
Output EL (erase line) when possible
2012-03-10 04:30:04 -05:00