Not 100% sur of implementation. And the feature seems a bit useless..
This commit is contained in:
Yann Weber 2017-05-15 20:03:22 +02:00
commit 3e5304bf91
2 changed files with 52 additions and 8 deletions

View file

@ -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)
{

View file

@ -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));