Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Allow suspend by keystroke (Ctrl-^ Ctrl-Z)

(based on patch by Nickolai Zeldovich)
  • Loading branch information...
commit 5eafc209eab50d0387b887fcda933ecf86b3d500 1 parent 1c2b48a
@keithw keithw authored
Showing with 17 additions and 0 deletions.
  1. +17 −0 src/frontend/stmclient.cc
View
17 src/frontend/stmclient.cc
@@ -264,6 +264,23 @@ bool STMClient::process_user_input( int fd )
} else {
return false;
}
+ } else if ( the_byte == 0x1a ) { /* Suspend sequence is Ctrl-^ Ctrl-Z */
+ /* Restore terminal and terminal-driver state */
+ swrite( STDOUT_FILENO, Terminal::Emulator::close().c_str() );
+
+ if ( tcsetattr( STDIN_FILENO, TCSANOW, &saved_termios ) < 0 ) {
+ perror( "tcsetattr" );
+ exit( 1 );
+ }
+
+ /* clear screen */
+ printf( "\033[H\033[2J" );
+ printf( "\033[37;44m[mosh is suspended.]\n\033[m" );
+
+ fflush( NULL );
+
+ /* actually suspend */
+ raise( SIGTSTP );
} else if ( the_byte == '^' ) {
/* Emulation sequence to type Ctrl-^ is Ctrl-^ ^ */
network->get_current_state().push_back( Parser::UserByte( 0x1E ) );
Please sign in to comment.
Something went wrong with that request. Please try again.