handle "ptr" format executable files tty read always returns only one character add shell-compatible "smes" behavior