The previous code had the following issues:
1) hardcoded the path of /bin/sh (should use paths.h)
2) threw away the variable with the fallback shell
3) prepended - to the path rather than the shell name
4) added a - before explicit chosen non-shell commands
Closes#199.
There appears to be a typo/thinko in the ncurses detection
stuff in configure.ac. The fallout was that on a Linux host
without ncurses-devel installed, "./configure" failed to find
curses.h but claimed overall success, then the build failed
later during make. This patch removes an extraneous comma, which
seems to make it both fail and succeed correctly when it should.
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.
As far as I know, for all implementations of libutempter, the
utempter_remove_added_record() function depends on the file descriptor
passed to utempter_add_record() to still be valid. The reason for this,
is that this file descriptor is propagated to the setuid utility that is
responsible for modifying utmpx.
Modify the code to remove the utmpx entry before closing the
pseudo-terminal master device. While there, simply use
utempter_remove_record(), which takes the file descriptor explicitly.
The advantage is that this prevents potential foot-shooting in the
future. Visual inspection of the source code will make it more obvious
that utempter depends on the file descriptor.
Closes#179.
Let users specify an ssh outside their PATH, or extra flags like -p or -i.
Modify the usage message to describe this feature and hint at the
semantic difference viz. --client=path\ to\ client vs --ssh="path\ to\
ssh".
Closes#53
[keithw@mit.edu -- applied fixes per Anders Kaseorg]
EL5 lacks htobe64 and friends. Using its byteswap.h requires an endianness
check in our headers, which is fragile and compiler-dependent. It's a fair
amount of code [1], and is only useful on EL5.
So instead, let's include a fallback implementation of these functions, and use
it whenever we can't find the (now-)standard Linux or OS X routines. The
fallback is endianness-independent and should work on any platform.
[1] https://github.com/rurban/mosh/commit/da1a5abd1e09f0c1e9295357bb480a643d9dc8e3