Improves 679b819216 to make it simpler to
ignore mosh-client from OS X Terminal.app's "Ask before closing" process
list. (See: http://superuser.com/a/254647)
Moreover, the command displayed from ps is a completely functional one,
which was not the case in the previous approach, that mangles `argv[0]`.
Fixes#742.
* A resize action could be applied to the framebuffer but discarded
before being applied to termios, causing them to be out of sync.
* Only every second action was skipped, instead of skipping
consecutive resize actions, as intended.
Found by inspection, not seen in actual usage or by the window-resize
test.
This field was used during development to measure the
coverage of the ANSI terminal parser against typical
terminal input sequences.
The "handled" field has not been read by any code since
commit 1ee54cd7 (February 2011). Eliminating the field
by popular request (closes#723).
This allows more Resize instructions to be elided. It also keeps the
server from sending empty updates when the screen has been written but
not changed.
Add another round-trip verification. For both original and generated
state, generate a diff from an initial, empty state. Verify that
these two diffs are the same.
The problem was that the round-trip verification code copies the
current state, which may contain intermediate Parser state for
multibyte characters and ANSI escape sequences. It then applies diffs
to that copy, which may appear as badly formed input.
Also removes some dead, never-used code.
ASCII <-> UTF has trivial mappings. Avoid wcrtomb() and mbrtowc().
ISO-8859-1 is all narrow characters, and cheap to test for. It might
be possible to cheaply test other popular UTF blocks and/or planes as
well.
These two changes get 2-3x faster input processing on Linux and
FreeBSD. Performance improvement in actual usage is more modest but
still significant.