]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
journalctl: Correctly handle --show-cursor in combination with --until or --since...
authorTimo Schlüßler <schluessler@krause.de>
Mon, 13 Jan 2020 09:09:45 +0000 (09:09 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 13 Jan 2020 16:33:50 +0000 (17:33 +0100)
src/journal/journalctl.c

index 95b6bfee172a317a29c229d0d5f25cb5955c3057..c0916f372f3503fb65aff708ccd3fa8a3e54292f 100644 (file)
@@ -2514,7 +2514,7 @@ int main(int argc, char *argv[]) {
                                         goto finish;
                                 }
                                 if (usec > arg_until)
-                                        goto finish;
+                                        break;
                         }
 
                         if (arg_since_set && arg_reverse) {
@@ -2526,7 +2526,7 @@ int main(int argc, char *argv[]) {
                                         goto finish;
                                 }
                                 if (usec < arg_since)
-                                        goto finish;
+                                        break;
                         }
 
                         if (!arg_merge && !arg_quiet) {
@@ -2632,29 +2632,6 @@ int main(int argc, char *argv[]) {
                 if (!arg_follow) {
                         if (n_shown == 0 && !arg_quiet)
                                 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;
                 }
 
@@ -2667,6 +2644,28 @@ int main(int argc, char *argv[]) {
                 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:
         pager_close();