projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
automitc set the owner/group in release tar
[mmh]
/
uip
/
pick.c
diff --git
a/uip/pick.c
b/uip/pick.c
index
12b2bd7
..
f700a0c
100644
(file)
--- a/
uip/pick.c
+++ b/
uip/pick.c
@@
-1088,26
+1088,29
@@
GREPaction(struct field *f, int msgnum, void *data)
{
struct grep_data *g = data;
int ret;
{
struct grep_data *g = data;
int ret;
- char *buf;
+ char buf[BUFSIZ];
if (!g->header && *f->name) {
return FALSE;
}
/* check for the right field */
if (!g->header && *f->name) {
return FALSE;
}
/* check for the right field */
- if (g->header && *g->header && mh_strcasecmp(g->header, f->name)==0) {
+ if (!(g->header && *g->header && mh_strcasecmp(g->header, f->name)==0)) {
return FALSE;
}
return FALSE;
}
- ret = regexec(g->preg, f->value, 0, NULL, 0) == REG_NOMATCH;
+ if(decode_rfc2047(f->value, buf, sizeof(buf))) {
+ ret = regexec(g->preg, buf, 0, NULL, 0);
+ } else {
+ ret = regexec(g->preg, f->value, 0, NULL, 0);
+ }
switch (ret) {
case 0:
return TRUE;
case REG_NOMATCH:
return FALSE;
default:
switch (ret) {
case 0:
return TRUE;
case REG_NOMATCH:
return FALSE;
default:
- buf = mh_xcalloc(BUFSIZ, sizeof(char));
- regerror(ret, g->preg, buf, BUFSIZ*sizeof(char));
+ regerror(ret, g->preg, buf, sizeof(buf));
fprintf(stderr, "%s\n", buf);
return FALSE;
}
fprintf(stderr, "%s\n", buf);
return FALSE;
}
@@
-1327,6
+1330,7
@@
createpickthread(char *msgs)
for (i = 0; i < files.size; i++) {
buf = getthreadid(files.msgs[i]);
if (!buf) {
for (i = 0; i < files.size; i++) {
buf = getthreadid(files.msgs[i]);
if (!buf) {
+ adios(EX_DATAERR, NULL, "message %s is not part of a thread", basename(files.msgs[i]));
continue;
}
continue;
}
@@
-1363,7
+1367,7
@@
createonethread(char *c)
bd->left = left;
bd->right = right;
bd->left = left;
bd->right = right;
- gd->header = "message-id";
+ gd->header = mh_xstrdup("message-id");
snprintf(buf, sizeof(buf), "^[ \t]*<%s>", c);
if(!gcompile(gd, buf)) {
snprintf(buf, sizeof(buf), "^[ \t]*<%s>", c);
if(!gcompile(gd, buf)) {
@@
-1372,7
+1376,7
@@
createonethread(char *c)
}
gd = right->data;
}
gd = right->data;
- gd->header = "references";
+ gd->header = mh_xstrdup("references");
snprintf(buf, sizeof(buf), "^[ \t]*<%s>", c);
if(!gcompile(gd, buf)) {
snprintf(buf, sizeof(buf), "^[ \t]*<%s>", c);
if(!gcompile(gd, buf)) {