18#define WHO "searchlog"
26static stralloc line = {0};
27static stralloc outline = {0};
31static char inbuf[256];
38 (void) scan_ulong(line.s,&
when);
40 if (!stralloc_copyb(&outline,date,
date822fmt(date,&
dt) - 1))
42 if (!stralloc_cats(&outline,
": "))
die_nomem();
43 if (!stralloc_catb(&outline,line.s,line.len - 1))
die_nomem();
44 if (
subwrite(outline.s,outline.len) == -1)
66 unsigned char *cpsearch;
69 unsigned char *cplast, *cpline;
70 unsigned int searchlen;
73 searchlen = str_len(search);
74 case_lowerb(search,searchlen);
75 cps = (
unsigned char *) search;
77 while ((ch = *(cps++))) {
78 if (ch >=
'a' && ch <=
'z')
continue;
79 if (ch >=
'0' && ch <=
'9')
continue;
80 if (ch ==
'.' || ch ==
'_')
continue;
85 if (!stralloc_cats(&line,
"/Log"))
die_nomem();
87 fd = open_read(line.s);
97 if (getln(&
bi,&line,&
match,
'\n') == -1)
103 cpline = (
unsigned char *) line.s - 1;
104 cplast = cpline + line.len - searchlen;
106 while ((
cp = ++cpline) <= cplast) {
107 cpsearch = (
unsigned char *) search;
112 if (y <=
'Z' -
'A') y +=
'a';
else y +=
'A';
113 if (x != y && x !=
'_')
break;
Error messages. If you translate these, I would urge you to keep the English version as well....
void searchlog(const char *dir, char *search, int subwrite())
unsigned int date822fmt(char *s, const struct datetime *dt)
void datetime_tai(struct datetime *dt, datetime_sec t)
int subwrite(char *s, unsigned int l)
const char * logmsg(const char *dir, unsigned long num, unsigned long listno, unsigned long subs, int done)