Split macOS and Linux implementations and fix password echo bug #436
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously the
PosixTerminal
class used the POSIXtermios
structure andtcgetattr
/tcsetattr
functions for both macOS and Linux systems.However, it transpires that the definition of the
termios
flags fields differs between Mac and Linux. On Linux the fields areunsigned int
(4 bytes), but on macOS the fields areunsigned long
(8 bytes).This change splits the
termios
structure into Mac and Linux flavours and sets the correct field offsets.This also fixes a bug with the bit fiddling.. previously we correctly cleared the
echo
bit when needed, but failed to set the bit if needed. This was not really an issue since echo is usually default "on" anyway.Fixes #432