diff options
author | Daniel Mack <github@zonque.org> | 2015-11-02 11:23:32 +0100 |
---|---|---|
committer | Daniel Mack <github@zonque.org> | 2015-11-02 11:23:32 +0100 |
commit | 85e3351f79dc984239c1861377c22eb7c86011f2 (patch) | |
tree | 653a2a9a7834cf3fca33595a9536ac995c6297a6 /src | |
parent | 6b61ae72fae00a94ebd36bee402c5a84c6aba14b (diff) | |
parent | 7294bb5be2e152412022a4e5a05464ae99d95d67 (diff) |
Merge pull request #1725 from ssahani/word-journal
sd-journal.c: port to extract_first_word
Diffstat (limited to 'src')
-rw-r--r-- | src/journal/sd-journal.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index 043087485b..218df8cebe 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -1025,8 +1025,6 @@ _public_ int sd_journal_seek_cursor(sd_journal *j, const char *cursor) { _public_ int sd_journal_test_cursor(sd_journal *j, const char *cursor) { int r; - const char *word, *state; - size_t l; Object *o; assert_return(j, -EINVAL); @@ -1040,20 +1038,23 @@ _public_ int sd_journal_test_cursor(sd_journal *j, const char *cursor) { if (r < 0) return r; - FOREACH_WORD_SEPARATOR(word, l, cursor, ";", state) { + for(;;) { _cleanup_free_ char *item = NULL; - sd_id128_t id; unsigned long long ll; + sd_id128_t id; int k = 0; - if (l < 2 || word[1] != '=') - return -EINVAL; + r = extract_first_word(&cursor, &item, ";", EXTRACT_DONT_COALESCE_SEPARATORS); + if (r < 0) + return r; - item = strndup(word, l); - if (!item) - return -ENOMEM; + if (r == 0) + break; - switch (word[0]) { + if (strlen(item) < 2 || item[1] != '=') + return -EINVAL; + + switch (item[0]) { case 's': k = sd_id128_from_string(item+2, &id); |