chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal: implement seek to head/tail
[elogind.git]
/
src
/
journal
/
journalctl.c
diff --git
a/src/journal/journalctl.c
b/src/journal/journalctl.c
index a6b6e0fbd6a3a150b13ecf75d3beb1fc0ca30206..3e5ee1af967dd1244ef4747bb9bd0b253cf2b77a 100644
(file)
--- a/
src/journal/journalctl.c
+++ b/
src/journal/journalctl.c
@@
-31,7
+31,7
@@
#include "log.h"
int main(int argc, char *argv[]) {
#include "log.h"
int main(int argc, char *argv[]) {
- int r;
+ int r
, i
;
sd_journal *j = NULL;
log_set_max_level(LOG_DEBUG);
sd_journal *j = NULL;
log_set_max_level(LOG_DEBUG);
@@
-46,7
+46,16
@@
int main(int argc, char *argv[]) {
goto finish;
}
goto finish;
}
- SD_JOURNAL_FOREACH(j) {
+ for (i = 1; i < argc; i++) {
+ r = sd_journal_add_match(j, argv[i], strlen(argv[i]));
+ if (r < 0) {
+ log_error("Failed to add match: %s", strerror(-r));
+ goto finish;
+ }
+ }
+
+ SD_JOURNAL_FOREACH_BEGIN(j) {
+
const void *data;
size_t length;
char *cursor;
const void *data;
size_t length;
char *cursor;
@@
-68,9
+77,10
@@
int main(int argc, char *argv[]) {
(unsigned long long) realtime,
(unsigned long long) monotonic);
(unsigned long long) realtime,
(unsigned long long) monotonic);
- SD_JOURNAL_FOREACH_
FIELD
(j, data, length)
+ SD_JOURNAL_FOREACH_
DATA
(j, data, length)
printf("\t%.*s\n", (int) length, (const char*) data);
printf("\t%.*s\n", (int) length, (const char*) data);
- }
+
+ } SD_JOURNAL_FOREACH_END(j);
finish:
if (j)
finish:
if (j)