1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-05 15:21:37 +03:00

journalctl: Correctly handle --show-cursor in combination with --until or --since and --reverse

This commit is contained in:
Timo Schlüßler 2020-01-13 09:09:45 +00:00 committed by Lennart Poettering
parent 575a915a74
commit 3ac9cac7f7

View File

@ -2514,7 +2514,7 @@ int main(int argc, char *argv[]) {
goto finish; goto finish;
} }
if (usec > arg_until) if (usec > arg_until)
goto finish; break;
} }
if (arg_since_set && arg_reverse) { if (arg_since_set && arg_reverse) {
@ -2526,7 +2526,7 @@ int main(int argc, char *argv[]) {
goto finish; goto finish;
} }
if (usec < arg_since) if (usec < arg_since)
goto finish; break;
} }
if (!arg_merge && !arg_quiet) { if (!arg_merge && !arg_quiet) {
@ -2632,29 +2632,6 @@ int main(int argc, char *argv[]) {
if (!arg_follow) { if (!arg_follow) {
if (n_shown == 0 && !arg_quiet) if (n_shown == 0 && !arg_quiet)
printf("-- No entries --\n"); printf("-- No entries --\n");
if (arg_show_cursor || arg_cursor_file) {
_cleanup_free_ char *cursor = NULL;
r = sd_journal_get_cursor(j, &cursor);
if (r < 0 && r != -EADDRNOTAVAIL)
log_error_errno(r, "Failed to get cursor: %m");
else if (r >= 0) {
if (arg_show_cursor)
printf("-- cursor: %s\n", cursor);
if (arg_cursor_file) {
r = write_string_file(arg_cursor_file, cursor,
WRITE_STRING_FILE_CREATE |
WRITE_STRING_FILE_ATOMIC);
if (r < 0)
log_error_errno(r,
"Failed to write new cursor to %s: %m",
arg_cursor_file);
}
}
}
break; break;
} }
@ -2667,6 +2644,28 @@ int main(int argc, char *argv[]) {
first_line = false; first_line = false;
} }
if (arg_show_cursor || arg_cursor_file) {
_cleanup_free_ char *cursor = NULL;
r = sd_journal_get_cursor(j, &cursor);
if (r < 0 && r != -EADDRNOTAVAIL)
log_error_errno(r, "Failed to get cursor: %m");
else if (r >= 0) {
if (arg_show_cursor)
printf("-- cursor: %s\n", cursor);
if (arg_cursor_file) {
r = write_string_file(arg_cursor_file, cursor,
WRITE_STRING_FILE_CREATE |
WRITE_STRING_FILE_ATOMIC);
if (r < 0)
log_error_errno(r,
"Failed to write new cursor to %s: %m",
arg_cursor_file);
}
}
}
finish: finish:
pager_close(); pager_close();