mosh: Fix C++ mosh wrapper color counting
See https://github.com/mobile-shell/mosh/pull/96#issuecomment-7804069
This commit is contained in:
parent
f55a1d8b00
commit
1f87518b8c
|
@ -315,9 +315,7 @@ int main( int argc, char *argv[] )
|
||||||
freeaddrinfo( servinfo ); // all done with this structure
|
freeaddrinfo( servinfo ); // all done with this structure
|
||||||
|
|
||||||
int pid = fork();
|
int pid = fork();
|
||||||
if ( pid == -1 ) {
|
if ( pid == -1 ) die( "%s: fork: %d", argv[0], errno );
|
||||||
die( "%s: fork: %d", argv[0], errno );
|
|
||||||
}
|
|
||||||
if ( pid == 0 ) {
|
if ( pid == 0 ) {
|
||||||
cat( sockfd, 1 );
|
cat( sockfd, 1 );
|
||||||
shutdown( sockfd, 0 );
|
shutdown( sockfd, 0 );
|
||||||
|
@ -340,15 +338,15 @@ int main( int argc, char *argv[] )
|
||||||
|
|
||||||
string color_invocation = client + " -c";
|
string color_invocation = client + " -c";
|
||||||
FILE *color_file = popen( color_invocation.c_str(), "r" );
|
FILE *color_file = popen( color_invocation.c_str(), "r" );
|
||||||
if ( !color_file ) {
|
if ( !color_file ) die( "%s: popen: %d", argv[0], errno );
|
||||||
die( "%s: popen: %d", argv[0], errno );
|
|
||||||
}
|
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
size_t buf_sz = 0;
|
size_t buf_sz = 0;
|
||||||
ssize_t n;
|
ssize_t n;
|
||||||
if ( ( n = getline( &buf, &buf_sz, color_file ) ) < 0 ) {
|
if ( ( n = getline( &buf, &buf_sz, color_file ) ) < 0 ) {
|
||||||
die( "%s: Can't count colors: %d", argv[0], errno );
|
die( "%s: Can't count colors: %d", argv[0], errno );
|
||||||
}
|
}
|
||||||
|
// Chomp the trailing newline:
|
||||||
|
if ( n > 0 && buf[n - 1] == '\n' ) n--;
|
||||||
string colors = string( buf, n );
|
string colors = string( buf, n );
|
||||||
pclose( color_file );
|
pclose( color_file );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue