From 3e5304bf915a4ff7441511fd278cf5bacd2be68e Mon Sep 17 00:00:00 2001 From: Yann Weber Date: Mon, 15 May 2017 20:03:22 +0200 Subject: [PATCH] Fix #11 Not 100% sur of implementation. And the feature seems a bit useless.. --- src/ttail_search_files.c | 39 +++++++++++++++++++++++++++++++-------- src/ttail_search_std.c | 21 +++++++++++++++++++++ 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/src/ttail_search_files.c b/src/ttail_search_files.c index 738a0ab..96302b8 100644 --- a/src/ttail_search_files.c +++ b/src/ttail_search_files.c @@ -316,7 +316,7 @@ running binary search algorithm in '%s'\n", t->logfile_name[*id]); } cmpres=0; ret = _ttail_file_cur_cmp(t, *id, in, &cmpres); - if(!ret && !ttail_permissive(t)) + if(ret > 0 && !ttail_permissive(t)) { ttail_strict_msg(); return -1; @@ -555,6 +555,11 @@ int _ttail_search_files_fmt_init(ttail_t* t) { break; } + if(!ttail_permissive(t)) + { + ttail_strict_msg(); + break; + } } rewind(t->logfile[i]); if(fmt_id >= 0) @@ -615,6 +620,7 @@ inline int _ttail_file_minmax(ttail_t* t, size_t id, struct tm tm[2]) { FILE *fp; long cur; + int ret; memset(tm, 0, sizeof(struct tm)*2); fp = t->logfile[id]; if(!fp) @@ -633,22 +639,23 @@ inline int _ttail_file_minmax(ttail_t* t, size_t id, struct tm tm[2]) { return 1; } - if(!ttail_logline2date(t, ttail_file_getline_buf(t), tm)) + if(!(ret = ttail_logline2date(t, ttail_file_getline_buf(t), tm))) { break; } if(!ttail_permissive(t)) { - if(t->verbose <= 0) + fprintf(stderr, + "Unable to find %s in logline", + ret == 1?"prefix":"date"); + if(t->verbose > 0) { - fprintf(stderr, - "Unable to find a date in logline\n"); + fprintf(stderr, " : '%s'\n", + ttail_file_getline_buf(t)); } else { - fprintf(stderr, - "Unable to find a date in '%s'\n", - ttail_file_getline_buf(t)); + fprintf(stderr,"\n"); } ttail_strict_msg(); return -1; @@ -865,6 +872,22 @@ inline off_t _ttail_file_search_from_end(ttail_t* t , size_t id , { break; } + else if(ret > 0 && !ttail_permissive(t)) + { + fprintf(stderr, "Unable to find the %s in logline", + ret==1?"prefix":"date"); + if(t->verbose > 0) + { + fprintf(stderr, " : '%s'\n", + ttail_file_getline_buf(t)); + } + else + { + fprintf(stderr, "\n"); + } + ttail_strict_msg(); + break; + } cmpret = ttail_tm_cmp(&curtm, tm); if(!ret) { diff --git a/src/ttail_search_std.c b/src/ttail_search_std.c index 4480fee..0b06ac9 100644 --- a/src/ttail_search_std.c +++ b/src/ttail_search_std.c @@ -63,6 +63,11 @@ int _ttail_search_std_fmt_init(ttail_t* t) { break; } + if(!ttail_permissive(t)) + { + ttail_strict_msg(); + break; + } } if(fmt_id < 0) { @@ -115,6 +120,22 @@ int _ttail_search_closest_stdin(ttail_t* t) } else if(ret > 0) { + if(!ttail_permissive(t)) + { + fprintf(stderr, + "Unable to find the %s in logline", + ret==1?"prefix":"date"); + if(t->verbose > 0) + { + fprintf(stderr, " : '%s'\n", + ttail_file_getline_buf(t)); + } + else + { + fprintf(stderr, "\n"); + } + ttail_strict_msg(); + } continue; } ret = ttail_tm_cmp(&tm, &(t->date_min));