projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changed type of name argument to m_getfld() from unsigned char *
[mmh]
/
uip
/
picksbr.c
diff --git
a/uip/picksbr.c
b/uip/picksbr.c
index
61d5afb
..
91893e3
100644
(file)
--- a/
uip/picksbr.c
+++ b/
uip/picksbr.c
@@
-2,8
+2,6
@@
/*
* picksbr.c -- routines to help pick along...
*
/*
* picksbr.c -- routines to help pick along...
*
- * $Id$
- *
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
* complete copyright information.
@@
-14,16
+12,10
@@
#include <h/picksbr.h>
#include <h/utils.h>
#include <h/picksbr.h>
#include <h/utils.h>
-#ifdef TIME_WITH_SYS_TIME
+#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
#endif
#endif
+#include <time.h>
static struct swit parswit[] = {
#define PRAND 0
static struct swit parswit[] = {
#define PRAND 0
@@
-86,9
+78,10
@@
static struct swit parswit[] = {
static char linebuf[LBSIZE + 1];
static char linebuf[LBSIZE + 1];
+static char decoded_linebuf[LBSIZE + 1];
/* the magic array for case-independence */
/* the magic array for case-independence */
-static char cc[] = {
+static unsigned char cc[] = {
0000,0001,0002,0003,0004,0005,0006,0007,
0010,0011,0012,0013,0014,0015,0016,0017,
0020,0021,0022,0023,0024,0025,0026,0027,
0000,0001,0002,0003,0004,0005,0006,0007,
0010,0011,0012,0013,0014,0015,0016,0017,
0020,0021,0022,0023,0024,0025,0026,0027,
@@
-183,23
+176,23
@@
static struct nexus *head;
/*
* prototypes for date routines
*/
/*
* prototypes for date routines
*/
-static struct tws *tws_parse();
-static struct tws *tws_special();
+static struct tws *tws_parse(char *, int);
+static struct tws *tws_special(char *);
/*
* static prototypes
*/
/*
* static prototypes
*/
-static void PRaction();
-static int gcompile();
-static int advance();
-static int cclass();
-static int tcompile();
-
-static struct nexus *parse();
-static struct nexus *nexp1();
-static struct nexus *nexp2();
-static struct nexus *nexp3();
-static struct nexus *newnexus();
+static void PRaction(struct nexus *, int);
+static int gcompile(struct nexus *, char *);
+static int advance(char *, char *);
+static int cclass(unsigned char *, int, int);
+static int tcompile(char *, struct tws *, int);
+
+static struct nexus *parse(void);
+static struct nexus *nexp1(void);
+static struct nexus *nexp2(void);
+static struct nexus *nexp3(void);
+static struct nexus *newnexus(int (*)());
static int ORaction();
static int ANDaction();
static int ORaction();
static int ANDaction();
@@
-668,6
+661,7
@@
plist
long pos = start;
register char *p1, *p2, *ebp, *cbp;
char ibuf[BUFSIZ];
long pos = start;
register char *p1, *p2, *ebp, *cbp;
char ibuf[BUFSIZ];
+ NMH_UNUSED (msgnum);
fseek (fp, start, SEEK_SET);
body = 0;
fseek (fp, start, SEEK_SET);
body = 0;
@@
-708,7
+702,8
@@
plist
break;
}
lf++;
break;
}
lf++;
- c = ' ';
+ /* Unfold by skipping the newline. */
+ c = 0;
}
}
if (c && p1 < &linebuf[LBSIZE - 1])
}
}
if (c && p1 < &linebuf[LBSIZE - 1])
@@
-720,6
+715,13
@@
plist
p1 = linebuf;
p2 = n->n_expbuf;
p1 = linebuf;
p2 = n->n_expbuf;
+ /* Attempt to decode as a MIME header. If it's the last header,
+ body will be 1 and lf will be at least 1. */
+ if ((body == 0 || lf > 0) &&
+ decode_rfc2047 (linebuf, decoded_linebuf, sizeof decoded_linebuf)) {
+ p1 = decoded_linebuf;
+ }
+
if (n->n_circf) {
if (advance (p1, p2))
return 1;
if (n->n_circf) {
if (advance (p1, p2))
return 1;
@@
-941,6
+943,7
@@
plist
register char *bp;
char buf[BUFSIZ], name[NAMESZ];
register struct tws *tw;
register char *bp;
char buf[BUFSIZ], name[NAMESZ];
register struct tws *tw;
+ NMH_UNUSED (stop);
fseek (fp, start, SEEK_SET);
for (state = FLD, bp = NULL;;) {
fseek (fp, start, SEEK_SET);
for (state = FLD, bp = NULL;;) {