machinectl,nspawn: don't print extra final newline if pty terminal output was newline-terinated anyway

This commit is contained in:
Lennart Poettering 2014-12-22 20:33:45 +01:00
parent 9b15b7846d
commit c7b7d4493a
2 changed files with 9 additions and 2 deletions

View file

@ -1110,6 +1110,7 @@ static int login_machine(int argc, char *argv[], void *userdata) {
pid_t leader;
sigset_t mask;
int r, ret = 0;
char last_char = 0;
assert(bus);
@ -1186,9 +1187,12 @@ static int login_machine(int argc, char *argv[], void *userdata) {
if (r < 0)
return log_error_errno(r, "Failed to run event loop: %m");
pty_forward_last_char(forward, &last_char);
forward = pty_forward_free(forward);
fputc('\n', stdout);
if (last_char != '\n')
fputc('\n', stdout);
log_info("Connection to container %s terminated.", argv[1]);

View file

@ -3462,6 +3462,7 @@ int main(int argc, char *argv[]) {
if (barrier_place_and_sync(&barrier)) {
_cleanup_event_unref_ sd_event *event = NULL;
_cleanup_(pty_forward_freep) PTYForward *forward = NULL;
char last_char = 0;
int ifi = 0;
r = move_network_interfaces(pid);
@ -3531,9 +3532,11 @@ int main(int argc, char *argv[]) {
goto finish;
}
pty_forward_last_char(forward, &last_char);
forward = pty_forward_free(forward);
if (!arg_quiet)
if (!arg_quiet && last_char != '\n')
putc('\n', stdout);
/* Kill if it is not dead yet anyway */