Browse Source

Fix #11

Not 100% sur of implementation. And the feature seems a bit useless..
Yann Weber 7 years ago
parent
commit
3e5304bf91
2 changed files with 52 additions and 8 deletions
  1. 31
    8
      src/ttail_search_files.c
  2. 21
    0
      src/ttail_search_std.c

+ 31
- 8
src/ttail_search_files.c View File

@@ -316,7 +316,7 @@ running binary search algorithm in '%s'\n", t->logfile_name[*id]);
316 316
 				}
317 317
 				cmpres=0;
318 318
 				ret = _ttail_file_cur_cmp(t, *id, in, &cmpres);
319
-				if(!ret && !ttail_permissive(t))
319
+				if(ret > 0 && !ttail_permissive(t))
320 320
 				{
321 321
 					ttail_strict_msg();
322 322
 					return -1;
@@ -555,6 +555,11 @@ int _ttail_search_files_fmt_init(ttail_t* t)
555 555
 			{
556 556
 				break;
557 557
 			}
558
+			if(!ttail_permissive(t))
559
+			{
560
+				ttail_strict_msg();
561
+				break;
562
+			}
558 563
 		}
559 564
 		rewind(t->logfile[i]);
560 565
 		if(fmt_id >= 0)
@@ -615,6 +620,7 @@ inline int _ttail_file_minmax(ttail_t* t, size_t id, struct tm tm[2])
615 620
 {
616 621
 	FILE *fp;
617 622
 	long cur;
623
+	int ret;
618 624
 	memset(tm, 0, sizeof(struct tm)*2);
619 625
 	fp = t->logfile[id];
620 626
 	if(!fp)
@@ -633,22 +639,23 @@ inline int _ttail_file_minmax(ttail_t* t, size_t id, struct tm tm[2])
633 639
 		{
634 640
 			return 1;
635 641
 		}
636
-		if(!ttail_logline2date(t, ttail_file_getline_buf(t), tm))
642
+		if(!(ret = ttail_logline2date(t, ttail_file_getline_buf(t), tm)))
637 643
 		{
638 644
 			break;
639 645
 		}
640 646
 		if(!ttail_permissive(t))
641 647
 		{
642
-			if(t->verbose <= 0)
648
+			fprintf(stderr,
649
+				"Unable to find %s in logline",
650
+				ret == 1?"prefix":"date");
651
+			if(t->verbose > 0)
643 652
 			{
644
-				fprintf(stderr,
645
-					"Unable to find a date in logline\n");
653
+				fprintf(stderr, " : '%s'\n",
654
+					ttail_file_getline_buf(t));
646 655
 			}
647 656
 			else
648 657
 			{
649
-				fprintf(stderr,
650
-					"Unable to find a date in '%s'\n",
651
-					ttail_file_getline_buf(t));
658
+				fprintf(stderr,"\n");
652 659
 			}
653 660
 			ttail_strict_msg();
654 661
 			return -1;
@@ -865,6 +872,22 @@ inline off_t _ttail_file_search_from_end(ttail_t* t , size_t id ,
865 872
 		{
866 873
 			break;
867 874
 		}
875
+		else if(ret > 0 && !ttail_permissive(t))
876
+		{
877
+			fprintf(stderr, "Unable to find the %s in logline",
878
+				ret==1?"prefix":"date");
879
+			if(t->verbose > 0)
880
+			{
881
+				fprintf(stderr, " : '%s'\n",
882
+					ttail_file_getline_buf(t));
883
+			}
884
+			else
885
+			{
886
+				fprintf(stderr, "\n");
887
+			}
888
+			ttail_strict_msg();
889
+			break;
890
+		}
868 891
 		cmpret = ttail_tm_cmp(&curtm, tm);
869 892
 		if(!ret)
870 893
 		{

+ 21
- 0
src/ttail_search_std.c View File

@@ -63,6 +63,11 @@ int _ttail_search_std_fmt_init(ttail_t* t)
63 63
 		{
64 64
 			break;
65 65
 		}
66
+		if(!ttail_permissive(t))
67
+		{
68
+			ttail_strict_msg();
69
+			break;
70
+		}
66 71
 	}
67 72
 	if(fmt_id < 0)
68 73
 	{
@@ -115,6 +120,22 @@ int _ttail_search_closest_stdin(ttail_t* t)
115 120
 		}
116 121
 		else if(ret > 0)
117 122
 		{
123
+			if(!ttail_permissive(t))
124
+			{
125
+				fprintf(stderr,
126
+					"Unable to find the %s in logline",
127
+					ret==1?"prefix":"date");
128
+				if(t->verbose > 0)
129
+				{
130
+					fprintf(stderr, " : '%s'\n",
131
+						ttail_file_getline_buf(t));
132
+				}
133
+				else
134
+				{
135
+					fprintf(stderr, "\n");
136
+				}
137
+				ttail_strict_msg();
138
+			}
118 139
 			continue;
119 140
 		}
120 141
 		ret = ttail_tm_cmp(&tm, &(t->date_min));

Loading…
Cancel
Save