files, Distfile and distfile, with clashing case-insensitive names.
The rest of it was specific to UCI and LBL.
+++ /dev/null
-test: /usr/src/bs/mh-6.6 -> ics
- install -v /usr/src/bs/mh-6.6 ;
- except_pat \\.o\$ ;
- except_pat \\.a\$ ;
- except_pat \\.orig\$ ;
- except_pat \\.rej\$ ;
- except_pat /bk_[^/]*\$ ;
- except_pat /RCS\$ ;
- except_pat /miscellany\$ ;
- except_pat \\~\$ ;
- except_pat papers/[^M].*\$ ;
- except_pat /x[^/]*\$ ;
- except_pat /doc/[^.]*.me\$ ;
- except_pat /doc/z[^.]*.man\$ ;
- except_pat /uip/z ;
-dist: /usr/src/bs/mh-6.6 -> glacier
- install -v /usr/src/bs/mh-6.6-dist ;
- except_pat /RCS\$ ;
- except_pat \\.out\$ ;
- except_pat /rdist[^/]*\$ ;
- except_pat /[Dd]istfile.*\$ ;
- except_pat /papers/.*\\.aux\$ ;
- except_pat /papers/.*\\.log\$ ;
- except_pat /local\$ ;
- except_pat /tags\$ ;
- except_pat /version\$ ;
- except_pat /amstex.tex\$ ;
- except_pat /article.tex\$ ;
- except_pat /dcustom.tex\$ ;
- except_pat /diss.sty\$ ;
- except_pat /sfwmac.tex\$ ;
- except_pat /trademark.tex\$ ;
-/usr/src/bs/mh-6.6 -> glacier
- install -y /usr/src/bs/mh-6.6 ;
- except_pat \\.o\$ ;
- except_pat \\.a\$ ;
- except_pat \\.orig\$ ;
- except_pat \\.rej\$ ;
- except_pat /RCS\$ ;
- except_pat /miscellany\$ ;
- except_pat \\~\$ ;
- except_pat papers/[^M].*\$ ;
- except_pat /x[^/]*\$ ;
- except_pat /doc/[^.]*.me\$ ;
- except_pat /doc/z[^.]*.man\$ ;
- except_pat /uip/z ;
-rome: /usr/src/bs/mh-6.6 -> rome
- install -y /usr/src/bs/mh-6.6 ;
- except_pat \\.o\$ ;
- except_pat \\.a\$ ;
- except_pat \\.orig\$ ;
- except_pat \\.rej\$ ;
- except_pat /RCS\$ ;
- except_pat /miscellany\$ ;
- except_pat \\~\$ ;
- except_pat papers/[^M].*\$ ;
- except_pat /x[^/]*\$ ;
- except_pat /doc/[^.]*.me\$ ;
- except_pat /doc/z[^.]*.man\$ ;
- except_pat /uip/z ;
-ics: /usr/src/bs/mh-6.6 -> ics
- install -y /usr/src/bs/mh-6.6 ;
- except_pat \\.o\$ ;
- except_pat \\.a\$ ;
- except_pat \\.orig\$ ;
- except_pat \\.rej\$ ;
- except_pat /bk_[^/]*\$ ;
- except_pat /RCS\$ ;
- except_pat /miscellany\$ ;
- except_pat \\~\$ ;
- except_pat papers/[^M].*\$ ;
- except_pat /x[^/]*\$ ;
- except_pat /doc/[^.]*.me\$ ;
- except_pat /doc/z[^.]*.man\$ ;
- except_pat /uip/z ;
-#/usr/src/bs/mh-6.6 -> paris
-# install -y /usr/src/bs/mh-6.6 ;
-# except_pat \\.o\$ ;
-# except_pat \\.a\$ ;
-# except_pat \\.orig\$ ;
-# except_pat \\.rej\$ ;
-# except_pat /RCS\$ ;
-# except_pat /miscellany\$ ;
-# except_pat \\~\$ ;
-# except_pat /x[^/]*\$ ;
-# except_pat /doc/[^.]*.me\$ ;
-# except_pat /doc/z[^.]*.man\$ ;
-# except_pat /uip/z ;
+++ /dev/null
-FILES = ( /usr/local/nbbc /usr/local/nmsh /usr/local/lib/mh/mtstailor )
-
-SUN4 = ( blanche.ics.uci.edu crimee.ics.uci.edu siam.ics.uci.edu
- zola.ics.uci.edu paris.ics.uci.edu glacier.ics.uci.edu )
-
-SUN3_40 = ( elysees.ics.uci.edu beaver.ics.uci.edu cad.ics.uci.edu
- wagram.ics.uci.edu london.ics.uci.edu beanie.ics.uci.edu
- cecil.ics.uci.edu harlie.ics.uci.edu commerce.ics.uci.edu
- madeleine.ics.uci.edu cadet.ics.uci.edu pompe.ics.uci.edu
- europe.ics.uci.edu rome.ics.uci.edu )
-
-sun4: ${FILES} -> ( ${SUN4} )
- install ;
-
-sun3-40: ${FILES} -> ( ${SUN3_40} )
- install ;
+++ /dev/null
-FILES=( ali anno fanno bbc bbl burst comp dist folder folders forw
- inc mark mhmail mhpath msgchk msh packf pick prompter
- refile repl rmf rmm scan send show next prev sortm
- vmh whatnow whom )
-
-SUN3_3_0_SYSTEMS_NORMAL=( rome pompe madeleine elysees commerce cad )
-SUN3_3_0_SYSTEMS_LOCAL=( etoile )
-
-SUN3_4_0_SYSTEMS=( london harlie europe cecil cadet beaver beanie )
-
-SUN4_4_0_SYSTEMS=( crimee siam zola paris glacier )
-
-IS_SYSTEMS=( cip1 cip2 cip3 cip4 )
-
-${FILES} -> ${IS_SYSTEMS}
- install /usr/uci ;
-
-${FILES} -> ${SUN3_3_0_SYSTEMS_NORMAL}
- install /usr/uci ;
-
-${FILES} -> ${SUN3_3_0_SYSTEMS_LOCAL}
- install /usr/local ;
-
-${FILES} -> ${SUN3_4_0_SYSTEMS}
- install /usr/local ;
-
-/usr/local/lib/libmh.so.66.1 -> ${SUN3_4_0_SYSTEMS}
- install /usr/local/lib/libmh.so.66.1;
-
-${FILES} -> ${SUN4_4_0_SYSTEMS}
- install /usr/local ;
-
-/usr/local/lib/libmh.so.66.1 -> ${SUN4_4_0_SYSTEMS}
- install /usr/local/lib/libmh.so.66.1;
+++ /dev/null
-FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh
- dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx
- mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps
- forwcomps distcomps digestcomps components scan.size scan.time)
-
-SUN3_3_0_SYSTEMS_NORMAL=( rome pompe madeleine elysees commerce cad )
-SUN3_3_0_SYSTEMS_LOCAL=( etoile )
-
-SUN3_4_0_SYSTEMS_NORMAL=( london harlie europe cecil cadet beaver beanie )
-
-SUN4_4_0_SYSTEMS=( crimee siam zola paris glacier )
-
-IS_SYSTEMS=( cip1 cip2 cip3 cip4 )
-
-${FILES} -> ${IS_SYSTEMS}
- install /usr/uci/lib/mh ;
-
-${FILES} -> ${SUN3_3_0_SYSTEMS_NORMAL}
- install /usr/uci/lib/mh ;
-
-${FILES} -> ${SUN3_3_0_SYSTEMS_LOCAL}
- install /usr/local/lib/mh ;
-
-${FILES} -> ${SUN3_4_0_SYSTEMS_NORMAL}
- install /usr/local/lib/mh ;
-
-${FILES} -> ${SUN4_4_0_SYSTEMS}
- install /usr/local/lib/mh ;
+++ /dev/null
-diff -r -w lbl/sbr/formatsbr.c ./sbr/formatsbr.c
-1a2,4
-> #ifndef lint
-> static char ident[] = "@(#)$Id: formatsbr.c,v 1.16 1992/02/09 07:11:55 jromine Exp $";
-> #endif lint
-12a16,18
-> /* \f */
->
->
-17a24
-> #ifdef LBL
-18a26
-> #endif
-20c28,30
-< int fmt_norm = AD_NAME;
----
-> static normalize();
->
-> extern int fmt_norm; /* defined in sbr/formatdef.c = AD_NAME */
-24,28c34
-< static
-< normalize(cp)
-< register char *cp;
-< {
-< register char *dp;
----
-> long time ();
-30,34c36
-< for (dp = cp; *cp; cp++)
-< if (*cp != QUOTE)
-< *dp++ = *cp;
-< else
-< switch (*++cp) {
----
-> /* \f */
-36,50c38
-< case 'b':
-< *dp++ = '\b';
-< break;
-< case 'f':
-< *dp++ = '\f';
-< break;
-< case 'n':
-< *dp++ = '\n';
-< break;
-< case 'r':
-< *dp++ = '\r';
-< break;
-< case 't':
-< *dp++ = '\t';
-< break;
----
-> /* MAJOR HACK: See MHCHANGES for discussion */
-52,68c40,43
-< case '\n':
-< break;
-<
-< case NULL:
-< cp--;
-< /* fall through */
-< default:
-< *dp++ = *cp;
-< break;
-< }
-<
-< *dp = NULL;
-< }
-<
-< char *
-< new_fs(form, format, def)
-< register char *form, *format, *def;
----
-> char *new_fs (form, format, def)
-> register char *form,
-> *format,
-> *def;
-89a65
->
-91c67,68
-< } else {
----
-> }
-> else {
-99a77,109
-> /* \f */
->
-> static normalize (cp)
-> register char *cp;
-> {
-> register char *dp;
->
-> for (dp = cp; *cp; cp++)
-> if (*cp != QUOTE)
-> *dp++ = *cp;
-> else
-> switch (*++cp) {
-> #define grot(y,z) case y: *dp++ = z; break;
-> grot ('b', '\b');
-> grot ('f', '\f');
-> grot ('n', '\n');
-> grot ('r', '\r');
-> grot ('t', '\t');
->
-> case '\n':
-> break;
->
-> case 0:
-> cp--; /* fall */
-> default:
-> *dp++ = *cp;
-> break;
-> }
->
-> *dp = 0;
-> }
->
-> /* \f */
-104,106c114,117
-< static int
-< match(str, sub)
-< register char *str, *sub;
----
->
-> static int match (str, sub)
-> register char *str,
-> *sub;
-118,119c129
-< s1 = sub + 1;
-< s2 = str;
----
-> s1 = sub + 1; s2 = str;
-126a137
-> /* \f */
-130,135c141,143
-< #define PUTDF(cp, num, wid, fill) {\
-< if (cp + wid < ep) {\
-< if ((i = (num)) < 0)\
-< i = -(num);\
-< if ((c = (wid)) < 0)\
-< c = -c;\
----
-> #define PUTDF(cp, num, wid, fill) if (cp + wid < ep){\
-> if((i = (num))<0) i = -(num);\
-> if((c = (wid))<0) c = -c;\
-148,152c156,158
-< }}
-< #define PUTD(cp, num) {\
-< if (cp < ep) {\
-< if ((i = (num)) == 0)\
-< *cp++ = '0';\
----
-> }
-> #define PUTD(cp, num) if (cp < ep){\
-> if((i = (num))==0) *cp++ = '0';\
-165c171
-< }}
----
-> }
-167,168c173
-< char *cp2 = cp;\
-< rjust = 0;\
----
-> ljust = 0;\
-171c176
-< rjust++;\
----
-> ljust++;\
-174c179
-< if (rjust) {\
----
-> if (ljust) {\
-190,193c195
-< else if (c == '\010') {\
-< if (cp > cp2)\
-< --cp;\
-< } else {\
----
-> else {\
-199c201
-< if (!rjust)\
----
-> if (!ljust)\
-203d204
-<
-205d205
-< char *cp2 = cp;\
-212,215c212
-< else if (c == '\010') {\
-< if (cp > cp2)\
-< --cp;\
-< } else {\
----
-> else {\
-220c217,218
-< }}
----
-> }\
-> }
-222,225d219
-< static char *lmonth[] = {
-< "January", "February", "March", "April", "May", "June",
-< "July", "August", "September", "October", "November", "December"
-< };
-226a221,223
-> static char *lmonth[] = { "January", "February","March", "April",
-> "May", "June", "July", "August",
-> "September","October", "November","December" };
-227a225,226
->
-> struct format *
-245,246c244
-< register int j;
-< int rjust;
----
-> int ljust;
-251c249
-< for (;;) {
----
-> while (cp < ep) {
-258,259c256
-< PUTSF(cp, fmt->f_comp->c_text, fmt->f_width,
-< fmt->f_fill);
----
-> PUTSF (cp, fmt->f_comp->c_text, fmt->f_width, fmt->f_fill);
-262,269d258
-< case FT_LIT_FORCE:
-< sp = fmt->f_text;
-< i = strlen(sp);
-< ep += i; /* forced lits are `invisible' */
-<
-< while (c = *sp++)
-< *cp++ = c;
-< break;
-277,280c266,268
-<
-< /* By default we left justify */
-< rjust = 0;
-< if ((i = fmt->f_width) < 0) {
----
-> ljust = 0;
-> i = fmt->f_width;
-> if (i < 0) {
-282c270
-< rjust++;
----
-> ljust++; /* XXX should do something with this */
-284,294d271
-<
-< if (rjust) {
-< j = strlen(sp);
-< if (j > i)
-< sp += j - i;
-< else while (j < i && cp < ep) {
-< *cp++ = fmt->f_fill;
-< ++j;
-< }
-< }
-<
-297d273
-<
-320a297
->
-325c302
-< if (str == NULLCP || *str == NULL) {
----
-> if (!(value = (str && *str))) {
-332c309
-< if (str != NULLCP && *str != NULL) {
----
-> if (!(value = (str == NULLCP || *str == 0))) {
-360c337
-< if (!str || !match(str, fmt->f_text)) {
----
-> if (!(value = (str && match (str, fmt->f_text)))) {
-374c351
-< if (!str || !uprf(str, fmt->f_text)) {
----
-> if (!(value = (str && uprf (str, fmt->f_text)))) {
-381d357
-< if (str)
-383,384d358
-< else
-< value = 0;
-388c362
-< value = (str != NULLCP && *str != NULL);
----
-> value = (str != NULLCP && *str != 0);
-392c366
-< value = (str == NULLCP || *str == NULL);
----
-> value = (str == NULLCP || *str == 0);
-419a394,397
-> case FT_LS_GETENV:
-> if (!(str = getenv (fmt->f_text)))
-> str = "";
-> break;
-424,425c402
-< /* Be careful since str can point into buffer */
-< bcopy(str, buffer, strlen(str) + 1);
----
-> (void) strcpy(buffer, str);
-427,428d403
-<
-< /* Eat leading whitespace */
-431,438c406
-<
-< /* Trim trailing whitespace */
-< xp = str + strlen(str) - 1;
-< while (xp > str && isspace(*xp))
-< *xp-- = '\0';
-<
-< /* By default we left justify */
-< rjust = 0;
----
-> ljust = 0;
-441c409
-< rjust++;
----
-> ljust++;
-444,446c412
-< /* If necessary, limit width and/or justify */
-< if (i > 0 && (j = strlen(str)) > i) {
-< if (!rjust)
----
-> if (!ljust && i > 0 && strlen(str) > i)
-448,449c414,419
-< else
-< str += j - i;
----
-> xp = str;
-> xp += strlen(str) - 1;
-> while (xp > str && isspace(*xp))
-> *xp-- = '\0';
-> if (ljust && i > 0 && strlen(str) > i)
-> str += strlen(str) - i;
-451d420
-< }
-458,459c427
-< value = (comp = fmt->f_comp)->c_text ?
-< atoi(comp->c_text) : 0;
----
-> value = (comp = fmt->f_comp)->c_text ? atoi(comp->c_text) : 0;
-484a453,458
-> case FT_LV_MODULO_L:
-> if (fmt->f_value)
-> value = value % fmt->f_value;
-> else
-> value = 0;
-> break;
-517,518c491
-< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
-< (TW_SEXP | TW_SIMP)))
----
-> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP)))
-523,524c496
-< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
-< (TW_SEXP | TW_SIMP)))
----
-> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP)))
-529,530c501
-< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
-< (TW_SEXP | TW_SIMP)))
----
-> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP)))
-550,551c521
-< if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
-< (TW_SEXP | TW_SIMP)))
----
-> if (!(((tws = fmt->f_comp->c_tws)->tw_flags) & (TW_SEXP|TW_SIMP)))
-555,556c525
-< value = 1;
-< break;
----
-> value = 1; break;
-558,559c527
-< value = 0;
-< break;
----
-> value = 0; break;
-561,562c529
-< value = -1;
-< break;
----
-> value = -1; break;
-565,566c532
-< if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) ==
-< TW_SZEXP)
----
-> if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) == TW_SZEXP)
-610a577
-> case FT_LS_ADDR:
-614,615c581,587
-< #else
-< mn = fmt->f_comp->c_mn;
----
-> #else not BERK
-> if ((mn = fmt -> f_comp -> c_mn) == &fmt_mnull) {
-> str = fmt -> f_comp -> c_text;
-> break;
-> }
-> if (fmt -> f_type == FT_LS_ADDR)
-> goto unfriendly;
-616a589,604
-> if ((str = mn -> m_note)) {
-> (void) strcpy (buffer, str);
-> str = buffer;
-> if (*str == '(')
-> str++;
-> sp = str + strlen(str) - 1;
-> if (*sp == ')') {
-> *sp-- = '\0';
-> while (sp >= str)
-> if (*sp == ' ')
-> *sp-- = '\0';
-> else
-> break;
-> }
-> } else {
-> unfriendly: ;
-618d605
-<
-632c619,620
-< } else
----
-> }
-> else
-635a624
-> }
-661,662c650
-< bzero((char *)comp->c_tws,
-< sizeof(*comp->c_tws));
----
-> bzero ((char *) comp -> c_tws, sizeof *comp -> c_tws);
-668c656
-< /* custom address list formatting hook */
----
-> /* hook for custom address list formatting (see replsbr.c) */
-673,678c661,665
-< /*
-< * Output the str register as an address component,
-< * splitting it into multiple lines if necessary.
-< * The value reg. contains the max line length. The
-< * lit. field may contain a string to prepend to the
-< * result (e.g., "To: ")
----
-> /* output the str register as an address component,
-> * splitting it into multiple lines if necessary. The
-> * value reg. contains the max line length. The lit.
-> * field may contain a string to prepend to the result
-> * (e.g., "To: ")
-693,696c680,681
-< /*
-< * Try to break at a comma; failing
-< * that, break at a space, failing
-< * that, just split the line.
----
-> /* try to break at a comma; failing that, break at a
-> * space, failing that, just split the line.
-698,699c683
-< lastb = 0;
-< sp = lp + wid;
----
-> lastb = 0; sp = lp + wid;
-729c713,715
-< } else
----
-> } else {
-> while (getname("")) /* XXX */
-> ;
-730a717
-> }
-735,737c722,724
-< * If there's no component, we say true. Otherwise
-< * we say "true" only if we can parse the address and
-< * it matches one of our addresses.
----
-> * if there's no component, we say true. Otherwise we
-> * say "true" only if we can parse the address and it
-> * matches one of our addresses.
-748,749c735
-< (mn = getm(sp, NULLCP, 0,
-< AD_NAME, NULLCP)))
----
-> (mn = getm (sp, NULLCP, 0, AD_NAME, NULLCP)))
-751a738,739
-> while (getname("")) /* XXX */
-> ;
-758,762c746,749
-< /*
-< * If we're working on a folder (as opposed to a
-< * file), add the current msg to sequence given in
-< * literal field. Don't disturb string or value
-< * registers.
----
-> #ifdef LBL
-> /* If we're working on a folder (as opposed to a file), add the
-> * current msg to sequence given in literal field. Don't
-> * disturb string or value registers.
-765,766c752,753
-< (void) m_seqadd(fmt_current_folder,
-< fmt->f_text, dat[0], -1);
----
-> (void)m_seqadd(fmt_current_folder, fmt->f_text, dat[0], -1);
-> #endif
-771c758,759
-< finished:
----
-> #ifndef JLR
-> finished:;
-774,775c762,774
-< *cp = NULL;
-< return (value);
----
-> *cp = 0;
-> return ((struct format *)0);
-> #else /* JLR */
-> if (cp[-1] != '\n')
-> *cp++ = '\n';
-> while (fmt->f_type != FT_DONE)
-> fmt++;
->
-> finished:;
-> *cp = '\0';
-> return (fmt -> f_value ? ++fmt : (struct format *)0);
->
-> #endif /* JLR */
-diff -r -w lbl/sbr/m_gmsg.c ./sbr/m_gmsg.c
-1a2,4
-> #ifndef lint
-> static char ident[] = "@(#)$Id: m_gmsg.c,v 2.8 1992/02/11 21:32:04 jromine Exp $";
-> #endif lint
-3a7
-> #include "../h/local.h"
-5,16d8
-< #include <sys/types.h>
-< #include <sys/stat.h>
-< #include <ctype.h>
-< #ifndef BSD42
-< #ifndef SYS5
-< #include <ndir.h>
-< #else SYS5
-< #include <dir.h>
-< #endif SYS5
-< #else BSD42
-< #include <sys/dir.h>
-< #endif BSD42
-25,27c17
-< static int m_getatr(), m_setatr();
-<
-< static int len;
----
-> static int len=0;
-29a20,21
-> static m_getatr();
-> static int m_setatr();
-32,33c24
-< struct msgs *
-< m_gmsg(name)
----
-> struct msgs *m_gmsg (name)
-48a40,43
-> #ifdef SYS5DIR
-> register struct dirent *dp;
-> DIR * dd;
-> #else SYS5DIR
-50a46
-> #endif SYS5DIR
-59c55
-< mp = (struct msgs *) malloc (MSIZE (mp, 0, 0));
----
-> mp = (struct msgs *) malloc (MHSIZE (mp, 0, 0));
-183c179
-< realloc ((char *) mp, MSIZE (mp, mp->lowoff, mp->hghoff));
----
-> realloc ((char *) mp, MHSIZE (mp, mp -> lowoff, mp -> hghoff));
-191c187
-< calloc ((unsigned) 1, MSIZEX (mp, mp->lowmsg, mp->hghmsg));
----
-> calloc ((unsigned) 1, MHSIZEX (mp, mp -> lowmsg, mp -> hghmsg));
-195c191
-< if (mp->msgstats < 0)
----
-> if (mp -> msgstats < (int *)0) /* non portable */
-207,208c203
-< static int
-< m_getatr(mp)
----
-> static m_getatr (mp)
-219c214
-< field[BUFSIZ];
----
-> field[BUFSIZ * 2];
-225,226c220,221
-< mp->msgattrs[0] = getcpy (current);
-< mp->msgattrs[1] = NULL;
----
-> mp -> msgattrs[i = 0] = getcpy (current);
-> mp -> msgattrs[++i] = NULL;
-237,248d231
-< case FLDPLUS:
-< /*
-< * sequence was too big for buffer: back up
-< * to a word break.
-< */
-< for (cp = &field[sizeof(field)-2]; !isspace(*cp); --cp)
-< ;
-< if (i = cp - &field[sizeof(field)-2]) {
-< *cp = 0;
-< fseek(fp, i, 1);
-< }
-< /*FALL THROUGH*/
-250,252d232
-< (void) m_setatr (mp, name, field);
-< continue;
-<
-254c234,235
-< (void) m_setatr (mp, name, field);
----
-> (void) m_setatr (mp, getcpy (name), trimcpy (field));
-> if (state == FLDEOF)
-255a237
-> continue;
-286c268
-< if ((i = m_setatr (mp, cp, np->n_field)) != NOTOK)
----
-> if ((i = m_setatr (mp, cp, getcpy (np -> n_field))) != NOTOK)
-288d269
-< free(cp);
-294,295c275
-< static int
-< m_setatr(mp, name, field)
----
-> static int m_setatr (mp, name, field)
-297c277,278
-< register char *name, *field;
----
-> register char *name,
-> *field;
-299,300c280,286
-< register int bits, slot, first, last;
-< register char *cp;
----
-> int bits,
-> hack;
-> register int i,
-> j,
-> k;
-> register char *cp,
-> **ap;
-302,305c288,290
-< if (strcmp (current, name) == 0) {
-< mp->curmsg = atoi(field);
-< return (0);
-< }
----
-> bits = FFATTRSLOT;
-> hack = strcmp (current, name) == 0;/* hack... */
-> /* if we're going to use UNSEEN, it should be set here! */
-307,308c292,295
-< for (slot = 0; mp->msgattrs[slot]; slot++)
-< if (strcmp(mp->msgattrs[slot], name) == 0)
----
-> for (i = 0; mp -> msgattrs[i]; i++)
-> if (strcmp (mp -> msgattrs[i], name) == 0) {
-> for (j = mp -> lowmsg; j <= mp -> hghmsg; j++)
-> mp -> msgstats[j] &= ~(1 << (bits + i));
-310,311c297,300
-<
-< if (slot >= NATTRS)
----
-> }
-> if (i >= NATTRS) {
-> free (name);
-> free (field);
-312a302
-> }
-314,316c304,306
-< if (mp->msgattrs[slot] == NULL) {
-< mp->msgattrs[slot] = getcpy(name);
-< mp->msgattrs[slot + 1] = NULL;
----
-> if (mp -> msgattrs[i] == NULL) {
-> mp -> msgattrs[i] = name;
-> mp -> msgattrs[i + 1] = NULL;
-317a308,309
-> else
-> free (name);
-319,338c311,328
-< bits = 1 << (FFATTRSLOT + slot);
-<
-< for (cp = field; *cp; ) {
-< while (isspace(*cp))
-< ++cp;
-< if (! isdigit(*cp))
-< return (NOTOK);
-< for (first = 0; isdigit(*cp); ++cp)
-< first = (first * 10) + (*cp - '0');
-< if (first == 0)
-< return (NOTOK);
-< if (*cp++ == '-') {
-< /* have a range of msgs */
-< for (last = 0; isdigit(*cp); ++cp)
-< last = (last * 10) + (*cp - '0');
-< if (last < first) {
-< advise(NULLCP,
-< "seq %s msg range bad: first (%d) > last (%d)",
-< name, first, last);
-< continue;
----
-> for (ap = brkstring (field, " ", "\n");
-> *ap;
-> ap++) {
-> if (cp = index (*ap, '-'))
-> *cp++ = NULL;
-> if ((j = m_atoi (*ap)) > 0) {
-> #ifdef notdef
-> if (hack && j >= mp -> lowmsg && j <= mp -> hghmsg
-> && (mp -> msgstats[j] & EXISTS))
-> mp -> curmsg = j;
-> #else not notdef
-> if (hack)
-> mp -> curmsg = j;
-> #endif not notdef
-> for (k = cp ? m_atoi (cp) : j; j <= k; j++)
-> if (j >= mp -> lowmsg && j <= mp -> hghmsg
-> && (mp -> msgstats[j] & EXISTS))
-> mp -> msgstats[j] |= 1 << (bits + i);
-340,349d329
-< if (last < mp->lowmsg)
-< continue;
-< if (last > mp->hghmsg)
-< last = mp->hghmsg;
-< if (first < mp->lowmsg)
-< first = mp->lowmsg;
-< } else {
-< if (first < mp->lowmsg)
-< continue;
-< last = first;
-351,355c331,333
-< for ( ; first <= last; ++first)
-< if (mp->msgstats[first] & EXISTS)
-< mp->msgstats[first] |= bits;
-< }
-< return slot;
----
-> free (field);
->
-> return i;
-diff -r -w lbl/sbr/m_seq.c ./sbr/m_seq.c
-1a2,4
-> #ifndef lint
-> static char ident[] = "@(#)$Id: m_seq.c,v 1.7 1991/02/14 14:44:38 mh Exp $";
-> #endif lint
-6,7c9
-< static char *buffer;
-< static int bufsize = BUFSIZ;
----
-> /* new version from VJ 2/90 - faster? */
-15,16c17,19
-< register int i, j, linlen;
-< register char *bp, *ep;
----
-> register int i, j;
-> register char *bp;
-> static char buffer[BUFSIZ*2]; /* for big sequences */
-18,21d20
-< if (buffer == 0) {
-< if ((buffer = malloc(bufsize)) == NULL)
-< adios (NULLCP, "unable to allocate seq str storage");
-< }
-22a22,23
-> /* assume this is in sync with msgstats["cur"] */
-> /* see m_seqadd() for details */
-38,39d38
-< ep = bp + bufsize - 16;
-< linlen = strlen(cp) + 2;
-41,42d39
-< register char *oldbp;
-<
-46,58c43
-< oldbp = bp;
-< if (bp > buffer) {
-< if (bp >= ep) {
-< int oldoff = bp - buffer;
-< bufsize <<= 1;
-< if ((buffer = realloc(buffer, bufsize)) == NULL)
-< adios (NULLCP, "unable to allocate seq str storage");
-< oldbp = bp = buffer + oldoff;
-< ep = bp + bufsize - 16;
-< }
-< if (linlen >= 72) {
-< linlen = 0;
-< *bp++ = '\n';
----
-> if (bp > buffer)
-60,62c45
-< }
-< *bp++ = ' ';
-< }
----
->
-73d55
-< linlen += bp - oldbp;
-diff -r -w lbl/zotnet/tws/dtimep.lex ./zotnet/tws/dtimep.lex
-1,11d0
-< %{
-< #ifndef lint
-< static char rcsid[] =
-< #ifdef FLEX_SCANNER
-< "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (flex generated scanner)";
-< #else
-< "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (lex generated scanner)";
-< #endif
-< #endif
-< %}
-< /*
-16,17d4
-< */
-<
-48a36,38
-> #ifndef lint
-> static char ident[] = "@(#)$Id: dtimep.lex,v 2.11 1992/02/10 20:32:29 jromine Exp jromine $";
-> #endif
-49a40
-> #include "../h/strings.h"
-50a42,45
-> #include <sys/types.h>
-> #ifndef SYS5
-> #include <sys/timeb.h>
-> #endif not SYS5
-51a47,52
-> #ifdef SYS5
-> extern int daylight;
-> extern long timezone;
-> extern char *tzname[];
-> #endif SYS5
->
-55c56,57
-< * American style: MM/DD/YY.
----
-> * American style: MM/DD/YY. Of course, these are all non-RFC822
-> * compliant.
-121c123,126
-< #define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i)
----
-> #define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
-> #define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
-> #define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
-> (cp[2] - '0'))*10 + (cp[3] - '0'))
-128,131c133,138
-< #ifdef FLEX_SCANNER
-< /* We get passed a string and return a pointer to a static tws struct */
-< #undef YY_DECL
-< #define YY_DECL struct tws *dparsetime(str) char *str;
----
-> #ifdef DSTXXX
-> #ifndef BSD42
-> #include <time.h>
-> #else BSD42
-> #include <sys/time.h>
-> #endif BSD42
-133,148c140,143
-< /* We assume that we're never passed more than max_size characters */
-< #undef YY_INPUT
-< #define YY_INPUT(buf,result,max_size) \
-< if (gstr) { \
-< register char *xp; \
-< xp = gstr; \
-< while (isspace(*xp)) \
-< xp++; \
-< gstr = xp; \
-< while (*xp != '\0') \
-< ++xp; \
-< result = xp - gstr; \
-< bcopy(gstr, buf, result); \
-< gstr = 0; \
-< } else \
-< result = YY_NULL;
----
-> static zonehack (tw)
-> register struct tws *tw;
-> {
-> register struct tm *tm;
-150,152c145,146
-< /* Date strings aren't usually very long */
-< #undef YY_READ_BUF_SIZE
-< #define YY_READ_BUF_SIZE 128
----
-> if (twclock (tw) == -1L)
-> return;
-154,156c148,168
-< /* Use mh error reporting routine */
-< #undef YY_FATAL_ERROR
-< #define YY_FATAL_ERROR(s) adios("dparsetime()", s);
----
-> tm = localtime (&tw -> tw_clock);
-> if (tm -> tm_isdst) {
-> tw -> tw_flags |= TW_DST;
-> tw -> tw_zone -= 60;
-> }
-> }
-> #endif DSTXXX
-> %}
-> %%
-> %{
-> struct tws *dparsetime (str)
-> char *str;
-> {
-> register int i;
-> static struct tws tw;
-> register char *cp;
-> register int gotdate = 0;
-> #ifndef SYS5
-> struct timeb tb;
-> #endif not SYS5
-> long tclock;
-158,160c170
-< /* We need a pointer to the matched text we can modify */
-< #undef YY_USER_ACTION
-< #define YY_USER_ACTION cp = yytext
----
-> start_cond = 0;
-162,163c172,173
-< /* Used to initialize */
-< static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
----
-> /* Zero out the struct. */
-> bzero( (char *) &tw, sizeof tw);
-165,167c175,182
-< /* Global for use by YY_INPUT() macro */
-< static char *gstr;
-< #endif
----
-> /* Set default time zone. */
-> #ifndef SYS5
-> ftime( &tb );
-> tw.tw_zone = -tb.timezone;
-> #else SYS5
-> tzset( );
-> tw.tw_zone = -(timezone / 60);
-> #endif SYS5
-169c184,187
-< %}
----
-> while (isspace(*str))
-> str++;
-> while ( 1 )
-> switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
-171,175c189,203
-< %%
-< register int i, gotdate;
-< register char *cp;
-< static struct tws tw;
-< static void zonehack();
----
-> case -1:
-> if (!gotdate || tw.tw_year == 0)
-> return (struct tws *)0;
-> /* fall through */
-> case 0:
-> if ( tw.tw_year == 0 ) {
-> /* Set default year. */
-> time (&tclock);
-> tw.tw_year = localtime(&tclock)->tm_year + 1900;
-> }
-> else if (tw.tw_year < 100) {
-> /* assume no 2-digit years > 1999 */
-> tw.tw_year += 1900;
-> }
-> return &tw;
-177,182c205
-< BEGIN(INITIAL);
-< yy_init = 1;
-< tw = ztw;
-< gstr = str;
-< gotdate = 0;
-<
----
-> %}
-188,189c211
-<
-< {D}"/"{D}"/"(19)?[0-9][0-9]{w} {
----
-> {D}(("-"{D}"-")|("/"{D}"/")){D}?{d}{d}{w} {
-192c214
-< tw.tw_mday = CVT2;
----
-> tw.tw_mday = CVT1OR2;
-194c216
-< tw.tw_mon = CVT2 - 1;
----
-> tw.tw_mon = CVT1OR2 - 1;
-197c219
-< tw.tw_mon = CVT2 - 1;
----
-> tw.tw_mon = CVT1OR2 - 1;
-199c221
-< tw.tw_mday = CVT2;
----
-> tw.tw_mday = CVT1OR2;
-204c226,236
-< tw.tw_year = i % 100;
----
-> tw.tw_year = i;
-> gotdate++; /* XXX */
-> }
-> {D}("/"|"-"){D}{w} {
-> if (europeandate) {
-> tw.tw_mday = CVT1OR2; cp++;
-> tw.tw_mon = CVT1OR2 - 1;
-> } else {
-> tw.tw_mon = CVT1OR2 - 1; cp++;
-> tw.tw_mday = CVT1OR2;
-> }
-207,208c239,240
-< {D}{w}(-)?{w}{MONTH}{w}(-)?{w}(19)?{D}{w}(\,{w}|at{W})? {
-< tw.tw_mday = CVT2;
----
-> {D}{w}(-)?{w}{MONTH}{w}(-)?{w}{D}?{d}{d}({W}at)?{w} {
-> tw.tw_mday = CVT1OR2;
-214c246
-< tw.tw_year = i % 100;
----
-> tw.tw_year = i;
-216c248,254
-< {MONTH}{W}{D}","{W}(19)?{D}{w} {
----
-> {D}"-"?{MONTH}({W}at)?{w} {
-> tw.tw_mday = CVT1OR2;
-> while ( ! isalpha( *cp++ ) )
-> ;
-> SETMONTH;
-> }
-> {MONTH}{W}{D}","{W}{D}?{d}{d}{w} {
-219c257
-< tw.tw_mday = CVT2;
----
-> tw.tw_mday = CVT1OR2;
-223c261
-< tw.tw_year = i % 100;
----
-> tw.tw_year = i;
-225d262
-<
-229c266
-< tw.tw_mday = CVT2;
----
-> tw.tw_mday = CVT1OR2;
-231a269,275
-> {D}:{D}:{D}{W}19[6-9]{d} { /* hack: ctime w/o TZ */
-> tw.tw_hour = CVT1OR2; cp++;
-> tw.tw_min = CVT1OR2; cp++;
-> tw.tw_sec = CVT1OR2;
-> SKIPD;
-> tw.tw_year = CVT4; cp+=4;
-> }
-233,235c277,279
-< tw.tw_hour = CVT2; cp++;
-< tw.tw_min = CVT2; cp++;
-< tw.tw_sec = CVT2;
----
-> tw.tw_hour = CVT1OR2; cp++;
-> tw.tw_min = CVT1OR2; cp++;
-> tw.tw_sec = CVT1OR2;
-239,240c283,284
-< tw.tw_hour = CVT2; cp++;
-< tw.tw_min = CVT2;
----
-> tw.tw_hour = CVT1OR2; cp++;
-> tw.tw_min = CVT1OR2;
-244c288
-< tw.tw_hour = CVT2; cp++;
----
-> tw.tw_hour = CVT1OR2; cp++;
-247c291
-< tw.tw_min = CVT2;
----
-> tw.tw_min = CVT1OR2;
-249a294,301
-> {D}:{D}:{D}{w}am{w} {
-> tw.tw_hour = CVT1OR2; cp++;
-> if (tw.tw_hour == 12)
-> tw.tw_hour = 0;
-> tw.tw_min = CVT1OR2; cp++;
-> tw.tw_sec = CVT1OR2;
-> BEGIN Z;
-> }
-251c303
-< tw.tw_hour = CVT2; cp++;
----
-> tw.tw_hour = CVT1OR2; cp++;
-254c306
-< tw.tw_min = CVT2;
----
-> tw.tw_min = CVT1OR2;
-256a309,316
-> {D}:{D}:{D}{w}pm{w} {
-> tw.tw_hour = CVT1OR2; cp++;
-> if (tw.tw_hour != 12)
-> tw.tw_hour += 12;
-> tw.tw_min = CVT1OR2; cp++;
-> tw.tw_sec = CVT1OR2;
-> BEGIN Z;
-> }
-258,260c318,320
-< tw.tw_hour = CVT2;
-< tw.tw_min = CVT2;
-< tw.tw_sec = CVT2;
----
-> tw.tw_hour = CVT2; cp+=2;
-> tw.tw_min = CVT2; cp+=2;
-> tw.tw_sec = CVT2; cp+=2;
-267,268c327
-< * and minutes. This rule must come
-< * the 4 digit hour and minute rule.
----
-> * and minutes.
-270,271c329
-< cp += 2;
-< tw.tw_year = CVT2;
----
-> tw.tw_year = CVT4; cp+=4;
-274,275c332,338
-< tw.tw_hour = CVT2;
-< tw.tw_min = CVT2;
----
-> if (tw.tw_hour || tw.tw_min
-> || tw.tw_sec) {
-> tw.tw_year = CVT4; cp+=4;
-> tw.tw_zone = 0;
-> } else {
-> tw.tw_hour = CVT2; cp+=2;
-> tw.tw_min = CVT2; cp+=2;
-277a341
-> }
-315a380
-> EXPZONE;
-320d384
-< EXPZONE;
-327a392
-> EXPZONE;
-332d396
-< EXPZONE;
-334c398,401
-<
----
-> <Z>{W}{d}{d}{d}{d} {
-> SKIPD;
-> tw.tw_year = CVT4; cp+=4;
-> }
-337,349d403
-<
-< <INITIAL,Z><<EOF>> return(&tw);
-<
-< . {
-< /*
-< * We jammed; it's an error if we
-< * didn't parse anything.
-< */
-< if (!gotdate || tw.tw_year == 0)
-< return(0);
-< return(&tw);
-< }
-<
-351,375d404
-<
-< #ifdef DSTXXX
-< #include <sys/types.h>
-< #ifndef BSD42
-< #include <time.h>
-< #else BSD42
-< #include <sys/time.h>
-< #endif BSD42
-<
-< static void
-< zonehack(tw)
-< register struct tws *tw;
-< {
-< register struct tm *tm;
-<
-< if (twclock (tw) == -1L)
-< return;
-<
-< tm = localtime (&tw -> tw_clock);
-< if (tm -> tm_isdst) {
-< tw -> tw_flags |= TW_DST;
-< tw -> tw_zone -= 60;
-< }
-< }
-< #endif DSTXXX
+++ /dev/null
-./sbr/formatsbr.c
-./sbr/trmsbr.c
-./sbr/tags
-./sbr/t.c
-./sbr/m_gmsg.c
-./sbr/m_seq.c
-./uip/version.c
-./uip/m_getfld.c
-./zotnet/tws/dtimep.c
-./zotnet/tws/test.input
-./zotnet/tws/dtest
-./zotnet/tws/dtimep.lex
-./zotnet/tws.h
+++ /dev/null
-/* formatsbr.c - format string interpretation */
-
-#include "../h/mh.h"
-#include "../h/addrsbr.h"
-#include "../h/formatsbr.h"
-#include "../zotnet/tws.h"
-#include "../h/fmtcompile.h"
-#include <ctype.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#define NFMTS MAXARGS
-#define QUOTE '\\'
-
-static char *formats = 0;
-extern char *formataddr(); /* hook for custom address formatting */
-struct msgs *fmt_current_folder;/* current folder (set by main program) */
-
-int fmt_norm = AD_NAME;
-struct mailname fmt_mnull;
-
-
-static
-normalize(cp)
- register char *cp;
-{
- register char *dp;
-
- for (dp = cp; *cp; cp++)
- if (*cp != QUOTE)
- *dp++ = *cp;
- else
- switch (*++cp) {
-
- case 'b':
- *dp++ = '\b';
- break;
- case 'f':
- *dp++ = '\f';
- break;
- case 'n':
- *dp++ = '\n';
- break;
- case 'r':
- *dp++ = '\r';
- break;
- case 't':
- *dp++ = '\t';
- break;
-
- case '\n':
- break;
-
- case NULL:
- cp--;
- /* fall through */
- default:
- *dp++ = *cp;
- break;
- }
-
- *dp = NULL;
-}
-
-char *
-new_fs(form, format, def)
- register char *form, *format, *def;
-{
- struct stat st;
- register FILE *fp;
-
- if (formats)
- free(formats);
-
- if (form) {
- if ((fp = fopen(libpath(form), "r")) == NULL)
- adios(form, "unable to open format file");
-
- if (fstat(fileno(fp), &st) == NOTOK)
- adios(form, "unable to stat format file");
-
- if ((formats = malloc((unsigned) st.st_size + 1)) == NULLCP)
- adios(form, "unable to allocate space for format");
-
- if (read(fileno(fp), formats, st.st_size) != st.st_size)
- adios(form, "error reading format file");
-
- formats[st.st_size] = '\0';
- (void) fclose(fp);
- } else {
- formats = getcpy(format ? format : def);
- }
-
- normalize(formats);
-
- return formats;
-}
-
-/*
- * test if string "sub" appears anywhere in string "str"
- * (case insensitive).
- */
-static int
-match(str, sub)
- register char *str, *sub;
-{
- register int c1;
- register int c2;
- register char *s1;
- register char *s2;
-
- while (c1 = *sub) {
- while ((c2 = *str++) && (c1 | 040) != (c2 | 040))
- ;
- if (!c2)
- return 0;
- s1 = sub + 1;
- s2 = str;
- while ((c1 = *s1++) && (c1 | 040) == (*s2++ | 040))
- ;
- if (!c1)
- return 1;
- }
- return 1;
-}
-
-/* macros to format data */
-
-#define PUTDF(cp, num, wid, fill) {\
- if (cp + wid < ep) {\
- if ((i = (num)) < 0)\
- i = -(num);\
- if ((c = (wid)) < 0)\
- c = -c;\
- sp = cp + c;\
- do {\
- *--sp = (i % 10) + '0';\
- i /= 10;\
- } while (i > 0 && sp > cp);\
- if (i > 0)\
- *sp = '?';\
- else if ((num) < 0 && sp > cp)\
- *--sp = '-';\
- while (sp > cp)\
- *--sp = fill;\
- cp += c;\
- }}
-#define PUTD(cp, num) {\
- if (cp < ep) {\
- if ((i = (num)) == 0)\
- *cp++ = '0';\
- else {\
- if ((i = (num)) < 0) \
- *cp++ = '-', i = -(num);\
- c = 10;\
- while (c <= i) \
- c *= 10;\
- while (cp < ep && c > 1) {\
- c /= 10;\
- *cp++ = (i / c) + '0';\
- i %= c;\
- }\
- }\
- }}
-#define PUTSF(cp, str, wid, fill) {\
- char *cp2 = cp;\
- rjust = 0;\
- if ((i = (wid)) < 0) {\
- i = -i;\
- rjust++;\
- }\
- if (sp = (str)) {\
- if (rjust) {\
- c = strlen(sp);\
- if (c > i)\
- sp += c - i;\
- else {\
- while (--i >= c && cp < ep)\
- *cp++ = fill;\
- i++;\
- }\
- } else {\
- while ((c = *sp) && c <= 32)\
- sp++;\
- }\
- while ((c = *sp++) && --i >= 0 && cp < ep)\
- if (c > 32) \
- *cp++ = c;\
- else if (c == '\010') {\
- if (cp > cp2)\
- --cp;\
- } else {\
- while ((c = *sp) && c <= 32)\
- sp++;\
- *cp++ = ' ';\
- }\
- }\
- if (!rjust)\
- while (--i >= 0 && cp < ep)\
- *cp++ = fill;\
- }
-
-#define PUTS(cp, str) {\
- char *cp2 = cp;\
- if (sp = (str)) {\
- while ((c = *sp) && c <= 32)\
- sp++;\
- while ((c = *sp++) && cp < ep)\
- if (c > 32) \
- *cp++ = c;\
- else if (c == '\010') {\
- if (cp > cp2)\
- --cp;\
- } else {\
- while ((c = *sp) && c <= 32)\
- sp++;\
- *cp++ = ' ';\
- }\
- }}
-
-static char *lmonth[] = {
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"
-};
-
-
-fmtscan(format, scanl, width, dat)
- struct format *format;
- char *scanl;
- int width;
- int dat[];
-{
- register char *cp = scanl;
- register char *ep = scanl + width - 1;
- register struct format *fmt = format;
- register char *str = NULLCP;
- register int value = 0;
- register char *sp;
- register int i;
- register int c;
- register struct comp *comp;
- register struct tws *tws;
- register struct mailname *mn;
- register int j;
- int rjust;
- long l;
- char *savestr;
- char buffer[BUFSIZ];
-
- for (;;) {
- switch (fmt->f_type) {
-
- case FT_COMP:
- PUTS(cp, fmt->f_comp->c_text);
- break;
- case FT_COMPF:
- PUTSF(cp, fmt->f_comp->c_text, fmt->f_width,
- fmt->f_fill);
- break;
-
- case FT_LIT_FORCE:
- sp = fmt->f_text;
- i = strlen(sp);
- ep += i; /* forced lits are `invisible' */
-
- while (c = *sp++)
- *cp++ = c;
- break;
- case FT_LIT:
- sp = fmt->f_text;
- while ((c = *sp++) && cp < ep)
- *cp++ = c;
- break;
- case FT_LITF:
- sp = fmt->f_text;
-
- /* By default we left justify */
- rjust = 0;
- if ((i = fmt->f_width) < 0) {
- i = -i;
- rjust++;
- }
-
- if (rjust) {
- j = strlen(sp);
- if (j > i)
- sp += j - i;
- else while (j < i && cp < ep) {
- *cp++ = fmt->f_fill;
- ++j;
- }
- }
-
- while ((c = *sp++) && --i >= 0 && cp < ep)
- *cp++ = c;
-
- while (--i >= 0 && cp < ep)
- *cp++ = fmt->f_fill;
- break;
-
- case FT_STR:
- PUTS(cp, str);
- break;
- case FT_STRF:
- PUTSF(cp, str, fmt->f_width, fmt->f_fill);
- break;
- case FT_STRFW:
- adios(NULLCP, "internal error (FT_STRFW)");
-
- case FT_NUM:
- PUTD(cp, value);
- break;
- case FT_NUMF:
- PUTDF(cp, value, fmt->f_width, fmt->f_fill);
- break;
-
- case FT_CHAR:
- *cp++ = fmt->f_char;
- break;
- case FT_DONE:
- goto finished;
-
- case FT_IF_S:
- if (str == NULLCP || *str == NULL) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_IF_S_NULL:
- if (str != NULLCP && *str != NULL) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_IF_V_EQ:
- if (value != fmt->f_value) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_IF_V_NE:
- if (value == fmt->f_value) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_IF_V_GT:
- if (value <= fmt->f_value) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_IF_MATCH:
- if (!str || !match(str, fmt->f_text)) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_V_MATCH:
- if (str)
- value = match(str, fmt->f_text);
- else
- value = 0;
- break;
-
- case FT_IF_AMATCH:
- if (!str || !uprf(str, fmt->f_text)) {
- fmt += fmt->f_skip;
- continue;
- }
- break;
-
- case FT_V_AMATCH:
- if (str)
- value = uprf(str, fmt->f_text);
- else
- value = 0;
- break;
-
- case FT_S_NONNULL:
- value = (str != NULLCP && *str != NULL);
- break;
-
- case FT_S_NULL:
- value = (str == NULLCP || *str == NULL);
- break;
-
- case FT_V_EQ:
- value = (fmt->f_value == value);
- break;
-
- case FT_V_NE:
- value = (fmt->f_value != value);
- break;
-
- case FT_V_GT:
- value = (fmt->f_value > value);
- break;
-
- case FT_GOTO:
- fmt += fmt->f_skip;
- continue;
-
- case FT_NOP:
- break;
-
- case FT_LS_COMP:
- str = fmt->f_comp->c_text;
- break;
- case FT_LS_LIT:
- str = fmt->f_text;
- break;
- case FT_LS_TRIM:
- if (str) {
- register char *xp;
-
- /* Be careful since str can point into buffer */
- bcopy(str, buffer, strlen(str) + 1);
- str = buffer;
-
- /* Eat leading whitespace */
- while (isspace(*str))
- str++;
-
- /* Trim trailing whitespace */
- xp = str + strlen(str) - 1;
- while (xp > str && isspace(*xp))
- *xp-- = '\0';
-
- /* By default we left justify */
- rjust = 0;
- if ((i = fmt->f_width) < 0) {
- i = -i;
- rjust++;
- }
-
- /* If necessary, limit width and/or justify */
- if (i > 0 && (j = strlen(str)) > i) {
- if (!rjust)
- str[i] = '\0';
- else
- str += j - i;
- }
- }
- break;
-
- case FT_LV_COMPFLAG:
- value = fmt->f_comp->c_flags;
- break;
- case FT_LV_COMP:
- value = (comp = fmt->f_comp)->c_text ?
- atoi(comp->c_text) : 0;
- break;
- case FT_LV_LIT:
- value = fmt->f_value;
- break;
- case FT_LV_DAT:
- value = dat[fmt->f_value];
- break;
- case FT_LV_STRLEN:
- value = strlen(str);
- break;
- case FT_LV_CHAR_LEFT:
- value = width - (cp - scanl);
- break;
- case FT_LV_PLUS_L:
- value += fmt->f_value;
- break;
- case FT_LV_MINUS_L:
- value = fmt->f_value - value;
- break;
- case FT_LV_DIVIDE_L:
- if (fmt->f_value)
- value = value / fmt->f_value;
- else
- value = 0;
- break;
- case FT_SAVESTR:
- savestr = str;
- break;
-
- case FT_LV_SEC:
- value = fmt->f_comp->c_tws->tw_sec;
- break;
- case FT_LV_MIN:
- value = fmt->f_comp->c_tws->tw_min;
- break;
- case FT_LV_HOUR:
- value = fmt->f_comp->c_tws->tw_hour;
- break;
- case FT_LV_MDAY:
- value = fmt->f_comp->c_tws->tw_mday;
- break;
- case FT_LV_MON:
- value = fmt->f_comp->c_tws->tw_mon + 1;
- break;
- case FT_LS_MONTH:
- str = tw_moty[fmt->f_comp->c_tws->tw_mon];
- break;
- case FT_LS_LMONTH:
- str = lmonth[fmt->f_comp->c_tws->tw_mon];
- break;
- case FT_LS_ZONE:
- str = dtwszone(fmt->f_comp->c_tws);
- break;
- case FT_LV_YEAR:
- value = fmt->f_comp->c_tws->tw_year;
- break;
- case FT_LV_WDAY:
- if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
- (TW_SEXP | TW_SIMP)))
- set_dotw(tws);
- value = tws->tw_wday;
- break;
- case FT_LS_DAY:
- if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
- (TW_SEXP | TW_SIMP)))
- set_dotw(tws);
- str = tw_dotw[tws->tw_wday];
- break;
- case FT_LS_WEEKDAY:
- if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
- (TW_SEXP | TW_SIMP)))
- set_dotw(tws);
- str = tw_ldotw[tws->tw_wday];
- break;
- case FT_LV_YDAY:
- value = fmt->f_comp->c_tws->tw_yday;
- break;
- case FT_LV_ZONE:
- value = fmt->f_comp->c_tws->tw_zone;
- break;
- case FT_LV_CLOCK:
- if ((value = fmt->f_comp->c_tws->tw_clock) == 0)
- value = twclock(fmt->f_comp->c_tws);
- break;
- case FT_LV_RCLOCK:
- if ((value = fmt->f_comp->c_tws->tw_clock) == 0)
- value = twclock(fmt->f_comp->c_tws);
- value = time((long *) 0) - value;
- break;
- case FT_LV_DAYF:
- if (!(((tws = fmt->f_comp->c_tws)->tw_flags) &
- (TW_SEXP | TW_SIMP)))
- set_dotw(tws);
- switch (fmt->f_comp->c_tws->tw_flags & TW_SDAY) {
- case TW_SEXP:
- value = 1;
- break;
- case TW_SIMP:
- value = 0;
- break;
- default:
- value = -1;
- break;
- }
- case FT_LV_ZONEF:
- if ((fmt->f_comp->c_tws->tw_flags & TW_SZONE) ==
- TW_SZEXP)
- value = 1;
- else
- value = -1;
- break;
- case FT_LV_DST:
- value = fmt->f_comp->c_tws->tw_flags & TW_DST;
- break;
- case FT_LS_822DATE:
- str = dasctime(fmt->f_comp->c_tws, TW_ZONE);
- break;
- case FT_LS_PRETTY:
- str = dasctime(fmt->f_comp->c_tws, TW_NULL);
- break;
-
- case FT_LS_PERS:
- str = fmt->f_comp->c_mn->m_pers;
- break;
- case FT_LS_MBOX:
- str = fmt->f_comp->c_mn->m_mbox;
- break;
- case FT_LS_HOST:
- str = fmt->f_comp->c_mn->m_host;
- break;
- case FT_LS_PATH:
- str = fmt->f_comp->c_mn->m_path;
- break;
- case FT_LS_GNAME:
- str = fmt->f_comp->c_mn->m_gname;
- break;
- case FT_LS_NOTE:
- str = fmt->f_comp->c_mn->m_note;
- break;
- case FT_LS_822ADDR:
- str = adrformat(fmt->f_comp->c_mn);
- break;
- case FT_LV_HOSTTYPE:
- value = fmt->f_comp->c_mn->m_type;
- break;
- case FT_LV_INGRPF:
- value = fmt->f_comp->c_mn->m_ingrp;
- break;
- case FT_LV_NOHOSTF:
- value = fmt->f_comp->c_mn->m_nohost;
- break;
- case FT_LS_FRIENDLY:
-#ifdef BERK
- str = fmt->f_comp->c_mn->m_mbox;
-#else
- mn = fmt->f_comp->c_mn;
- if ((str = mn->m_pers) == NULL)
- switch (mn->m_type) {
-
- case LOCALHOST:
- str = mn->m_mbox;
- break;
- case UUCPHOST:
- (void) sprintf(buffer, "%s!%s",
- mn->m_host, mn->m_mbox);
- str = buffer;
- break;
- default:
- if (mn->m_mbox) {
- (void) sprintf(buffer, "%s@%s",
- mn->m_mbox, mn->m_host);
- str = buffer;
- } else
- str = mn->m_text;
- break;
- }
-#endif BERK
- break;
-
- case FT_LOCALDATE:
- comp = fmt->f_comp;
- if ((l = comp->c_tws->tw_clock) == 0)
- l = twclock(comp->c_tws);
- tws = dlocaltime(&l);
- *comp->c_tws = *tws;
- break;
-
- case FT_GMTDATE:
- comp = fmt->f_comp;
- if ((l = comp->c_tws->tw_clock) == 0)
- l = twclock(comp->c_tws);
- tws = dgmtime(&l);
- *comp->c_tws = *tws;
- break;
-
- case FT_PARSEDATE:
- comp = fmt->f_comp;
- if ((sp = comp->c_text) && (tws = dparsetime(sp))) {
- *comp->c_tws = *tws;
- comp->c_flags = 0;
- } else if (comp->c_flags >= 0) {
- bzero((char *)comp->c_tws,
- sizeof(*comp->c_tws));
- comp->c_flags = 1;
- }
- break;
-
- case FT_FORMATADDR:
- /* custom address list formatting hook */
- str = formataddr(savestr, str);
- break;
-
- case FT_PUTADDR:
- /*
- * Output the str register as an address component,
- * splitting it into multiple lines if necessary.
- * The value reg. contains the max line length. The
- * lit. field may contain a string to prepend to the
- * result (e.g., "To: ")
- */
- {
- register char *lp = str;
- register int indent;
- register int wid = value;
- register int len = strlen(str);
- register char *lastb;
-
- sp = fmt->f_text;
- indent = strlen(sp);
- wid -= indent;
- while ((c = *sp++) && cp < ep)
- *cp++ = c;
- while (len > wid) {
- /*
- * Try to break at a comma; failing
- * that, break at a space, failing
- * that, just split the line.
- */
- lastb = 0;
- sp = lp + wid;
- while (sp > lp && (c = *--sp) != ',') {
- if (!lastb && isspace(c))
- lastb = sp - 1;
- }
- if (sp == lp)
- if (!(sp = lastb))
- sp = lp + wid - 1;
- len -= sp - lp + 1;
- while (cp < ep && lp <= sp)
- *cp++ = *lp++;
- *cp++ = '\n';
- for (i = indent; cp < ep && i > 0; i--)
- *cp++ = ' ';
- while (isspace(*lp))
- lp++, len--;
- }
- PUTS(cp, lp);
- }
- break;
-
- case FT_PARSEADDR:
- comp = fmt->f_comp;
- if (comp->c_mn != &fmt_mnull)
- mnfree(comp->c_mn);
- if ((sp = comp->c_text) && (sp = getname(sp)) &&
- (mn = getm(sp, NULLCP, 0, fmt_norm, NULLCP))) {
- comp->c_mn = mn;
- while (getname(""))
- ;
- } else
- comp->c_mn = &fmt_mnull;
- break;
-
- case FT_MYMBOX:
- /*
- * If there's no component, we say true. Otherwise
- * we say "true" only if we can parse the address and
- * it matches one of our addresses.
- */
- comp = fmt->f_comp;
- if (comp->c_mn != &fmt_mnull)
- mnfree(comp->c_mn);
- if ((sp = comp->c_text) && (sp = getname(sp)) &&
- (mn = getm(sp, NULLCP, 0, AD_NAME, NULLCP))) {
- comp->c_mn = mn;
- comp->c_flags = ismymbox(mn);
- while (sp = getname(sp))
- if (comp->c_flags == 0 &&
- (mn = getm(sp, NULLCP, 0,
- AD_NAME, NULLCP)))
- comp->c_flags |= ismymbox(mn);
- } else {
- comp->c_flags = (comp->c_text == 0);
- comp->c_mn = &fmt_mnull;
- }
- break;
-
- case FT_ADDTOSEQ:
- /*
- * If we're working on a folder (as opposed to a
- * file), add the current msg to sequence given in
- * literal field. Don't disturb string or value
- * registers.
- */
- if (fmt_current_folder)
- (void) m_seqadd(fmt_current_folder,
- fmt->f_text, dat[0], -1);
- break;
- }
- fmt++;
- }
-finished:
- if (cp[-1] != '\n')
- *cp++ = '\n';
- *cp = NULL;
- return (value);
-}
+++ /dev/null
-/* m_gmsg.c - read a folder */
-
-#include "../h/mh.h"
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#ifndef BSD42
-#ifndef SYS5
-#include <ndir.h>
-#else SYS5
-#include <dir.h>
-#endif SYS5
-#else BSD42
-#include <sys/dir.h>
-#endif BSD42
-
-
-#define NINFO (MAXFOLDER / 5) /* PLEASE be non-trivial... */
-struct info {
- int msgno;
- int stats;
-};
-
-static int m_getatr(), m_setatr();
-
-static int len;
-static struct info *head;
-
-/* \f */
-
-struct msgs *
-m_gmsg(name)
- register char *name;
-{
-#ifdef COMPAT
- register int cur,
- fd;
-#endif COMPAT
- register int i,
- j;
- register struct info *rover,
- *tail;
-#ifdef COMPAT
- register char *cp;
- char buffer[BUFSIZ];
-#endif COMPAT
- register struct msgs *mp;
- register struct direct *dp;
- register DIR * dd;
- struct stat st;
-
- if ((dd = opendir (name = m_mailpath (name))) == NULL) {
- free (name);
- return NULL;
- }
- (void) fstat (dd->dd_fd, &st);
-
- mp = (struct msgs *) malloc (MSIZE (mp, 0, 0));
- if (mp == NULL)
- adios (NULLCP, "unable to allocate folder storage");
- mp->lowmsg = mp->hghmsg = mp->nummsg = 0;
- mp->curmsg = 0;
- mp->lowsel = mp->hghsel = mp->numsel = 0;
- mp->foldpath = name;
- mp->msgflags = NULL;
- if (st.st_uid != getuid () || access (name, 02) == NOTOK)
- mp->msgflags |= READONLY;
-#ifdef COMPAT
- cur = 0;
-#endif COMPAT
- j = strlen (SBACKUP);
- if (head == NULL)
- if ((head = (struct info *)
- malloc ((unsigned) ((len = NINFO) * sizeof *head))) == NULL)
- adios (NULLCP, "unable to allocate info storage");
- tail = (rover = head) + len;
-
- while (dp = readdir (dd))
- if (i = m_atoi (dp->d_name)) {
- if (rover >= tail) {
- register int curlen = tail - head;
-
- if ((tail = (struct info *) realloc ((char *) head,
- (unsigned) ((len += NINFO) * sizeof *head)))
- == NULL)
- adios (NULLCP, "unable to allocate info storage");
- else
- rover = tail + curlen, head = tail, tail += len;
- }
- if (i > mp->hghmsg)
- mp->hghmsg = i;
- mp->nummsg++;
- if (mp->lowmsg == 0 || i < mp->lowmsg)
- mp->lowmsg = i;
- rover->msgno = i;
- rover->stats = EXISTS;
-#ifdef notdef
- rover->stats &= ~DELETED;
-#endif notdef
- rover++;
- }
- else
- switch (dp->d_name[0]) {
- case '.':
- continue;
-
- case ',':
-#ifdef notdef
- if ((i = m_atoi (dp->d_name + 1)) {
- register struct info *l;
-
- for (l = head; l < rover; l++)
- if (l->msgno == i) {
- if (!(l->stats & EXISTS))
- l->stats |= DELETED;
- break;
- }
- }
-#endif notdef
- continue;
-
-#ifdef MHE
- case '+':
- continue;
-#endif MHE
-
-#ifdef UCI
- case '_':
- case '#':
- continue;
-#endif UCI
-
- default:
-#ifdef COMPAT
- if (strcmp (dp->d_name, current) == 0) {
- cur++;
- continue;
- }
-#endif COMPAT
- if (strcmp (dp->d_name, LINK) == 0
- || strncmp (dp->d_name, SBACKUP, j) == 0)
- continue;
- mp->msgflags |= OTHERS;
- continue;
- }
-
- closedir (dd);
-
-/* \f */
-
-#ifdef COMPAT
- (void) sprintf (buffer, "%s-%s", current, name);
- if (cp = m_find (buffer)) {
- i = m_atoi (cp);
- (void) m_delete(buffer);
- if (i > 0)
- mp->curmsg = i;
- }
- if (mp->curmsg == 0 && cur && (fd = open (current, 0)) != NOTOK) {
- if ((i = read (fd, buffer, sizeof buffer)) > 0) {
- if (cp = index (buffer, '\n'))
- *cp = NULL;
- if ((i = m_atoi (buffer)) > 0)
- mp->curmsg = i;
- }
- (void) close (fd);
- }
- if (cur && !(mp->msgflags & READONLY)){ /* sneaky... */
- (void) sprintf (buffer, "%s/%s", name, current);
- (void) unlink (buffer);
- }
-#endif COMPAT
-
-#ifndef MTR
- mp->lowoff = 1;
-#else MTR
- mp->lowoff = mp->lowmsg;
-#endif MTR
- mp->hghoff = mp->hghmsg + 1;/* for "new" in m_convert */
-
- mp = (struct msgs *)
- realloc ((char *) mp, MSIZE (mp, mp->lowoff, mp->hghoff));
- if (mp == NULL)
- adios (NULLCP, "unable to allocate folder storage");
-#ifndef MTR
- for (i = mp->lowmsg; i <= mp->hghmsg; i++)
- mp->msgstats[i] = 0;
-#else MTR
- mp->msgstats = (int *)
- calloc ((unsigned) 1, MSIZEX (mp, mp->lowmsg, mp->hghmsg));
- if (mp->msgstats == NULL)
- adios (NULLCP, "unable to allocate messages storage");
- mp->msgstats = (mp->msgbase = mp->msgstats) - mp->lowoff;
- if (mp->msgstats < 0)
- adios (NULLCP, "m_gmsg() botch -- you lose big");
-#endif MTR
- for (tail = head; tail < rover; tail++)
- mp->msgstats[tail->msgno] = tail->stats;
- m_getatr (mp);
-
- return mp;
-}
-
-/* \f */
-
-static int
-m_getatr(mp)
- register struct msgs *mp;
-{
- int alen,
- bits,
- i,
- j,
- plen,
- state;
- register char *cp;
- char name[NAMESZ],
- field[BUFSIZ];
- register struct node *np;
- register FILE * fp;
-
- bits = FFATTRSLOT;
-
- mp->msgattrs[0] = getcpy (current);
- mp->msgattrs[1] = NULL;
- mp->attrstats = 0; /* initially, all public */
-
- m_getdefs ();
- if (mh_seq == NULL || *mh_seq == NULL)
- goto private_only;
-
- (void) sprintf (field, "%s/%s", mp->foldpath, mh_seq);
- if (fp = fopen (field, "r")) {
- for (state = FLD;;) {
- switch (state = m_getfld (state, name, field, sizeof field, fp)) {
- case FLDPLUS:
- /*
- * sequence was too big for buffer: back up
- * to a word break.
- */
- for (cp = &field[sizeof(field)-2]; !isspace(*cp); --cp)
- ;
- if (i = cp - &field[sizeof(field)-2]) {
- *cp = 0;
- fseek(fp, i, 1);
- }
- /*FALL THROUGH*/
- case FLD:
- (void) m_setatr (mp, name, field);
- continue;
-
- case FLDEOF:
- (void) m_setatr (mp, name, field);
- break;
-
- case BODY:
- case BODYEOF:
- adios (NULLCP,
- "no blank lines are permitted in %s/%s",
- mp->foldpath, mh_seq);/* fall */
-
- case FILEEOF:
- break;
-
- default:
- adios (NULLCP, "%s/%s is poorly formatted",
- mp->foldpath, mh_seq);
- }
- break;
- }
- (void) fclose (fp);
- }
-
-private_only: ;
- alen = strlen ("atr-");
- plen = strlen (mp->foldpath) + 1;
-
- for (np = m_defs; np; np = np->n_next)
- if (ssequal ("atr-", np->n_name)
- && (j = strlen (np->n_name) - plen) > alen
- && *(np->n_name + j) == '-'
- && strcmp (mp->foldpath, np->n_name + j + 1) == 0) {
- cp = getcpy (np->n_name + alen);
- *(cp + j - alen) = NULL;
- if ((i = m_setatr (mp, cp, np->n_field)) != NOTOK)
- mp->attrstats |= 1 << (bits + i);/* private */
- free(cp);
- }
-}
-
-/* \f */
-
-static int
-m_setatr(mp, name, field)
- register struct msgs *mp;
- register char *name, *field;
-{
- register int bits, slot, first, last;
- register char *cp;
-
- if (strcmp (current, name) == 0) {
- mp->curmsg = atoi(field);
- return (0);
- }
-
- for (slot = 0; mp->msgattrs[slot]; slot++)
- if (strcmp(mp->msgattrs[slot], name) == 0)
- break;
-
- if (slot >= NATTRS)
- return NOTOK;
-
- if (mp->msgattrs[slot] == NULL) {
- mp->msgattrs[slot] = getcpy(name);
- mp->msgattrs[slot + 1] = NULL;
- }
-
- bits = 1 << (FFATTRSLOT + slot);
-
- for (cp = field; *cp; ) {
- while (isspace(*cp))
- ++cp;
- if (! isdigit(*cp))
- return (NOTOK);
- for (first = 0; isdigit(*cp); ++cp)
- first = (first * 10) + (*cp - '0');
- if (first == 0)
- return (NOTOK);
- if (*cp++ == '-') {
- /* have a range of msgs */
- for (last = 0; isdigit(*cp); ++cp)
- last = (last * 10) + (*cp - '0');
- if (last < first) {
- advise(NULLCP,
- "seq %s msg range bad: first (%d) > last (%d)",
- name, first, last);
- continue;
- }
- if (last < mp->lowmsg)
- continue;
- if (last > mp->hghmsg)
- last = mp->hghmsg;
- if (first < mp->lowmsg)
- first = mp->lowmsg;
- } else {
- if (first < mp->lowmsg)
- continue;
- last = first;
- }
- for ( ; first <= last; ++first)
- if (mp->msgstats[first] & EXISTS)
- mp->msgstats[first] |= bits;
- }
- return slot;
-}
+++ /dev/null
-/* m_seq.c - print out a message sequence */
-
-#include "../h/mh.h"
-#include <stdio.h>
-
-static char *buffer;
-static int bufsize = BUFSIZ;
-
-char *
-m_seq(mp, cp)
- struct msgs *mp;
- char *cp;
-{
- int mask;
- register int i, j, linlen;
- register char *bp, *ep;
-
- if (buffer == 0) {
- if ((buffer = malloc(bufsize)) == NULL)
- adios (NULLCP, "unable to allocate seq str storage");
- }
- if (strcmp(current, cp) == 0) {
- if (mp->curmsg) {
- (void) sprintf(buffer, "%s", m_name(mp->curmsg));
- return (buffer);
- } else
- return (NULL);
- }
- for (i = 0; mp->msgattrs[i]; i++)
- if (strcmp(mp->msgattrs[i], cp) == 0)
- break;
-
- if (! mp->msgattrs[i])
- return (NULL);
-
- mask = EXISTS | (1 << (FFATTRSLOT + i));
- bp = buffer;
- ep = bp + bufsize - 16;
- linlen = strlen(cp) + 2;
- for (i = mp->lowmsg; i <= mp->hghmsg; ++i) {
- register char *oldbp;
-
- if ((mp->msgstats[i] & mask) != mask)
- continue;
-
- oldbp = bp;
- if (bp > buffer) {
- if (bp >= ep) {
- int oldoff = bp - buffer;
- bufsize <<= 1;
- if ((buffer = realloc(buffer, bufsize)) == NULL)
- adios (NULLCP, "unable to allocate seq str storage");
- oldbp = bp = buffer + oldoff;
- ep = bp + bufsize - 16;
- }
- if (linlen >= 72) {
- linlen = 0;
- *bp++ = '\n';
- *bp++ = ' ';
- }
- *bp++ = ' ';
- }
- (void) sprintf(bp, "%s", m_name(i));
- bp += strlen(bp);
- j = i;
- for (++i; i <= mp->hghmsg && (mp->msgstats[i] & mask) == mask;
- ++i)
- ;
- if (i - j > 1) {
- (void) sprintf(bp, "-%s", m_name(i - 1));
- bp += strlen(bp);
- }
- linlen += bp - oldbp;
- }
- return (bp > buffer? buffer : NULL);
-}
+++ /dev/null
-/* m_gmsg.c - read a folder */
-
-#include "../h/mh.h"
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifndef BSD42
-#ifndef SYS5
-#include <ndir.h>
-#else SYS5
-#include <dir.h>
-#endif SYS5
-#else BSD42
-#include <sys/dir.h>
-#endif BSD42
-
-
-#define NINFO (MAXFOLDER / 5) /* PLEASE be non-trivial... */
-struct info {
- int msgno;
- int stats;
-};
-
-static int m_getatr(), m_setatr();
-
-static int len;
-static struct info *head;
-
-/* \f */
-
-struct msgs *
-m_gmsg(name)
- register char *name;
-{
-#ifdef COMPAT
- register int cur,
- fd;
-#endif COMPAT
- register int i,
- j;
- register struct info *rover,
- *tail;
-#ifdef COMPAT
- register char *cp;
- char buffer[BUFSIZ];
-#endif COMPAT
- register struct msgs *mp;
- register struct direct *dp;
- register DIR * dd;
- struct stat st;
-
- if ((dd = opendir (name = m_mailpath (name))) == NULL) {
- free (name);
- return NULL;
- }
- (void) fstat (dd -> dd_fd, &st);
-
- mp = (struct msgs *) malloc (MSIZE (mp, 0, 0));
- if (mp == NULL)
- adios (NULLCP, "unable to allocate folder storage");
- mp -> lowmsg = mp -> hghmsg = mp -> nummsg = 0;
- mp -> curmsg = 0;
- mp -> lowsel = mp -> hghsel = mp -> numsel = 0;
- mp -> foldpath = name;
- mp -> msgflags = NULL;
- if (st.st_uid != getuid () || access (name, 02) == NOTOK)
- mp -> msgflags |= READONLY;
-#ifdef COMPAT
- cur = 0;
-#endif COMPAT
- j = strlen (SBACKUP);
- if (head == NULL)
- if ((head = (struct info *)
- malloc ((unsigned) ((len = NINFO) * sizeof *head))) == NULL)
- adios (NULLCP, "unable to allocate info storage");
- tail = (rover = head) + len;
-
- while (dp = readdir (dd))
- if (i = m_atoi (dp -> d_name)) {
- if (rover >= tail) {
- register int curlen = tail - head;
-
- if ((tail = (struct info *) realloc ((char *) head,
- (unsigned) ((len += NINFO) * sizeof *head)))
- == NULL)
- adios (NULLCP, "unable to allocate info storage");
- else
- rover = tail + curlen, head = tail, tail += len;
- }
- if (i > mp -> hghmsg)
- mp -> hghmsg = i;
- mp -> nummsg++;
- if (mp -> lowmsg == 0 || i < mp -> lowmsg)
- mp -> lowmsg = i;
- rover -> msgno = i;
- rover -> stats = EXISTS;
-#ifdef notdef
- rover -> stats &= ~DELETED;
-#endif notdef
- rover++;
- }
- else
- switch (dp -> d_name[0]) {
- case '.':
- continue;
-
- case ',':
-#ifdef notdef
- if ((i = m_atoi (dp -> d_name + 1)) {
- register struct info *l;
-
- for (l = head; l < rover; l++)
- if (l -> msgno == i) {
- if (!(l -> stats & EXISTS))
- l -> stats |= DELETED;
- break;
- }
- }
-#endif notdef
- continue;
-
-#ifdef MHE
- case '+':
- continue;
-#endif MHE
-
-#ifdef UCI
- case '_':
- case '#':
- continue;
-#endif UCI
-
- default:
-#ifdef COMPAT
- if (strcmp (dp -> d_name, current) == 0) {
- cur++;
- continue;
- }
-#endif COMPAT
- if (strcmp (dp -> d_name, LINK) == 0
- || strncmp (dp -> d_name, SBACKUP, j) == 0)
- continue;
- mp -> msgflags |= OTHERS;
- continue;
- }
-
- closedir (dd);
-
-/* \f */
-
-#ifdef COMPAT
- (void) sprintf (buffer, "%s-%s", current, name);
- if (cp = m_find (buffer)) {
- i = m_atoi (cp);
- (void) m_delete(buffer);
- if (i > 0)
- mp -> curmsg = i;
- }
- if (mp -> curmsg == 0 && cur && (fd = open (current, 0)) != NOTOK) {
- if ((i = read (fd, buffer, sizeof buffer)) > 0) {
- if (cp = index (buffer, '\n'))
- *cp = NULL;
- if ((i = m_atoi (buffer)) > 0)
- mp -> curmsg = i;
- }
- (void) close (fd);
- }
- if (cur && !(mp -> msgflags & READONLY)){ /* sneaky... */
- (void) sprintf (buffer, "%s/%s", name, current);
- (void) unlink (buffer);
- }
-#endif COMPAT
-
-#ifndef MTR
- mp -> lowoff = 1;
-#else MTR
- mp -> lowoff = mp -> lowmsg;
-#endif MTR
- mp -> hghoff = mp -> hghmsg + 1;/* for "new" in m_convert */
-
- mp = (struct msgs *)
- realloc ((char *) mp, MSIZE (mp, mp -> lowoff, mp -> hghoff));
- if (mp == NULL)
- adios (NULLCP, "unable to allocate folder storage");
-#ifndef MTR
- for (i = mp -> lowmsg; i <= mp -> hghmsg; i++)
- mp -> msgstats[i] = 0;
-#else MTR
- mp -> msgstats = (int *)
- calloc ((unsigned) 1, MSIZEX (mp, mp -> lowmsg, mp -> hghmsg));
- if (mp -> msgstats == NULL)
- adios (NULLCP, "unable to allocate messages storage");
- mp -> msgstats = (mp -> msgbase = mp -> msgstats) - mp -> lowoff;
- if (mp -> msgstats < 0)
- adios (NULLCP, "m_gmsg() botch -- you lose big");
-#endif MTR
- for (tail = head; tail < rover; tail++)
- mp -> msgstats[tail -> msgno] = tail -> stats;
- m_getatr (mp);
-
- return mp;
-}
-
-/* \f */
-
-static int
-m_getatr(mp)
- register struct msgs *mp;
-{
- int alen,
- bits,
- i,
- j,
- plen,
- state;
- register char *cp;
- char name[NAMESZ],
- field[BUFSIZ];
- register struct node *np;
- register FILE * fp;
-
- bits = FFATTRSLOT;
-
- mp -> msgattrs[i = 0] = getcpy (current);
- mp -> msgattrs[++i] = NULL;
- mp -> attrstats = 0; /* initially, all public */
-
- m_getdefs ();
- if (mh_seq == NULL || *mh_seq == NULL)
- goto private_only;
-
- (void) sprintf (field, "%s/%s", mp -> foldpath, mh_seq);
- if (fp = fopen (field, "r")) {
- for (state = FLD;;) {
- switch (state = m_getfld (state, name, field, sizeof field, fp)) {
- case FLD:
- case FLDEOF:
- (void) m_setatr (mp, getcpy (name), trimcpy (field));
- if (state == FLDEOF)
- break;
- continue;
-
- case BODY:
- case BODYEOF:
- adios (NULLCP,
- "no blank lines are permitted in %s/%s",
- mp -> foldpath, mh_seq);/* fall */
-
- case FILEEOF:
- break;
-
- default:
- adios (NULLCP, "%s/%s is poorly formatted",
- mp -> foldpath, mh_seq);
- }
- break;
- }
- (void) fclose (fp);
- }
-
-private_only: ;
- alen = strlen ("atr-");
- plen = strlen (mp -> foldpath) + 1;
-
- for (np = m_defs; np; np = np -> n_next)
- if (ssequal ("atr-", np -> n_name)
- && (j = strlen (np -> n_name) - plen) > alen
- && *(np -> n_name + j) == '-'
- && strcmp (mp -> foldpath, np -> n_name + j + 1) == 0) {
- cp = getcpy (np -> n_name + alen);
- *(cp + j - alen) = NULL;
- if ((i = m_setatr (mp, cp, getcpy (np -> n_field))) != NOTOK)
- mp -> attrstats |= 1 << (bits + i);/* private */
- }
-}
-
-/* \f */
-
-static int
-m_setatr(mp, name, field)
- register struct msgs *mp;
- register char *name, *field;
-{
- int bits,
- hack;
- register int i,
- j,
- k;
- register char *cp,
- **ap;
-
- bits = FFATTRSLOT;
- hack = strcmp (current, name) == 0;/* hack... */
-
- for (i = 0; mp -> msgattrs[i]; i++)
- if (strcmp (mp -> msgattrs[i], name) == 0) {
- for (j = mp -> lowmsg; j <= mp -> hghmsg; j++)
- mp -> msgstats[j] &= ~(1 << (bits + i));
- break;
- }
- if (i >= NATTRS) {
- free (name);
- free (field);
- return NOTOK;
- }
-
- if (mp -> msgattrs[i] == NULL) {
- mp -> msgattrs[i] = name;
- mp -> msgattrs[i + 1] = NULL;
- }
- else
- free (name);
-
- for (ap = brkstring (field, " ", "\n");
- *ap;
- ap++) {
- if (cp = index (*ap, '-'))
- *cp++ = NULL;
- if ((j = m_atoi (*ap)) > 0) {
-#ifdef notdef
- if (hack && j >= mp -> lowmsg && j <= mp -> hghmsg
- && (mp -> msgstats[j] & EXISTS))
- mp -> curmsg = j;
-#else not notdef
- if (hack)
- mp -> curmsg = j;
-#endif not notdef
- for (k = cp ? m_atoi (cp) : j; j <= k; j++)
- if (j >= mp -> lowmsg && j <= mp -> hghmsg
- && (mp -> msgstats[j] & EXISTS))
- mp -> msgstats[j] |= 1 << (bits + i);
- }
- }
- free (field);
-
- return i;
-}
+++ /dev/null
-../uip/tags
\ No newline at end of file
+++ /dev/null
-/* trmsbr.c - minor termcap support (load with -ltermlib) */
-
-#include "../h/mh.h"
-#include <stdio.h>
-#ifndef SYS5
-#include <sgtty.h>
-#else SYS5
-#include <sys/types.h>
-#include <termio.h>
-#include <sys/ioctl.h>
-#endif SYS5
-#include <ctype.h>
-
-
-#if BUFSIZ<2048
-#define TXTSIZ 2048
-#else
-#define TXTSIZ BUFSIZ
-#endif
-
-char PC;
-short ospeed;
-
-int tgetent (), tgetnum ();
-char *tgetstr ();
-
-/* \f */
-
-static int TCinited = 0;
-static int TCavailable = 0;
-static int initLI = 0;
-static int LI = 24;
-static int initCO = 0;
-static int CO = 80;
-static char *CL = NULL;
-static char *SE = NULL;
-static char *SO = NULL;
-
-static char termcap[TXTSIZ];
-static char area[TXTSIZ];
-
-/* \f */
-
-static void
-read_termcap()
-{
- register char *bp,
- *term;
- register int i;
- char *cp;
-#ifndef SYS5
- struct sgttyb sg;
-#else SYS5
- struct termio sg;
-#endif SYS5
-
- if (TCinited)
- return;
-
- ++TCinited;
-
- if (!isatty(fileno(stdout)))
- return;
-
- if ((term = getenv ("TERM")) == NULL || tgetent (termcap, term) <= OK)
- return;
-
- ++TCavailable;
-
-#ifndef SYS5
- ospeed = ioctl(fileno (stdout), TIOCGETP, (char *) &sg) != NOTOK
- ? sg.sg_ospeed : 0;
-#else SYS5
- ospeed = ioctl(fileno (stdout), TCGETA, &sg) != NOTOK
- ? sg.c_cflag & CBAUD : 0;
-#endif SYS5
-
- if (!initCO && (i = tgetnum ("co")) > 0)
- CO = i;
- if (!initLI && (i = tgetnum ("li")) > 0)
- LI = i;
-
- cp = area;
- CL = tgetstr ("cl", &cp);
- if (bp = tgetstr ("pc", &cp))
- PC = *bp;
- if (tgetnum ("sg") <= 0) {
- SE = tgetstr ("se", &cp);
- SO = tgetstr ("so", &cp);
- }
-}
-
-/* \f */
-
-int
-sc_width()
-{
-#ifdef TIOCGWINSZ
- struct winsize win;
-
- if (ioctl(fileno (stderr), TIOCGWINSZ, &win) != NOTOK && win.ws_col > 0) {
- CO = win.ws_col;
- initCO++;
- } else
-#endif TIOCGWINSZ
- read_termcap();
-
- return CO;
-}
-
-
-int
-sc_length()
-{
-#ifdef TIOCGWINSZ
- struct winsize win;
-
- if (ioctl(fileno (stderr), TIOCGWINSZ, &win) != NOTOK && win.ws_row > 0) {
- LI = win.ws_row;
- initLI++;
- } else
-#endif TIOCGWINSZ
- read_termcap();
-
- return LI;
-}
-
-/* \f */
-
-static int
-outc(c)
-register char c;
-{
- (void) putchar (c);
-}
-
-
-void
-clear_screen()
-{
- read_termcap();
-
- if (CL && ospeed)
- tputs (CL, LI, outc);
- else {
- printf ("\f");
- if (ospeed)
- printf ("\200");
- }
-
- (void) fflush (stdout);
-}
-
-/* \f */
-
-/* VARARGS1 */
-
-SOprintf(fmt, a, b, c, d, e, f)
-char *fmt,
- *a,
- *b,
- *c,
- *d,
- *e,
- *f;
-{
- read_termcap();
- if (SO == NULL || SE == NULL)
- return NOTOK;
-
- tputs (SO, 1, outc);
- printf (fmt, a, b, c, d, e, f);
- tputs (SE, 1, outc);
-
- return OK;
-}
-
-#define MAXTCENT 32
-static int nTCent;
-static char *TCid[MAXTCENT];
-static char *TCent[MAXTCENT];
-
-char *
-get_termcap(id)
- char *id;
-{
- register int i;
- char *cp;
- static char tcbuf[1024];
- static char *tcptr = tcbuf;
-
- for (i = 0; i < nTCent; ++i)
- if (strcmp(TCid[i], id) == 0)
- return (TCent[i]);
-
- if (nTCent >= MAXTCENT)
- return ("");
-
- TCid[nTCent] = getcpy(id);
-
- if (TCinited == 0)
- read_termcap();
-
- if (!TCavailable)
- return ("");
-
- cp = tgetstr(id, &tcptr);
- if (cp == 0) {
- /* check for some alternates for the entry */
- if (strcmp(id, "mb") == 0 ||
- strcmp(id, "md") == 0 ||
- strcmp(id, "mh") == 0 ||
- strcmp(id, "mr") == 0 ||
- strcmp(id, "us") == 0)
- id = "so";
- else if (strcmp(id, "me") == 0 ||
- strcmp(id, "ue") == 0)
- id = "se";
- cp = tgetstr(id, &tcptr);
- if (cp == 0)
- cp = "";
- }
-
- /* skip leading delay spec */
- while (isdigit(*cp))
- ++cp;
- if (*cp == '.')
- if (isdigit(*++cp))
- ++cp;
- if (*cp == '*')
- ++cp;
-
- TCent[nTCent] = cp;
- ++nTCent;
- return (cp);
-}
+++ /dev/null
-../sbr/m_getfld.c
\ No newline at end of file
+++ /dev/null
-char *version = "LBL MH 6.5.1 (ace.ee.lbl.gov) of Wed Sep 18 13:06:31 PDT 1991";
+++ /dev/null
-tws/tws.h
\ No newline at end of file
+++ /dev/null
-/* A lexical scanner generated by flex */
-
-/* scanner skeleton version:
- * $Header: flex.skel,v 1.2 90/06/27 22:56:49 leres Exp $
- */
-
-#define FLEX_SCANNER
-
-#include <stdio.h>
-
-#ifdef __STDC__
-
-#ifndef DONT_HAVE_STDLIB_H
-#include <stdlib.h>
-#else
-void *malloc( unsigned );
-void free( void* );
-#endif
-
-#define YY_USE_PROTOS
-#define YY_USE_CONST
-#endif
-
-
-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
-#ifdef c_plusplus
-#ifndef __cplusplus
-#define __cplusplus
-#endif
-#endif
-
-
-#ifdef __cplusplus
-
-#ifndef __STDC__
-#include <stdlib.h>
-#endif
-
-#include <osfcn.h>
-
-/* use prototypes in function declarations */
-#define YY_USE_PROTOS
-
-/* the "const" storage-class-modifier is valid */
-#define YY_USE_CONST
-
-#endif
-
-
-#ifdef __TURBOC__
-#define YY_USE_CONST
-#endif
-
-
-#ifndef YY_USE_CONST
-#define const
-#endif
-
-
-#ifdef YY_USE_PROTOS
-#define YY_PROTO(proto) proto
-#else
-#define YY_PROTO(proto) ()
-/* there's no standard place to get these definitions */
-char *malloc();
-int free();
-int read();
-#endif
-
-
-/* amount of stuff to slurp up with each read */
-#ifndef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 8192
-#endif
-
-/* returned upon end-of-file */
-#define YY_END_TOK 0
-
-/* copy whatever the last rule matched to the standard output */
-
-/* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
-/* this used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite()
- */
-#define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
-
-/* gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
-#define YY_INPUT(buf,result,max_size) \
- if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
- YY_FATAL_ERROR( "read() in flex scanner failed" );
-#define YY_NULL 0
-
-/* no semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
-#define yyterminate() return ( YY_NULL )
-
-/* report a fatal error */
-
-/* The funky do-while is used to turn this macro definition into
- * a single C statement (which needs a semi-colon terminator).
- * This avoids problems with code like:
- *
- * if ( something_happens )
- * YY_FATAL_ERROR( "oops, the something happened" );
- * else
- * everything_okay();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the YY_FATAL_ERROR() call.
- */
-
-#define YY_FATAL_ERROR(msg) \
- do \
- { \
- (void) fputs( msg, stderr ); \
- (void) putc( '\n', stderr ); \
- exit( 1 ); \
- } \
- while ( 0 )
-
-/* default yywrap function - always treat EOF as an EOF */
-#define yywrap() 1
-
-/* enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN
- */
-#define BEGIN yy_start = 1 + 2 *
-
-/* action number for EOF rule of a given start state */
-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
-/* special action meaning "start processing a new file" */
-#define YY_NEW_FILE \
- do \
- { \
- yy_init_buffer( yy_current_buffer, yyin ); \
- yy_load_buffer_state(); \
- } \
- while ( 0 )
-
-/* default declaration of generated scanner - a define so the user can
- * easily add parameters
- */
-#define YY_DECL int yylex YY_PROTO(( void ))
-
-/* code executed at the end of each rule */
-#define YY_BREAK break;
-
-#define YY_END_OF_BUFFER_CHAR 0
-
-#ifndef YY_BUF_SIZE
-#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
-#endif
-
-typedef struct yy_buffer_state *YY_BUFFER_STATE;
-
-#define YY_CHAR char
-#define INITIAL 0
-#ifndef lint
-static char rcsid[] =
-#ifdef FLEX_SCANNER
- "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Locked $ (LBL) (flex generated scanner)";
-#else
- "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Locked $ (LBL) (lex generated scanner)";
-#endif
-#endif
-/*
-%e 2000
-%p 5000
-%n 1000
-%a 4000
- */
-#define Z 1
-#include "tws.h"
-#include <ctype.h>
-
-/*
- * Patchable flag that says how to interpret NN/NN/NN dates. When
- * true, we do it European style: DD/MM/YY. When false, we do it
- * American style: MM/DD/YY.
- */
-int europeandate = 0;
-
-/*
- * Table to convert month names to numeric month. We use the
- * fact that the low order 5 bits of the sum of the 2nd & 3rd
- * characters of the name is a hash with no collisions for the 12
- * valid month names. (The mask to 5 bits maps any combination of
- * upper and lower case into the same hash value).
- */
-static int month_map[] = {
- 0,
- 6, /* 1 - Jul */
- 3, /* 2 - Apr */
- 5, /* 3 - Jun */
- 0,
- 10, /* 5 - Nov */
- 0,
- 1, /* 7 - Feb */
- 11, /* 8 - Dec */
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, /*15 - Jan */
- 0,
- 0,
- 0,
- 2, /*19 - Mar */
- 0,
- 8, /*21 - Sep */
- 0,
- 9, /*23 - Oct */
- 0,
- 0,
- 4, /*26 - May */
- 0,
- 7 /*28 - Aug */
-};
-/*
- * Same trick for day-of-week using the hash function
- * (c1 & 7) + (c2 & 4)
- */
-static int day_map[] = {
- 0,
- 0,
- 0,
- 6, /* 3 - Sat */
- 4, /* 4 - Thu */
- 0,
- 5, /* 6 - Fri */
- 0, /* 7 - Sun */
- 2, /* 8 - Tue */
- 1 /* 9 - Mon */,
- 0,
- 3 /*11 - Wed */
-};
-#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
- tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
- cp += 2; }
-#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
- cp += 2;\
- SKIPD;}
-#define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i)
-#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
-#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
-#define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
-#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
-#define LC(c) (isupper(c) ? tolower(c) : (c))
-
-#ifdef FLEX_SCANNER
-/* We get passed a string and return a pointer to a static tws struct */
-#undef YY_DECL
-#define YY_DECL struct tws *dparsetime(str) char *str;
-
-/* We assume that we're never passed more than max_size characters */
-#undef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if (gstr) { \
- register char *xp; \
- xp = gstr; \
- while (isspace(*xp)) \
- xp++; \
- gstr = xp; \
- while (*xp != '\0') \
- ++xp; \
- result = xp - gstr; \
- bcopy(gstr, buf, result); \
- gstr = 0; \
- } else \
- result = YY_NULL;
-
-/* Date strings aren't usually very long */
-#undef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 128
-
-/* Use mh error reporting routine */
-#undef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(s) adios("dparsetime()", s);
-
-/* We need a pointer to the matched text we can modify */
-#undef YY_USER_ACTION
-#define YY_USER_ACTION cp = yytext
-
-/* Used to initialize */
-static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-/* Global for use by YY_INPUT() macro */
-static char *gstr;
-#endif
-
-
-/* done after the current pattern has been matched and before the
- * corresponding action - sets up yytext
- */
-#define YY_DO_BEFORE_ACTION \
- yytext = yy_bp; \
- yyleng = yy_cp - yy_bp; \
- yy_hold_char = *yy_cp; \
- *yy_cp = '\0'; \
- yy_c_buf_p = yy_cp;
-
-#define EOB_ACT_CONTINUE_SCAN 0
-#define EOB_ACT_END_OF_FILE 1
-#define EOB_ACT_LAST_MATCH 2
-
-/* return all but the first 'n' matched characters back to the input stream */
-#define yyless(n) \
- do \
- { \
- /* undo effects of setting up yytext */ \
- *yy_cp = yy_hold_char; \
- yy_c_buf_p = yy_cp = yy_bp + n; \
- YY_DO_BEFORE_ACTION; /* set up yytext again */ \
- } \
- while ( 0 )
-
-#define unput(c) yyunput( c, yytext )
-
-
-struct yy_buffer_state
- {
- FILE *yy_input_file;
-
- YY_CHAR *yy_ch_buf; /* input buffer */
- YY_CHAR *yy_buf_pos; /* current position in input buffer */
-
- /* size of input buffer in bytes, not including room for EOB characters*/
- int yy_buf_size;
-
- /* number of characters read into yy_ch_buf, not including EOB characters */
- int yy_n_chars;
-
- int yy_eof_status; /* whether we've seen an EOF on this buffer */
-#define EOF_NOT_SEEN 0
- /* "pending" happens when the EOF has been seen but there's still
- * some text process
- */
-#define EOF_PENDING 1
-#define EOF_DONE 2
- };
-
-static YY_BUFFER_STATE yy_current_buffer;
-
-/* we provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state"
- */
-#define YY_CURRENT_BUFFER yy_current_buffer
-
-
-/* yy_hold_char holds the character lost when yytext is formed */
-static YY_CHAR yy_hold_char;
-
-static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
-
-#ifndef YY_USER_ACTION
-#define YY_USER_ACTION
-#endif
-
-#ifndef YY_USER_INIT
-#define YY_USER_INIT
-#endif
-
-extern YY_CHAR *yytext;
-extern int yyleng;
-extern FILE *yyin, *yyout;
-
-YY_CHAR *yytext;
-int yyleng;
-
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-
-#define YY_END_OF_BUFFER 44
-typedef int yy_state_type;
-static const short int yy_accept[390] =
- { 0,
- 0, 0, 0, 0, 44, 42, 40, 39, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 34, 34, 34, 34, 34, 34,
- 34, 34, 34, 42, 35, 35, 36, 36, 36, 36,
- 36, 36, 36, 36, 36, 40, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
- 0, 0, 1, 0, 1, 1, 1, 1, 0, 0,
- 28, 27, 33, 21, 20, 19, 18, 15, 32, 31,
- 17, 16, 23, 22, 26, 25, 24, 30, 29, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 13, 8,
- 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-
- 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
- 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 7, 9, 10, 0, 0, 4, 4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 6, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 37, 38,
- 2, 0, 0, 0, 0, 0, 0, 0, 3, 3,
- 11, 7, 7, 9, 10, 0, 4, 4, 4, 0,
-
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 0, 6, 0, 0, 0, 1, 0, 1, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 3, 11, 4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 0, 4,
- 0, 0, 0, 0, 0, 5, 5, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 5, 5, 5, 0, 1, 0, 0, 0
- } ;
-
-static const YY_CHAR yy_ec[128] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 1, 1, 1, 1, 1, 1, 4,
- 5, 1, 6, 7, 8, 1, 9, 10, 11, 12,
- 13, 13, 13, 14, 14, 14, 15, 16, 1, 1,
- 1, 1, 1, 1, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 33, 40, 1,
- 1, 1, 1, 1, 1, 1, 17, 18, 19, 20,
-
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 33,
- 40, 1, 1, 1, 1, 1, 1
- } ;
-
-static const YY_CHAR yy_meta[41] =
- { 0,
- 1, 2, 1, 1, 1, 1, 3, 1, 4, 5,
- 5, 5, 5, 5, 5, 6, 7, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 6, 1, 1, 1, 1, 1, 1, 1, 1
- } ;
-
-static const short int yy_base[413] =
- { 0,
- 0, 0, 40, 0, 637, 638, 634, 638, 59, 97,
- 620, 72, 59, 613, 68, 83, 73, 602, 613, 101,
- 79, 610, 82, 129, 125, 595, 95, 608, 101, 103,
- 599, 109, 638, 114, 638, 147, 66, 608, 121, 638,
- 151, 139, 590, 604, 145, 622, 589, 591, 137, 146,
- 600, 187, 169, 0, 186, 0, 147, 599, 598, 156,
- 601, 586, 597, 594, 128, 176, 580, 590, 593, 593,
- 585, 579, 105, 141, 578, 569, 570, 569, 572, 573,
- 565, 580, 580, 0, 0, 167, 564, 170, 171, 569,
- 188, 190, 191, 562, 192, 560, 194, 559, 558, 557,
-
- 556, 555, 554, 553, 552, 551, 550, 549, 548, 547,
- 546, 545, 544, 543, 638, 542, 541, 551, 545, 538,
- 543, 535, 550, 550, 0, 560, 0, 217, 534, 544,
- 547, 547, 534, 200, 181, 525, 526, 529, 0, 218,
- 201, 229, 222, 233, 230, 234, 237, 235, 558, 239,
- 240, 242, 245, 243, 255, 253, 261, 262, 0, 0,
- 638, 638, 638, 638, 638, 638, 638, 638, 638, 638,
- 638, 638, 638, 638, 638, 638, 638, 638, 638, 246,
- 260, 265, 266, 243, 271, 267, 548, 549, 555, 276,
- 282, 0, 527, 526, 313, 258, 260, 266, 517, 264,
-
- 532, 269, 531, 530, 282, 273, 548, 547, 520, 512,
- 517, 508, 542, 541, 525, 524, 538, 537, 514, 520,
- 507, 517, 500, 512, 515, 496, 510, 508, 0, 0,
- 521, 510, 509, 491, 507, 488, 502, 500, 0, 505,
- 517, 0, 516, 515, 514, 494, 308, 305, 328, 486,
- 478, 483, 474, 493, 488, 487, 483, 477, 487, 483,
- 501, 329, 500, 465, 482, 482, 458, 463, 494, 455,
- 476, 472, 472, 462, 450, 469, 471, 452, 638, 638,
- 638, 446, 445, 464, 443, 462, 464, 445, 477, 476,
- 475, 474, 473, 472, 471, 0, 330, 470, 332, 435,
-
- 339, 449, 433, 450, 450, 432, 444, 446, 442, 433,
- 459, 458, 346, 457, 437, 423, 350, 416, 352, 434,
- 420, 436, 434, 353, 434, 410, 429, 443, 442, 429,
- 440, 427, 403, 422, 439, 438, 437, 436, 416, 415,
- 401, 394, 412, 398, 413, 309, 396, 389, 394, 425,
- 386, 404, 384, 356, 406, 382, 381, 415, 402, 416,
- 383, 376, 381, 393, 392, 410, 303, 409, 408, 407,
- 359, 374, 360, 366, 400, 397, 361, 377, 373, 371,
- 354, 385, 382, 381, 378, 362, 374, 353, 638, 368,
- 363, 360, 346, 366, 339, 370, 337, 335, 328, 314,
-
- 376, 312, 380, 284, 189, 181, 120, 384, 388, 394,
- 398, 402
- } ;
-
-static const short int yy_def[413] =
- { 0,
- 389, 1, 389, 3, 389, 389, 389, 389, 389, 389,
- 10, 10, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 52, 390, 10, 391, 389, 389, 389, 389,
- 389, 389, 389, 389, 55, 52, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 392, 393, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
-
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 53, 394, 395, 396, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 397, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 398, 399,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 400, 389, 401, 389,
- 389, 402, 389, 389, 389, 195, 195, 195, 196, 196,
-
- 197, 197, 197, 197, 197, 197, 401, 403, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 404, 405,
- 389, 389, 389, 389, 389, 389, 389, 389, 406, 406,
- 389, 407, 408, 389, 389, 197, 197, 409, 409, 389,
- 389, 389, 389, 389, 197, 197, 389, 389, 389, 389,
- 389, 410, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 400,
- 389, 389, 389, 389, 389, 247, 389, 389, 389, 389,
-
- 247, 197, 389, 389, 389, 389, 197, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 197, 389,
- 389, 389, 389, 389, 389, 411, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 197, 389, 412, 412, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 197, 197, 197,
- 389, 389, 389, 411, 389, 389, 389, 197, 0, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
-
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389
- } ;
-
-static const short int yy_nxt[679] =
- { 0,
- 6, 7, 8, 9, 6, 6, 6, 6, 6, 10,
- 11, 10, 12, 12, 12, 6, 13, 6, 6, 14,
- 6, 15, 6, 6, 6, 16, 6, 6, 17, 18,
- 19, 6, 6, 6, 20, 21, 6, 6, 22, 6,
- 6, 7, 8, 9, 6, 23, 6, 24, 6, 10,
- 11, 10, 12, 12, 12, 6, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 35, 36, 37,
- 38, 39, 40, 40, 41, 42, 43, 40, 44, 45,
- 47, 66, 66, 66, 66, 66, 66, 48, 70, 74,
- 67, 84, 84, 49, 50, 68, 76, 51, 52, 72,
-
- 112, 71, 81, 75, 53, 54, 55, 55, 55, 55,
- 55, 55, 56, 57, 101, 82, 58, 78, 59, 73,
- 103, 79, 60, 70, 291, 61, 62, 63, 106, 102,
- 72, 64, 146, 108, 147, 104, 71, 80, 85, 85,
- 113, 139, 139, 107, 98, 86, 87, 88, 109, 89,
- 73, 90, 91, 120, 92, 114, 67, 93, 94, 99,
- 95, 68, 81, 74, 116, 96, 110, 78, 97, 122,
- 125, 79, 133, 121, 148, 82, 389, 75, 129, 117,
- 149, 111, 123, 130, 54, 289, 98, 80, 52, 101,
- 103, 56, 134, 280, 53, 127, 127, 127, 127, 127,
-
- 127, 99, 208, 57, 102, 104, 58, 106, 59, 108,
- 110, 113, 60, 116, 202, 61, 62, 63, 190, 208,
- 203, 64, 107, 208, 109, 111, 114, 200, 117, 201,
- 208, 208, 192, 193, 213, 208, 208, 210, 208, 214,
- 213, 208, 209, 208, 208, 214, 213, 231, 194, 211,
- 231, 214, 215, 219, 213, 212, 213, 218, 220, 214,
- 221, 214, 213, 213, 231, 232, 216, 214, 214, 231,
- 231, 231, 222, 217, 225, 231, 236, 190, 224, 233,
- 252, 223, 389, 190, 389, 235, 226, 257, 279, 389,
- 389, 228, 193, 389, 251, 227, 238, 192, 193, 253,
-
- 389, 234, 389, 255, 382, 237, 297, 194, 260, 296,
- 346, 298, 259, 194, 246, 389, 243, 384, 239, 367,
- 247, 300, 248, 249, 248, 248, 248, 248, 389, 297,
- 311, 297, 230, 297, 298, 312, 298, 250, 298, 229,
- 297, 207, 301, 189, 300, 298, 300, 311, 300, 248,
- 160, 213, 312, 213, 213, 300, 214, 213, 214, 214,
- 213, 213, 214, 213, 159, 214, 214, 128, 214, 188,
- 188, 191, 126, 389, 191, 191, 191, 242, 231, 208,
- 242, 262, 382, 382, 262, 293, 382, 388, 293, 299,
- 299, 389, 299, 389, 299, 313, 313, 389, 313, 366,
-
- 387, 231, 366, 383, 231, 386, 383, 385, 208, 208,
- 208, 382, 381, 389, 380, 379, 378, 360, 377, 231,
- 376, 375, 374, 373, 372, 371, 208, 370, 369, 368,
- 365, 364, 363, 203, 362, 361, 389, 360, 337, 336,
- 335, 359, 358, 357, 231, 356, 231, 231, 355, 354,
- 353, 352, 351, 350, 349, 149, 348, 347, 208, 346,
- 311, 345, 344, 343, 389, 342, 341, 340, 339, 389,
- 338, 337, 295, 294, 292, 292, 336, 335, 335, 334,
- 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
- 323, 322, 321, 320, 319, 208, 318, 317, 316, 315,
-
- 314, 208, 261, 310, 309, 308, 307, 389, 389, 306,
- 305, 304, 303, 302, 389, 295, 294, 292, 241, 290,
- 288, 287, 286, 285, 284, 283, 282, 281, 278, 277,
- 276, 275, 274, 273, 272, 271, 270, 269, 208, 208,
- 268, 267, 213, 213, 266, 265, 264, 263, 208, 261,
- 258, 389, 256, 254, 245, 244, 241, 187, 240, 208,
- 206, 205, 204, 199, 198, 197, 196, 195, 187, 186,
- 185, 184, 183, 182, 181, 180, 179, 178, 177, 176,
- 175, 174, 173, 172, 171, 170, 169, 168, 167, 166,
- 165, 164, 163, 162, 161, 115, 112, 105, 100, 158,
-
- 157, 156, 155, 154, 153, 152, 151, 150, 145, 144,
- 143, 142, 141, 140, 138, 137, 136, 135, 132, 131,
- 124, 119, 118, 46, 83, 115, 77, 105, 69, 100,
- 83, 77, 76, 69, 65, 46, 389, 5, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389
- } ;
-
-static const short int yy_chk[679] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 9, 12, 12, 12, 12, 12, 12, 9, 15, 17,
- 13, 23, 23, 9, 9, 13, 37, 9, 10, 16,
-
- 37, 15, 21, 17, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 27, 21, 10, 20, 10, 16,
- 29, 20, 10, 30, 407, 10, 10, 10, 32, 27,
- 34, 10, 73, 34, 73, 29, 30, 20, 24, 24,
- 39, 65, 65, 32, 25, 24, 24, 24, 34, 24,
- 34, 24, 24, 49, 24, 39, 25, 24, 24, 25,
- 24, 25, 42, 36, 45, 24, 36, 41, 24, 50,
- 53, 41, 60, 49, 74, 42, 53, 36, 57, 45,
- 74, 36, 50, 57, 66, 406, 86, 41, 52, 88,
- 89, 66, 60, 405, 52, 55, 55, 55, 55, 55,
-
- 55, 86, 141, 52, 88, 89, 52, 91, 52, 92,
- 93, 95, 52, 97, 135, 52, 52, 52, 128, 140,
- 135, 52, 91, 143, 92, 93, 95, 134, 97, 134,
- 142, 145, 128, 128, 144, 146, 148, 141, 147, 144,
- 150, 151, 140, 152, 154, 150, 153, 184, 128, 142,
- 180, 153, 144, 148, 156, 143, 155, 147, 150, 156,
- 151, 155, 157, 158, 181, 180, 145, 157, 158, 182,
- 183, 186, 152, 146, 155, 185, 184, 190, 154, 181,
- 197, 153, 196, 191, 197, 183, 156, 202, 404, 202,
- 198, 158, 190, 206, 196, 157, 186, 191, 191, 198,
-
- 200, 182, 205, 200, 367, 185, 248, 190, 206, 247,
- 346, 248, 205, 191, 195, 247, 402, 367, 400, 346,
- 195, 248, 195, 195, 195, 195, 195, 195, 247, 249,
- 262, 297, 399, 299, 249, 262, 297, 195, 299, 398,
- 301, 397, 249, 395, 249, 301, 297, 313, 299, 301,
- 393, 317, 313, 319, 324, 301, 317, 354, 319, 324,
- 371, 373, 354, 386, 392, 371, 373, 391, 386, 394,
- 394, 396, 390, 388, 396, 396, 396, 401, 387, 385,
- 401, 403, 384, 383, 403, 408, 382, 381, 408, 409,
- 409, 380, 409, 379, 409, 410, 410, 378, 410, 411,
-
- 377, 376, 411, 412, 375, 374, 412, 372, 370, 369,
- 368, 366, 365, 364, 363, 362, 361, 360, 359, 358,
- 357, 356, 355, 353, 352, 351, 350, 349, 348, 347,
- 345, 344, 343, 342, 341, 340, 339, 338, 337, 336,
- 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
- 325, 323, 322, 321, 320, 318, 316, 315, 314, 312,
- 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
- 300, 298, 295, 294, 293, 292, 291, 290, 289, 288,
- 287, 286, 285, 284, 283, 282, 278, 277, 276, 275,
- 274, 273, 272, 271, 270, 269, 268, 267, 266, 265,
-
- 264, 263, 261, 260, 259, 258, 257, 256, 255, 254,
- 253, 252, 251, 250, 246, 245, 244, 243, 241, 240,
- 238, 237, 236, 235, 234, 233, 232, 231, 228, 227,
- 226, 225, 224, 223, 222, 221, 220, 219, 218, 217,
- 216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
- 204, 203, 201, 199, 194, 193, 189, 188, 187, 149,
- 138, 137, 136, 133, 132, 131, 130, 129, 126, 124,
- 123, 122, 121, 120, 119, 118, 117, 116, 114, 113,
- 112, 111, 110, 109, 108, 107, 106, 105, 104, 103,
- 102, 101, 100, 99, 98, 96, 94, 90, 87, 83,
-
- 82, 81, 80, 79, 78, 77, 76, 75, 72, 71,
- 70, 69, 68, 67, 64, 63, 62, 61, 59, 58,
- 51, 48, 47, 46, 44, 43, 38, 31, 28, 26,
- 22, 19, 18, 14, 11, 7, 5, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389
- } ;
-
-static yy_state_type yy_last_accepting_state;
-static YY_CHAR *yy_last_accepting_cpos;
-
-/* the intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
-
-/* these variables are all declared out here so that section 3 code can
- * manipulate them
- */
-/* points to current character in buffer */
-static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
-static int yy_init = 1; /* whether we need to initialize */
-static int yy_start = 0; /* start state number */
-
-/* flag which is used to allow yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
-static int yy_did_buffer_switch_on_eof;
-
-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
-static int yy_get_next_buffer YY_PROTO(( void ));
-static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
-void yyrestart YY_PROTO(( FILE *input_file ));
-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
-void yy_load_buffer_state YY_PROTO(( void ));
-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
-
-#define yy_new_buffer yy_create_buffer
-
-#ifdef __cplusplus
-static int yyinput YY_PROTO(( void ));
-#else
-static int input YY_PROTO(( void ));
-#endif
-
-YY_DECL
- {
- register yy_state_type yy_current_state;
- register YY_CHAR *yy_cp, *yy_bp;
- register int yy_act;
-
-
- register int i, gotdate;
- register char *cp;
- static struct tws tw;
- static void zonehack();
-
- BEGIN(INITIAL);
- yy_init = 1;
- tw = ztw;
- gstr = str;
- gotdate = 0;
-
-
- if ( yy_init )
- {
- YY_USER_INIT;
-
- if ( ! yy_start )
- yy_start = 1; /* first start state */
-
- if ( ! yyin )
- yyin = stdin;
-
- if ( ! yyout )
- yyout = stdout;
-
- if ( yy_current_buffer )
- yy_init_buffer( yy_current_buffer, yyin );
- else
- yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
-
- yy_load_buffer_state();
-
- yy_init = 0;
- }
-
- while ( 1 ) /* loops until end-of-file is reached */
- {
- yy_cp = yy_c_buf_p;
-
- /* support of yytext */
- *yy_cp = yy_hold_char;
-
- /* yy_bp points to the position in yy_ch_buf of the start of the
- * current run.
- */
- yy_bp = yy_cp;
-
- yy_current_state = yy_start;
-yy_match:
- do
- {
- register YY_CHAR yy_c = yy_ec[*yy_cp];
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = yy_def[yy_current_state];
- if ( yy_current_state >= 390 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_current_state != 389 );
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
-
-yy_find_action:
- yy_act = yy_accept[yy_current_state];
-
- YY_DO_BEFORE_ACTION;
- YY_USER_ACTION;
-
-do_action: /* this label is used only to access EOF actions */
-
-
- switch ( yy_act )
- {
- case 0: /* must backtrack */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
-
-case 1:
-SETDAY;
- YY_BREAK
-case 2:
-{
- cp++;
- SETDAY;
- }
- YY_BREAK
-case 3:
-{
- if (europeandate) {
- /* European: DD/MM/YY */
- tw.tw_mday = CVT2;
- cp++;
- tw.tw_mon = CVT2 - 1;
- } else {
- /* American: MM/DD/YY */
- tw.tw_mon = CVT2 - 1;
- cp++;
- tw.tw_mday = CVT2;
- }
- cp++;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- gotdate++;
- }
- YY_BREAK
-case 4:
-{
- tw.tw_mday = CVT2;
- while (!isalpha(*cp++))
- ;
- SETMONTH;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- }
- YY_BREAK
-case 5:
-{
- cp++;
- SETMONTH;
- tw.tw_mday = CVT2;
- SKIPD;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- }
- YY_BREAK
-case 6:
-{
- cp++;
- SETMONTH;
- tw.tw_mday = CVT2;
- }
- YY_BREAK
-case 7:
-{
- tw.tw_hour = CVT2; cp++;
- tw.tw_min = CVT2; cp++;
- tw.tw_sec = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 8:
-{
- tw.tw_hour = CVT2; cp++;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 9:
-{
- tw.tw_hour = CVT2; cp++;
- if (tw.tw_hour == 12)
- tw.tw_hour = 0;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 10:
-{
- tw.tw_hour = CVT2; cp++;
- if (tw.tw_hour != 12)
- tw.tw_hour += 12;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 11:
-{
- tw.tw_hour = CVT2;
- tw.tw_min = CVT2;
- tw.tw_sec = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 12:
-{
- /*
- * Luckly, 4 digit times in the range
- * 1960-1999 aren't legal as hour
- * and minutes. This rule must come
- * the 4 digit hour and minute rule.
- */
- cp += 2;
- tw.tw_year = CVT2;
- }
- YY_BREAK
-case 13:
-{
- tw.tw_hour = CVT2;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
- YY_BREAK
-case 14:
-ZONE(0 * 60);
- YY_BREAK
-case 15:
-ZONE(0 * 60);
- YY_BREAK
-case 16:
-ZONE(2 * 60);
- YY_BREAK
-case 17:
-ZONED(2 * 60);
- YY_BREAK
-case 18:
-ZONE(-5 * 60);
- YY_BREAK
-case 19:
-ZONED(-5 * 60);
- YY_BREAK
-case 20:
-ZONE(-6 * 60);
- YY_BREAK
-case 21:
-ZONED(-6 * 60);
- YY_BREAK
-case 22:
-ZONE(-7 * 60);
- YY_BREAK
-case 23:
-ZONED(-7 * 60);
- YY_BREAK
-case 24:
-ZONE(-8 * 60);
- YY_BREAK
-case 25:
-ZONED(-8 * 60);
- YY_BREAK
-case 26:
-ZONE(-(3 * 60 + 30));
- YY_BREAK
-case 27:
-ZONE(-4 * 60);
- YY_BREAK
-case 28:
-ZONED(-4 * 60);
- YY_BREAK
-case 29:
-ZONE(-9 * 60);
- YY_BREAK
-case 30:
-ZONED(-9 * 60);
- YY_BREAK
-case 31:
-ZONE(-10 * 60);
- YY_BREAK
-case 32:
-ZONED(-10 * 60);
- YY_BREAK
-case 33:
-ZONED(-1 * 60);
- YY_BREAK
-case 34:
-{
- tw.tw_zone = 60 * (('a'-1) - LC(*cp));
- EXPZONE;
- }
- YY_BREAK
-case 35:
-{
- tw.tw_zone = 60 * ('a' - LC(*cp));
- EXPZONE;
- }
- YY_BREAK
-case 36:
-{
- tw.tw_zone = 60 * (LC(*cp) - 'm');
- EXPZONE;
- }
- YY_BREAK
-case 37:
-{
- cp++;
- tw.tw_zone = ((cp[0] * 10 + cp[1])
- -('0' * 10 + '0'))*60
- +((cp[2] * 10 + cp[3])
- -('0' * 10 + '0'));
-#ifdef DSTXXX
- zonehack (&tw);
-#endif DSTXXX
- cp += 4;
- EXPZONE;
- }
- YY_BREAK
-case 38:
-{
- cp++;
- tw.tw_zone = (('0' * 10 + '0')
- -(cp[0] * 10 + cp[1]))*60
- +(('0' * 10 + '0')
- -(cp[2] * 10 + cp[3]));
-#ifdef DSTXXX
- zonehack (&tw);
-#endif DSTXXX
- cp += 4;
- EXPZONE;
- }
- YY_BREAK
-case 39:
-case 40:
-;
- YY_BREAK
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(Z):
-return(&tw);
- YY_BREAK
-case 42:
-{
- /*
- * We jammed; it's an error if we
- * didn't parse anything.
- */
- if (!gotdate || tw.tw_year == 0)
- return(0);
- return(&tw);
- }
- YY_BREAK
-case 43:
-YY_FATAL_ERROR( "flex scanner jammed" );
- YY_BREAK
-
- case YY_END_OF_BUFFER:
- {
- /* amount of text matched not including the EOB char */
- int yy_amount_of_matched_text = yy_cp - yytext - 1;
-
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = yy_hold_char;
-
- /* note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the end-
- * of-buffer state). Contrast this with the test in yyinput().
- */
- if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- /* this was really a NUL */
- {
- yy_state_type yy_next_state;
-
- yy_c_buf_p = yytext + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- /* okay, we're now positioned to make the
- * NUL transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we
- * don't want to build jamming into it because
- * then it will run more slowly)
- */
-
- yy_next_state = yy_try_NUL_trans( yy_current_state );
-
- yy_bp = yytext + YY_MORE_ADJ;
-
- if ( yy_next_state )
- {
- /* consume the NUL */
- yy_cp = ++yy_c_buf_p;
- yy_current_state = yy_next_state;
- goto yy_match;
- }
-
- else
- {
- yy_cp = yy_last_accepting_cpos;
- yy_current_state = yy_last_accepting_state;
- goto yy_find_action;
- }
- }
-
- else switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- yy_did_buffer_switch_on_eof = 0;
-
- if ( yywrap() )
- {
- /* note: because we've taken care in
- * yy_get_next_buffer() to have set up yytext,
- * we can now set up yy_c_buf_p so that if some
- * total hoser (like flex itself) wants
- * to call the scanner after we return the
- * YY_NULL, it'll still work - another YY_NULL
- * will get returned.
- */
- yy_c_buf_p = yytext + YY_MORE_ADJ;
-
- yy_act = YY_STATE_EOF((yy_start - 1) / 2);
- goto do_action;
- }
-
- else
- {
- if ( ! yy_did_buffer_switch_on_eof )
- YY_NEW_FILE;
- }
- }
- break;
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext + yy_amount_of_matched_text;
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext + YY_MORE_ADJ;
- goto yy_match;
-
- case EOB_ACT_LAST_MATCH:
- yy_c_buf_p =
- &yy_current_buffer->yy_ch_buf[yy_n_chars];
-
- yy_current_state = yy_get_previous_state();
-
- yy_cp = yy_c_buf_p;
- yy_bp = yytext + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
-
- default:
-#ifdef FLEX_DEBUG
- printf( "action # %d\n", yy_act );
-#endif
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- }
- }
- }
-
-
-/* yy_get_next_buffer - try to read in a new buffer
- *
- * synopsis
- * int yy_get_next_buffer();
- *
- * returns a code representing an action
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
-
-static int yy_get_next_buffer()
-
- {
- register YY_CHAR *dest = yy_current_buffer->yy_ch_buf;
- register YY_CHAR *source = yytext - 1; /* copy prev. char, too */
- register int number_to_move, i;
- int ret_val;
-
- if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
-
- /* try to read more data */
-
- /* first move last chars to start of buffer */
- number_to_move = yy_c_buf_p - yytext;
-
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
-
- if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- yy_n_chars = 0;
-
- else
- {
- int num_to_read = yy_current_buffer->yy_buf_size - number_to_move - 1;
-
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
-
- else if ( num_to_read <= 0 )
- YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" );
-
- /* read in more data */
- YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
- yy_n_chars, num_to_read );
- }
-
- if ( yy_n_chars == 0 )
- {
- if ( number_to_move == 1 )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- yy_current_buffer->yy_eof_status = EOF_DONE;
- }
-
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- yy_current_buffer->yy_eof_status = EOF_PENDING;
- }
- }
-
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
-
- yy_n_chars += number_to_move;
- yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
- yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
-
- /* yytext begins at the second character in yy_ch_buf; the first
- * character is the one which preceded it before reading in the latest
- * buffer; it needs to be kept around in case it's a newline, so
- * yy_get_previous_state() will have with '^' rules active
- */
-
- yytext = &yy_current_buffer->yy_ch_buf[1];
-
- return ( ret_val );
- }
-
-
-/* yy_get_previous_state - get the state just before the EOB char was reached
- *
- * synopsis
- * yy_state_type yy_get_previous_state();
- */
-
-static yy_state_type yy_get_previous_state()
-
- {
- register yy_state_type yy_current_state;
- register YY_CHAR *yy_cp;
-
- yy_current_state = yy_start;
-
- for ( yy_cp = yytext + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
- {
- register YY_CHAR yy_c = (*yy_cp ? yy_ec[*yy_cp] : 1);
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = yy_def[yy_current_state];
- if ( yy_current_state >= 390 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- }
-
- return ( yy_current_state );
- }
-
-
-/* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
-
-#ifdef YY_USE_PROTOS
-static yy_state_type yy_try_NUL_trans( register yy_state_type yy_current_state )
-#else
-static yy_state_type yy_try_NUL_trans( yy_current_state )
-register yy_state_type yy_current_state;
-#endif
-
- {
- register int yy_is_jam;
- register YY_CHAR *yy_cp = yy_c_buf_p;
-
- register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- yy_last_accepting_state = yy_current_state;
- yy_last_accepting_cpos = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = yy_def[yy_current_state];
- if ( yy_current_state >= 390 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 389);
-
- return ( yy_is_jam ? 0 : yy_current_state );
- }
-
-
-#ifdef YY_USE_PROTOS
-static void yyunput( YY_CHAR c, register YY_CHAR *yy_bp )
-#else
-static void yyunput( c, yy_bp )
-YY_CHAR c;
-register YY_CHAR *yy_bp;
-#endif
-
- {
- register YY_CHAR *yy_cp = yy_c_buf_p;
-
- /* undo effects of setting up yytext */
- *yy_cp = yy_hold_char;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- { /* need to shift things up to make room */
- register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
- register YY_CHAR *dest =
- &yy_current_buffer->yy_ch_buf[yy_current_buffer->yy_buf_size + 2];
- register YY_CHAR *source =
- &yy_current_buffer->yy_ch_buf[number_to_move];
-
- while ( source > yy_current_buffer->yy_ch_buf )
- *--dest = *--source;
-
- yy_cp += dest - source;
- yy_bp += dest - source;
- yy_n_chars = yy_current_buffer->yy_buf_size;
-
- if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
- YY_FATAL_ERROR( "flex scanner push-back overflow" );
- }
-
- if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
- yy_cp[-2] = '\n';
-
- *--yy_cp = c;
-
- /* note: the formal parameter *must* be called "yy_bp" for this
- * macro to now work correctly
- */
- YY_DO_BEFORE_ACTION; /* set up yytext again */
- }
-
-
-#ifdef __cplusplus
-static int yyinput()
-#else
-static int input()
-#endif
-
- {
- int c;
- YY_CHAR *yy_cp = yy_c_buf_p;
-
- *yy_cp = yy_hold_char;
-
- if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
- /* this was really a NUL */
- *yy_c_buf_p = '\0';
-
- else
- { /* need more input */
- yytext = yy_c_buf_p;
- ++yy_c_buf_p;
-
- switch ( yy_get_next_buffer() )
- {
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap() )
- {
- yy_c_buf_p = yytext + YY_MORE_ADJ;
- return ( EOF );
- }
-
- YY_NEW_FILE;
-
-#ifdef __cplusplus
- return ( yyinput() );
-#else
- return ( input() );
-#endif
- }
- break;
-
- case EOB_ACT_CONTINUE_SCAN:
- yy_c_buf_p = yytext + YY_MORE_ADJ;
- break;
-
- case EOB_ACT_LAST_MATCH:
-#ifdef __cplusplus
- YY_FATAL_ERROR( "unexpected last match in yyinput()" );
-#else
- YY_FATAL_ERROR( "unexpected last match in input()" );
-#endif
- }
- }
- }
-
- c = *yy_c_buf_p;
- yy_hold_char = *++yy_c_buf_p;
-
- return ( c );
- }
-
-
-#ifdef YY_USE_PROTOS
-void yyrestart( FILE *input_file )
-#else
-void yyrestart( input_file )
-FILE *input_file;
-#endif
-
- {
- yy_init_buffer( yy_current_buffer, input_file );
- yy_load_buffer_state();
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
-#else
-void yy_switch_to_buffer( new_buffer )
-YY_BUFFER_STATE new_buffer;
-#endif
-
- {
- if ( yy_current_buffer == new_buffer )
- return;
-
- if ( yy_current_buffer )
- {
- /* flush out information for old buffer */
- *yy_c_buf_p = yy_hold_char;
- yy_current_buffer->yy_buf_pos = yy_c_buf_p;
- yy_current_buffer->yy_n_chars = yy_n_chars;
- }
-
- yy_current_buffer = new_buffer;
- yy_load_buffer_state();
-
- /* we don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() is called, so it's safe
- * to go ahead and always set it.
- */
- yy_did_buffer_switch_on_eof = 1;
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_load_buffer_state( void )
-#else
-void yy_load_buffer_state()
-#endif
-
- {
- yy_n_chars = yy_current_buffer->yy_n_chars;
- yytext = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
- yyin = yy_current_buffer->yy_input_file;
- yy_hold_char = *yy_c_buf_p;
- }
-
-
-#ifdef YY_USE_PROTOS
-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
-#else
-YY_BUFFER_STATE yy_create_buffer( file, size )
-FILE *file;
-int size;
-#endif
-
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) malloc( sizeof( struct yy_buffer_state ) );
-
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- b->yy_buf_size = size;
-
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (YY_CHAR *) malloc( (unsigned) (b->yy_buf_size + 2) );
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
-
- yy_init_buffer( b, file );
-
- return ( b );
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_delete_buffer( YY_BUFFER_STATE b )
-#else
-void yy_delete_buffer( b )
-YY_BUFFER_STATE b;
-#endif
-
- {
- if ( b == yy_current_buffer )
- yy_current_buffer = (YY_BUFFER_STATE) 0;
-
- free( (char *) b->yy_ch_buf );
- free( (char *) b );
- }
-
-
-#ifdef YY_USE_PROTOS
-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
-#else
-void yy_init_buffer( b, file )
-YY_BUFFER_STATE b;
-FILE *file;
-#endif
-
- {
- b->yy_input_file = file;
-
- /* we put in the '\n' and start reading from [1] so that an
- * initial match-at-newline will be true.
- */
-
- b->yy_ch_buf[0] = '\n';
- b->yy_n_chars = 1;
-
- /* we always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
-
- b->yy_buf_pos = &b->yy_ch_buf[1];
-
- b->yy_eof_status = EOF_NOT_SEEN;
- }
-
-
-#ifdef DSTXXX
-#include <sys/types.h>
-#ifndef BSD42
-#include <time.h>
-#else BSD42
-#include <sys/time.h>
-#endif BSD42
-
-static void
-zonehack(tw)
- register struct tws *tw;
-{
- register struct tm *tm;
-
- if (twclock (tw) == -1L)
- return;
-
- tm = localtime (&tw -> tw_clock);
- if (tm -> tm_isdst) {
- tw -> tw_flags |= TW_DST;
- tw -> tw_zone -= 60;
- }
-}
-#endif DSTXXX
+++ /dev/null
-%{
-#ifndef lint
-static char rcsid[] =
-#ifdef FLEX_SCANNER
- "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (flex generated scanner)";
-#else
- "@(#) $Header: dtimep.lex,v 1.15 90/10/16 14:57:20 leres Exp $ (LBL) (lex generated scanner)";
-#endif
-#endif
-%}
-/*
-%e 2000
-%p 5000
-%n 1000
-%a 4000
- */
-
-%START Z
-sun (sun(day)?)
-mon (mon(day)?)
-tue (tue(sday)?)
-wed (wed(nesday)?)
-thu (thu(rsday)?)
-fri (fri(day)?)
-sat (sat(urday)?)
-
-DAY ({sun}|{mon}|{tue}|{wed}|{thu}|{fri}|{sat})
-
-jan (jan(uary)?)
-feb (feb(ruary)?)
-mar (mar(ch)?)
-apr (apr(il)?)
-may (may)
-jun (jun(e)?)
-jul (jul(y)?)
-aug (aug(ust)?)
-sep (sep(tember)?)
-oct (oct(ober)?)
-nov (nov(ember)?)
-dec (dec(ember)?)
-
-MONTH ({jan}|{feb}|{mar}|{apr}|{may}|{jun}|{jul}|{aug}|{sep}|{oct}|{nov}|{dec})
-
-w ([ \t]*)
-W ([ \t]+)
-D ([0-9]?[0-9])
-d [0-9]
-%{
-#include "tws.h"
-#include <ctype.h>
-
-/*
- * Patchable flag that says how to interpret NN/NN/NN dates. When
- * true, we do it European style: DD/MM/YY. When false, we do it
- * American style: MM/DD/YY.
- */
-int europeandate = 0;
-
-/*
- * Table to convert month names to numeric month. We use the
- * fact that the low order 5 bits of the sum of the 2nd & 3rd
- * characters of the name is a hash with no collisions for the 12
- * valid month names. (The mask to 5 bits maps any combination of
- * upper and lower case into the same hash value).
- */
-static int month_map[] = {
- 0,
- 6, /* 1 - Jul */
- 3, /* 2 - Apr */
- 5, /* 3 - Jun */
- 0,
- 10, /* 5 - Nov */
- 0,
- 1, /* 7 - Feb */
- 11, /* 8 - Dec */
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, /*15 - Jan */
- 0,
- 0,
- 0,
- 2, /*19 - Mar */
- 0,
- 8, /*21 - Sep */
- 0,
- 9, /*23 - Oct */
- 0,
- 0,
- 4, /*26 - May */
- 0,
- 7 /*28 - Aug */
-};
-/*
- * Same trick for day-of-week using the hash function
- * (c1 & 7) + (c2 & 4)
- */
-static int day_map[] = {
- 0,
- 0,
- 0,
- 6, /* 3 - Sat */
- 4, /* 4 - Thu */
- 0,
- 5, /* 6 - Fri */
- 0, /* 7 - Sun */
- 2, /* 8 - Tue */
- 1 /* 9 - Mon */,
- 0,
- 3 /*11 - Wed */
-};
-#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
- tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
- cp += 2; }
-#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
- cp += 2;\
- SKIPD;}
-#define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i)
-#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
-#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
-#define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
-#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
-#define LC(c) (isupper(c) ? tolower(c) : (c))
-
-#ifdef FLEX_SCANNER
-/* We get passed a string and return a pointer to a static tws struct */
-#undef YY_DECL
-#define YY_DECL struct tws *dparsetime(str) char *str;
-
-/* We assume that we're never passed more than max_size characters */
-#undef YY_INPUT
-#define YY_INPUT(buf,result,max_size) \
- if (gstr) { \
- register char *xp; \
- xp = gstr; \
- while (isspace(*xp)) \
- xp++; \
- gstr = xp; \
- while (*xp != '\0') \
- ++xp; \
- result = xp - gstr; \
- bcopy(gstr, buf, result); \
- gstr = 0; \
- } else \
- result = YY_NULL;
-
-/* Date strings aren't usually very long */
-#undef YY_READ_BUF_SIZE
-#define YY_READ_BUF_SIZE 128
-
-/* Use mh error reporting routine */
-#undef YY_FATAL_ERROR
-#define YY_FATAL_ERROR(s) adios("dparsetime()", s);
-
-/* We need a pointer to the matched text we can modify */
-#undef YY_USER_ACTION
-#define YY_USER_ACTION cp = yytext
-
-/* Used to initialize */
-static struct tws ztw = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
-
-/* Global for use by YY_INPUT() macro */
-static char *gstr;
-#endif
-
-%}
-
-%%
- register int i, gotdate;
- register char *cp;
- static struct tws tw;
- static void zonehack();
-
- BEGIN(INITIAL);
- yy_init = 1;
- tw = ztw;
- gstr = str;
- gotdate = 0;
-
-{DAY}","?{w} SETDAY;
-"("{DAY}")"(","?) {
- cp++;
- SETDAY;
- }
-
-{D}"/"{D}"/"(19)?[0-9][0-9]{w} {
- if (europeandate) {
- /* European: DD/MM/YY */
- tw.tw_mday = CVT2;
- cp++;
- tw.tw_mon = CVT2 - 1;
- } else {
- /* American: MM/DD/YY */
- tw.tw_mon = CVT2 - 1;
- cp++;
- tw.tw_mday = CVT2;
- }
- cp++;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- gotdate++;
- }
-{D}{w}(-)?{w}{MONTH}{w}(-)?{w}(19)?{D}{w}(\,{w}|at{W})? {
- tw.tw_mday = CVT2;
- while (!isalpha(*cp++))
- ;
- SETMONTH;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- }
-{MONTH}{W}{D}","{W}(19)?{D}{w} {
- cp++;
- SETMONTH;
- tw.tw_mday = CVT2;
- SKIPD;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i % 100;
- }
-
-{MONTH}{W}{D}{w} {
- cp++;
- SETMONTH;
- tw.tw_mday = CVT2;
- }
-
-{D}:{D}:{D}{w} {
- tw.tw_hour = CVT2; cp++;
- tw.tw_min = CVT2; cp++;
- tw.tw_sec = CVT2;
- BEGIN Z;
- }
-{D}:{D}{w} {
- tw.tw_hour = CVT2; cp++;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
-{D}:{D}{w}am{w} {
- tw.tw_hour = CVT2; cp++;
- if (tw.tw_hour == 12)
- tw.tw_hour = 0;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
-{D}:{D}{w}pm{w} {
- tw.tw_hour = CVT2; cp++;
- if (tw.tw_hour != 12)
- tw.tw_hour += 12;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
-[0-2]{d}{d}{d}{d}{d}{w} {
- tw.tw_hour = CVT2;
- tw.tw_min = CVT2;
- tw.tw_sec = CVT2;
- BEGIN Z;
- }
-19[6-9]{d}{w} {
- /*
- * Luckly, 4 digit times in the range
- * 1960-1999 aren't legal as hour
- * and minutes. This rule must come
- * the 4 digit hour and minute rule.
- */
- cp += 2;
- tw.tw_year = CVT2;
- }
-[0-2]{d}{d}{d}{w} {
- tw.tw_hour = CVT2;
- tw.tw_min = CVT2;
- BEGIN Z;
- }
-<Z>"-"?ut ZONE(0 * 60);
-<Z>"-"?gmt ZONE(0 * 60);
-<Z>"-"?jst ZONE(2 * 60);
-<Z>"-"?jdt ZONED(2 * 60);
-<Z>"-"?est ZONE(-5 * 60);
-<Z>"-"?edt ZONED(-5 * 60);
-<Z>"-"?cst ZONE(-6 * 60);
-<Z>"-"?cdt ZONED(-6 * 60);
-<Z>"-"?mst ZONE(-7 * 60);
-<Z>"-"?mdt ZONED(-7 * 60);
-<Z>"-"?pst ZONE(-8 * 60);
-<Z>"-"?pdt ZONED(-8 * 60);
-<Z>"-"?nst ZONE(-(3 * 60 + 30));
-<Z>"-"?ast ZONE(-4 * 60);
-<Z>"-"?adt ZONED(-4 * 60);
-<Z>"-"?yst ZONE(-9 * 60);
-<Z>"-"?ydt ZONED(-9 * 60);
-<Z>"-"?hst ZONE(-10 * 60);
-<Z>"-"?hdt ZONED(-10 * 60);
-<Z>"-"?bst ZONED(-1 * 60);
-<Z>[a-i] {
- tw.tw_zone = 60 * (('a'-1) - LC(*cp));
- EXPZONE;
- }
-<Z>[k-m] {
- tw.tw_zone = 60 * ('a' - LC(*cp));
- EXPZONE;
- }
-<Z>[n-y] {
- tw.tw_zone = 60 * (LC(*cp) - 'm');
- EXPZONE;
- }
-<Z>"+"[0-1]{d}{d}{d} {
- cp++;
- tw.tw_zone = ((cp[0] * 10 + cp[1])
- -('0' * 10 + '0'))*60
- +((cp[2] * 10 + cp[3])
- -('0' * 10 + '0'));
-#ifdef DSTXXX
- zonehack (&tw);
-#endif DSTXXX
- cp += 4;
- EXPZONE;
- }
-<Z>"-"[0-1]{d}{d}{d} {
- cp++;
- tw.tw_zone = (('0' * 10 + '0')
- -(cp[0] * 10 + cp[1]))*60
- +(('0' * 10 + '0')
- -(cp[2] * 10 + cp[3]));
-#ifdef DSTXXX
- zonehack (&tw);
-#endif DSTXXX
- cp += 4;
- EXPZONE;
- }
-
-\n |
-{W} ;
-
-<INITIAL,Z><<EOF>> return(&tw);
-
-. {
- /*
- * We jammed; it's an error if we
- * didn't parse anything.
- */
- if (!gotdate || tw.tw_year == 0)
- return(0);
- return(&tw);
- }
-
-%%
-
-#ifdef DSTXXX
-#include <sys/types.h>
-#ifndef BSD42
-#include <time.h>
-#else BSD42
-#include <sys/time.h>
-#endif BSD42
-
-static void
-zonehack(tw)
- register struct tws *tw;
-{
- register struct tm *tm;
-
- if (twclock (tw) == -1L)
- return;
-
- tm = localtime (&tw -> tw_clock);
- if (tm -> tm_isdst) {
- tw -> tw_flags |= TW_DST;
- tw -> tw_zone -= 60;
- }
-}
-#endif DSTXXX
+++ /dev/null
-11 MAR 1980 1559-PST
-12 March 1980 11:41-EST
-10 Feb 1982 11:22:30-PST
-85/10/29 14:44:13
-2 Dec 1986 1103-PST (Tuesday)
-27-Dec-1986 2323
-06-Oct-88 00:57
-12/02/88 12:36:12 EST
-Mon, 05 Dec 88 22:17:19 PST
-Fri, 16 Dec 88 18:49:09 PST
-5 Jan 89 11:45 +0100
-Fri Jan 6 12:46:18 PST 1989
-Tue Jan 24 07:41:26 1989 CST
-2/3/89 6:33 AM
-13 February 1989, 10:02:09 EST
-Tue Feb 14 13:05:06 PST 1989
-14 Feb 89 17:17:23 GMT
-01 Apr 89 00:00:01 GMT
-10 Jul 89 15:24
-Tue Nov 28 16:31:28 1989
-Wed Nov 29 14:54:37 -0800 1989
-Wed, 22 Nov 89 22:29:04 JST
-Tue, 16 Oct 90 14:41:52 -0800
+++ /dev/null
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/conf/makefiles/support/pop ./conf/makefiles/support/pop
---- ../mh-6.8-dist/conf/makefiles/support/pop Sat Dec 25 16:57:49 1993
-+++ ./conf/makefiles/support/pop Sat Jul 16 18:05:55 1994
-@@ -110,7 +110,7 @@
- -@ls -l $@
- -@echo ""
-
--popd: xpopd
-+popd: xpopd;
-
- xpopd: popd.o popser.o syslog.o \
- ../../uip/dropsbr.o \
-@@ -146,7 +146,7 @@
- -@ls -l $@
- -@echo ""
-
--popaka: xpopaka
-+popaka: xpopaka;
-
- xpopaka: popaka.o $(LIBES1)
- $(LD) $(LDFLAGS) -o $@ popaka.o $(LDLIBS1)
-@@ -169,7 +169,7 @@
- -@ls -l $@
- -@echo ""
-
--popauth: xpopauth
-+popauth: xpopauth;
-
- xpopauth: popauth.o $(LIBES1)
- $(LD) $(LDFLAGS) -o $@ popauth.o $(LDLIBS2)
-@@ -193,7 +193,7 @@
- -@ls -l $@
- -@echo ""
-
--popwrd: xpopwrd
-+popwrd: xpopwrd;
-
- xpopwrd: popwrd.o $(LIBES1)
- $(LD) $(LDFLAGS) -o $@ popwrd.o $(LDLIBS1)
-@@ -214,7 +214,7 @@
- -@ls -l $@
- -@echo ""
-
--smtpd: xsmtpd
-+smtpd: xsmtpd;
-
- xsmtpd: smtpd.o syslog.o
- $(LD) $(LDFLAGS) -o $@ smtpd.o syslog.o
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/conf/makefiles/uip ./conf/makefiles/uip
---- ../mh-6.8-dist/conf/makefiles/uip Sat Dec 25 16:57:50 1993
-+++ ./conf/makefiles/uip Sat Jul 16 18:05:55 1994
-@@ -267,7 +267,7 @@
- -@ls -l $@
- -@echo ""
-
--ali: xali
-+ali: xali;
-
- xali: ali.o aliasbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ ali.o aliasbr.o $(LDLIBS)
-@@ -284,7 +284,7 @@
- -@ls -l $@
- -@echo ""
-
--anno: xanno
-+anno: xanno;
-
- xanno: anno.o annosbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ anno.o annosbr.o $(LDLIBS)
-@@ -301,7 +301,7 @@
- -@ls -l $@
- -@echo ""
-
--ap: xap
-+ap: xap;
-
- xap: ap.o trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ ap.o trmsbr.o $(LDLIBS) $(LDCURSES)
-@@ -325,7 +325,7 @@
- -@ls -l $(BINDIR)/bbc
- -@echo ""
-
--bbc: xbbc
-+bbc: xbbc;
-
- xbbc: bbc.o $(PSHLIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ bbc.o $(PSHLIB) $(LDLIBS)
-@@ -352,7 +352,7 @@
- -@ls -l $@
- -@echo ""
-
--bbl: xbbl
-+bbl: xbbl;
-
- xbbl: bbl.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ bbl.o $(LDLIBS)
-@@ -369,7 +369,7 @@
- -@ls -l $@
- -@echo ""
-
--burst: xburst
-+burst: xburst;
-
- xburst: burst.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ burst.o $(LDLIBS)
-@@ -386,7 +386,7 @@
- -@ls -l $@
- -@echo ""
-
--cipher: xcipher
-+cipher: xcipher;
-
- xcipher: cipher.o $(TMALIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ cipher.o $(TMALIB) $(LDLIBS)
-@@ -403,7 +403,7 @@
- -@ls -l $(BINDIR)/comp
- -@echo ""
-
--comp: xcomp
-+comp: xcomp;
-
- xcomp: comp.o whatnowproc.o \
- whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -423,7 +423,7 @@
- -@ls -l $@
- -@echo ""
-
--conflict: xconflict
-+conflict: xconflict;
-
- xconflict: conflict.o aliasbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ conflict.o aliasbr.o $(LDLIBS)
-@@ -440,7 +440,7 @@
- -@ls -l $@
- -@echo ""
-
--decipher: xdecipher
-+decipher: xdecipher;
-
- xdecipher: decipher.o $(TMALIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ decipher.o $(TMALIB) $(LDLIBS)
-@@ -457,7 +457,7 @@
- -@ls -l $@
- -@echo ""
-
--dist: xdist
-+dist: xdist;
-
- xdist: dist.o whatnowproc.o \
- whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -477,7 +477,7 @@
- -@ls -l $(ETCDIR)/dp
- -@echo ""
-
--dp: xdp
-+dp: xdp;
-
- xdp: dp.o trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ dp.o trmsbr.o $(LDLIBS) $(LDCURSES)
-@@ -494,7 +494,7 @@
- -@ls -l $@
- -@echo ""
-
--fmtdump: xfmtdump
-+fmtdump: xfmtdump;
-
- xfmtdump: fmtdump.o trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ fmtdump.o $(LDLIBS)
-@@ -514,8 +514,8 @@
- -@ls -l $@
- -@echo ""
-
--folders: folder
--folder: xfolder
-+folders: folder;
-+folder: xfolder;
-
- xfolder: folder.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ folder.o $(LDLIBS)
-@@ -532,7 +532,7 @@
- -@ls -l $@
- -@echo ""
-
--forw: xforw
-+forw: xforw;
-
- xforw: forw.o whatnowproc.o \
- whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -563,7 +563,7 @@
- -@ls -l $@
- -@echo ""
-
--inc: xinc
-+inc: xinc;
-
- xinc: inc.o scansbr.o dropsbr.o trmsbr.o \
- $(POPLIB) $(TMALIB) $(LIBES)
-@@ -584,7 +584,7 @@
- -@ls -l $@
- -@echo ""
-
--install-mh: xinstall-mh
-+install-mh: xinstall-mh;
-
- xinstall-mh: install-mh.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ install-mh.o $(LDLIBS)
-@@ -601,7 +601,7 @@
- -@ls -l $@
- -@echo ""
-
--kdsc: xkdsc
-+kdsc: xkdsc;
-
- xkdsc: kdsc.o $(KDSLIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ kdsc.o $(KDSLIB) $(LDLIBS)
-@@ -618,7 +618,7 @@
- -@ls -l $@
- -@echo ""
-
--mark: xmark
-+mark: xmark;
-
- xmark: mark.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ mark.o $(LDLIBS)
-@@ -635,7 +635,7 @@
- -@ls -l $@
- -@echo ""
-
--mhl: xmhl
-+mhl: xmhl;
-
- xmhl: mhl.o \
- mhlsbr.o trmsbr.o $(LIBES)
-@@ -655,7 +655,7 @@
- -@ls -l $@
- -@echo ""
-
--mhmail: xmhmail
-+mhmail: xmhmail;
-
- xmhmail: mhmail.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ mhmail.o $(LDLIBS)
-@@ -672,7 +672,7 @@
- -@ls -l $@
- -@echo ""
-
--mhn: xmhn
-+mhn: xmhn;
-
- xmhn: mhn.o ftpsbr.o trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ mhn.o ftpsbr.o trmsbr.o \
-@@ -690,7 +690,7 @@
- -@ls -l $@
- -@echo ""
-
--mhparam: xmhparam
-+mhparam: xmhparam;
-
- xmhparam: mhparam.o trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ mhparam.o $(LDLIBS) $(LDCURSES)
-@@ -707,7 +707,7 @@
- -@ls -l $@
- -@echo ""
-
--mhpath: xmhpath
-+mhpath: xmhpath;
-
- xmhpath: mhpath.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ mhpath.o $(LDLIBS)
-@@ -731,7 +731,7 @@
- -@ls -l $@
- -@echo ""
-
--msgchk: xmsgchk
-+msgchk: xmsgchk;
-
- xmsgchk: msgchk.o $(POPLIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ msgchk.o $(POPLIB) \
-@@ -749,7 +749,7 @@
- -@ls -l $@
- -@echo ""
-
--msh: xmsh
-+msh: xmsh;
-
- xmsh: msh.o mshcmds.o vmhsbr.o \
- picksbr.o scansbr.o dropsbr.o mhlsbr.o trmsbr.o \
-@@ -772,7 +772,7 @@
- -@ls -l $@
- -@echo ""
-
--packf: xpackf
-+packf: xpackf;
-
- xpackf: packf.o dropsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ packf.o dropsbr.o $(LDLIBS)
-@@ -789,7 +789,7 @@
- -@ls -l $@
- -@echo ""
-
--pick: xpick
-+pick: xpick;
-
- xpick: pick.o picksbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ pick.o picksbr.o $(LDLIBS)
-@@ -806,7 +806,7 @@
- -@ls -l $@
- -@echo ""
-
--popi: xpopi
-+popi: xpopi;
-
- xpopi: popi.o $(POPLIB) trmsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ popi.o $(POPLIB) trmsbr.o $(LDLIBS) \
-@@ -831,7 +831,7 @@
- -@ls -l $@
- -@echo ""
-
--post: xpost
-+post: xpost;
-
- xpost: post.o \
- aliasbr.o $(MTSBRS) $(TMALIB) $(LIBES)
-@@ -851,7 +851,7 @@
- -@ls -l $@
- -@echo ""
-
--prompter: xprompter
-+prompter: xprompter;
-
- xprompter: prompter.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ prompter.o $(LDLIBS)
-@@ -868,7 +868,7 @@
- -@ls -l $@
- -@echo ""
-
--rcvdist: xrcvdist
-+rcvdist: xrcvdist;
-
- xrcvdist: rcvdist.o distsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rcvdist.o distsbr.o $(LDLIBS)
-@@ -885,7 +885,7 @@
- -@ls -l $@
- -@echo ""
-
--rcvpack: xrcvpack
-+rcvpack: xrcvpack;
-
- xrcvpack: rcvpack.o dropsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rcvpack.o dropsbr.o $(LDLIBS)
-@@ -902,7 +902,7 @@
- -@ls -l $@
- -@echo ""
-
--rcvstore: xrcvstore
-+rcvstore: xrcvstore;
-
- xrcvstore: rcvstore.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rcvstore.o $(LDLIBS)
-@@ -923,7 +923,7 @@
- -@ls -l $@
- -@echo ""
-
--rcvtty: xrcvtty
-+rcvtty: xrcvtty;
-
- xrcvtty: rcvtty.o scansbr.o trmsbr.o \
- @BEGIN: TTYD
-@@ -952,7 +952,7 @@
- -@ls -l $@
- -@echo ""
-
--refile: xrefile
-+refile: xrefile;
-
- xrefile: refile.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ refile.o $(LDLIBS)
-@@ -969,7 +969,7 @@
- -@ls -l $@
- -@echo ""
-
--repl: xrepl
-+repl: xrepl;
-
- xrepl: repl.o replsbr.o whatnowproc.o \
- whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -992,7 +992,7 @@
- -@ls -l $@
- -@echo ""
-
--rmail: xrmail
-+rmail: xrmail;
-
- xrmail: rmail.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rmail.o $(LDLIBS)
-@@ -1009,7 +1009,7 @@
- -@ls -l $@
- -@echo ""
-
--rmf: xrmf
-+rmf: xrmf;
-
- xrmf: rmf.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rmf.o $(LDLIBS)
-@@ -1026,7 +1026,7 @@
- -@ls -l $@
- -@echo ""
-
--rmm: xrmm
-+rmm: xrmm;
-
- xrmm: rmm.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ rmm.o $(LDLIBS)
-@@ -1043,7 +1043,7 @@
- -@ls -l $@
- -@echo ""
-
--scan: xscan
-+scan: xscan;
-
- xscan: scan.o \
- scansbr.o trmsbr.o $(LIBES)
-@@ -1063,7 +1063,7 @@
- -@ls -l $@
- -@echo ""
-
--send: xsend
-+send: xsend;
-
- xsend: send.o \
- sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -1089,9 +1089,9 @@
- -@ls -l $@
- -@echo ""
-
--next: show
--prev: show
--show: xshow
-+next: show;
-+prev: show;
-+show: xshow;
-
- xshow: show.o \
- mhlsbr.o trmsbr.o $(LIBES)
-@@ -1118,7 +1118,7 @@
- -@ls -l $@
- -@echo ""
-
--sbboards: xsbboards
-+sbboards: xsbboards;
-
- xsbboards: sbboards.o dropsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ sbboards.o dropsbr.o $(LDLIBS)
-@@ -1135,7 +1135,7 @@
- -@ls -l $@
- -@echo ""
-
--slocal: xslocal
-+slocal: xslocal;
-
- xslocal: slocal.o aliasbr.o dropsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ slocal.o aliasbr.o dropsbr.o $(LDLIBS)
-@@ -1152,7 +1152,7 @@
- -@ls -l $@
- -@echo ""
-
--sortm: xsortm
-+sortm: xsortm;
-
- xsortm: sortm.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ sortm.o $(LDLIBS)
-@@ -1172,7 +1172,7 @@
- -@ls -l $@
- -@echo ""
-
--spop: xspop
-+spop: xspop;
-
- xspop: spop.o dropsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ spop.o dropsbr.o $(LDLIBS)
-@@ -1193,7 +1193,7 @@
- -@ls -l $@
- -@echo ""
-
--spost: xspost
-+spost: xspost;
-
- xspost: spost.o aliasbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ spost.o aliasbr.o $(LDLIBS)
-@@ -1213,7 +1213,7 @@
- -@echo "Don't forget to: ln -s /usr/lib/sendmail $@"
- -@echo ""
-
--sendmail: xsendmail
-+sendmail: xsendmail;
-
- xsendmail: sendmail.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ sendmail.o $(LDLIBS)
-@@ -1230,7 +1230,7 @@
- -@ls -l $@
- -@echo ""
-
--tma: xtma
-+tma: xtma;
-
- xtma: tma.o $(TMALIB) $(LIBES)
- $(LD) $(LDFLAGS) -o $@ tma.o $(TMALIB) $(LDLIBS)
-@@ -1247,7 +1247,7 @@
- -@ls -l $@
- -@echo ""
-
--umhook: xumhook
-+umhook: xumhook;
-
- xumhook: umhook.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ umhook.o $(LDLIBS) $(LDCURSES)
-@@ -1264,7 +1264,7 @@
- -@ls -l $@
- -@echo ""
-
--vmh: xvmh
-+vmh: xvmh;
-
- xvmh: vmh.o vmhsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ vmh.o vmhsbr.o $(LDCURSES) $(LDLIBS)
-@@ -1285,7 +1285,7 @@
- -@ls -l $@
- -@echo ""
-
--whatnow: xwhatnow
-+whatnow: xwhatnow;
-
- xwhatnow: whatnow.o \
- whatnowsbr.o sendsbr.o annosbr.o distsbr.o $(LIBES)
-@@ -1305,7 +1305,7 @@
- -@ls -l $@
- -@echo ""
-
--whom: xwhom
-+whom: xwhom;
-
- xwhom: whom.o distsbr.o $(LIBES)
- $(LD) $(LDFLAGS) -o $@ whom.o distsbr.o $(LDLIBS)
-@@ -1322,7 +1322,7 @@
- -@ls -l $@
- -@echo ""
-
--wmh: xwmh
-+wmh: xwmh;
-
- xwmh: wmh.o vmhsbr.o $(LIBES)
- ${CC} $(LDFLAGS) -o $@ wmh.o vmhsbr.o $(LDLIBS) \
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/h/strings.h ./h/strings.h
---- ../mh-6.8-dist/h/strings.h Sat Dec 25 16:57:50 1993
-+++ ./h/strings.h Sat Jul 16 18:05:55 1994
-@@ -63,7 +63,9 @@
- #ifdef SYS5
- #include <memory.h>
- #define bcmp(b1,b2,length) memcmp(b1, b2, length)
-+#if __GNUC__ != 2
- #define bcopy(b1,b2,length) (void) memcpy (b2, b1, length)
-+#endif
- #define bcpy(b1,b2,length) memcmp (b1, b2, length)
- #define bzero(b,length) (void) memset (b, 0, length)
- #endif /* SYS5 */
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/sbr/discard.c ./sbr/discard.c
---- ../mh-6.8-dist/sbr/discard.c Sat Dec 25 16:57:51 1993
-+++ ./sbr/discard.c Sat Jul 16 18:11:18 1994
-@@ -49,7 +49,11 @@
- #ifdef _FSTDIO
- fpurge (io);
- #else
-+#ifdef _STDIO_USES_IOSTREAM
-+ io -> _IO_write_ptr = io -> _IO_write_base;
-+#else
- if (io -> _ptr = io -> _base)
- io -> _cnt = 0;
- #endif
-+#endif /* _STDIO_USES_IOSTREAM */
- }
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/sbr/m_getfld.c ./sbr/m_getfld.c
---- ../mh-6.8-dist/sbr/m_getfld.c Sat Dec 25 16:57:51 1993
-+++ ./sbr/m_getfld.c Sat Jul 16 18:10:23 1994
-@@ -244,22 +244,40 @@
- */
- cp = name; i = NAMESZ - 1;
- for (;;) {
-+#ifdef _STDIO_USES_IOSTREAM
-+ bp = sp = (unsigned char *) iob->_IO_read_ptr - 1;
-+ j = (cnt = ((long) iob->_IO_read_end - (long) iob->_IO_read_ptr) + 1) < i?
-+ cnt: i;
-+#else
- bp = sp = (unsigned char *) iob->_ptr - 1;
- j = (cnt = iob->_cnt+1) < i ? cnt : i;
-+#endif
- while ((c = *bp++) != ':' && c != '\n' && --j >= 0)
- *cp++ = c;
-
- j = bp - sp;
- if ((cnt -= j) <= 0) {
-+#ifdef _STDIO_USES_IOSTREAM
-+ iob->_IO_read_ptr = iob->_IO_read_end;
-+ if (__underflow(iob) == EOF) {
-+#else
- if (_filbuf(iob) == EOF) {
-+#endif
- *cp = *buf = 0;
- advise (NULLCP, "eof encountered in field \"%s\"",
- name);
- return FMTERR;
- }
-+#ifdef _STDIO_USES_IOSTREAM
-+ iob->_IO_read_ptr++; /* NOT automatic in __underflow()! */
-+#endif
- } else {
-+#ifdef _STDIO_USES_IOSTREAM
-+ iob->_IO_read_ptr = bp + 1;
-+#else
- iob->_ptr = bp + 1;
- iob->_cnt = cnt - 1;
-+#endif
- }
- if (c == ':')
- break;
-@@ -298,16 +316,27 @@
- */
- cp = buf; i = bufsz-1;
- for (;;) {
-+#ifdef _STDIO_USES_IOSTREAM
-+ cnt = (long) iob->_IO_read_end - (long) iob->_IO_read_ptr;
-+ bp = (unsigned char *) --iob->_IO_read_ptr;
-+#else
- cnt = iob->_cnt++; bp = (unsigned char *) --iob->_ptr;
-+#endif
- c = cnt < i ? cnt : i;
- while (ep = locc( c, bp, '\n' )) {
- /*
- * if we hit the end of this field, return.
- */
- if ((j = *++ep) != ' ' && j != '\t') {
-+#ifdef _STDIO_USES_IOSTREAM
-+ j = ep - (unsigned char *) iob->_IO_read_ptr;
-+ (void) bcopy( iob->_IO_read_ptr, cp, j);
-+ iob->_IO_read_ptr = ep;
-+#else
- j = ep - (unsigned char *) iob->_ptr;
- (void) bcopy( iob->_ptr, cp, j);
- iob->_ptr = ep; iob->_cnt -= j;
-+#endif
- cp += j;
- state = FLD;
- goto finish;
-@@ -317,12 +346,21 @@
- /*
- * end of input or dest buffer - copy what we've found.
- */
-+#ifdef _STDIO_USES_IOSTREAM
-+ c += bp - (unsigned char *) iob->_IO_read_ptr;
-+ (void) bcopy( iob->_IO_read_ptr, cp, c);
-+#else
- c += bp - (unsigned char *) iob->_ptr;
- (void) bcopy( iob->_ptr, cp, c);
-+#endif
- i -= c; cp += c;
- if (i <= 0) {
- /* the dest buffer is full */
-+#ifdef _STDIO_USES_IOSTREAM
-+ iob->_IO_read_ptr += c;
-+#else
- iob->_cnt -= c; iob->_ptr += c;
-+#endif
- state = FLDPLUS;
- break;
- }
-@@ -333,11 +371,22 @@
- * this is the end of the field. Otherwise loop.
- */
- --i;
-+#ifdef _STDIO_USES_IOSTREAM
-+ *cp++ = j = *(iob->_IO_read_ptr + c);
-+ iob->_IO_read_ptr = iob->_IO_read_end;
-+ c = __underflow(iob);
-+ iob->_IO_read_ptr++; /* NOT automatic! */
-+#else
- *cp++ = j = *(iob->_ptr + c);
- c = _filbuf(iob);
-+#endif
- if ((j == '\0' || j == '\n') && c != ' ' && c != '\t') {
- if (c != EOF)
-+#ifdef _STDIO_USES_IOSTREAM
-+ --iob->_IO_read_ptr;
-+#else
- --iob->_ptr, ++iob->_cnt;
-+#endif
- state = FLD;
- break;
- }
-@@ -353,7 +402,12 @@
- * the output buffer and we don't add an eos.
- */
- i = (bufsz < 0) ? -bufsz : bufsz-1;
-+#ifdef _STDIO_USES_IOSTREAM
-+ bp = (unsigned char *) --iob->_IO_read_ptr;
-+ cnt = (long) iob->_IO_read_end - (long) iob->_IO_read_ptr;
-+#else
- bp = (unsigned char *) --iob->_ptr; cnt = ++iob->_cnt;
-+#endif
- c = (cnt < i ? cnt : i);
- if (msg_style != MS_DEFAULT && c > 1) {
- /*
-@@ -410,8 +464,12 @@
- }
- }
- (void) bcopy( bp, buf, c );
-+#ifdef _STDIO_USES_IOSTREAM
-+ iob->_IO_read_ptr += c;
-+#else
- iob->_cnt -= c;
- iob->_ptr += c;
-+#endif
- if (bufsz < 0) {
- msg_count = c;
- return (state);
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/support/pop/popd.c ./support/pop/popd.c
---- ../mh-6.8-dist/support/pop/popd.c Sat Dec 25 16:57:51 1993
-+++ ./support/pop/popd.c Sat Jul 16 18:05:56 1994
-@@ -61,8 +61,10 @@
- #ifndef BSD44
- extern int sys_nerr;
- extern char *sys_errlist[];
-+#ifndef linux
- extern char *sys_siglist[];
- #endif
-+#endif
-
-
- int debug = 0;
-@@ -193,6 +195,10 @@
- #ifdef SIGCHLD
- (void) signal (SIGCHLD, chldser);
- #endif /* SIGCHLD */
-+#ifdef linux
-+/* No limit on the number of connections? this seems wrong... */
-+#define SOMAXCONN 5
-+#endif
- (void) listen (sd, SOMAXCONN);
- #endif /* KPOP */
- #ifdef FAST
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/inc.c ./uip/inc.c
---- ../mh-6.8-dist/uip/inc.c Sat Dec 25 16:57:51 1993
-+++ ./uip/inc.c Sat Jul 16 18:05:56 1994
-@@ -384,17 +384,23 @@
-
- /* \f */
-
--#ifdef MAILGROUP
-- return_gid = getegid(); /* Save effective gid, assuming we'll use it */
-- setgid(getgid()); /* Turn off extraordinary privileges */
--#endif /* MAILGROUP */
--
- #ifdef POP
- if (host && !*host)
- host = NULL;
- if (from || !host || rpop <= 0)
- (void) setuid (getuid ());
- #endif /* POP */
-+
-+/*
-+ * 93/12/17 bsa@kf8nh.wariat.org relocated: with MAILGROUP and POP both defined
-+ * the setgid() call ran as root, and saved gid would be lost. If the setuid()
-+ * call above then ran, inc would be unable to reestablish its setgid state.
-+ */
-+#ifdef MAILGROUP
-+ return_gid = getegid(); /* Save effective gid, assuming we'll use it */
-+ setgid(getgid()); /* Turn off extraordinary privileges */
-+#endif /* MAILGROUP */
-+
- if (from) {
- newmail = from;
- #ifdef POP
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/popi.c ./uip/popi.c
---- ../mh-6.8-dist/uip/popi.c Sat Dec 25 16:57:51 1993
-+++ ./uip/popi.c Sat Jul 16 18:05:57 1994
-@@ -558,7 +558,11 @@
-
-
- static int dselect (d)
-+#ifdef SYS5DIR
-+register struct dirent *d;
-+#else
- register struct direct *d;
-+#endif
- {
- int i;
-
-@@ -571,8 +575,13 @@
-
-
- static int dcompar (d1, d2)
-+#ifdef SYS5DIR
-+struct dirent **d1,
-+ **d2;
-+#else
- struct direct **d1,
- **d2;
-+#endif
- {
- struct stat s1,
- s2;
-@@ -592,7 +601,11 @@
- int n,
- retval,
- sm;
-+#ifdef SYS5DIR
-+ struct dirent **namelist;
-+#else
- struct direct **namelist;
-+#endif
-
- if (chdir (bulksw) == NOTOK)
- adios (bulksw, "unable to change directory to");
-@@ -602,7 +615,11 @@
-
- sm = NOTOK;
- for (i = 0; i < n; i++) {
-+#ifdef SYS5DIR
-+ register struct dirent *d = namelist[i];
-+#else
- register struct direct *d = namelist[i];
-+#endif
-
- if (sm == NOTOK) {
- if (rp_isbad (retval = sm_init (NULLCP, host, 1, 1, snoop)))
-@@ -630,13 +647,21 @@
- register int j;
- int l,
- m;
-+#ifdef SYS5DIR
-+ struct dirent **newlist;
-+#else
- struct direct **newlist;
-+#endif
-
- while ((l = scandir (".", &newlist, dselect, dcompar)) > OK) {
- m = 0;
-
- for (j = 0; j < l; j++) {
-+#ifdef SYS5DIR
-+ register struct dirent *d = newlist[j];
-+#else
- register struct direct *d = newlist[j];
-+#endif
-
- for (i = 0; i < n; i++)
- if (strcmp (d -> d_name, namelist[i] -> d_name) == 0)
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/sbboards.c ./uip/sbboards.c
---- ../mh-6.8-dist/uip/sbboards.c Sat Dec 25 16:57:51 1993
-+++ ./uip/sbboards.c Sat Jul 16 18:05:57 1994
-@@ -66,7 +66,10 @@
- #ifdef LOCALE
- #include <locale.h>
- #endif
--
-+#ifdef linux
-+/* FIXME - who should be doing this? With what option? */
-+#include <sys/types.h>
-+#endif
-
- #define NBB 100
-
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/scansbr.c ./uip/scansbr.c
---- ../mh-6.8-dist/uip/scansbr.c Sat Dec 25 16:57:51 1993
-+++ ./uip/scansbr.c Sat Jul 16 18:10:56 1994
-@@ -238,14 +238,25 @@
- */
- body: ;
- while (state == BODY) {
-+#ifdef _STDIO_USES_IOSTREAM
-+ if (scnout->_IO_write_ptr == scnout->_IO_write_end) {
-+#else
- if (scnout->_cnt <= 0) {
-+#endif
- if (fflush(scnout) == EOF)
- adios (scnmsg, "write error on");
- }
-+#ifdef _STDIO_USES_IOSTREAM
-+ state = m_getfld(state, name, scnout->_IO_write_ptr,
-+ (long)scnout->_IO_write_ptr-(long)scnout->_IO_write_end,
-+ inb);
-+ scnout->_IO_write_ptr += msg_count;
-+#else
- state = m_getfld( state, name, scnout->_ptr,
- -(scnout->_cnt), inb );
- scnout->_cnt -= msg_count;
- scnout->_ptr += msg_count;
-+#endif
- }
- goto finished;
-
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/spop.c ./uip/spop.c
---- ../mh-6.8-dist/uip/spop.c Sat Dec 25 16:57:51 1993
-+++ ./uip/spop.c Sat Jul 16 18:05:57 1994
-@@ -66,6 +66,10 @@
- #ifdef LOCALE
- #include <locale.h>
- #endif
-+#ifdef linux
-+/* FIXME - who should be doing this? With what option? */
-+#include <sys/types.h>
-+#endif
-
-
- #define NBB 100
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/uip/vmh.c ./uip/vmh.c
---- ../mh-6.8-dist/uip/vmh.c Sat Dec 25 16:57:52 1993
-+++ ./uip/vmh.c Sat Jul 16 18:05:57 1994
-@@ -11,8 +11,10 @@
- * means "AT&T line discipline" (termio, not sgttyb), whereas terminfo
- * is quite a separate issue.
- */
-+#ifndef linux
- #define TERMINFO 1
- #endif
-+#endif
-
- /* TODO:
- Pass signals to client during execution
-@@ -175,6 +177,9 @@
- #if !defined(SYS5) && !defined(BSD44)
- int _putchar ();
- #endif /* not SYS5 */
-+#ifdef linux
-+static int _putchar (c) int c; { putchar (c); }
-+#endif
- #ifdef SIGTSTP
- char *tgoto ();
- #endif /* SIGTSTP */
-diff --unified --recursive --minimal --unidirectional-new-file ../mh-6.8-dist/zotnet/mts/lock.c ./zotnet/mts/lock.c
---- ../mh-6.8-dist/zotnet/mts/lock.c Sat Dec 25 16:57:52 1993
-+++ ./zotnet/mts/lock.c Sat Jul 16 18:05:57 1994
-@@ -29,7 +29,9 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #ifdef SVR4
-+#ifndef linux
- #define LOCKF
-+#endif
- #include <unistd.h>
- #endif
- #ifdef LOCKF
+++ /dev/null
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/Makefile ./Makefile
-*** ../mh-6.8.3-dist/Makefile Sat Dec 25 14:19:03 1993
---- ./Makefile Sat Dec 25 14:19:19 1993
-***************
-*** 48,52 ****
- ##############################################################################
-
-! ALL = config sbr mts zotnet uip support doc
-
- all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done
---- 48,52 ----
- ##############################################################################
-
-! ALL = config sbr mts zotnet jump uip support doc
-
- all:; for d in $(ALL); do (cd $$d; $(MAKE) all); done
-***************
-*** 61,65 ****
-
-
-! INSTALL = zotnet support uip doc
- BINDIR = $(DESTDIR)/usr/bin/mh
- ETCDIR = $(DESTDIR)/usr/lib/mh
---- 61,65 ----
-
-
-! INSTALL = zotnet support jump uip doc
- BINDIR = $(DESTDIR)/usr/bin/mh
- ETCDIR = $(DESTDIR)/usr/lib/mh
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/config/Makefile ./config/Makefile
-*** ../mh-6.8.3-dist/config/Makefile Sat Dec 25 12:21:17 1993
---- ./config/Makefile Sat Dec 25 12:43:50 1993
-***************
-*** 9,12 ****
---- 9,17 ----
- LDOPTIONS=
-
-+ # Linux shared libraries
-+ JUMP_DIR=../jump/
-+ JUMP_LIB=libconfig
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
- CFLAGS = $(OPTIONS)
-***************
-*** 17,20 ****
---- 22,29 ----
- LLIBS =
-
-+ # Linux: create $*.j from $*.c, contains DLL version
-+ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ mv $*.o $*.j
-+ $(CC) $(CFLAGS) -c $*.c
-
- ##############################################################################
-***************
-*** 45,49 ****
-
- clean: unclean
-! -rm -f *.o
-
- unclean:; -rm -f _* :* core eddep makedep
---- 54,58 ----
-
- clean: unclean
-! -rm -f *.o *.j
-
- unclean:; -rm -f _* :* core eddep makedep
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/mts/mh/Makefile ./mts/mh/Makefile
-*** ../mh-6.8.3-dist/mts/mh/Makefile Sat Dec 25 12:21:26 1993
---- ./mts/mh/Makefile Sat Dec 25 12:43:18 1993
-***************
-*** 9,12 ****
---- 9,17 ----
- OPTIONS= -DSYS5 -DSHADOW -DMORE='"/usr/bin/more"' -DRENAME -DSYS5DIR -DUNISTD -DSVR4 -DMIME -DVSPRINTF -DMHE -DOVERHEAD -DRPATHS -DDUMB -DATHENA -DBIND -DSOCKETS -DNTOHLSWAP -DDPOP -DPOP2 -DRPOP -DMPOP -DAPOP='"/etc/pop.auth"' -DMAILGROUP -DSENDMTS -DSMTP -DPOP -DBPOP -DSPRINTFTYPE=int -DTYPESIG=void -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2 -I..
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libmts
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
- CFLAGS = $(OPTIONS)
-***************
-*** 26,30 ****
- # Generation Rules
- ##############################################################################
-! .c.o:; $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
- mv a.out $@
---- 31,40 ----
- # Generation Rules
- ##############################################################################
-!
-! # Linux: create $*.j from $*.c, contains DLL version
-! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-! -ld -x -r $@
-! mv a.out $*.j
-! $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
- mv a.out $@
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/mts/mmdf/Makefile ./mts/mmdf/Makefile
-*** ../mh-6.8.3-dist/mts/mmdf/Makefile Sat Dec 25 12:21:28 1993
---- ./mts/mmdf/Makefile Sat Dec 25 12:42:57 1993
-***************
-*** 9,12 ****
---- 9,17 ----
- OPTIONS = -DSYS5 -DSHADOW -DMORE='"/usr/bin/more"' -DRENAME -DSYS5DIR -DUNISTD -DSVR4 -DMIME -DVSPRINTF -DMHE -DOVERHEAD -DRPATHS -DDUMB -DATHENA -DBIND -DSOCKETS -DNTOHLSWAP -DDPOP -DPOP2 -DRPOP -DMPOP -DAPOP='"/etc/pop.auth"' -DMAILGROUP -DSENDMTS -DSMTP -DPOP -DBPOP -DSPRINTFTYPE=int -DTYPESIG=void -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2 -I..
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libmts
-+ export JUMP_DIR JUMP_LIB
-+
- CC = (MHCOMPILER)
- CFLAGS = $(OPTIONS)
-***************
-*** 27,31 ****
- ##############################################################################
-
-! .c.o:; $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
- mv a.out $@
---- 32,40 ----
- ##############################################################################
-
-! # Linux: create $*.j from $*.c, contains DLL version
-! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-! -ld -x -r $@
-! mv a.out $*.j
-! $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
- mv a.out $@
-diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/mts/sendmail/Makefile ./mts/sendmail/Makefile
-*** ../mh-6.8.3-dist/mts/sendmail/Makefile Sat Dec 25 12:21:29 1993
---- ./mts/sendmail/Makefile Sat Dec 25 12:42:35 1993
-***************
-*** 10,11 ****
---- 10,16 ----
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libmts
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
-***************
-*** 26,28 ****
-
-! .c.o:; $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
---- 31,37 ----
-
-! # Linux: create $*.j from $*.c, contains DLL version
-! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-! -ld -x -r $@
-! mv a.out $*.j
-! $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
-***************
-*** 66,68 ****
- clean: unclean
-! -rm -f *.o $(LIB) z$(LIB)
-
---- 75,77 ----
- clean: unclean
-! -rm -f *.o *.j $(LIB) z$(LIB)
-
-diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/sbr/Makefile ./sbr/Makefile
-*** ../mh-6.8.3-dist/sbr/Makefile Sat Dec 25 12:21:33 1993
---- ./sbr/Makefile Sat Dec 25 12:41:42 1993
-***************
-*** 9,10 ****
---- 9,15 ----
-
-+ # Linux shared library
-+ JUMP_DIR=../jump/
-+ JUMP_LIB=libmh
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
-***************
-*** 56,58 ****
---- 61,67 ----
-
-+ # Linux: create $*.j from $*.c, contains DLL version
- .c.o:
-+ $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ -ld -x -r $@
-+ mv a.out $*.j
- $(CC) $(CFLAGS) -c $*.c
-***************
-*** 90,92 ****
- clean: unclean
-! -rm -f *.o libmh.*
-
---- 99,101 ----
- clean: unclean
-! -rm -f *.o *.j libmh.*
-
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/support/bboards/Makefile ./support/bboards/Makefile
-*** ../mh-6.8.3-dist/support/bboards/Makefile Sat Dec 25 12:21:35 1993
---- ./support/bboards/Makefile Sat Dec 25 13:55:52 1993
-***************
-*** 22,28 ****
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a
-! LIBES2 = ../../config/config.o ../../config/version.o \
-! ../../sbr/libmh.a $(LIBES1)
- LDLIBS1 = $(LIBES1) $(LDOPTLIB)
- LDLIBS2 = $(LIBES2) $(LDOPTLIB)
---- 22,33 ----
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! #LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a
-! #LIBES2 = ../../config/config.o ../../config/version.o \
-! # ../../sbr/libmh.a $(LIBES1)
-! #LDLIBS1 = $(LIBES1) $(LDOPTLIB)
-! #LDLIBS2 = $(LIBES2) $(LDOPTLIB)
-! # Linux shared libraries
-! LIBES1 = ../../jump/libzot.sa ../../jump/libmts.sa
-! LIBES2 = ../../jump/libconfig.sa ../../jump/libmh.sa $(LIBES1)
- LDLIBS1 = $(LIBES1) $(LDOPTLIB)
- LDLIBS2 = $(LIBES2) $(LDOPTLIB)
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/support/pop/Makefile ./support/pop/Makefile
-*** ../mh-6.8.3-dist/support/pop/Makefile Sat Dec 25 14:46:20 1993
---- ./support/pop/Makefile Sat Dec 25 13:56:48 1993
-***************
-*** 32,39 ****
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a
-! LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1)
- LDLIBS1 = $(LIBES1) $(LDOPTLIB)
-! LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB)
-
- LINT = lint
---- 32,44 ----
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! #LIBES1 = ../../zotnet/libzot.a ../../mts/libmts.a
-! #LIBES2 = ../../config/config.o ../../sbr/libmh.a $(LIBES1)
-! #LDLIBS1 = $(LIBES1) $(LDOPTLIB)
-! #LDLIBS2 = $(LIBES2) ../../config/version.o $(LDOPTLIB)
-! # Linux shared libraries
-! LIBES1 = ../../jump/libzot.sa ../../jump/libmts.sa
-! LIBES2 = ../../jump/libconfig.sa ../../jump/libmh.sa $(LIBES1)
- LDLIBS1 = $(LIBES1) $(LDOPTLIB)
-! LDLIBS2 = $(LIBES2) $(LDOPTLIB)
-
- LINT = lint
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/uip/Makefile ./uip/Makefile
-*** ../mh-6.8.3-dist/uip/Makefile Sat Dec 25 14:40:03 1993
---- ./uip/Makefile Sat Dec 25 13:57:46 1993
-***************
-*** 56,62 ****
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \
-! ../zotnet/libzot.a
-! LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB)
- LINT = lint
- LFLAGS = -bhu $(OPTIONS) $(TMAOPTS)
---- 56,66 ----
- CFLAGS = $(OPTIONS)
- LDFLAGS = $(LDOPTIONS)
-! #LIBES = ../config/config.o ../sbr/libmh.a ../mts/libmts.a \
-! # ../zotnet/libzot.a
-! #LDLIBS = $(LIBES) ../config/version.o $(LDOPTLIB)
-! # Linux shared libraries
-! LIBES = ../jump/libconfig.sa ../jump/libmh.sa ../jump/libmts.sa \
-! ../jump/libzot.sa
-! LDLIBS = $(LIBES) $(LDOPTLIB)
- LINT = lint
- LFLAGS = -bhu $(OPTIONS) $(TMAOPTS)
-diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/Makefile ./zotnet/Makefile
-*** ../mh-6.8.3-dist/zotnet/Makefile Sat Dec 25 12:21:46 1993
---- ./zotnet/Makefile Sat Dec 25 14:02:53 1993
-***************
-*** 10,11 ****
---- 10,16 ----
-
-+ # Linux shared library
-+ JUMP_DIR=../jump/
-+ JUMP_LIB=libzot
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
-***************
-*** 31,33 ****
-
-! .c.o:; $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
---- 36,42 ----
-
-! # Linux: create $*.j from $*.c, contains DLL version
-! .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-! -ld -x -r $@
-! mv a.out $*.j
-! $(CC) $(CFLAGS) -c $*.c
- -ld -x -r $@
-***************
-*** 83,85 ****
-
-! clean:; -rm -f $(LIB) z$(LIB) _* :* *.o core
- for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
---- 92,94 ----
-
-! clean:; -rm -f $(LIB) z$(LIB) _* :* *.o *.j core
- for d in $(DIRS); do (cd $$d; $(MAKE) clean); done
-diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/bboards/Makefile ./zotnet/bboards/Makefile
-*** ../mh-6.8.3-dist/zotnet/bboards/Makefile Sat Dec 25 12:21:47 1993
---- ./zotnet/bboards/Makefile Sat Dec 25 12:40:58 1993
-***************
-*** 10,11 ****
---- 10,16 ----
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libzot
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
-***************
-*** 18,19 ****
---- 23,29 ----
-
-+ # Linux: create $*.j from $*.c, contains DLL version
-+ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ mv $*.o $*.j
-+ $(CC) $(CFLAGS) -c $*.c
-+
- ######################################################################
-***************
-*** 54,56 ****
- clean: unclean
-! -rm -f *.o
-
---- 64,66 ----
- clean: unclean
-! -rm -f *.o *.j
-
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/mf/Makefile ./zotnet/mf/Makefile
-*** ../mh-6.8.3-dist/zotnet/mf/Makefile Sat Dec 25 12:21:49 1993
---- ./zotnet/mf/Makefile Sat Dec 25 14:03:33 1993
-***************
-*** 13,16 ****
---- 13,21 ----
- REMOVE = mv -f
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libzot
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
- CFLAGS = $(OPTIONS)
-***************
-*** 24,27 ****
---- 29,37 ----
- .c:; echo $@
-
-+ # Linux: create $*.j from $*.c, contains DLL version
-+ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ mv $*.o $*.j
-+ $(CC) $(CFLAGS) -c $*.c
-+
- ######################################################################
- # Here it is...
-***************
-*** 146,150 ****
-
- clean: unclean
-! -rm -f x* *.o
-
- unclean:; -rm -f z* _* :* core eddep makedep MAKEMF
---- 156,160 ----
-
- clean: unclean
-! -rm -f x* *.o *.j
-
- unclean:; -rm -f z* _* :* core eddep makedep MAKEMF
-diff --recursive --minimal --context=2 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/mts/Makefile ./zotnet/mts/Makefile
-*** ../mh-6.8.3-dist/zotnet/mts/Makefile Sat Dec 25 12:21:50 1993
---- ./zotnet/mts/Makefile Sat Dec 25 14:03:47 1993
-***************
-*** 15,18 ****
---- 15,23 ----
- REMOVE = mv -f
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libzot
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
- CFLAGS = $(OPTIONS)
-***************
-*** 32,35 ****
---- 37,45 ----
- .c:; echo $@
-
-+ # Linux: create $*.j from $*.c, contains DLL version
-+ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ mv $*.o $*.j
-+ $(CC) $(CFLAGS) -c $*.c
-+
- ######################################################################
- # Here it is...
-***************
-*** 110,114 ****
-
- clean: unclean
-! -rm -f x* *.o
-
- unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS
---- 120,124 ----
-
- clean: unclean
-! -rm -f x* *.o *.j
-
- unclean:; -rm -f z* _* :* core eddep makedep MAKEMTS
-diff --recursive --minimal --context=1 --unidirectional-new-file ../mh-6.8.3-dist/zotnet/tws/Makefile ./zotnet/tws/Makefile
-*** ../mh-6.8.3-dist/zotnet/tws/Makefile Sat Dec 25 12:21:52 1993
---- ./zotnet/tws/Makefile Sat Dec 25 14:12:29 1993
-***************
-*** 14,15 ****
---- 14,20 ----
-
-+ # Linux shared library
-+ JUMP_DIR=../../jump/
-+ JUMP_LIB=libzot
-+ export JUMP_DIR JUMP_LIB
-+
- CC = cc
-***************
-*** 30,31 ****
---- 35,41 ----
-
-+ # Linux: create $*.j from $*.c, contains DLL version
-+ .c.o:; $(CC) -B/usr/dll/jump/ $(CFLAGS) -c $*.c
-+ mv $*.o $*.j
-+ $(CC) $(CFLAGS) -c $*.c
-+
- ######################################################################
-***************
-*** 76,77 ****
---- 86,89 ----
- lexstring.o: lexstring.c
-+ $(CC) -B/usr/dll/jump/ $(patsubst -O2,,$(CFLAGS)) -c -DONECASE lexstring.c
-+ mv $*.o $*.j
- $(CC) $(CFLAGS) -c -DONECASE lexstring.c
-***************
-*** 104,106 ****
- clean: unclean
-! -rm -f dtimep.c *.o date
-
---- 116,118 ----
- clean: unclean
-! -rm -f dtimep.c *.o *.j date
-
+++ /dev/null
-This is the patch distribution for MH 6.8.3 for Linux. You will need the UCI
-source distribution of MH 6.8.3.
-
-If you wish to build shared libraries, you must also have tools-2.10 or later.
-(I used tools-2.15.)
-
-
-
-WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-
-This distribution WILL NOT WORK with libc-4.4. Use the old distribution if
-you need libc-4.4; or, better yet, upgrade to libc-4.5. You'll eventually
-need to anyway...
-
-Do NOT attempt to use a particular version of libmh with binaries compiled
-for a different version. libmh is not a "normal" shared library; there are
-many interdependencies with respect to both function parameters and to side
-effects. Using a mismatched libmh *will* fail; if you're lucky, all you'll
-get is a core dump. (If you're not, I hope you backed up your Mail
-directory recently...)
-
-If you have been using the original MH 6.8.3 release for Linux, be aware that
-some configuration details have changed:
-
- * BBoards are no longer compiled in
- * The APOP and MPOP options are no longer supported
- * The MHRC option has been added
- * Manpages now have the "mh" extension added, as per the MH standard
-
-If you want to re-enable BBoards, I strongly suggest that you get a recent
-version of sendmail (NOT smail; sendmail support is provided, but you're on
-your own if you want to configure smail for BBoards. Yes, it turns my
-stomach, too...) and read conf/mh-gen.8 and doc/ADMIN.me. The same goes for
-configuring the POP server, which is enabled but not tested and probably not
-functional. I don't support either of the above.
-
-If you change configuration options, you may need to regenerate the shared
-library tables. See the file doc/README.tr in the tools-2.10 (or later)
-distribution for details. In particular, I have made no provision for the
-length of the mhbinpath and mhetcpath to be increased.
-
-WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
-
-
-
-Instructions:
-
-(1) Unpack the UCI MH distribution into a directory somewhere. Keep in mind
-that MH is *huge*.
-
-(2) Unpack this distriburtion into the same directory. It will create several
-files in the current directory, as well as a "jump" directory containing the
-control files for the shared libmh.
-
-(3) Type "patch -p0 -N < DIFFS.linux". This will apply the basic
-compatibility patches to MH.
-
-(4) Examine the file "zotnet/tws/dtimep.c-lexed". Some early copies of the
-UCI MH distribution have an empty file here; others have the correct file. If
-yours is empty, copy linux-dtimep.c-lexed to zotnet/tws/dtimep.c-lexed. If
-you plan to build the shared library, you may want to copy this file anyway;
-if you use the distribution one, you may need to regenerate the shared
-library tables because my copy of the MH distribution came with an empty
-dtimep.c-lexed and I had to create this one to build MH.
-
-(5) Examine the file "linux-conf.MH". This is an MH configuration file
-consistent with the Linux FSSTND and with my best understanding of Debian
-Linux. (It is *not* the one I use, by the way.) You may wish to read
-conf/mh-gen.8 and change some of the options; if you do so, PLEASE change the
-version numbers in jump/jump.params and jump/Makefile to avoid disaster. See
-the WARNING above. Copy linux-conf.MH to conf/MH and edit it to match your
-choice of options.
-
-(6) Likewise, "linux-conf.config.mtstailor" is a Linux-specific copy of
-conf/config/mtstailor. You may want to modify it as per conf/mh-gen.8. (This
-is much less likely, IMHO.) Copy it to conf/config/mtstailor and edit as
-above.
-
-(7) Configure MH: "cd conf; make mhconfig; mhconfig MH; cd ..; make clean".
-
-(8) If you want to build the static MH, skip to step 10.
-
-(9) If you want to build the MH shared library, type the command "patch -p0 -N
-< DIFFS.shlib". I don't know whether to try to fix this or to wait for
-libc-5.0 with ELF shared libraries; those are already supported by MH. But
-making the MH configuration facility support Linux DLL shared libraries is
-going to be a real b*tch of a job.
-
-(10) Type "make". Watch for errors; they won't stop the build (not my
-idea...). On my 486DX2/66 24MB it takes 10-15 minutes to build MH from
-scratch. (Don't knock it; it used to take an hour and a half back when I was
-building MH 6.5 under System III on a 68000 box...)
-
-(11) If something went wrong, make sure you didn't change the wrong options.
-(Well-meaning fools who try to substitute BSD options for the SVR4 options in
-my conf/MH will probably never get thjings working reliably. You have been
-warned.) Make sure you're using libc-4.5.x. If all else fails, capture the
-output of the "make" above in a file and send it to me.
-
-(12) Type "make install" to install the binaries and manpages. WARNING! If
-you had the old Linux MH distribution installed, you may want to remove the
-old manpages by hand; they will *not* be overwritten, because the extensions
-have been returned to the MH standard. (I decline to argue this with the
-FSSTND or Debian folks; if they want to impose maintenance problems on
-developers, they should be prepared to take over said development themselves.)
-
-(13) That's it! Make sure /usr/bin/mh is on your path before trying to use
-MH.
-
-
-
-Instructions on how to *use* MH are beyond the scope of this document. See
-doc/MH.me, papers/beginners/beginners.tex, and the MH Nutshell Handbook from
-O'Reilly and Associates.
-
-++Brandon
-bsa@kf8nh.wariat.org
-August 1, 1994
+++ /dev/null
-SHELL = /bin/sh
-VERSION = 3.0
-LIBDEFS = -a 0x63f00000 -g 4096 -j 0x1000
-
-LIBCONFIG = ../config/config.j ../config/version.j
-LIBMH = ../sbr/add.j ../sbr/addrsbr.j ../sbr/adios.j ../sbr/admonish.j \
- ../sbr/advertise.j ../sbr/advise.j ../sbr/ambigsw.j ../sbr/atooi.j \
- ../sbr/brkstring.j ../sbr/closefds.j ../sbr/concat.j ../sbr/copy.j \
- ../sbr/copyip.j ../sbr/cpydata.j ../sbr/cpydgst.j ../sbr/discard.j \
- ../sbr/done.j ../sbr/fdcompare.j ../sbr/fmtcompile.j \
- ../sbr/formataddr.j ../sbr/formatdef.j ../sbr/formatsbr.j \
- ../sbr/gans.j ../sbr/getans.j ../sbr/getanswer.j ../sbr/getcpy.j \
- ../sbr/help.j ../sbr/m_atoi.j ../sbr/m_backup.j ../sbr/m_convert.j \
- ../sbr/m_delete.j ../sbr/m_draft.j ../sbr/m_find.j ../sbr/m_fmsg.j \
- ../sbr/m_foil.j ../sbr/m_getdefs.j ../sbr/m_getfld.j \
- ../sbr/m_getfolder.j ../sbr/m_gmprot.j ../sbr/m_gmsg.j \
- ../sbr/m_maildir.j ../sbr/m_msgdef.j ../sbr/m_name.j \
- ../sbr/m_readefs.j ../sbr/m_remsg.j ../sbr/m_replace.j \
- ../sbr/m_scratch.j ../sbr/m_seq.j ../sbr/m_seqbits.j \
- ../sbr/m_seqflag.j ../sbr/m_seqnew.j ../sbr/m_setcur.j \
- ../sbr/m_setseq.j ../sbr/m_setvis.j ../sbr/m_sync.j ../sbr/m_tmpfil.j \
- ../sbr/m_update.j ../sbr/makedir.j ../sbr/path.j ../sbr/peekc.j \
- ../sbr/pidstatus.j ../sbr/pidwait.j ../sbr/printsw.j ../sbr/push.j \
- ../sbr/putenv.j ../sbr/pwd.j ../sbr/r1bindex.j ../sbr/refile.j \
- ../sbr/remdir.j ../sbr/showfile.j ../sbr/smatch.j ../sbr/sprintb.j \
- ../sbr/ssequal.j ../sbr/strindex.j ../sbr/trimcpy.j ../sbr/uleq.j \
- ../sbr/uprf.j ../sbr/vfgets.j
-LIBMTS = ../mts/sendmail/hosts.j ../mts/sendmail/smail.j
-LIBZOT = ../zotnet/bboards/getbbent.j ../zotnet/mf/mf.j \
- ../zotnet/tws/dtime.j ../zotnet/tws/dtimep.j ../zotnet/tws/lexstring.j \
- ../zotnet/mts/client.j ../zotnet/mts/lock.j ../zotnet/mts/mts.j
-
-all: libmh.so.$(VERSION) libconfig.sa libmh.sa libmts.sa libzot.sa
- /usr/dll/bin/verify-shlib -l libmh.so.$(VERSION) \
- libconfig.sa libmh.sa libmts.sa libzot.sa
-
-libmh.so.$(VERSION): jump.params $(LIBCONFIG) $(LIBMH) $(LIBMTS) $(LIBZOT)
- ar rc libconfig.a $(LIBCONFIG)
- ar rc libmh.a $(LIBMH)
- ar rc libmts.a $(LIBMTS)
- ar rc libzot.a $(LIBZOT)
- /usr/dll/bin/mkimage -l /lib/libmh -v $(VERSION) $(LIBDEFS) -- \
- libconfig.a libmh.a libmts.a libzot.a `cc --print` -lc
- rm -f libconfig.a libmh.a libmts.a libzot.a
-
-libconfig.sa libmh.sa libmts.sa libzot.sa: libmh.so.$(VERSION)
- /usr/dll/bin/mkstubs -l /lib/libmh -v $(VERSION) $(LIBDEFS) -- \
- libconfig libmh libmts libzot
-
-inst-all:
- cp libmh.so.$(VERSION) /lib
- /etc/ldconfig /lib
-
-clean:
- -rm *.[csoa] *.so.*.* *.sa verify.out
+++ /dev/null
-00000000 T _libpath libconfig config
-00000000 T _add libmh add
-00000000 T _adios libmh adios
-00000000 T _admonish libmh admonish
-00000000 T _getname libmh addrsbr
-00000000 T _getm libmh addrsbr
-00000000 T _mnfree libmh addrsbr
-00000000 T _auxformat libmh addrsbr
-00000000 T _adrsprintf libmh addrsbr
-00000000 T _ismymbox libmh addrsbr
-00000000 T _advertise libmh advertise
-00000000 T _advise libmh advise
-00000000 T _ambigsw libmh ambigsw
-00000000 T _atooi libmh atooi
-00000000 T _brkstring libmh brkstring
-00000000 T _closefds libmh closefds
-00000000 T _concat libmh concat
-00000000 T _copy libmh copy
-00000000 T _copyip libmh copyip
-00000000 T _cpydata libmh cpydata
-00000000 T _cpydgst libmh cpydgst
-00000000 T _discard libmh discard
-00000000 T _done libmh done
-00000000 T _fdcompare libmh fdcompare
-00000000 T _gans libmh gans
-00000000 T _getans libmh getans
-00000000 T _getanswer libmh getanswer
-00000000 T _getcpy libmh getcpy
-00000000 T _help libmh help
-00000000 T _fmt_compile libmh fmtcompile
-00000000 T _formataddr libmh formataddr
-00000000 T _new_fs libmh formatsbr
-00000000 T _fmtscan libmh formatsbr
-00000000 T _m_atoi libmh m_atoi
-00000000 T _m_backup libmh m_backup
-00000000 T _m_convert libmh m_convert
-00000000 T _m_delete libmh m_delete
-00000000 T _m_draft libmh m_draft
-00000000 T _m_find libmh m_find
-00000000 T _m_fmsg libmh m_fmsg
-00000000 T _m_foil libmh m_foil
-00000000 T _m_getdefs libmh m_getdefs
-00000000 T _m_getfld libmh m_getfld
-00000000 T _m_unknown libmh m_getfld
-00000000 T _m_eomsbr libmh m_getfld
-00000000 T _m_Eom libmh m_getfld
-00000000 T _unixline libmh m_getfld
-00000000 T _m_getfolder libmh m_getfolder
-00000000 T _m_gmprot libmh m_gmprot
-00000000 T _m_gmsg libmh m_gmsg
-00000000 T _m_maildir libmh m_maildir
-00000000 T _m_mailpath libmh m_maildir
-00000000 T _m_name libmh m_name
-00000000 T _m_readefs libmh m_readefs
-00000000 T _m_remsg libmh m_remsg
-00000000 T _m_replace libmh m_replace
-00000000 T _m_scratch libmh m_scratch
-00000000 T _m_seq libmh m_seq
-00000000 T _m_seqbits libmh m_seqbits
-00000000 T _m_seqflag libmh m_seqflag
-00000000 T _m_seqnew libmh m_seqnew
-00000000 T _m_seqadd libmh m_seqnew
-00000000 T _m_seqdel libmh m_seqnew
-00000000 T _m_setcur libmh m_setcur
-00000000 T _m_setseq libmh m_setseq
-00000000 T _m_setvis libmh m_setvis
-00000000 T _m_sync libmh m_sync
-00000000 T _m_tmpfil libmh m_tmpfil
-00000000 T _m_update libmh m_update
-00000000 T _makedir libmh makedir
-00000000 T _path libmh path
-00000000 T _peekc libmh peekc
-00000000 T _pidwait libmh pidwait
-00000000 T _pidstatus libmh pidstatus
-00000000 T _printsw libmh printsw
-00000000 T _push libmh push
-00000000 T _m_putenv libmh putenv
-00000000 T _unputenv libmh putenv
-00000000 T _pwd libmh pwd
-00000000 T _refile libmh refile
-00000000 T _remdir libmh remdir
-00000000 T _r1bindex libmh r1bindex
-00000000 T _showfile libmh showfile
-00000000 T _smatch libmh smatch
-00000000 T _sprintb libmh sprintb
-00000000 T _ssequal libmh ssequal
-00000000 T _stringdex libmh strindex
-00000000 T _trimcpy libmh trimcpy
-00000000 T _uleq libmh uleq
-00000000 T _uprf libmh uprf
-00000000 T _vfgets libmh vfgets
-00000000 T _OfficialName libmts hosts
-00000000 T _sm_init libmts smail
-00000000 T _sm_winit libmts smail
-00000000 T _sm_wadr libmts smail
-00000000 T _sm_waend libmts smail
-00000000 T _sm_wtxt libmts smail
-00000000 T _sm_wtend libmts smail
-00000000 T _sm_end libmts smail
-00000000 T __DUMMY__ libmts smail
-00000000 T _rp_string libmts smail
-00000000 T _EHLOset libmts smail
-00000000 T _mts_init libzot mts
-00000000 T _LocalName libzot mts
-00000000 T _SystemName libzot mts
-00000000 T _UucpChan libzot mts
-00000000 T _getusr libzot mts
-00000000 T _getfullname libzot mts
-00000000 T _dup2 libzot mts
-00000000 T _lkopen libzot lock
-00000000 T _lkclose libzot lock
-00000000 T _lkfopen libzot lock
-00000000 T _lkfclose libzot lock
-00000000 T _client libzot client
-00000000 T _gethostbystring libzot client
-00000000 T _setbbfile libzot getbbent
-00000000 T _setbbinfo libzot getbbent
-00000000 T _setpwinfo libzot getbbent
-00000000 T _setbbent libzot getbbent
-00000000 T _endbbent libzot getbbent
-00000000 T _getbbtime libzot getbbent
-00000000 T _getbbent libzot getbbent
-00000000 T _getbbnam libzot getbbent
-00000000 T _getbbaka libzot getbbent
-00000000 T _ldrbb libzot getbbent
-00000000 T _ldrchk libzot getbbent
-00000000 T _getbbcpy libzot getbbent
-00000000 T _getbbdist libzot getbbent
-00000000 T _getbberr libzot getbbent
-00000000 T _make_lower libzot getbbent
-00000000 T _dparsetime libzot dtimep
-00000000 T _lex_string libzot lexstring
-00000000 T _dtimenow libzot dtime
-00000000 T _dctime libzot dtime
-00000000 T _dtwstime libzot dtime
-00000000 T _dlocaltime libzot dtime
-00000000 T _dgmtime libzot dtime
-00000000 T _dasctime libzot dtime
-00000000 T _dtimezone libzot dtime
-00000000 T _twscopy libzot dtime
-00000000 T _twsort libzot dtime
-00000000 T _twclock libzot dtime
-00000000 T _set_dotw libzot dtime
-00000000 T _isfrom libzot mf
-00000000 T _lequal libzot mf
-00000000 T _seekadrx libzot mf
-00000000 T _uucpadrx libzot mf
-00000000 T _getadrx libzot mf
-00000000 T _legal_person libzot mf
-00000000 T _mfgets libzot mf
+++ /dev/null
-00000000 T _main libzot date
+++ /dev/null
-/usr/lib/libc.sa(__libc.o):00001000 a __GOT_SIZE
-/usr/lib/libc.sa(__libc.o):6008f0b0 A _AL
-/usr/lib/libc.sa(__libc.o):6008f198 A _AL_PARM
-/usr/lib/libc.sa(__libc.o):6008f060 A _AM
-/usr/lib/libc.sa(__libc.o):6008f0b4 A _BC
-/usr/lib/libc.sa(__libc.o):6008f064 A _BS
-/usr/lib/libc.sa(__libc.o):6008f0bc A _BT
-/usr/lib/libc.sa(__libc.o):6008f068 A _CA
-/usr/lib/libc.sa(__libc.o):6008f0c0 A _CD
-/usr/lib/libc.sa(__libc.o):6008f0c4 A _CE
-/usr/lib/libc.sa(__libc.o):6008f0c8 A _CL
-/usr/lib/libc.sa(__libc.o):6008f0cc A _CM
-/usr/lib/libc.sa(__libc.o):6008f048 A _COLS
-/usr/lib/libc.sa(__libc.o):6008f0d0 A _CR
-/usr/lib/libc.sa(__libc.o):6008f0d4 A _CS
-/usr/lib/libc.sa(__libc.o):6008f06c A _DA
-/usr/lib/libc.sa(__libc.o):6008f070 A _DB
-/usr/lib/libc.sa(__libc.o):6008f0d8 A _DC
-/usr/lib/libc.sa(__libc.o):6008f0dc A _DL
-/usr/lib/libc.sa(__libc.o):6008f19c A _DL_PARM
-/usr/lib/libc.sa(__libc.o):6008f0e0 A _DM
-/usr/lib/libc.sa(__libc.o):6008f0e4 A _DO
-/usr/lib/libc.sa(__libc.o):6008f1a4 A _DOWN_PARM
-/usr/lib/libc.sa(__libc.o):6008f03c A _Def_term
-/usr/lib/libc.sa(__libc.o):6008f0e8 A _ED
-/usr/lib/libc.sa(__libc.o):6008f0ec A _EI
-/usr/lib/libc.sa(__libc.o):6008f074 A _EO
-/usr/lib/libc.sa(__libc.o):6008f1b8 A _GT
-/usr/lib/libc.sa(__libc.o):6008f078 A _HC
-/usr/lib/libc.sa(__libc.o):6008f118 A _HO
-/usr/lib/libc.sa(__libc.o):6008f07c A _HZ
-/usr/lib/libc.sa(__libc.o):6008f11c A _IC
-/usr/lib/libc.sa(__libc.o):6008f120 A _IM
-/usr/lib/libc.sa(__libc.o):6008f080 A _IN
-/usr/lib/libc.sa(__libc.o):6008f124 A _IP
-/usr/lib/libc.sa(__libc.o):6008f0f0 A _K0
-/usr/lib/libc.sa(__libc.o):6008f0f4 A _K1
-/usr/lib/libc.sa(__libc.o):6008f0f8 A _K2
-/usr/lib/libc.sa(__libc.o):6008f0fc A _K3
-/usr/lib/libc.sa(__libc.o):6008f100 A _K4
-/usr/lib/libc.sa(__libc.o):6008f104 A _K5
-/usr/lib/libc.sa(__libc.o):6008f108 A _K6
-/usr/lib/libc.sa(__libc.o):6008f10c A _K7
-/usr/lib/libc.sa(__libc.o):6008f110 A _K8
-/usr/lib/libc.sa(__libc.o):6008f114 A _K9
-/usr/lib/libc.sa(__libc.o):6008f128 A _KD
-/usr/lib/libc.sa(__libc.o):6008f12c A _KE
-/usr/lib/libc.sa(__libc.o):6008f130 A _KH
-/usr/lib/libc.sa(__libc.o):6008f134 A _KL
-/usr/lib/libc.sa(__libc.o):6008f138 A _KR
-/usr/lib/libc.sa(__libc.o):6008f13c A _KS
-/usr/lib/libc.sa(__libc.o):6008f140 A _KU
-/usr/lib/libc.sa(__libc.o):6008f1a8 A _LEFT_PARM
-/usr/lib/libc.sa(__libc.o):6008f044 A _LINES
-/usr/lib/libc.sa(__libc.o):6008f144 A _LL
-/usr/lib/libc.sa(__libc.o):6008f148 A _MA
-/usr/lib/libc.sa(__libc.o):6008f300 A _MCAppPath
-/usr/lib/libc.sa(__libc.o):6008f084 A _MI
-/usr/lib/libc.sa(__libc.o):6008f088 A _MS
-/usr/lib/libc.sa(__libc.o):6008f030 A _My_term
-/usr/lib/libc.sa(__libc.o):6008f08c A _NC
-/usr/lib/libc.sa(__libc.o):6008f14c A _ND
-/usr/lib/libc.sa(__libc.o):6008f150 A _NL
-/usr/lib/libc.sa(__libc.o):6008f1bc A _NONL
-/usr/lib/libc.sa(__libc.o):6008f090 A _NS
-/usr/lib/libc.sa(__libc.o):6008f094 A _OS
-/usr/lib/libc.sa(__libc.o):6008f1b0 A _PC
-/usr/lib/libc.sa(__libc.o):6008f154 A _RC
-/usr/lib/libc.sa(__libc.o):6008f1ac A _RIGHT_PARM
-/usr/lib/libc.sa(__libc.o):6008f158 A _SC
-/usr/lib/libc.sa(__libc.o):6008f15c A _SE
-/usr/lib/libc.sa(__libc.o):6008f160 A _SF
-/usr/lib/libc.sa(__libc.o):6008f164 A _SO
-/usr/lib/libc.sa(__libc.o):6008f168 A _SR
-/usr/lib/libc.sa(__libc.o):6008f16c A _TA
-/usr/lib/libc.sa(__libc.o):6008f170 A _TE
-/usr/lib/libc.sa(__libc.o):6008f174 A _TI
-/usr/lib/libc.sa(__libc.o):6008f178 A _UC
-/usr/lib/libc.sa(__libc.o):6008f17c A _UE
-/usr/lib/libc.sa(__libc.o):6008f098 A _UL
-/usr/lib/libc.sa(__libc.o):6008f180 A _UP
-/usr/lib/libc.sa(__libc.o):6008f1c0 A _UPPERCASE
-/usr/lib/libc.sa(__libc.o):6008f1a0 A _UP_PARM
-/usr/lib/libc.sa(__libc.o):6008f188 A _US
-/usr/lib/libc.sa(__libc.o):6008f18c A _VB
-/usr/lib/libc.sa(__libc.o):6008f194 A _VE
-/usr/lib/libc.sa(__libc.o):6008f190 A _VS
-/usr/lib/libc.sa(__libc.o):6008f09c A _XB
-/usr/lib/libc.sa(__libc.o):6008f0a0 A _XN
-/usr/lib/libc.sa(__libc.o):6008f0a8 A _XS
-/usr/lib/libc.sa(__libc.o):6008f0a4 A _XT
-/usr/lib/libc.sa(__libc.o):6008f0ac A _XX
-/usr/lib/libc.sa(__libc.o):6008f2a4 A __IO_file_jumps
-/usr/lib/libc.sa(__libc.o):6008f1f4 A __IO_list_all
-/usr/lib/libc.sa(__libc.o):6008f2a8 A __IO_proc_jumps
-/usr/lib/libc.sa(__libc.o):6008f1ec A __IO_stderr_
-/usr/lib/libc.sa(__libc.o):6008f1e4 A __IO_stdin_
-/usr/lib/libc.sa(__libc.o):6008f1e8 A __IO_stdout_
-/usr/lib/libc.sa(__libc.o):6008f2ac A __IO_str_jumps
-/usr/lib/libc.sa(__libc.o):6008f214 A ____brk_addr
-/usr/lib/libc.sa(__libc.o):6008f01c A ___ctype_b
-/usr/lib/libc.sa(__libc.o):6008f020 A ___ctype_tolower
-/usr/lib/libc.sa(__libc.o):6008f024 A ___ctype_toupper
-/usr/lib/libc.sa(__libc.o):6008f1fc A ___environ
-/usr/lib/libc.sa(__libc.o):6008f250 A ___exit_funcs
-/usr/lib/libc.sa(__libc.o):6008f2f0 A ___glob_closedir_hook
-/usr/lib/libc.sa(__libc.o):6008f2f4 A ___glob_opendir_hook
-/usr/lib/libc.sa(__libc.o):6008f2f8 A ___glob_readdir_hook
-/usr/lib/libc.sa(__libc.o):6008f278 A ___ttyname
-/usr/lib/libc.sa(__libc.o):6008f238 A __collate_info
-/usr/lib/libc.sa(__libc.o):6008f23c A __ctype_info
-/usr/lib/libc.sa(__libc.o):6008f028 A __echoit
-/usr/lib/libc.sa(__libc.o):6008f034 A __endwin
-/usr/lib/libc.sa(__libc.o):6008f288 A __gdbm_fetch_val
-/usr/lib/libc.sa(__libc.o):6008f280 A __gdbm_file
-/usr/lib/libc.sa(__libc.o):6008f284 A __gdbm_memory
-/usr/lib/libc.sa(__libc.o):6008f240 A __monetary_info
-/usr/lib/libc.sa(__libc.o):6008f234 A __null_auth
-/usr/lib/libc.sa(__libc.o):6008f244 A __numeric_info
-/usr/lib/libc.sa(__libc.o):6008f2ec A __obstack
-/usr/lib/libc.sa(__libc.o):6008f1c8 A __pfast
-/usr/lib/libc.sa(__libc.o):6008f02c A __rawmode
-/usr/lib/libc.sa(__libc.o):6008f1dc A __res
-/usr/lib/libc.sa(__libc.o):6008f04c A __res_iflg
-/usr/lib/libc.sa(__libc.o):6008f050 A __res_lflg
-/usr/lib/libc.sa(__libc.o):6008f270 A __res_opcodes
-/usr/lib/libc.sa(__libc.o):6008f274 A __res_resultcodes
-/usr/lib/libc.sa(__libc.o):6008f248 A __response_info
-/usr/lib/libc.sa(__libc.o):6008f2fc A __sigintr
-/usr/lib/libc.sa(__libc.o):6008f00c A __sys_errlist
-/usr/lib/libc.sa(__libc.o):6008f010 A __sys_nerr
-/usr/lib/libc.sa(__libc.o):6008f014 A __sys_siglist
-/usr/lib/libc.sa(__libc.o):6008f24c A __time_info
-/usr/lib/libc.sa(__libc.o):6008f05c A __tty
-/usr/lib/libc.sa(__libc.o):6008f040 A __tty_ch
-/usr/lib/libc.sa(__libc.o):6008f1cc A __unctrl
-/usr/lib/libc.sa(__libc.o):6008f27c A __win
-/usr/lib/libc.sa(__libc.o):6008f058 A _curscr
-/usr/lib/libc.sa(__libc.o):6008f228 A _daylight
-/usr/lib/libc.sa(__libc.o):6008f200 A _errno
-/usr/lib/libc.sa(__libc.o):6008f1d0 A _gdbm_errno
-/usr/lib/libc.sa(__libc.o):6008f28c A _gdbm_version
-/usr/lib/libc.sa(__libc.o):6008f008 A _h_errlist
-/usr/lib/libc.sa(__libc.o):6008f1d8 A _h_errno
-/usr/lib/libc.sa(__libc.o):6008f2a0 A _h_nerr
-/usr/lib/libc.sa(__libc.o):6008f1c4 A _normtty
-/usr/lib/libc.sa(__libc.o):6008f204 A _optarg
-/usr/lib/libc.sa(__libc.o):6008f20c A _opterr
-/usr/lib/libc.sa(__libc.o):6008f208 A _optind
-/usr/lib/libc.sa(__libc.o):6008f2e4 A _optopt
-/usr/lib/libc.sa(__libc.o):6008f218 A _ospeed
-/usr/lib/libc.sa(__libc.o):6008f26c A _re_max_failures
-/usr/lib/libc.sa(__libc.o):6008f210 A _re_syntax_options
-/usr/lib/libc.sa(__libc.o):6008f1e0 A _rexecoptions
-/usr/lib/libc.sa(__libc.o):6008f230 A _rpc_createerr
-/usr/lib/libc.sa(__libc.o):6008f25c A _stderr
-/usr/lib/libc.sa(__libc.o):6008f254 A _stdin
-/usr/lib/libc.sa(__libc.o):6008f258 A _stdout
-/usr/lib/libc.sa(__libc.o):6008f054 A _stdscr
-/usr/lib/libc.sa(__libc.o):6008f2e8 A _svc_fdset
-/usr/lib/libc.sa(__libc.o):6008f224 A _timezone
-/usr/lib/libc.sa(__libc.o):6008f21c A _tputs_baud_rate
-/usr/lib/libc.sa(__libc.o):6008f038 A _ttytype
-/usr/lib/libc.sa(__libc.o):6008f220 A _tzname
+++ /dev/null
-Name=/lib/libmh
-Text=0x63f00000
-Data=0x00000000
-Jump=0x00001000
-GOT=0x00001000
-Version=3.0
+++ /dev/null
-63f1f1f8 D __NEEDS_SHRLIB_libc_4
+++ /dev/null
-00000078 D _options libconfig config
-00000018 D _anoyes libconfig config
-00000004 D _components libconfig config
-00000004 D _current libconfig config
-00000004 D _defalt libconfig config
-00000004 D _digestcomps libconfig config
-00000004 D _distcomps libconfig config
-00000004 D _draft libconfig config
-00000004 D _forwcomps libconfig config
-00000004 D _inbox libconfig config
-00000004 D _mh_defaults libconfig config
-00000004 D _mh_profile libconfig config
-00000004 D _mhlformat libconfig config
-00000004 D _mhlforward libconfig config
-00000004 D _nsequence libconfig config
-00000004 D _pfolder libconfig config
-00000004 D _psequence libconfig config
-00000004 D _rcvdistcomps libconfig config
-00000004 D _replcomps libconfig config
-00000004 D _usequence libconfig config
-00000004 D _mhlibdir libconfig config
-00000004 D _context libconfig config
-00000004 D _mh_seq libconfig config
-00000004 D _faceproc libconfig config
-00000004 D _fileproc libconfig config
-00000004 D _incproc libconfig config
-00000004 D _installproc libconfig config
-00000004 D _lproc libconfig config
-00000004 D _mailproc libconfig config
-00000004 D _moreproc libconfig config
-00000004 D _mhlproc libconfig config
-00000004 D _mshproc libconfig config
-00000004 D _packproc libconfig config
-00000004 D _postproc libconfig config
-00000004 D _rmfproc libconfig config
-00000004 D _rmmproc libconfig config
-00000004 D _sendproc libconfig config
-00000004 D _showproc libconfig config
-00000004 D _slocalproc libconfig config
-00000004 D _vmhproc libconfig config
-00000004 D _whatnowproc libconfig config
-00000004 D _whomproc libconfig config
-00000004 D _sysed libconfig config
-00000004 D _AliasFile libconfig config
-00000004 D _foldprot libconfig config
-00000004 D _msgprot libconfig config
-00000004 C _ctxflags libconfig config
-00000004 C _invo_name libconfig config
-00000004 C _mypath libconfig config
-00000004 C _defpath libconfig config
-00000004 C _ctxpath libconfig config
-00000004 C _m_defs libconfig config
-00000004 D _version libconfig version
-00000200 C _wantcomp libmh fmtcompile
-0000002c C _fmt_mnull libmh formatsbr
-00000004 D _fd_def libmh m_getdefs
-00000004 D _fd_ctx libmh m_getdefs
-00000004 D _fmt_norm libmh formatdef
-00000004 D _msg_count libmh m_msgdef
-00000004 D _msg_style libmh m_msgdef
-00000004 D _msg_delim libmh m_msgdef
-00000408 C _sm_reply libmts smail
-0000002c C _EHLOkeys libmts smail
-00000004 D _mmdfldir libzot mts
-00000004 D _mmdflfil libzot mts
-00000004 D _uucpldir libzot mts
-00000004 D _uucplfil libzot mts
-00000004 D _mmdlm1 libzot mts
-00000004 D _mmdlm2 libzot mts
-00000004 D _umincproc libzot mts
-00000004 D _lockstyle libzot mts
-00000004 D _lockldir libzot mts
-00000004 D _hostable libzot mts
-00000004 D _sendmail libzot mts
-00000004 D _clientname libzot mts
-00000004 D _servers libzot mts
-00000004 D _pophost libzot mts
-00000004 D _bb_domain libzot mts
-00000004 D __DUMMY__ libzot mts
-00000004 D __DUMMY__ libzot mts
-00000004 D __DUMMY__ libzot mts
-00000004 D _maildelivery libzot mts
-00000004 D _Everyone libzot mts
-00000004 D _NoShell libzot mts
-00000004 D _europeandate libzot dtimep
-00000360 D _yyvstop libzot dtimep
-00002488 D _yycrank libzot dtimep
-000013b0 D _yysvec libzot dtimep
-00000004 D _yytop libzot dtimep
-00000004 D _yybgin libzot dtimep
-00000104 D _yymatch libzot dtimep
-00000034 D _yyextra libzot dtimep
-00000034 D _tw_moty libzot dtime
-00000020 D _tw_dotw libzot dtime
-00000020 D _tw_ldotw libzot dtime
+++ /dev/null
-# @(#)$Id: MH,v 1.7 90/04/06 09:44:31 sources Exp $
-# Linux i386
-bin /usr/bin/mh
-bboards off
-etc /usr/lib/mh
-mail /usr/spool/mail
-mandir /usr/man
-manuals standard
-chown /bin/chown
-cc cc
-ccoptions -traditional -D_NFILE='getdtablesize()' -DSIGEMT=SIGUSR1 -O2
-ldoptions
-ldoptlibs -ldbm
-lex flex
-ranlib on
-mts sendmail/smtp
-bbdelivery off
-bbhome /usr/spool/bboards
-pop on
-popdir /usr/sbin
-signal void
-sprintf int
-mailgroup mail
-# MH has never worked properly with terminfo, to my knowledge. It looks
-# like vmh still tries to play the internals game, which is bound to fail.
-curses -lcurses -ltermcap
-# This is POSIX. Building Linux software for BSD is almost always a mistake.
-options SYS5 MORE='"/usr/bin/more"' RENAME SYS5DIR UNISTD SVR4 MIME
-options VSPRINTF MHE OVERHEAD RPATHS DUMB ATHENA BIND SOCKETS NTOHLSWAP
-options DPOP POP2 RPOP MHRC
\ No newline at end of file
+++ /dev/null
-mmdfldir: @(MHDROPATH)
-mmdflfil: @(MHDROPFIL)
-uucpldir: /usr/spool/mail
-uucplfil:
-mmdelim1: \001\001\001\001\n
-mmdelim2: \001\001\001\001\n
-mmailid: 0
-umincproc:
-lockldir:
-
-hostable: @(MHETCPATH)/hosts
-sendmail: /usr/lib/sendmail
+++ /dev/null
-# include <stdio.h>
-static int start_cond = 0;
-#define BEGIN start_cond =
-struct yysvf {
- struct yywork *yystoff;
- struct yysvf *yyother;
- int *yystops;};
-# define Z 2
-#ifndef lint
-static char ident[] = "@(#)$Id: dtimep.lex,v 2.15 1993/02/26 22:07:40 jromine Exp $";
-#endif
-#include "tws.h"
-#include "../h/strings.h"
-#include <ctype.h>
-#include <sys/types.h>
-#if !defined(SYS5) && !defined(ZONEINFO)
-#include <sys/timeb.h>
-#endif /* !defined(SYS5) && !defined(ZONEINFO) */
-
-#ifdef SYS5
-extern int daylight;
-extern long timezone;
-extern char *tzname[];
-#endif /* SYS5 */
-
-
-# line 54 "dtimep.lex"
-/*
- * Patchable flag that says how to interpret NN/NN/NN dates. When
- * true, we do it European style: DD/MM/YY. When false, we do it
- * American style: MM/DD/YY. Of course, these are all non-RFC822
- * compliant.
- */
-int europeandate = 0;
-
-
-# line 62 "dtimep.lex"
-/*
- * Table to convert month names to numeric month. We use the
- * fact that the low order 5 bits of the sum of the 2nd & 3rd
- * characters of the name is a hash with no collisions for the 12
- * valid month names. (The mask to 5 bits maps any combination of
- * upper and lower case into the same hash value).
- */
-static int month_map[] = {
- 0,
- 6, /* 1 - Jul */
- 3, /* 2 - Apr */
- 5, /* 3 - Jun */
- 0,
- 10, /* 5 - Nov */
- 0,
- 1, /* 7 - Feb */
- 11, /* 8 - Dec */
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0, /*15 - Jan */
- 0,
- 0,
- 0,
- 2, /*19 - Mar */
- 0,
- 8, /*21 - Sep */
- 0,
- 9, /*23 - Oct */
- 0,
- 0,
- 4, /*26 - May */
- 0,
- 7 /*28 - Aug */
-};
-
-# line 100 "dtimep.lex"
-/*
- * Same trick for day-of-week using the hash function
- * (c1 & 7) + (c2 & 4)
- */
-static int day_map[] = {
- 0,
- 0,
- 0,
- 6, /* 3 - Sat */
- 4, /* 4 - Thu */
- 0,
- 5, /* 6 - Fri */
- 0, /* 7 - Sun */
- 2, /* 8 - Tue */
- 1 /* 9 - Mon */,
- 0,
- 3 /*11 - Wed */
-};
-#define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
- tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
- cp += 2; }
-#define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
- cp += 2;\
- SKIPD;}
-#define CVT1OR2 (i=(*cp++ - '0'), isdigit(*cp)? i*10 + (*cp++ - '0') : i)
-#define CVT2 ((cp[0] - '0')*10 + (cp[1] - '0'))
-#define CVT4 ((((cp[0] - '0')*10 + (cp[1] - '0'))*10 + \
- (cp[2] - '0'))*10 + (cp[3] - '0'))
-#define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
-#define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
-#define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
-#define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
-#define LC(c) (isupper (c) ? tolower (c) : (c))
-
-#ifdef DSTXXX
-#ifdef _AIX
-#include <sys/time.h>
-#include <time.h>
-#else
-#ifndef BSD42
-#include <time.h>
-#else /* BSD42 */
-#include <sys/time.h>
-#endif /* BSD42 */
-#endif
-
-static zonehack (tw)
-register struct tws *tw;
-{
- register struct tm *tm;
-
- if (twclock (tw) == -1L)
- return;
-
- tm = localtime (&tw -> tw_clock);
- if (tm -> tm_isdst) {
- tw -> tw_flags |= TW_DST;
- tw -> tw_zone -= 60;
- }
-}
-#endif /* DSTXXX */
-struct tws *dparsetime (str)
- char *str;
-{
- register int i;
- static struct tws tw;
- register char *cp;
- register int gotdate = 0;
-#ifndef SYS5
-#ifdef ZONEINFO
- struct tm *tm;
- time_t clock;
-#else
- struct timeb tb;
-#endif /* ZONEINFO */
-#endif /* not SYS5 */
- long tclock;
-
- start_cond = 0;
-
- /* Zero out the struct. */
- bzero( (char *) &tw, sizeof tw);
-
- /* Set default time zone. */
-#ifdef SYS5
- tzset( );
- tw.tw_zone = -(timezone / 60);
-#else
-#ifdef ZONEINFO
- time (&clock);
- tm = localtime(&clock);
- tw.tw_zone = tm->tm_gmtoff / 60;
- if (tm -> tm_isdst) /* if DST is in effect */
- tw.tw_zone -= 60; /* reset to normal offset */
-#else
- ftime( &tb );
- tw.tw_zone = -tb.timezone;
-#endif /* ZONEINFO */
-#endif /* SYS5 */
-
- while (isspace(*str))
- str++;
- while ( 1 )
- switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
-
- case -1:
- if (!gotdate || tw.tw_year == 0)
- return (struct tws *)0;
- /* fall through */
- case 0:
- if ( tw.tw_year == 0 ) {
- /* Set default year. */
- time (&tclock);
- tw.tw_year = localtime(&tclock)->tm_year + 1900;
- }
- else if (tw.tw_year < 100) {
- /* assume no 2-digit years > 1999 */
- tw.tw_year += 1900;
- }
- return &tw;
-
-case 1:
-
-# line 224 "dtimep.lex"
- SETDAY;
-break;
-case 2:
-
-# line 225 "dtimep.lex"
- {
- cp++;
- SETDAY;
- }
-break;
-case 3:
-
-# line 229 "dtimep.lex"
-{
- if (europeandate) {
- /* European: DD/MM/YY */
- tw.tw_mday = CVT1OR2;
- cp++;
- tw.tw_mon = CVT1OR2 - 1;
- } else {
- /* American: MM/DD/YY */
- tw.tw_mon = CVT1OR2 - 1;
- cp++;
- tw.tw_mday = CVT1OR2;
- }
- cp++;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i;
- gotdate++; /* XXX */
- }
-break;
-case 4:
-
-# line 247 "dtimep.lex"
- {
- if (europeandate) {
- tw.tw_mday = CVT1OR2; cp++;
- tw.tw_mon = CVT1OR2 - 1;
- } else {
- tw.tw_mon = CVT1OR2 - 1; cp++;
- tw.tw_mday = CVT1OR2;
- }
- gotdate++;
- }
-break;
-case 5:
-
-# line 257 "dtimep.lex"
-{
- tw.tw_mday = CVT1OR2;
- while ( !isalpha(*cp++) )
- ;
- SETMONTH;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i;
- }
-break;
-case 6:
-
-# line 266 "dtimep.lex"
- {
- tw.tw_mday = CVT1OR2;
- while ( ! isalpha( *cp++ ) )
- ;
- SETMONTH;
- }
-break;
-case 7:
-
-# line 272 "dtimep.lex"
-{
- cp++;
- SETMONTH;
- tw.tw_mday = CVT1OR2;
- SKIPD;
- for (i = 0; isdigit(*cp); )
- i = i*10 + (*cp++ - '0');
- tw.tw_year = i;
- }
-break;
-case 8:
-
-# line 281 "dtimep.lex"
- {
- cp++;
- SETMONTH;
- tw.tw_mday = CVT1OR2;
- }
-break;
-case 9:
-
-# line 287 "dtimep.lex"
- { /* hack: ctime w/o TZ */
- tw.tw_hour = CVT1OR2; cp++;
- tw.tw_min = CVT1OR2; cp++;
- tw.tw_sec = CVT1OR2;
- SKIPD;
- tw.tw_year = CVT4; cp+=4;
- }
-break;
-case 10:
-
-# line 294 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- tw.tw_min = CVT1OR2; cp++;
- tw.tw_sec = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 11:
-
-# line 300 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- tw.tw_min = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 12:
-
-# line 305 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- if (tw.tw_hour == 12)
- tw.tw_hour = 0;
- tw.tw_min = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 13:
-
-# line 312 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- if (tw.tw_hour == 12)
- tw.tw_hour = 0;
- tw.tw_min = CVT1OR2; cp++;
- tw.tw_sec = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 14:
-
-# line 320 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- if (tw.tw_hour != 12)
- tw.tw_hour += 12;
- tw.tw_min = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 15:
-
-# line 327 "dtimep.lex"
- {
- tw.tw_hour = CVT1OR2; cp++;
- if (tw.tw_hour != 12)
- tw.tw_hour += 12;
- tw.tw_min = CVT1OR2; cp++;
- tw.tw_sec = CVT1OR2;
- BEGIN Z;
- }
-break;
-case 16:
-
-# line 335 "dtimep.lex"
- {
- tw.tw_hour = CVT2; cp+=2;
- tw.tw_min = CVT2; cp+=2;
- tw.tw_sec = CVT2; cp+=2;
- BEGIN Z;
- }
-break;
-case 17:
-
-# line 341 "dtimep.lex"
- {
- /*
- * Luckly, 4 digit times in the range
- * 1960-1999 aren't legal as hour
- * and minutes.
- */
- tw.tw_year = CVT4; cp+=4;
- }
-break;
-case 18:
-
-# line 349 "dtimep.lex"
- {
- if (tw.tw_hour || tw.tw_min
- || tw.tw_sec) {
- tw.tw_year = CVT4; cp+=4;
- tw.tw_zone = 0;
- } else {
- tw.tw_hour = CVT2; cp+=2;
- tw.tw_min = CVT2; cp+=2;
- BEGIN Z;
- }
- }
-break;
-case 19:
-
-# line 360 "dtimep.lex"
- ZONE(0 * 60);
-break;
-case 20:
-
-# line 361 "dtimep.lex"
- ZONE(0 * 60);
-break;
-case 21:
-
-# line 362 "dtimep.lex"
- ZONE(2 * 60);
-break;
-case 22:
-
-# line 363 "dtimep.lex"
- ZONED(2 * 60);
-break;
-case 23:
-
-# line 364 "dtimep.lex"
- ZONE(-5 * 60);
-break;
-case 24:
-
-# line 365 "dtimep.lex"
- ZONED(-5 * 60);
-break;
-case 25:
-
-# line 366 "dtimep.lex"
- ZONE(-6 * 60);
-break;
-case 26:
-
-# line 367 "dtimep.lex"
- ZONED(-6 * 60);
-break;
-case 27:
-
-# line 368 "dtimep.lex"
- ZONE(-7 * 60);
-break;
-case 28:
-
-# line 369 "dtimep.lex"
- ZONED(-7 * 60);
-break;
-case 29:
-
-# line 370 "dtimep.lex"
- ZONE(-8 * 60);
-break;
-case 30:
-
-# line 371 "dtimep.lex"
- ZONED(-8 * 60);
-break;
-case 31:
-
-# line 372 "dtimep.lex"
- ZONE(-(3 * 60 + 30));
-break;
-case 32:
-
-# line 373 "dtimep.lex"
- ZONE(-4 * 60);
-break;
-case 33:
-
-# line 374 "dtimep.lex"
- ZONED(-4 * 60);
-break;
-case 34:
-
-# line 375 "dtimep.lex"
- ZONE(-9 * 60);
-break;
-case 35:
-
-# line 376 "dtimep.lex"
- ZONED(-9 * 60);
-break;
-case 36:
-
-# line 377 "dtimep.lex"
- ZONE(-10 * 60);
-break;
-case 37:
-
-# line 378 "dtimep.lex"
- ZONED(-10 * 60);
-break;
-case 38:
-
-# line 379 "dtimep.lex"
- ZONED(-1 * 60);
-break;
-case 39:
-
-# line 380 "dtimep.lex"
- {
- tw.tw_zone = 60 * (('a'-1) - LC(*cp));
- EXPZONE;
- }
-break;
-case 40:
-
-# line 384 "dtimep.lex"
- {
- tw.tw_zone = 60 * ('a' - LC(*cp));
- EXPZONE;
- }
-break;
-case 41:
-
-# line 388 "dtimep.lex"
- {
- tw.tw_zone = 60 * (LC(*cp) - 'm');
- EXPZONE;
- }
-break;
-case 42:
-
-# line 392 "dtimep.lex"
- {
- cp++;
- tw.tw_zone = ((cp[0] * 10 + cp[1])
- -('0' * 10 + '0'))*60
- +((cp[2] * 10 + cp[3])
- -('0' * 10 + '0'));
- EXPZONE;
-#ifdef DSTXXX
- zonehack (&tw);
-#endif /* DSTXXX */
- cp += 4;
- }
-break;
-case 43:
-
-# line 404 "dtimep.lex"
- {
- cp++;
- tw.tw_zone = (('0' * 10 + '0')
- -(cp[0] * 10 + cp[1]))*60
- +(('0' * 10 + '0')
- -(cp[2] * 10 + cp[3]));
- EXPZONE;
-#ifdef DSTXXX
- zonehack (&tw);
-#endif /* DSTXXX */
- cp += 4;
- }
-break;
-case 44:
-
-# line 416 "dtimep.lex"
- {
- SKIPD;
- tw.tw_year = CVT4; cp+=4;
- }
-break;
-case 45:
-
-# line 420 "dtimep.lex"
-case 46:
-
-# line 421 "dtimep.lex"
-;
-break;
- default: return(0);
-} }
-/* end of yylex */
-int yyvstop[] = {
-0,
-
-46,
-0,
-
-45,
-0,
-
-46,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-39,
-0,
-
-40,
-0,
-
-40,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-41,
-0,
-
-19,
-0,
-
-4,
-0,
-
-4,
-0,
-
-11,
-0,
-
-1,
-0,
-
-1,
-0,
-
-1,
-0,
-
-1,
-0,
-
-1,
-0,
-
-1,
-0,
-
-1,
-0,
-
-33,
-0,
-
-32,
-0,
-
-38,
-0,
-
-26,
-0,
-
-25,
-0,
-
-24,
-0,
-
-23,
-0,
-
-20,
-0,
-
-37,
-0,
-
-36,
-0,
-
-22,
-0,
-
-21,
-0,
-
-28,
-0,
-
-27,
-0,
-
-31,
-0,
-
-30,
-0,
-
-29,
-0,
-
-35,
-0,
-
-34,
-0,
-
-4,
-0,
-
-4,
-0,
-
-4,
-0,
-
-18,
-0,
-
-11,
-0,
-
-11,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-6,
-0,
-
-17,
-18,
-0,
-
-1,
-0,
-
-2,
-0,
-
-18,
-0,
-
-10,
-0,
-
-12,
-0,
-
-14,
-0,
-
-6,
-0,
-
-17,
-18,
-0,
-
-8,
-0,
-
-44,
-0,
-
-42,
-0,
-
-43,
-0,
-
-2,
-0,
-
-3,
-0,
-
-16,
-0,
-
-10,
-0,
-
-10,
-0,
-
-5,
-0,
-
-8,
-0,
-
-8,
-0,
-
-1,
-0,
-
-3,
-0,
-
-3,
-0,
-
-13,
-0,
-
-15,
-0,
-
-6,
-0,
-
-5,
-0,
-
-5,
-0,
-
-5,
-0,
-
-5,
-0,
-
-7,
-0,
-
-9,
-0,
-
-7,
-0,
-
-7,
-0,
-0};
-# define YYTYPE int
-struct yywork { YYTYPE verify, advance; } yycrank[] = {
-0,0, 0,0, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 0,0, 1,5, 1,6,
-5,5, 0,0, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 1,5, 0,0, 5,5,
-3,21, 3,6, 0,0, 0,0,
-0,0, 1,7, 0,0, 0,0,
-0,0, 0,0, 0,0, 0,0,
-0,0, 1,8, 1,9, 1,8,
-1,10, 1,10, 1,10, 1,10,
-1,10, 1,10, 1,10, 3,21,
-9,63, 22,83, 22,83, 0,0,
-0,0, 0,0, 0,0, 3,7,
-0,0, 0,0, 3,22, 0,0,
-3,23, 0,0, 0,0, 3,8,
-3,9, 3,8, 3,10, 3,10,
-3,10, 3,10, 3,10, 3,10,
-3,10, 10,64, 10,64, 10,64,
-10,64, 10,64, 10,64, 10,64,
-10,64, 10,64, 10,64, 0,0,
-0,0, 0,0, 1,11, 15,72,
-59,143, 1,12, 14,70, 1,13,
-12,67, 13,68, 17,75, 1,14,
-19,79, 20,81, 1,15, 1,16,
-1,17, 15,73, 11,65, 16,74,
-1,18, 1,19, 13,69, 11,66,
-1,20, 19,80, 14,71, 25,99,
-3,24, 3,25, 3,26, 3,27,
-3,28, 3,29, 3,30, 3,31,
-3,32, 3,33, 3,34, 3,34,
-3,35, 3,36, 3,37, 3,38,
-3,39, 3,39, 3,40, 3,41,
-3,42, 3,39, 3,43, 3,39,
-3,44, 7,45, 8,50, 18,76,
-26,100, 28,102, 30,104, 18,77,
-7,46, 24,97, 42,114, 45,117,
-31,105, 21,21, 7,47, 7,48,
-23,84, 23,84, 7,49, 26,101,
-28,103, 24,65, 38,112, 18,78,
-24,98, 8,50, 24,66, 31,106,
-36,74, 46,118, 49,123, 56,139,
-36,111, 57,140, 55,137, 60,144,
-21,21, 38,113, 8,51, 55,138,
-8,52, 8,53, 8,53, 8,53,
-8,53, 8,53, 8,53, 8,53,
-8,53, 8,53, 8,53, 8,54,
-21,82, 21,82, 21,82, 21,82,
-21,82, 21,82, 21,82, 21,82,
-21,82, 21,82, 47,119, 61,145,
-62,146, 23,85, 23,86, 23,87,
-44,115, 23,88, 35,72, 23,89,
-23,90, 35,109, 23,91, 50,50,
-33,70, 23,92, 23,93, 33,107,
-23,94, 58,141, 47,120, 44,116,
-35,73, 23,95, 65,148, 48,121,
-35,110, 23,96, 8,55, 51,124,
-66,149, 8,56, 33,108, 8,57,
-33,71, 67,150, 50,50, 8,58,
-48,122, 58,142, 8,59, 8,60,
-8,61, 68,151, 69,152, 70,153,
-8,62, 73,158, 71,154, 50,124,
-71,155, 74,159, 51,124, 52,134,
-52,134, 52,134, 52,134, 52,134,
-52,134, 52,134, 52,134, 52,134,
-52,134, 75,160, 76,161, 77,162,
-78,163, 79,164, 51,133, 51,133,
-51,133, 51,133, 51,133, 51,133,
-51,133, 51,133, 51,133, 51,133,
-53,135, 53,135, 53,135, 53,135,
-53,135, 53,135, 53,135, 53,135,
-53,135, 53,135, 54,136, 54,136,
-54,136, 54,136, 54,136, 54,136,
-54,136, 54,136, 54,136, 54,136,
-72,156, 80,165, 81,166, 50,125,
-93,111, 85,97, 50,126, 72,157,
-50,127, 97,170, 91,107, 92,109,
-50,128, 64,50, 98,171, 50,129,
-50,130, 50,131, 99,172, 51,55,
-85,98, 50,132, 51,56, 100,173,
-51,57, 91,108, 92,110, 101,174,
-51,58, 102,175, 103,176, 51,59,
-51,60, 51,61, 104,177, 105,178,
-64,50, 51,62, 63,135, 63,135,
-63,135, 63,135, 63,135, 63,135,
-63,147, 63,147, 63,147, 63,147,
-106,179, 64,51, 107,180, 64,52,
-82,167, 82,167, 82,167, 82,167,
-82,167, 82,167, 82,167, 82,167,
-82,167, 82,167, 64,54, 83,168,
-83,168, 83,168, 83,168, 83,168,
-83,168, 83,168, 83,168, 83,168,
-83,168, 84,169, 84,169, 84,169,
-84,169, 84,169, 84,169, 84,169,
-84,169, 84,169, 84,169, 108,181,
-109,182, 110,183, 111,184, 112,185,
-113,186, 115,187, 116,188, 117,189,
-118,190, 119,191, 120,192, 121,193,
-122,194, 123,195, 124,124, 126,198,
-125,196, 64,55, 127,199, 128,200,
-64,56, 125,197, 64,57, 129,202,
-130,203, 131,204, 64,58, 132,205,
-133,206, 64,59, 64,60, 64,61,
-137,216, 138,217, 139,218, 64,62,
-140,219, 124,124, 141,220, 128,201,
-134,206, 135,210, 135,210, 135,210,
-135,210, 135,210, 135,210, 135,210,
-135,210, 135,210, 135,210, 133,206,
-142,221, 143,223, 142,222, 144,225,
-145,226, 146,227, 153,236, 155,157,
-143,224, 158,238, 159,239, 134,206,
-133,207, 160,240, 162,242, 133,208,
-133,208, 133,208, 133,208, 133,208,
-133,208, 133,208, 133,208, 133,208,
-133,208, 148,229, 134,207, 134,209,
-134,209, 134,209, 134,209, 134,209,
-134,209, 134,209, 134,209, 134,209,
-134,209, 136,211, 147,228, 147,228,
-147,228, 147,228, 147,228, 147,228,
-147,228, 147,228, 147,228, 147,228,
-148,229, 149,229, 124,125, 150,229,
-154,229, 124,126, 163,243, 124,127,
-190,252, 192,254, 196,258, 124,128,
-136,211, 191,250, 124,129, 124,130,
-124,131, 151,229, 156,229, 152,234,
-124,132, 157,229, 161,234, 164,234,
-149,229, 165,234, 150,229, 154,229,
-136,212, 136,212, 136,212, 136,212,
-136,212, 136,212, 136,212, 136,212,
-136,212, 136,212, 136,213, 166,234,
-151,229, 156,229, 152,234, 194,250,
-157,229, 161,234, 164,234, 189,250,
-165,234, 195,250, 193,250, 197,259,
-198,260, 199,261, 152,234, 200,262,
-203,267, 161,234, 164,234, 201,263,
-165,234, 201,264, 166,234, 167,247,
-167,247, 167,247, 167,247, 167,247,
-167,247, 167,247, 167,247, 167,247,
-167,247, 148,230, 166,234, 204,268,
-205,269, 136,214, 168,248, 168,248,
-168,248, 168,248, 168,248, 168,248,
-168,248, 168,248, 168,248, 168,248,
-206,206, 191,253, 208,207, 209,207,
-136,215, 212,213, 214,274, 150,232,
-169,249, 169,249, 169,249, 169,249,
-169,249, 169,249, 169,249, 169,249,
-169,249, 169,249, 189,251, 202,265,
-156,237, 149,231, 152,235, 206,206,
-210,271, 211,211, 202,266, 215,275,
-154,157, 194,256, 195,257, 220,283,
-222,224, 225,285, 151,233, 193,255,
-226,286, 227,287, 230,157, 231,290,
-164,244, 232,291, 161,241, 165,245,
-233,292, 235,293, 236,294, 210,271,
-211,211, 237,157, 238,295, 239,296,
-166,246, 207,270, 207,270, 207,270,
-207,270, 207,270, 207,270, 207,270,
-207,270, 207,270, 207,270, 210,272,
-210,272, 210,272, 210,272, 210,272,
-210,272, 210,272, 210,272, 210,272,
-210,272, 213,273, 213,273, 213,273,
-213,273, 213,273, 213,273, 213,273,
-213,273, 213,273, 213,273, 240,297,
-228,288, 234,234, 241,298, 242,299,
-243,300, 244,301, 245,302, 216,276,
-246,303, 247,304, 247,304, 247,304,
-247,304, 247,304, 247,304, 247,304,
-247,304, 247,304, 247,304, 250,307,
-251,308, 252,309, 217,276, 228,288,
-234,234, 253,310, 254,311, 255,312,
-256,313, 211,214, 216,276, 257,314,
-276,330, 258,266, 260,266, 279,224,
-218,276, 265,266, 280,332, 281,333,
-282,334, 283,335, 284,224, 216,277,
-211,215, 217,276, 216,278, 216,278,
-216,278, 216,278, 216,278, 216,278,
-216,278, 216,278, 216,278, 216,278,
-258,266, 260,266, 217,277, 218,276,
-265,266, 217,278, 217,278, 217,278,
-217,278, 217,278, 217,278, 217,278,
-217,278, 217,278, 217,278, 219,276,
-218,277, 259,266, 285,336, 218,278,
-218,278, 218,278, 218,278, 218,278,
-218,278, 218,278, 218,278, 218,278,
-218,278, 264,266, 263,266, 286,337,
-287,338, 290,157, 291,342, 292,343,
-293,344, 294,345, 219,276, 296,346,
-259,266, 221,276, 266,266, 271,271,
-297,347, 274,274, 262,266, 216,279,
-298,348, 299,349, 301,350, 219,277,
-264,266, 263,266, 219,278, 219,278,
-219,278, 219,278, 219,278, 219,278,
-219,278, 219,278, 219,278, 219,278,
-221,276, 266,266, 271,271, 223,276,
-274,274, 262,266, 260,317, 265,320,
-218,281, 258,315, 217,280, 261,266,
-268,266, 221,277, 269,266, 275,275,
-221,278, 221,278, 221,278, 221,278,
-221,278, 221,278, 221,278, 221,278,
-221,278, 221,278, 223,276, 302,351,
-303,352, 224,276, 267,266, 288,288,
-308,353, 310,354, 261,266, 268,266,
-312,355, 269,266, 275,275, 223,277,
-229,229, 313,356, 223,278, 223,278,
-223,278, 223,278, 223,278, 223,278,
-223,278, 223,278, 223,278, 223,278,
-224,276, 267,266, 288,288, 314,357,
-219,282, 264,266, 315,266, 316,358,
-317,359, 259,316, 318,360, 229,229,
-319,361, 224,277, 320,266, 321,362,
-224,278, 224,278, 224,278, 224,278,
-224,278, 224,278, 224,278, 224,278,
-224,278, 224,278, 263,266, 229,289,
-229,289, 229,289, 229,289, 229,289,
-229,289, 229,289, 229,289, 229,289,
-229,289, 221,224, 262,319, 322,363,
-323,364, 223,284, 248,305, 248,305,
-248,305, 248,305, 248,305, 248,305,
-248,305, 248,305, 248,305, 248,305,
-249,306, 249,306, 249,306, 249,306,
-249,306, 249,306, 249,306, 249,306,
-249,306, 249,306, 268,322, 328,368,
-261,318, 329,369, 330,370, 332,224,
-273,326, 269,323, 267,321, 270,324,
-270,324, 270,324, 270,324, 270,324,
-270,324, 270,324, 270,324, 270,324,
-270,324, 272,325, 272,325, 272,325,
-272,325, 272,325, 272,325, 272,325,
-272,325, 272,325, 272,325, 273,326,
-333,373, 334,374, 277,277, 278,331,
-278,331, 278,331, 278,331, 278,331,
-278,331, 278,331, 278,331, 278,331,
-278,331, 324,365, 325,325, 273,327,
-273,327, 273,327, 273,327, 273,327,
-273,327, 273,327, 273,327, 273,327,
-273,327, 277,277, 335,375, 336,376,
-289,339, 337,377, 338,378, 341,340,
-342,380, 343,381, 344,234, 345,157,
-324,365, 325,325, 346,382, 347,157,
-348,383, 277,278, 277,278, 277,278,
-277,278, 277,278, 277,278, 277,278,
-277,278, 277,278, 277,278, 289,339,
-324,366, 324,366, 324,366, 324,366,
-324,366, 324,366, 324,366, 324,366,
-324,366, 324,366, 326,326, 289,340,
-273,328, 327,326, 331,371, 289,341,
-289,341, 289,341, 289,341, 289,341,
-289,341, 289,341, 289,341, 289,341,
-289,341, 339,339, 340,379, 273,329,
-349,384, 350,385, 352,386, 353,250,
-354,387, 326,326, 355,388, 357,389,
-327,326, 331,371, 358,266, 359,390,
-360,391, 361,392, 362,393, 363,394,
-364,395, 365,365, 367,396, 373,399,
-339,339, 340,379, 326,367, 374,400,
-375,224, 331,372, 331,372, 331,372,
-331,372, 331,372, 331,372, 331,372,
-331,372, 331,372, 331,372, 368,368,
-369,369, 370,370, 371,371, 376,401,
-365,365, 366,365, 366,365, 366,365,
-366,365, 366,365, 366,365, 366,365,
-366,365, 366,365, 366,365, 377,224,
-378,402, 384,404, 386,405, 389,406,
-390,407, 391,408, 368,368, 369,369,
-370,370, 371,371, 392,266, 379,379,
-393,409, 394,266, 395,410, 397,412,
-402,413, 410,415, 326,328, 398,371,
-412,412, 327,328, 372,398, 372,398,
-372,398, 372,398, 372,398, 372,398,
-372,398, 372,398, 372,398, 372,398,
-0,0, 326,329, 379,379, 0,0,
-327,329, 396,411, 396,411, 396,411,
-396,411, 0,0, 398,371, 412,412,
-0,0, 0,0, 0,0, 414,417,
-417,417, 0,0, 379,403, 379,403,
-379,403, 379,403, 379,403, 379,403,
-379,403, 379,403, 379,403, 379,403,
-403,414, 403,414, 403,414, 403,414,
-403,414, 403,414, 403,414, 403,414,
-403,414, 403,414, 414,417, 417,417,
-0,0, 0,0, 371,397, 411,416,
-411,416, 411,416, 411,416, 411,416,
-411,416, 411,416, 411,416, 411,416,
-411,416, 0,0, 414,418, 414,418,
-414,418, 414,418, 414,418, 414,418,
-414,418, 414,418, 414,418, 414,418,
-418,417, 418,417, 418,417, 418,417,
-418,417, 418,417, 418,417, 418,417,
-418,417, 418,417, 0,0, 0,0,
-0,0};
-struct yysvf yysvec[] = {
-0, 0, 0,
-yycrank+1, 0, 0,
-yycrank+0, yysvec+1, 0,
-yycrank+27, 0, 0,
-yycrank+0, yysvec+3, 0,
-yycrank+3, 0, yyvstop+1,
-yycrank+0, 0, yyvstop+3,
-yycrank+47, 0, 0,
-yycrank+141, 0, 0,
-yycrank+3, yysvec+8, 0,
-yycrank+37, yysvec+8, 0,
-yycrank+2, 0, 0,
-yycrank+3, 0, 0,
-yycrank+4, 0, 0,
-yycrank+5, 0, 0,
-yycrank+2, 0, 0,
-yycrank+4, 0, 0,
-yycrank+7, 0, 0,
-yycrank+54, 0, 0,
-yycrank+4, 0, 0,
-yycrank+8, 0, 0,
-yycrank+152, 0, yyvstop+5,
-yycrank+13, 0, 0,
-yycrank+116, 0, 0,
-yycrank+57, 0, yyvstop+7,
-yycrank+8, 0, yyvstop+9,
-yycrank+52, 0, yyvstop+11,
-yycrank+0, yysvec+12, yyvstop+13,
-yycrank+53, 0, yyvstop+15,
-yycrank+0, yysvec+13, yyvstop+17,
-yycrank+45, 0, yyvstop+19,
-yycrank+60, 0, yyvstop+21,
-yycrank+0, 0, yyvstop+23,
-yycrank+127, 0, 0,
-yycrank+0, 0, yyvstop+25,
-yycrank+121, 0, yyvstop+27,
-yycrank+65, 0, yyvstop+29,
-yycrank+0, yysvec+17, yyvstop+31,
-yycrank+70, 0, yyvstop+33,
-yycrank+0, 0, yyvstop+35,
-yycrank+0, yysvec+18, yyvstop+37,
-yycrank+0, yysvec+19, yyvstop+39,
-yycrank+42, 0, yyvstop+41,
-yycrank+0, yysvec+20, yyvstop+43,
-yycrank+116, 0, yyvstop+45,
-yycrank+45, 0, 0,
-yycrank+66, 0, 0,
-yycrank+113, 0, 0,
-yycrank+131, 0, 0,
-yycrank+77, 0, 0,
-yycrank+214, 0, 0,
-yycrank+230, 0, 0,
-yycrank+215, 0, 0,
-yycrank+240, yysvec+8, 0,
-yycrank+250, 0, 0,
-yycrank+70, 0, 0,
-yycrank+78, 0, 0,
-yycrank+80, 0, 0,
-yycrank+132, 0, 0,
-yycrank+3, 0, 0,
-yycrank+72, 0, 0,
-yycrank+112, 0, 0,
-yycrank+111, 0, 0,
-yycrank+298, yysvec+8, 0,
-yycrank+312, 0, 0,
-yycrank+120, 0, 0,
-yycrank+137, 0, 0,
-yycrank+146, 0, 0,
-yycrank+155, 0, 0,
-yycrank+149, 0, 0,
-yycrank+145, 0, 0,
-yycrank+150, 0, 0,
-yycrank+194, 0, 0,
-yycrank+147, 0, 0,
-yycrank+143, 0, 0,
-yycrank+157, 0, 0,
-yycrank+158, 0, 0,
-yycrank+163, 0, 0,
-yycrank+166, 0, 0,
-yycrank+160, 0, 0,
-yycrank+208, 0, 0,
-yycrank+210, 0, 0,
-yycrank+312, 0, 0,
-yycrank+323, 0, 0,
-yycrank+333, 0, 0,
-yycrank+213, 0, 0,
-yycrank+0, yysvec+25, 0,
-yycrank+0, yysvec+26, 0,
-yycrank+0, yysvec+28, 0,
-yycrank+0, yysvec+30, 0,
-yycrank+0, yysvec+31, 0,
-yycrank+218, 0, 0,
-yycrank+219, 0, 0,
-yycrank+197, 0, 0,
-yycrank+0, yysvec+38, 0,
-yycrank+0, yysvec+42, 0,
-yycrank+0, yysvec+44, 0,
-yycrank+201, 0, 0,
-yycrank+206, 0, 0,
-yycrank+210, 0, 0,
-yycrank+215, 0, 0,
-yycrank+219, 0, 0,
-yycrank+221, 0, 0,
-yycrank+222, 0, 0,
-yycrank+226, 0, 0,
-yycrank+227, 0, 0,
-yycrank+240, 0, 0,
-yycrank+242, 0, 0,
-yycrank+275, 0, 0,
-yycrank+276, 0, 0,
-yycrank+277, 0, 0,
-yycrank+278, 0, 0,
-yycrank+279, 0, 0,
-yycrank+280, 0, 0,
-yycrank+0, 0, yyvstop+47,
-yycrank+281, 0, 0,
-yycrank+282, 0, 0,
-yycrank+294, 0, 0,
-yycrank+290, 0, 0,
-yycrank+285, 0, 0,
-yycrank+292, 0, 0,
-yycrank+286, 0, 0,
-yycrank+303, 0, 0,
-yycrank+305, 0, 0,
-yycrank+397, 0, 0,
-yycrank+296, 0, 0,
-yycrank+306, 0, 0,
-yycrank+309, 0, 0,
-yycrank+314, 0, 0,
-yycrank+318, 0, 0,
-yycrank+305, 0, 0,
-yycrank+318, 0, 0,
-yycrank+318, 0, 0,
-yycrank+411, 0, yyvstop+49,
-yycrank+423, 0, yyvstop+51,
-yycrank+385, 0, 0,
-yycrank+472, 0, yyvstop+53,
-yycrank+310, 0, 0,
-yycrank+322, 0, 0,
-yycrank+327, 0, 0,
-yycrank+330, 0, 0,
-yycrank+320, 0, 0,
-yycrank+336, 0, 0,
-yycrank+331, 0, 0,
-yycrank+329, 0, 0,
-yycrank+332, 0, 0,
-yycrank+337, 0, 0,
-yycrank+434, 0, 0,
-yycrank+460, 0, 0,
-yycrank+484, 0, 0,
-yycrank+486, 0, 0,
-yycrank+500, 0, 0,
-yycrank+502, 0, yyvstop+55,
-yycrank+333, yysvec+149, 0,
-yycrank+487, 0, 0,
-yycrank+350, yysvec+150, 0,
-yycrank+501, 0, 0,
-yycrank+504, 0, 0,
-yycrank+353, yysvec+152, yyvstop+57,
-yycrank+353, yysvec+150, 0,
-yycrank+346, yysvec+157, 0,
-yycrank+505, 0, yyvstop+59,
-yycrank+342, yysvec+157, 0,
-yycrank+398, yysvec+152, yyvstop+61,
-yycrank+506, 0, yyvstop+63,
-yycrank+508, 0, yyvstop+65,
-yycrank+522, 0, yyvstop+67,
-yycrank+507, 0, 0,
-yycrank+522, 0, 0,
-yycrank+540, 0, 0,
-yycrank+0, 0, yyvstop+69,
-yycrank+0, 0, yyvstop+71,
-yycrank+0, 0, yyvstop+73,
-yycrank+0, 0, yyvstop+75,
-yycrank+0, 0, yyvstop+77,
-yycrank+0, 0, yyvstop+79,
-yycrank+0, 0, yyvstop+81,
-yycrank+0, 0, yyvstop+83,
-yycrank+0, 0, yyvstop+85,
-yycrank+0, 0, yyvstop+87,
-yycrank+0, 0, yyvstop+89,
-yycrank+0, 0, yyvstop+91,
-yycrank+0, 0, yyvstop+93,
-yycrank+0, 0, yyvstop+95,
-yycrank+0, 0, yyvstop+97,
-yycrank+0, 0, yyvstop+99,
-yycrank+0, 0, yyvstop+101,
-yycrank+0, 0, yyvstop+103,
-yycrank+0, 0, yyvstop+105,
-yycrank+498, 0, 0,
-yycrank+400, yysvec+189, 0,
-yycrank+464, 0, 0,
-yycrank+401, yysvec+189, 0,
-yycrank+501, 0, 0,
-yycrank+494, 0, 0,
-yycrank+500, 0, 0,
-yycrank+388, 0, 0,
-yycrank+440, 0, 0,
-yycrank+445, 0, 0,
-yycrank+447, 0, 0,
-yycrank+437, 0, 0,
-yycrank+443, 0, 0,
-yycrank+485, 0, 0,
-yycrank+430, 0, 0,
-yycrank+451, 0, 0,
-yycrank+456, 0, 0,
-yycrank+571, 0, yyvstop+107,
-yycrank+585, 0, 0,
-yycrank+537, yysvec+206, yyvstop+109,
-yycrank+536, yysvec+206, yyvstop+111,
-yycrank+595, 0, yyvstop+113,
-yycrank+596, 0, yyvstop+115,
-yycrank+527, yysvec+211, yyvstop+117,
-yycrank+605, 0, 0,
-yycrank+477, 0, 0,
-yycrank+498, 0, 0,
-yycrank+662, 0, yyvstop+119,
-yycrank+677, 0, yyvstop+121,
-yycrank+691, 0, yyvstop+123,
-yycrank+726, 0, yyvstop+125,
-yycrank+494, yysvec+217, yyvstop+127,
-yycrank+752, 0, yyvstop+129,
-yycrank+511, yysvec+218, yyvstop+131,
-yycrank+778, 0, yyvstop+133,
-yycrank+804, 0, yyvstop+135,
-yycrank+512, yysvec+218, yyvstop+137,
-yycrank+505, yysvec+224, yyvstop+139,
-yycrank+501, yysvec+224, yyvstop+141,
-yycrank+655, yysvec+210, yyvstop+143,
-yycrank+815, 0, 0,
-yycrank+510, 0, 0,
-yycrank+504, 0, 0,
-yycrank+512, 0, 0,
-yycrank+507, 0, 0,
-yycrank+656, 0, yyvstop+146,
-yycrank+528, 0, 0,
-yycrank+529, 0, 0,
-yycrank+525, 0, 0,
-yycrank+533, 0, 0,
-yycrank+522, 0, 0,
-yycrank+565, 0, 0,
-yycrank+552, 0, 0,
-yycrank+566, 0, 0,
-yycrank+571, 0, 0,
-yycrank+554, 0, 0,
-yycrank+570, 0, 0,
-yycrank+571, 0, 0,
-yycrank+625, 0, 0,
-yycrank+830, 0, 0,
-yycrank+840, 0, 0,
-yycrank+639, 0, yyvstop+148,
-yycrank+587, 0, 0,
-yycrank+588, 0, 0,
-yycrank+575, 0, 0,
-yycrank+593, 0, 0,
-yycrank+576, 0, 0,
-yycrank+592, 0, 0,
-yycrank+594, 0, 0,
-yycrank+688, yysvec+216, 0,
-yycrank+728, yysvec+217, 0,
-yycrank+689, yysvec+218, 0,
-yycrank+786, yysvec+219, 0,
-yycrank+757, yysvec+217, 0,
-yycrank+741, yysvec+221, 0,
-yycrank+740, yysvec+218, 0,
-yycrank+692, yysvec+223, 0,
-yycrank+753, yysvec+224, 0,
-yycrank+805, yysvec+218, 0,
-yycrank+787, yysvec+224, 0,
-yycrank+789, yysvec+224, 0,
-yycrank+859, 0, 0,
-yycrank+754, 0, yyvstop+150,
-yycrank+869, 0, 0,
-yycrank+895, 0, yyvstop+152,
-yycrank+756, 0, yyvstop+154,
-yycrank+790, 0, yyvstop+156,
-yycrank+599, yysvec+224, yyvstop+158,
-yycrank+921, 0, 0,
-yycrank+883, 0, 0,
-yycrank+591, 0, 0,
-yycrank+587, 0, 0,
-yycrank+594, 0, 0,
-yycrank+587, 0, 0,
-yycrank+608, 0, 0,
-yycrank+602, 0, 0,
-yycrank+629, 0, 0,
-yycrank+653, 0, 0,
-yycrank+651, 0, 0,
-yycrank+806, 0, yyvstop+160,
-yycrank+947, 0, yyvstop+163,
-yycrank+637, 0, 0,
-yycrank+656, 0, 0,
-yycrank+658, 0, 0,
-yycrank+635, 0, 0,
-yycrank+643, 0, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+661, 0, 0,
-yycrank+663, 0, 0,
-yycrank+668, 0, 0,
-yycrank+660, 0, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+670, 0, 0,
-yycrank+714, 0, 0,
-yycrank+697, 0, 0,
-yycrank+0, 0, yyvstop+165,
-yycrank+0, 0, yyvstop+167,
-yycrank+0, 0, yyvstop+169,
-yycrank+0, 0, yyvstop+171,
-yycrank+695, 0, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+717, 0, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+720, 0, 0,
-yycrank+728, 0, 0,
-yycrank+724, 0, 0,
-yycrank+734, 0, 0,
-yycrank+728, 0, 0,
-yycrank+735, 0, 0,
-yycrank+729, 0, 0,
-yycrank+751, 0, 0,
-yycrank+746, 0, 0,
-yycrank+742, 0, 0,
-yycrank+777, 0, 0,
-yycrank+775, 0, 0,
-yycrank+932, 0, yyvstop+173,
-yycrank+933, 0, yyvstop+175,
-yycrank+981, 0, yyvstop+177,
-yycrank+984, 0, yyvstop+179,
-yycrank+790, 0, 0,
-yycrank+792, 0, 0,
-yycrank+786, 0, 0,
-yycrank+985, 0, yyvstop+181,
-yycrank+787, 0, 0,
-yycrank+830, 0, 0,
-yycrank+832, 0, 0,
-yycrank+840, 0, 0,
-yycrank+857, 0, 0,
-yycrank+856, 0, 0,
-yycrank+849, 0, 0,
-yycrank+996, 0, yyvstop+183,
-yycrank+997, 0, 0,
-yycrank+915, yysvec+339, yyvstop+185,
-yycrank+859, 0, 0,
-yycrank+847, 0, 0,
-yycrank+918, yysvec+234, yyvstop+187,
-yycrank+842, 0, 0,
-yycrank+865, 0, 0,
-yycrank+853, 0, 0,
-yycrank+871, 0, 0,
-yycrank+910, 0, 0,
-yycrank+912, 0, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+910, 0, 0,
-yycrank+970, 0, 0,
-yycrank+915, 0, 0,
-yycrank+917, 0, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+915, 0, 0,
-yycrank+902, 0, 0,
-yycrank+921, 0, 0,
-yycrank+923, 0, 0,
-yycrank+907, 0, 0,
-yycrank+924, 0, 0,
-yycrank+922, 0, 0,
-yycrank+915, 0, 0,
-yycrank+1016, 0, yyvstop+189,
-yycrank+1001, yysvec+324, yyvstop+191,
-yycrank+969, 0, 0,
-yycrank+1034, 0, yyvstop+193,
-yycrank+1035, 0, yyvstop+195,
-yycrank+1036, 0, yyvstop+197,
-yycrank+1037, 0, yyvstop+199,
-yycrank+1034, yysvec+331, yyvstop+201,
-yycrank+926, 0, 0,
-yycrank+917, 0, 0,
-yycrank+911, 0, 0,
-yycrank+946, 0, 0,
-yycrank+945, 0, 0,
-yycrank+962, 0, 0,
-yycrank+1062, 0, 0,
-yycrank+0, yysvec+347, 0,
-yycrank+0, yysvec+345, 0,
-yycrank+0, yysvec+347, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+960, 0, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+965, 0, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+966, 0, 0,
-yycrank+963, 0, 0,
-yycrank+951, 0, 0,
-yycrank+949, 0, 0,
-yycrank+971, 0, 0,
-yycrank+959, 0, 0,
-yycrank+976, 0, 0,
-yycrank+1043, 0, 0,
-yycrank+959, 0, 0,
-yycrank+1070, 0, yyvstop+203,
-yycrank+0, yysvec+377, 0,
-yycrank+0, yysvec+375, 0,
-yycrank+0, yysvec+377, 0,
-yycrank+975, 0, 0,
-yycrank+1072, 0, 0,
-yycrank+0, yysvec+347, 0,
-yycrank+0, yysvec+293, 0,
-yycrank+0, yysvec+308, 0,
-yycrank+0, yysvec+394, 0,
-yycrank+0, yysvec+392, 0,
-yycrank+0, yysvec+394, 0,
-yycrank+976, 0, 0,
-yycrank+1087, 0, 0,
-yycrank+1071, 0, yyvstop+205,
-yycrank+0, yysvec+377, 0,
-yycrank+1098, 0, yyvstop+207,
-yycrank+0, yysvec+394, 0,
-yycrank+0, 0, yyvstop+209,
-yycrank+1099, 0, yyvstop+211,
-yycrank+1108, yysvec+414, yyvstop+213,
-0, 0, 0};
-struct yywork *yytop = yycrank+1165;
-struct yysvf *yybgin = yysvec+1;
-char yymatch[] = {
-00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-'0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
-'6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
-'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
-'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
-'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-0};
-char yyextra[] = {
-0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,
-0};
-/* Copyright (c) 1989 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ident "@(#)ncform 6.4 92/06/19 SMI"
-
+++ /dev/null
-MH 6.8.3 for Linux
-==================
-
-This distribution consists of two packages: mh-6.8.3-bin.tar.gz contains
-shared binaries, and mh-6.8.3-patch.tar.gz contains patches to the UCI MH
-6.8.3 distribution. The patches will allow the building of shared or static
-binaries, although the implementation is still a bit of a hack. You may
-download either or both packages, depending on whether you want sources,
-binaries, or both.
-
-You will need to add a user for POP, and another for BBoards. I used:
-
-pop:x:13:13:POP administrator:/usr/lib/mh:/bin/sh
-bboards:x:14:14:BBoards administrator:/usr/spool/bboards:/bin/sh
-
-Do this before unpacking the binary distribution to avoid problems with buggy
-versions of GNU tar, or before installing binaries built from the source
-patch distribution. (Note that the BBoards spool area is not included in the
-binary distribution.)
-
-mh-6.8.3-bin.tar.gz should be unpacked from the root directory. It places
-files in /usr/bin/mh, /usr/lib/mh, and /usr/sbin (popd), installs manpages in
-/usr.man/man?/*.?mh, and installs the MH shared library libmh.so.2.0 in /lib.
-(WARNING!!! The internals of MH have changed; you can not use the older
-shared library with the new binaries, or vice versa.) Add /usr/bin/mh to your
-PATH and you're set. (Ed. note: I don't want to hear about the choice of
-directories. Complain to the FSSTND folks if you don't like it, or grab the
-source package and recompile it with different paths.)
-
-mh-6.8.3-patch.tar.gz can be unpacked anywhere, although it's convenient to
-unpack it into the top directory of the UCI MH distribution. After unpacking,
-issue the commands:
-
-patch -p0 -N < DIFFS-pre
-cp -f MH conf/MH
-(cd conf/mh; make; mhconfig MH)
-make clean
-
-(If you want to change the configuration, edit conf/MH after the cp -f.)
-
-If you want to build shared binaries, you must issue the command:
-
-patch -p0 -N < DIFFS-post
-
-after the "make clean" step. Depending on what changes you may have made to
-conf/MH, you may see several failures; you will need to patch those files
-manually. Eventually, I will get this into the distribution makefiles and the
-post-patch won't be necessary.
-
-!!! If you do not patch the binaries, you may want to edit doc/Makefile and
-!!! change the definitions of MAN1EXT, MAN5EXT, and MAN8EXT to add the "mh"
-!!! suffix to the manpages when they are installed. This can not easily be
-!!! done automatically; fixing it will require some changes to mhconfig.
-
-Everything is now ready: "make" will build the distribution. (You will see
-various warnings because NULL is defined as "(void *) 0" instead of simply
-"0", and for shared binaries the DLL tools will complain about relative
-JUMP_DIR settings. The alternative having been to hardcode the full pathname,
-forcing everyone to unpack MH in /varopt, I chose to accept the warnings.)
-
-"make install" will place the binaries and configuration files in the
-appropriate locations, and will install libmh.so.2.0 in /lib and run ldconfig.
-
-If you need help building MH beyond this, I suggest reading the file READ-ME
-in the top level of the UCI MH distribution.
-
-Brandon S. Allbery
-bsa@kf8nh.wariat.org
+++ /dev/null
-Begin3
-Title: mh (The RAND MH Message Handling System)
-Version: 6.8.3
-Entered-date: 1DEC95
-Description: MH is a flexible mail management system which uses individual
- shell-level commands to manage various aspects of mail
- maintenance. These commands can be used as is or combined via
- shell scripts to allow arbitrary mail manipulation. User
- interfaces such as xmh and exmh and mh-e can easily be
- implemented on top of its commands.
-Keywords: RAND Mail Handler MH UCI POP BBoards
-Author: Bug-MH@ICS.UCI.EDU <John L. Romine>
-Maintained-by: bsa@kf8nh.wariat.org <Brandon S. Allbery> for the Linux Port
-Primary-site: louie.udel.edu /pub/portal
- 1269485 mh-6.8.tar.gz
-Alternate-site: sunsite.unc.edu /pub/Linux/games/x11/networked
- 1306309 mh-6.8.3-src.tgz
- 649682 mh-6.8.3-bin.tar.gz
- 22812 mh-6.8.3-diffs.tar.gz
- 3147 mh-6.8.3.README
-Original-site: ftp.ics.uci.edu /pub/mh/tar
- 1961283 mh-6.8.3.tar.Z
-Platform: Many *nix
-Copying-policy: public domain
-End
+++ /dev/null
-#!/bin/csh -f
-#
-# Script to run rdist in order to update the Sun-3 filesservers
-#
-if (`hostname` == 'ics.uci.edu') then
- cd /usr/local/bin
- rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.sequent
- cd /usr/local/lib/mh
- rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.sequent
- rdist -f /usr/src/bs/mh-6.6/rdist_update_others.sequent
-else if (`hostname` == 'f.ics.uci.edu') then
- cd /usr/local
- rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.is68k
- cd /usr/local/lib/mh
- rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.is68k
- rdist -f /usr/src/bs/mh-6.6/rdist_update_others.is68k
-else
- cd /usr/local
- rdist -f /usr/src/bs/mh-6.6/rdist_update_usrlocal.`arch`
- cd /usr/local/lib/mh
- rdist -f /usr/src/bs/mh-6.6/rdist_update_lib.`arch`
- rdist -f /usr/src/bs/mh-6.6/rdist_update_others.`arch`
-endif
+++ /dev/null
-FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh
- dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx
- mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps
- forwcomps distcomps digestcomps components scan.size scan.time)
-
-${FILES} -> (cip1 cip4)
- install /usr/uci/lib/mh ;
+++ /dev/null
-FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh
- dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx
- mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps
- forwcomps distcomps digestcomps components scan.size scan.time)
-
-${FILES} -> (bonnie)
- install /usr/local/lib/mh ;
+++ /dev/null
-FILES = (tmac.h spost rcvtty rcvstore rcvpack rcvdist post mhl install-mh
- dp conflict ap popwrd popaka mtstailor scan.timely scan.mailx
- mhl.body mhl.forward mhl.format mhl.digest replcomps rcvdistcomps
- forwcomps distcomps digestcomps components scan.size scan.time)
-
-${FILES} -> (rome europe pompe cadet madeleine cad harlie
- cecil beanie london)
- install /usr.MC68020/uci/lib/mh ;
-
-${FILES} -> (etoile commerce)
- install /usr/uci/lib/mh ;
+++ /dev/null
-/usr/etc/popd -> (icsf cip1 cip4)
- install /usr/etc/popd ;
+++ /dev/null
-/usr/etc/popd -> (ics bonnie)
- install /usr/etc/popd ;
+++ /dev/null
-/usr/etc/popd -> (rome europe pompe cadet madeleine cad harlie cecil beanie
- london etoile commerce)
- install /usr/etc/popd ;
+++ /dev/null
-FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail
- mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send
- show next prev sortm vmh whatnow whom)
-
-${FILES} -> (cip1 cip4)
- install /usr/uci ;
+++ /dev/null
-FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail
- mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send
- show next prev sortm vmh whatnow whom)
-
-${FILES} -> (bonnie)
- install /usr/local/bin ;
+++ /dev/null
-FILES = (ali anno bbc bbl burst comp dist folder folders forw inc mark mhmail
- mhpath msgchk msh packf pick prompter refile repl rmf rmm scan send
- show next prev sortm vmh whatnow whom)
-
-${FILES} -> (rome europe etoile pompe commerce cadet madeleine cad harlie
- cecil beanie london)
- install /usr.MC68020/uci ;
-
-${FILES} -> (etoile commerce)
- install /usr/uci ;
+++ /dev/null
-From somewhere!bsdi-users-request@bsdi.com Mon Mar 1 11:50:20 1993
-Received: by IEDVB.acd.com (5.57/Ultrix2.3-C)
- id AA10693; Mon, 1 Mar 93 11:50:20 -0500
-Received: by acd4.acd.com (5.57/Ultrix2.4-C)
- id AA15842; Mon, 1 Mar 93 11:51:42 EST
-Received: from banjo.concert.net by relay1.UU.NET with SMTP
- (5.61/UUNET-internet-primary) id AA01965; Sun, 28 Feb 93 03:24:30 -0500
-Received: by banjo.concert.net (5.59/tas-concert/6-19-91)
- id AA28168; Sun, 28 Feb 93 02:07:16 -0500
-Message-Id: <199302280705.AA26812@misc.glarp.com>
-To: sgd@tfm.tfm.com (Stephen Diercouff)
-Cc: bsdi-users@bsdi.com
-Subject: Re: BSDI MH patches
-In-Reply-To: <m0nSYkB-0007ZEC@tfm.tfm.com>
-Mime-Version: 1.0
-Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
-Date: Sun, 28 Feb 1993 00:05:40 -0700
-From: Brad Huntting <huntting@glarp.com>
-Errors-To: bsdi-users-request@bsdi.com
-Sender: bsdi-users-request@bsdi.com
-Precedence: bulk
-X-Loop: bsdi-users@bsdi.com
-Status: RO
-
-
-
-------- =_aaaaaaaaaa0
-Content-Type: text/plain; charset="us-ascii"
-
-I seemed to have jumped the gun with respect to the mh patches...
-This batch has been tested (really!).
-
-
-brad
-
-------- =_aaaaaaaaaa0
-Content-Type: text/plain; charset="us-ascii"
-Content-Description: mh-6.8-patch
-
-diff -c /dev/null mh/conf/MH.bsd386:1.2
-*** /dev/null Tue Feb 9 07:41:52 1993
---- mh/conf/MH.bsd386 Tue Feb 9 07:41:54 1993
-***************
-*** 0 ****
---- 1,26 ----
-+ # a BSD386 system running SendMail
-+ cc cc
-+ bin /usr/contrib/mh/bin
-+ etc /usr/contrib/mh/lib
-+ mandir /usr/contrib/man
-+ mail /var/mail
-+ chown /usr/sbin/chown
-+ manuals gen
-+ mts sendmail/smtp
-+
-+ sprintf int
-+ signal void
-+ options BIND BSD42 BSD43 DBMPWD MORE='"/usr/bin/more"'
-+ options SYS5DIR NTOHLSWAP OVERHEAD VSPRINTF WHATNOW ZONEINFO
-+ options MHE MHRC MIME FLOCK
-+ options POSIX
-+
-+ #
-+ # POP
-+ #
-+ pop on
-+ popdir /usr/local/lib/mh
-+ #options APOP='"/etc/pop.auth"'
-+ #options DPOP
-+ #options MPOP
-+ options RPOP
-diff -c mh/conf/config/mtstailor:1.1.1.1 mh/conf/config/mtstailor:1.2
-*** mh/conf/config/mtstailor:1.1.1.1 Tue Feb 9 07:41:56 1993
---- mh/conf/config/mtstailor Tue Feb 9 07:41:56 1993
-***************
-*** 2,4 ****
---- 2,6 ----
- mmdflfil: @(MHDROPFIL)
- hostable: @(MHETCPATH)/hosts
- servers: localhost \01localnet
-+ sendmail: /usr/sbin/sendmail
-+ lockstyle: 0
-diff -c mh/conf/makefiles/sbr:1.1.1.1 mh/conf/makefiles/sbr:1.2
-*** mh/conf/makefiles/sbr:1.1.1.1 Tue Feb 9 07:42:05 1993
---- mh/conf/makefiles/sbr Tue Feb 9 07:42:06 1993
-***************
-*** 2,8 ****
- # Instructions to Make, for compilation of MH modules
- #
- # @(MHWARNING)
-! # @(#)$Id: sbr,v 2.19 1992/11/12 22:47:24 jromine Exp $
- ##############################################################################
-
- OPTIONS = @(MHOPTIONS)
---- 2,8 ----
- # Instructions to Make, for compilation of MH modules
- #
- # @(MHWARNING)
-! # @(#)$Id: sbr,v 1.1.1.1 1993/01/30 04:40:16 jtc Exp $
- ##############################################################################
-
- OPTIONS = @(MHOPTIONS)
-***************
-*** 47,53 ****
- makedir.c path.c peekc.c pidwait.c pidstatus.c \
- printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \
- showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \
-! uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c
-
-
- OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \
---- 47,53 ----
- makedir.c path.c peekc.c pidwait.c pidstatus.c \
- printsw.c push.c putenv.c pwd.c refile.c remdir.c r1bindex.c \
- showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \
-! uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c ruserpass.c
-
-
- OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \
-***************
-*** 63,69 ****
- makedir.o path.o peekc.o pidwait.o pidstatus.o \
- printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \
- showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \
-! uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o
-
- @BEGIN: SHAREDLIB
- ODEFS = formatdef.o m_msgdef.o
---- 63,69 ----
- makedir.o path.o peekc.o pidwait.o pidstatus.o \
- printsw.o push.o putenv.o pwd.o refile.o remdir.o r1bindex.o \
- showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \
-! uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o ruserpass.o
-
- @BEGIN: SHAREDLIB
- ODEFS = formatdef.o m_msgdef.o
-diff -c mh/conf/makefiles/zotnet/tws:1.1.1.1 mh/conf/makefiles/zotnet/tws:1.2
-*** mh/conf/makefiles/zotnet/tws:1.1.1.1 Tue Feb 9 07:42:11 1993
---- mh/conf/makefiles/zotnet/tws Tue Feb 9 07:42:11 1993
-***************
-*** 2,8 ****
- # Instructions to Make, for compilation of ZOT UIP/utility processes
- #
- # @(MHWARNING)
-! # @(#)$Id: tws,v 1.15 1992/11/18 16:54:16 jromine Exp $
- ##############################################################################
-
- # The following entries were inserted during MH configuration
---- 2,8 ----
- # Instructions to Make, for compilation of ZOT UIP/utility processes
- #
- # @(MHWARNING)
-! # @(#)$Id: tws,v 1.1.1.1 1993/01/30 04:40:19 jtc Exp $
- ##############################################################################
-
- # The following entries were inserted during MH configuration
-***************
-*** 71,76 ****
---- 71,78 ----
-
- dtimep.c: dtimep.lex
- $(LEX) dtimep.lex | sed -f lexedit.sed > dtimep.c
-+ len=`wc -l dtimep.c | awk ' { print $$1 } '`; \
-+ if [ $$len -eq 1 ]; then cp dtimep.c-lexed dtimep.c; fi
-
- lexstring.o: lexstring.c
- $(CC) $(CFLAGS) -c -DONECASE lexstring.c
-diff -c mh/dist/Makefile:1.1.1.1 mh/dist/Makefile:1.2
-*** mh/dist/Makefile:1.1.1.1 Tue Feb 9 07:42:15 1993
---- mh/dist/Makefile Tue Feb 9 07:42:15 1993
-***************
-*** 2,8 ****
- # Instructions to Make, for generation of MH documentation sets
- #
- # This file is automatically generated. Do not edit!
-! # @(#)$Id: dist,v 2.7 1992/12/02 22:21:43 jromine Exp $
- ##############################################################################
-
- MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k
---- 2,8 ----
- # Instructions to Make, for generation of MH documentation sets
- #
- # This file is automatically generated. Do not edit!
-! # @(#)$Id: dist,v 1.1.1.1 1993/01/30 04:40:16 jtc Exp $
- ##############################################################################
-
- MAKE = make DESTDIR=$(DESTDIR) $(MFLAGS) -k
-diff -c mh/h/mh.h:1.1.1.1 mh/h/mh.h:1.2
-*** mh/h/mh.h:1.1.1.1 Tue Feb 9 07:42:20 1993
---- mh/h/mh.h Tue Feb 9 07:42:20 1993
-***************
-*** 1,5 ****
- /* mh.h - main header file for all of MH */
-! /* @(#)$Id: mh.h,v 2.18 1992/12/14 17:10:43 jromine Exp $ */
-
-
- /* Well-used constants */
---- 1,5 ----
- /* mh.h - main header file for all of MH */
-! /* @(#)$Id: mh.h,v 1.1.1.1 1993/01/30 04:40:24 jtc Exp $ */
-
-
- /* Well-used constants */
-***************
-*** 332,338 ****
-
- /* should be in <stdio.h> */
-
-! #if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__)
- typedef struct _iobuf *FP;
- FP popen ();
- #else /* SYS5 */
---- 332,338 ----
-
- /* should be in <stdio.h> */
-
-! #if !defined(SYS5) && !defined(ncr) && !defined(_AIX) && !defined(OSF1) && !defined(__convex__) && !defined(__386BSD__) && !defined(__bsdi__)
- typedef struct _iobuf *FP;
- FP popen ();
- #else /* SYS5 */
-diff -c mh/h/strings.h:1.1.1.1 mh/h/strings.h:1.2
-*** mh/h/strings.h:1.1.1.1 Tue Feb 9 07:42:21 1993
---- mh/h/strings.h Tue Feb 9 07:42:21 1993
-***************
-*** 1,5 ****
- /* strings.h - define standard string functions */
-! /* @(#)$Id: strings.h,v 1.18 1992/11/12 19:34:05 jromine Exp $ */
-
- #ifndef _STRINGS /* once-only... */
- #define _STRINGS
---- 1,5 ----
- /* strings.h - define standard string functions */
-! /* @(#)$Id: strings.h,v 1.1.1.1 1993/01/30 04:40:24 jtc Exp $ */
-
- #ifndef _STRINGS /* once-only... */
- #define _STRINGS
-***************
-*** 25,31 ****
- #endif /* SYS5 */
-
- #if defined(BSD42) || defined(SVR4)
-! #ifndef SVR4
- #include <strings.h>
- #else
- #include <string.h>
---- 25,31 ----
- #endif /* SYS5 */
-
- #if defined(BSD42) || defined(SVR4)
-! #if !defined(SVR4) && !defined(__386BSD__) && !defined(__bsdi__)
- #include <strings.h>
- #else
- #include <string.h>
-***************
-*** 51,57 ****
- char *strncpy ();
- #endif
-
-! #ifndef SVR4
- char *getenv ();
- char *calloc (), *malloc (), *realloc ();
- #endif /* SVR4 */
---- 51,57 ----
- char *strncpy ();
- #endif
-
-! #if !defined(SVR4) && !defined(__386BSD__) && !defined(__bsdi__)
- char *getenv ();
- char *calloc (), *malloc (), *realloc ();
- #endif /* SVR4 */
-diff -c mh/sbr/discard.c:1.1.1.1 mh/sbr/discard.c:1.2
-*** mh/sbr/discard.c:1.1.1.1 Tue Feb 9 07:43:22 1993
---- mh/sbr/discard.c Tue Feb 9 07:43:22 1993
-***************
-*** 1,13 ****
- /* discard.c - discard output on a file pointer */
- #ifndef lint
-! static char ident[] = "@(#)$Id: discard.c,v 1.6 1992/12/15 00:20:22 jromine Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
- #include <stdio.h>
- #ifndef SYS5
- #include <sgtty.h>
-! #else /* SYS5 */
- #include <sys/types.h>
- #include <termio.h>
- #ifndef NOIOCTLH
---- 1,16 ----
- /* discard.c - discard output on a file pointer */
- #ifndef lint
-! static char ident[] = "@(#)$Id: discard.c,v 1.1.1.1 1993/01/30 04:41:24 jtc Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
- #include <stdio.h>
-+ #ifdef POSIX
-+ #include <termios.h>
-+ #else
- #ifndef SYS5
- #include <sgtty.h>
-! #else
- #include <sys/types.h>
- #include <termio.h>
- #ifndef NOIOCTLH
-***************
-*** 14,33 ****
- #include <sys/ioctl.h>
- #endif /* NOIOCTLH */
- #endif /* SYS5 */
-!
-
- void discard (io)
- FILE *io;
- {
- #ifndef SYS5
- struct sgttyb sg;
- #else /* SYS5 */
- struct termio sg;
- #endif /* SYS5 */
-
- if (io == NULL)
- return;
-
- #ifndef SYS5
- if (ioctl (fileno (io), TIOCGETP, (char *) &sg) != NOTOK)
- (void) ioctl (fileno (io), TIOCSETP, (char *) &sg);
---- 17,41 ----
- #include <sys/ioctl.h>
- #endif /* NOIOCTLH */
- #endif /* SYS5 */
-! #endif /* POSIX */
-
- void discard (io)
- FILE *io;
- {
-+ #ifndef POSIX
- #ifndef SYS5
- struct sgttyb sg;
- #else /* SYS5 */
- struct termio sg;
- #endif /* SYS5 */
-+ #endif /* POSIX */
-
- if (io == NULL)
- return;
-
-+ #ifdef POSIX
-+ tcflush (fileno (io), TCOFLUSH);
-+ #else
- #ifndef SYS5
- if (ioctl (fileno (io), TIOCGETP, (char *) &sg) != NOTOK)
- (void) ioctl (fileno (io), TIOCSETP, (char *) &sg);
-***************
-*** 35,41 ****
---- 43,54 ----
- if (ioctl (fileno (io), TCGETA, &sg) != NOTOK)
- (void) ioctl (fileno (io), TCSETA, &sg);
- #endif /* SYS5 */
-+ #endif /* POSIX */
-
-+ #ifdef _FSTDIO
-+ fpurge (io);
-+ #else
- if (io -> _ptr = io -> _base)
- io -> _cnt = 0;
-+ #endif
- }
-diff -c mh/sbr/m_getfld.c:1.1.1.1 mh/sbr/m_getfld.c:1.2
-*** mh/sbr/m_getfld.c:1.1.1.1 Tue Feb 9 07:43:25 1993
---- mh/sbr/m_getfld.c Tue Feb 9 07:43:25 1993
-***************
-*** 1,6 ****
- /* m_getfld.c - read/parse a message */
- #ifndef lint
-! static char ident[] = "@(#)$Id: m_getfld.c,v 1.14 1992/10/31 07:44:56 jromine Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
---- 1,6 ----
- /* m_getfld.c - read/parse a message */
- #ifndef lint
-! static char ident[] = "@(#)$Id: m_getfld.c,v 1.1.1.1 1993/01/30 04:41:26 jtc Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
-***************
-*** 170,175 ****
---- 170,181 ----
- static int edelimlen;
-
- static int (*eom_action) () = NULL;
-+
-+ #ifdef _FSTDIO
-+ #define _ptr _p /* Gag */
-+ #define _cnt _r /* Retch */
-+ #define _filbuf __srget /* Puke */
-+ #endif
-
- /* \f */
-
-diff -c /dev/null mh/sbr/ruserpass.c:1.1
-*** /dev/null Tue Feb 9 07:43:26 1993
---- mh/sbr/ruserpass.c Tue Feb 9 07:43:27 1993
-***************
-*** 0 ****
---- 1,216 ----
-+ /*
-+ * Copyright (c) 1985 Regents of the University of California.
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms are permitted
-+ * provided that the above copyright notice and this paragraph are
-+ * duplicated in all such forms and that any documentation,
-+ * advertising materials, and other materials related to such
-+ * distribution and use acknowledge that the software was developed
-+ * by the University of California, Berkeley. The name of the
-+ * University may not be used to endorse or promote products derived
-+ * from this software without specific prior written permission.
-+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-+ */
-+
-+ #ifndef lint
-+ static char sccsid[] = "@(#)ruserpass.c 5.1 (Berkeley) 3/1/89";
-+ #endif /* not lint */
-+
-+ #include <sys/types.h>
-+ #include <sys/stat.h>
-+ #include <stdio.h>
-+ #include <ctype.h>
-+ #include <pwd.h>
-+ #include <errno.h>
-+
-+ char *malloc(), *index(), *getenv(), *getpass(), *getlogin();
-+ char *strcpy();
-+ static FILE *cfile;
-+
-+ #ifndef MAXHOSTNAMELEN
-+ #define MAXHOSTNAMELEN 64
-+ #endif
-+
-+ #define DEFAULT 1
-+ #define LOGIN 2
-+ #define PASSWD 3
-+ #define ACCOUNT 4
-+ #define MACDEF 5
-+ #define ID 10
-+ #define MACH 11
-+
-+ static int token();
-+ static char tokval[100];
-+
-+ static struct toktab {
-+ char *tokstr;
-+ int tval;
-+ } toktab[]= {
-+ "default", DEFAULT,
-+ "login", LOGIN,
-+ "password", PASSWD,
-+ "passwd", PASSWD,
-+ "account", ACCOUNT,
-+ "machine", MACH,
-+ "macdef", MACDEF,
-+ 0, 0
-+ };
-+
-+ ruserpass(host, aname, apass)
-+ char *host, **aname, **apass;
-+ {
-+ char *hdir, buf[BUFSIZ], *tmp;
-+ char myname[MAXHOSTNAMELEN], *mydomain;
-+ int t, i, c, usedefault = 0;
-+ struct stat stb;
-+ extern int errno;
-+
-+ hdir = getenv("HOME");
-+ if (hdir == NULL)
-+ hdir = ".";
-+ (void) sprintf(buf, "%s/.netrc", hdir);
-+ cfile = fopen(buf, "r");
-+ if (cfile == NULL) {
-+ if (errno != ENOENT)
-+ perror(buf);
-+ goto done;
-+ }
-+
-+ while ((t = token())) switch(t) {
-+ case DEFAULT:
-+ usedefault = 1;
-+ /* FALL THROUGH */
-+
-+ case MACH:
-+ if (!usedefault) {
-+ if (token() != ID)
-+ continue;
-+ /*
-+ * Allow match either for user's host name.
-+ */
-+ if (strcasecmp(host, tokval) == 0)
-+ goto match;
-+ continue;
-+ }
-+ match:
-+ while ((t = token()) && t != MACH && t != DEFAULT) switch(t) {
-+
-+ case LOGIN:
-+ if (token() && *aname == 0) {
-+ *aname = malloc((unsigned) strlen(tokval) + 1);
-+ (void) strcpy(*aname, tokval);
-+ }
-+ break;
-+ case PASSWD:
-+ if (fstat(fileno(cfile), &stb) >= 0 &&
-+ (stb.st_mode & 077) != 0) {
-+ fprintf(stderr, "Error - .netrc file not correct mode.\n");
-+ fprintf(stderr, "Remove password or correct mode.\n");
-+ goto bad;
-+ }
-+ if (token() && *apass == 0) {
-+ *apass = malloc((unsigned) strlen(tokval) + 1);
-+ (void) strcpy(*apass, tokval);
-+ }
-+ break;
-+ case ACCOUNT:
-+ break;
-+
-+ case MACDEF:
-+ goto done_close;
-+ break;
-+ default:
-+ fprintf(stderr, "Unknown .netrc keyword %s\n", tokval);
-+ break;
-+ }
-+ goto done;
-+ }
-+
-+ done_close:
-+ (void) fclose(cfile);
-+
-+ done:
-+ if (!*aname) {
-+ char tmp[80];
-+ char *myname;
-+
-+ if ((myname = getlogin()) == NULL) {
-+ struct passwd *pp;
-+
-+ if ((pp = getpwuid (getuid())) != NULL)
-+ myname = pp->pw_name;
-+ }
-+ printf("Name (%s:%s): ", host, myname);
-+
-+ (void) fgets(tmp, sizeof(tmp) - 1, stdin);
-+ tmp[strlen(tmp) - 1] = '\0';
-+ if (*tmp != '\0') {
-+ myname = tmp;
-+ }
-+
-+ *aname = malloc((unsigned) strlen(myname) + 1);
-+ strcpy (*aname, myname);
-+ }
-+
-+ if (!*apass) {
-+ char prompt[256];
-+ char *mypass;
-+
-+ sprintf(prompt, "Password (%s:%s): ", host, *aname);
-+ mypass = getpass (prompt);
-+
-+ if (*mypass == '\0') {
-+ mypass = *aname;
-+ }
-+
-+ *apass = malloc((unsigned) strlen(mypass) + 1);
-+ strcpy (*apass, mypass);
-+ }
-+
-+ return(0);
-+ bad:
-+ (void) fclose(cfile);
-+ return(-1);
-+ }
-+
-+ static int
-+ token()
-+ {
-+ char *cp;
-+ int c;
-+ struct toktab *t;
-+
-+ if (feof(cfile))
-+ return (0);
-+ while ((c = getc(cfile)) != EOF &&
-+ (c == '\n' || c == '\t' || c == ' ' || c == ','))
-+ continue;
-+ if (c == EOF)
-+ return (0);
-+ cp = tokval;
-+ if (c == '"') {
-+ while ((c = getc(cfile)) != EOF && c != '"') {
-+ if (c == '\\')
-+ c = getc(cfile);
-+ *cp++ = c;
-+ }
-+ } else {
-+ *cp++ = c;
-+ while ((c = getc(cfile)) != EOF
-+ && c != '\n' && c != '\t' && c != ' ' && c != ',') {
-+ if (c == '\\')
-+ c = getc(cfile);
-+ *cp++ = c;
-+ }
-+ }
-+ *cp = 0;
-+ if (tokval[0] == 0)
-+ return (0);
-+ for (t = toktab; t->tokstr; t++)
-+ if (!strcmp(t->tokstr, tokval))
-+ return (t->tval);
-+ return (ID);
-+ }
-diff -c mh/uip/replsbr.c:1.1.1.1 mh/uip/replsbr.c:1.2
-*** mh/uip/replsbr.c:1.1.1.1 Tue Feb 9 07:43:44 1993
---- mh/uip/replsbr.c Tue Feb 9 07:43:45 1993
-***************
-*** 1,6 ****
- /* replsbr.c - routines to help repl along... */
- #ifndef lint
-! static char ident[] = "@(#)$Id: replsbr.c,v 1.13 1992/12/15 00:20:22 jromine Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
---- 1,6 ----
- /* replsbr.c - routines to help repl along... */
- #ifndef lint
-! static char ident[] = "@(#)$Id: replsbr.c,v 1.1.1.1 1993/01/30 04:41:38 jtc Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
-***************
-*** 422,427 ****
---- 422,431 ----
- (void) dup2 (fileno (out), fileno (stdout));
- closefds (3);
-
-+ #ifdef _FSTDIO
-+ /* <sigh> the code assumed that rewind does this. */
-+ lseek (fileno(stdin), 0, SEEK_SET);
-+ #endif
- execlp (mhlproc, mhl, "-form", filter, "-noclear", NULLCP);
- fprintf (stderr, "unable to exec ");
- perror (mhlproc);
-diff -c mh/uip/scansbr.c:1.1.1.1 mh/uip/scansbr.c:1.2
-*** mh/uip/scansbr.c:1.1.1.1 Tue Feb 9 07:43:46 1993
---- mh/uip/scansbr.c Tue Feb 9 07:43:46 1993
-***************
-*** 1,6 ****
- /* scansbr.c - routines to help scan along... */
- #ifndef lint
-! static char ident[] = "@(#)$Id: scansbr.c,v 1.13 1992/12/15 00:20:22 jromine Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
---- 1,6 ----
- /* scansbr.c - routines to help scan along... */
- #ifndef lint
-! static char ident[] = "@(#)$Id: scansbr.c,v 1.1.1.1 1993/01/30 04:41:39 jtc Exp $";
- #endif /* lint */
-
- #include "../h/mh.h"
-***************
-*** 13,18 ****
---- 13,22 ----
- #include <sys/types.h>
- #include <sys/stat.h>
-
-+ #ifdef _FSTDIO
-+ #define _ptr _p /* Gag */
-+ #define _cnt _w /* Wretch */
-+ #endif
-
- #define MAXSCANL 256 /* longest possible scan line */
- #define SBUFSIZ 512 /* buffer size for content part of header
-diff -c /dev/null mh/zotnet/tws/dtimep.c-lexed:1.1
-*** /dev/null Tue Feb 9 07:43:58 1993
---- mh/zotnet/tws/dtimep.c-lexed Tue Feb 9 07:43:58 1993
-***************
-*** 0 ****
---- 1,1346 ----
-+ # include "stdio.h"
-+ static int start_cond = 0;
-+ #define BEGIN start_cond =
-+ struct yysvf {
-+ struct yywork *yystoff;
-+ struct yysvf *yyother;
-+ int *yystops;};
-+ # define Z 2
-+ #ifndef lint
-+ static char ident[] = "@(#)$Id: dtimep.lex,v 1.1 1991/04/26 21:51:10 sww Exp $";
-+ #endif
-+ #include "tws.h"
-+ #include "../h/strings.h"
-+ #include <ctype.h>
-+ #include <sys/types.h>
-+ #if !defined(SYS5) && !defined(ZONEINFO)
-+ #include <sys/timeb.h>
-+ #endif /* !defined(SYS5) && !defined(ZONEINFO) */
-+
-+ #ifdef SYS5
-+ extern long timezone;
-+ #endif SYS5
-+
-+ /*
-+ * Patchable flag that says how to interpret NN/NN/NN dates. When
-+ * true, we do it European style: DD/MM/YY. When false, we do it
-+ * American style: MM/DD/YY. Of course, these are all non-RFC822
-+ * compliant.
-+ */
-+ int europeandate = 0;
-+
-+ /*
-+ * Table to convert month names to numeric month. We use the
-+ * fact that the low order 5 bits of the sum of the 2nd & 3rd
-+ * characters of the name is a hash with no collisions for the 12
-+ * valid month names. (The mask to 5 bits maps any combination of
-+ * upper and lower case into the same hash value).
-+ */
-+ static int month_map[] = {
-+ 0,
-+ 6, /* 1 - Jul */
-+ 3, /* 2 - Apr */
-+ 5, /* 3 - Jun */
-+ 0,
-+ 10, /* 5 - Nov */
-+ 0,
-+ 1, /* 7 - Feb */
-+ 11, /* 8 - Dec */
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0,
-+ 0, /*15 - Jan */
-+ 0,
-+ 0,
-+ 0,
-+ 2, /*19 - Mar */
-+ 0,
-+ 8, /*21 - Sep */
-+ 0,
-+ 9, /*23 - Oct */
-+ 0,
-+ 0,
-+ 4, /*26 - May */
-+ 0,
-+ 7 /*28 - Aug */
-+ };
-+ /*
-+ * Same trick for day-of-week using the hash function
-+ * (c1 & 7) + (c2 & 4)
-+ */
-+ static int day_map[] = {
-+ 0,
-+ 0,
-+ 0,
-+ 6, /* 3 - Sat */
-+ 4, /* 4 - Thu */
-+ 0,
-+ 5, /* 6 - Fri */
-+ 0, /* 7 - Sun */
-+ 2, /* 8 - Tue */
-+ 1 /* 9 - Mon */,
-+ 0,
-+ 3 /*11 - Wed */
-+ };
-+ #define SETDAY { tw.tw_wday= day_map[(cp[0] & 7) + (cp[1] & 4)];\
-+ tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP;\
-+ cp += 2; }
-+ #define SETMONTH { tw.tw_mon = month_map[(cp[0] + cp[1]) & 0x1f]; gotdate++;\
-+ cp += 2;\
-+ SKIPD;}
-+ #define CVT2 (i=(*cp++ - '0'),isdigit(*cp)? i*10 + (*cp++ - '0') : i)
-+ #define SKIPD { while ( !isdigit(*cp++) ) ; --cp; }
-+ #define EXPZONE { tw.tw_flags &= ~TW_SZONE; tw.tw_flags |= TW_SZEXP; }
-+ #define ZONE(x) { tw.tw_zone=(x); EXPZONE; }
-+ #define ZONED(x) { ZONE(x); tw.tw_flags |= TW_DST; }
-+ #define LC(c) (isupper (c) ? tolower (c) : (c))
-+
-+ #ifdef DSTXXX
-+ #ifndef BSD42
-+ #include <time.h>
-+ #else BSD42
-+ #include <sys/time.h>
-+ #endif BSD42
-+
-+ static zonehack (tw)
-+ register struct tws *tw;
-+ {
-+ register struct tm *tm;
-+
-+ if (twclock (tw) == -1L)
-+ return;
-+
-+ tm = localtime (&tw -> tw_clock);
-+ if (tm -> tm_isdst) {
-+ tw -> tw_flags |= TW_DST;
-+ tw -> tw_zone -= 60;
-+ }
-+ }
-+ #endif DSTXXX
-+ struct tws *dparsetime (str)
-+ char *str;
-+ {
-+ register int i;
-+ static struct tws tw;
-+ register char *cp;
-+ register int gotdate = 0;
-+ #ifndef SYS5
-+ #ifdef ZONEINFO
-+ struct tm *tm;
-+ time_t clock;
-+ #else
-+ struct timeb tb;
-+ #endif /* ZONEINFO */
-+ #endif /* not SYS5 */
-+
-+ start_cond = 0;
-+
-+ /* Zero out the struct. */
-+ bzero( (char *) &tw, sizeof tw);
-+
-+ /* Set default time zone. */
-+ #ifdef SYS5
-+ tzset( );
-+ tw.tw_zone = -(timezone / 60);
-+ #else
-+ #ifdef ZONEINFO
-+ time (&clock);
-+ tm = localtime(&clock);
-+ tw.tw_zone = tm->tm_gmtoff / 60;
-+ if (tm -> tm_isdst) /* if DST is in effect */
-+ tw.tw_zone -= 60; /* reset to normal offset */
-+ #else
-+ ftime( &tb );
-+ tw.tw_zone = -tb.timezone;
-+ #endif /* ZONEINFO */
-+ #endif /* SYS5 */
-+
-+ while (isspace(*str))
-+ str++;
-+ while ( 1 )
-+ switch (cp = str, *cp ? lex_string( &str, start_cond) : 0) {
-+
-+ case -1:
-+ if (!gotdate || tw.tw_year == 0)
-+ return 0;
-+ /* fall through */
-+ case 0:
-+ return &tw;
-+
-+ case 1:
-+ SETDAY;
-+ break;
-+ case 2:
-+ {
-+ cp++;
-+ SETDAY;
-+ }
-+ break;
-+ case 3:
-+ {
-+ if (europeandate) {
-+ /* European: DD/MM/YY */
-+ tw.tw_mday = CVT2;
-+ cp++;
-+ tw.tw_mon = CVT2 - 1;
-+ } else {
-+ /* American: MM/DD/YY */
-+ tw.tw_mon = CVT2 - 1;
-+ cp++;
-+ tw.tw_mday = CVT2;
-+ }
-+ cp++;
-+ for (i = 0; isdigit(*cp); )
-+ i = i*10 + (*cp++ - '0');
-+ tw.tw_year = i % 100;
-+ }
-+ break;
-+ case 4:
-+ {
-+ tw.tw_mday = CVT2;
-+ while ( !isalpha(*cp++) )
-+ ;
-+ SETMONTH;
-+ for (i = 0; isdigit(*cp); )
-+ i = i*10 + (*cp++ - '0');
-+ tw.tw_year = i % 100;
-+ }
-+ break;
-+ case 5:
-+ {
-+ cp++;
-+ SETMONTH;
-+ tw.tw_mday = CVT2;
-+ SKIPD;
-+ for (i = 0; isdigit(*cp); )
-+ i = i*10 + (*cp++ - '0');
-+ tw.tw_year = i % 100;
-+ }
-+ break;
-+ case 6:
-+ {
-+ cp++;
-+ SETMONTH;
-+ tw.tw_mday = CVT2;
-+ }
-+ break;
-+ case 7:
-+ { /* hack: ctime w/o TZ */
-+ tw.tw_hour = CVT2; cp++;
-+ tw.tw_min = CVT2; cp++;
-+ tw.tw_sec = CVT2;
-+ while( !isdigit(*cp++) )
-+ ;
-+ cp++;
-+ tw.tw_year = CVT2;
-+ }
-+ break;
-+ case 8:
-+ {
-+ tw.tw_hour = CVT2; cp++;
-+ tw.tw_min = CVT2; cp++;
-+ tw.tw_sec = CVT2;
-+ BEGIN Z;
-+ }
-+ break;
-+ case 9:
-+ {
-+ tw.tw_hour = CVT2; cp++;
-+ tw.tw_min = CVT2;
-+ BEGIN Z;
-+ }
-+ break;
-+ case 10:
-+ {
-+ tw.tw_hour = CVT2; cp++;
-+ if (tw.tw_hour == 12)
-+ tw.tw_hour = 0;
-+ tw.tw_min = CVT2;
-+ BEGIN Z;
-+ }
-+ break;
-+ case 11:
-+ {
-+ tw.tw_hour = CVT2; cp++;
-+ if (tw.tw_hour != 12)
-+ tw.tw_hour += 12;
-+ tw.tw_min = CVT2;
-+ BEGIN Z;
-+ }
-+ break;
-+ case 12:
-+ {
-+ tw.tw_hour = CVT2;
-+ tw.tw_min = CVT2;
-+ tw.tw_sec = CVT2;
-+ BEGIN Z;
-+ }
-+ break;
-+ case 13:
-+ {
-+ /*
-+ * Luckly, 4 digit times in the range
-+ * 1960-1999 aren't legal as hour
-+ * and minutes.
-+ */
-+ cp += 2;
-+ tw.tw_year = CVT2;
-+ }
-+ break;
-+ case 14:
-+ {
-+ if (tw.tw_hour) {
-+ cp += 2;
-+ tw.tw_year = CVT2;
-+ tw.tw_zone = 0;
-+ } else {
-+ tw.tw_hour = CVT2;
-+ tw.tw_min = CVT2;
-+ BEGIN Z;
-+ }
-+ }
-+ break;
-+ case 15:
-+ ZONE(0 * 60);
-+ break;
-+ case 16:
-+ ZONE(0 * 60);
-+ break;
-+ case 17:
-+ ZONE(2 * 60);
-+ break;
-+ case 18:
-+ ZONED(2 * 60);
-+ break;
-+ case 19:
-+ ZONE(-5 * 60);
-+ break;
-+ case 20:
-+ ZONED(-5 * 60);
-+ break;
-+ case 21:
-+ ZONE(-6 * 60);
-+ break;
-+ case 22:
-+ ZONED(-6 * 60);
-+ break;
-+ case 23:
-+ ZONE(-7 * 60);
-+ break;
-+ case 24:
-+ ZONED(-7 * 60);
-+ break;
-+ case 25:
-+ ZONE(-8 * 60);
-+ break;
-+ case 26:
-+ ZONED(-8 * 60);
-+ break;
-+ case 27:
-+ ZONE(-(3 * 60 + 30));
-+ break;
-+ case 28:
-+ ZONE(-4 * 60);
-+ break;
-+ case 29:
-+ ZONED(-4 * 60);
-+ break;
-+ case 30:
-+ ZONE(-9 * 60);
-+ break;
-+ case 31:
-+ ZONED(-9 * 60);
-+ break;
-+ case 32:
-+ ZONE(-10 * 60);
-+ break;
-+ case 33:
-+ ZONED(-10 * 60);
-+ break;
-+ case 34:
-+ ZONED(0 * 60);
-+ break;
-+ case 35:
-+ {
-+ tw.tw_zone = 60 * (('a'-1) - LC(*cp));
-+ EXPZONE;
-+ }
-+ break;
-+ case 36:
-+ {
-+ tw.tw_zone = 60 * ('a' - LC(*cp));
-+ EXPZONE;
-+ }
-+ break;
-+ case 37:
-+ {
-+ tw.tw_zone = 60 * (LC(*cp) - 'm');
-+ EXPZONE;
-+ }
-+ break;
-+ case 38:
-+ {
-+ cp++;
-+ tw.tw_zone = ((cp[0] * 10 + cp[1])
-+ -('0' * 10 + '0'))*60
-+ +((cp[2] * 10 + cp[3])
-+ -('0' * 10 + '0'));
-+ EXPZONE;
-+ #ifdef DSTXXX
-+ zonehack (&tw);
-+ #endif DSTXXX
-+ cp += 4;
-+ }
-+ break;
-+ case 39:
-+ {
-+ cp++;
-+ tw.tw_zone = (('0' * 10 + '0')
-+ -(cp[0] * 10 + cp[1]))*60
-+ +(('0' * 10 + '0')
-+ -(cp[2] * 10 + cp[3]));
-+ EXPZONE;
-+ #ifdef DSTXXX
-+ zonehack (&tw);
-+ #endif DSTXXX
-+ cp += 4;
-+ }
-+ break;
-+ case 40:
-+ {
-+ while( !isdigit(*cp++) )
-+ ;
-+ cp++;
-+ tw.tw_year = CVT2;
-+ }
-+ break;
-+ case 41:
-+ case 42:
-+ ;
-+ break;
-+ default: return(0);
-+ } }
-+ /* end of yylex */
-+ int yyvstop[] ={
-+ 0,
-+
-+ 42,
-+ 0,
-+
-+ 41,
-+ 0,
-+
-+ 42,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 35,
-+ 0,
-+
-+ 36,
-+ 0,
-+
-+ 36,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 37,
-+ 0,
-+
-+ 15,
-+ 0,
-+
-+ 9,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 29,
-+ 0,
-+
-+ 28,
-+ 0,
-+
-+ 34,
-+ 0,
-+
-+ 22,
-+ 0,
-+
-+ 21,
-+ 0,
-+
-+ 20,
-+ 0,
-+
-+ 19,
-+ 0,
-+
-+ 16,
-+ 0,
-+
-+ 33,
-+ 0,
-+
-+ 32,
-+ 0,
-+
-+ 18,
-+ 0,
-+
-+ 17,
-+ 0,
-+
-+ 24,
-+ 0,
-+
-+ 23,
-+ 0,
-+
-+ 27,
-+ 0,
-+
-+ 26,
-+ 0,
-+
-+ 25,
-+ 0,
-+
-+ 31,
-+ 0,
-+
-+ 30,
-+ 0,
-+
-+ 14,
-+ 0,
-+
-+ 9,
-+ 0,
-+
-+ 9,
-+ 0,
-+
-+ 13,
-+ 14,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 2,
-+ 0,
-+
-+ 14,
-+ 0,
-+
-+ 8,
-+ 0,
-+
-+ 10,
-+ 0,
-+
-+ 11,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 13,
-+ 14,
-+ 0,
-+
-+ 6,
-+ 0,
-+
-+ 40,
-+ 0,
-+
-+ 38,
-+ 0,
-+
-+ 39,
-+ 0,
-+
-+ 2,
-+ 0,
-+
-+ 3,
-+ 0,
-+
-+ 3,
-+ 0,
-+
-+ 12,
-+ 0,
-+
-+ 8,
-+ 0,
-+
-+ 8,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 6,
-+ 0,
-+
-+ 6,
-+ 0,
-+
-+ 1,
-+ 0,
-+
-+ 4,
-+ 0,
-+
-+ 5,
-+ 0,
-+
-+ 5,
-+ 0,
-+
-+ 5,
-+ 0,
-+
-+ 5,
-+ 0,
-+
-+ 7,
-+ 0,
-+ 0};
-+ # define YYTYPE int
-+ struct yywork { YYTYPE verify, advance; } yycrank[] ={
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 1,5, 1,6,
-+ 5,5, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 21,21, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 1,5, 0,0, 5,5,
-+ 3,21, 3,6, 0,0, 0,0,
-+ 0,0, 1,7, 0,0, 0,0,
-+ 21,21, 0,0, 0,0, 0,0,
-+ 0,0, 1,8, 1,9, 1,8,
-+ 1,10, 1,10, 1,10, 1,10,
-+ 1,10, 1,10, 1,10, 3,21,
-+ 9,63, 21,82, 22,83, 22,83,
-+ 0,0, 0,0, 0,0, 3,7,
-+ 0,0, 0,0, 3,22, 0,0,
-+ 3,23, 0,0, 0,0, 3,8,
-+ 3,9, 3,8, 3,10, 3,10,
-+ 3,10, 3,10, 3,10, 3,10,
-+ 3,10, 10,64, 10,64, 10,64,
-+ 10,64, 10,64, 10,64, 10,64,
-+ 10,64, 10,64, 10,64, 0,0,
-+ 0,0, 0,0, 1,11, 15,72,
-+ 0,0, 1,12, 14,70, 1,13,
-+ 12,67, 13,68, 17,75, 1,14,
-+ 19,79, 20,81, 1,15, 1,16,
-+ 1,17, 15,73, 11,65, 16,74,
-+ 1,18, 1,19, 13,69, 11,66,
-+ 1,20, 19,80, 14,71, 25,99,
-+ 3,24, 3,25, 3,26, 3,27,
-+ 3,28, 3,29, 3,30, 3,31,
-+ 3,32, 3,33, 3,34, 3,34,
-+ 3,35, 3,36, 3,37, 3,38,
-+ 3,39, 3,39, 3,40, 3,41,
-+ 3,42, 3,39, 3,43, 3,39,
-+ 3,44, 7,45, 8,50, 18,76,
-+ 23,84, 23,84, 30,104, 18,77,
-+ 7,46, 24,97, 42,114, 45,117,
-+ 26,100, 28,102, 7,47, 7,48,
-+ 31,105, 33,70, 7,49, 38,112,
-+ 33,107, 24,65, 46,118, 18,78,
-+ 24,98, 8,50, 24,66, 26,101,
-+ 28,103, 36,74, 49,123, 31,106,
-+ 56,129, 36,111, 38,113, 33,108,
-+ 47,119, 33,71, 8,51, 57,130,
-+ 8,52, 8,53, 8,53, 8,53,
-+ 8,53, 8,53, 8,53, 8,53,
-+ 8,53, 8,53, 8,53, 8,54,
-+ 44,115, 23,85, 23,86, 23,87,
-+ 47,120, 23,88, 35,72, 23,89,
-+ 23,90, 35,109, 23,91, 59,133,
-+ 50,50, 23,92, 23,93, 44,116,
-+ 23,94, 48,121, 55,127, 58,131,
-+ 35,73, 23,95, 60,134, 55,128,
-+ 35,110, 23,96, 61,135, 62,136,
-+ 65,138, 64,52, 48,122, 51,51,
-+ 66,139, 67,140, 68,141, 50,50,
-+ 69,142, 70,143, 8,55, 58,132,
-+ 64,54, 8,56, 71,144, 8,57,
-+ 71,145, 73,148, 72,146, 8,58,
-+ 50,51, 74,149, 8,59, 8,60,
-+ 8,61, 72,147, 51,51, 75,150,
-+ 8,62, 52,124, 52,124, 52,124,
-+ 52,124, 52,124, 52,124, 52,124,
-+ 52,124, 52,124, 52,124, 53,125,
-+ 53,125, 53,125, 53,125, 53,125,
-+ 53,125, 53,125, 53,125, 53,125,
-+ 53,125, 54,126, 54,126, 54,126,
-+ 54,126, 54,126, 54,126, 54,126,
-+ 54,126, 54,126, 54,126, 63,125,
-+ 63,125, 63,125, 63,125, 63,125,
-+ 63,125, 63,137, 63,137, 63,137,
-+ 63,137, 76,151, 77,152, 78,153,
-+ 50,55, 79,154, 80,155, 50,56,
-+ 81,156, 50,57, 82,157, 93,111,
-+ 85,97, 50,58, 91,107, 92,109,
-+ 50,59, 50,60, 50,61, 97,160,
-+ 98,161, 99,162, 50,62, 51,55,
-+ 100,163, 101,164, 51,56, 85,98,
-+ 51,57, 91,108, 92,110, 102,165,
-+ 51,58, 103,166, 104,167, 51,59,
-+ 51,60, 51,61, 105,168, 106,169,
-+ 107,170, 51,62, 83,158, 83,158,
-+ 83,158, 83,158, 83,158, 83,158,
-+ 83,158, 83,158, 83,158, 83,158,
-+ 84,159, 84,159, 84,159, 84,159,
-+ 84,159, 84,159, 84,159, 84,159,
-+ 84,159, 84,159, 108,171, 109,172,
-+ 110,173, 111,174, 112,175, 113,176,
-+ 115,177, 116,178, 117,179, 118,180,
-+ 119,181, 120,182, 121,183, 122,184,
-+ 123,185, 124,186, 124,187, 124,187,
-+ 124,187, 124,187, 124,187, 124,187,
-+ 124,187, 124,187, 124,187, 124,187,
-+ 125,188, 125,188, 125,188, 125,188,
-+ 125,188, 125,188, 125,188, 125,188,
-+ 125,188, 125,188, 126,189, 127,194,
-+ 128,195, 129,196, 130,197, 131,198,
-+ 132,199, 133,201, 132,200, 134,203,
-+ 135,204, 136,205, 138,207, 139,207,
-+ 133,202, 140,207, 143,214, 145,147,
-+ 148,216, 149,217, 150,218, 152,220,
-+ 153,221, 126,189, 137,206, 137,206,
-+ 137,206, 137,206, 137,206, 137,206,
-+ 137,206, 137,206, 137,206, 137,206,
-+ 141,207, 138,207, 139,207, 142,212,
-+ 140,207, 126,190, 126,190, 126,190,
-+ 126,190, 126,190, 126,190, 126,190,
-+ 126,190, 126,190, 126,190, 126,191,
-+ 144,207, 146,207, 147,207, 180,230,
-+ 154,212, 151,212, 156,212, 141,207,
-+ 155,212, 182,232, 142,212, 157,225,
-+ 157,225, 157,225, 157,225, 179,228,
-+ 181,228, 183,228, 187,186, 184,228,
-+ 190,191, 192,241, 142,212, 144,207,
-+ 146,207, 147,207, 185,228, 154,212,
-+ 151,212, 156,212, 193,242, 155,212,
-+ 198,250, 200,202, 203,252, 204,253,
-+ 205,254, 208,147, 126,192, 154,212,
-+ 151,212, 156,212, 209,257, 155,212,
-+ 210,258, 211,259, 206,255, 212,212,
-+ 213,260, 214,261, 215,147, 216,262,
-+ 217,263, 126,193, 218,264, 219,265,
-+ 220,266, 140,210, 138,208, 158,226,
-+ 158,226, 158,226, 158,226, 158,226,
-+ 158,226, 158,226, 158,226, 158,226,
-+ 158,226, 206,255, 212,212, 139,209,
-+ 221,267, 222,268, 179,229, 223,269,
-+ 224,270, 228,274, 142,213, 159,227,
-+ 159,227, 159,227, 159,227, 159,227,
-+ 159,227, 159,227, 159,227, 159,227,
-+ 159,227, 141,211, 183,233, 146,215,
-+ 181,231, 184,234, 188,238, 185,235,
-+ 186,236, 186,237, 186,236, 186,236,
-+ 186,236, 186,236, 186,236, 186,236,
-+ 186,236, 186,236, 189,189, 156,224,
-+ 194,202, 154,222, 229,275, 230,276,
-+ 144,147, 151,219, 155,223, 231,277,
-+ 232,278, 188,238, 191,240, 191,240,
-+ 191,240, 191,240, 191,240, 191,240,
-+ 191,240, 191,240, 191,240, 191,240,
-+ 233,279, 189,189, 234,280, 194,202,
-+ 235,281, 188,239, 188,239, 188,239,
-+ 188,239, 188,239, 188,239, 188,239,
-+ 188,239, 188,239, 188,239, 195,202,
-+ 194,243, 237,283, 238,238, 194,244,
-+ 194,245, 194,244, 194,244, 194,244,
-+ 194,244, 194,244, 194,244, 194,244,
-+ 194,244, 241,241, 242,242, 245,290,
-+ 246,202, 247,291, 248,292, 249,293,
-+ 250,294, 251,202, 195,202, 252,295,
-+ 253,296, 238,238, 254,297, 257,147,
-+ 196,202, 255,255, 258,301, 259,302,
-+ 260,303, 261,304, 263,305, 195,243,
-+ 241,241, 242,242, 195,244, 195,245,
-+ 195,244, 195,244, 195,244, 195,244,
-+ 195,244, 195,244, 195,244, 195,244,
-+ 264,306, 265,307, 189,192, 196,202,
-+ 255,255, 266,308, 197,202, 268,309,
-+ 269,310, 270,311, 275,312, 277,313,
-+ 194,246, 279,314, 280,315, 281,316,
-+ 196,243, 189,193, 282,282, 196,244,
-+ 196,245, 196,244, 196,244, 196,244,
-+ 196,244, 196,244, 196,244, 196,244,
-+ 196,244, 197,202, 289,318, 291,202,
-+ 284,284, 286,285, 199,202, 288,288,
-+ 292,319, 293,320, 294,321, 295,322,
-+ 296,323, 282,282, 197,243, 297,324,
-+ 283,282, 197,244, 197,245, 197,244,
-+ 197,244, 197,244, 197,244, 197,244,
-+ 197,244, 197,244, 197,244, 284,284,
-+ 286,285, 199,202, 288,288, 195,247,
-+ 201,202, 300,299, 298,298, 301,326,
-+ 299,325, 302,327, 303,212, 283,282,
-+ 304,147, 305,328, 199,243, 306,147,
-+ 196,248, 199,244, 199,245, 199,244,
-+ 199,244, 199,244, 199,244, 199,244,
-+ 199,244, 199,244, 199,244, 201,202,
-+ 283,236, 298,298, 202,202, 299,325,
-+ 307,329, 308,330, 309,331, 311,332,
-+ 312,228, 313,333, 314,334, 285,285,
-+ 201,243, 207,207, 316,335, 201,244,
-+ 201,245, 201,244, 201,244, 201,244,
-+ 201,244, 201,244, 201,244, 201,244,
-+ 201,244, 202,202, 317,336, 197,249,
-+ 319,338, 320,339, 321,202, 322,340,
-+ 323,202, 324,341, 285,285, 330,344,
-+ 207,207, 332,345, 202,243, 335,346,
-+ 318,337, 202,244, 202,245, 202,244,
-+ 202,244, 202,244, 202,244, 202,244,
-+ 202,244, 202,244, 202,244, 285,317,
-+ 207,256, 207,256, 207,256, 207,256,
-+ 207,256, 207,256, 207,256, 207,256,
-+ 207,256, 207,256, 199,202, 318,337,
-+ 341,348, 343,350, 201,251, 225,271,
-+ 225,271, 225,271, 225,271, 225,271,
-+ 225,271, 225,271, 225,271, 225,271,
-+ 225,271, 226,272, 226,272, 226,272,
-+ 226,272, 226,272, 226,272, 226,272,
-+ 226,272, 226,272, 226,272, 227,273,
-+ 227,273, 227,273, 227,273, 227,273,
-+ 227,273, 227,273, 227,273, 227,273,
-+ 227,273, 236,282, 236,282, 236,282,
-+ 236,282, 236,282, 236,282, 236,282,
-+ 236,282, 236,282, 236,282, 239,284,
-+ 239,284, 239,284, 239,284, 239,284,
-+ 239,284, 239,284, 239,284, 239,284,
-+ 239,284, 240,285, 349,349, 287,287,
-+ 336,347, 336,347, 336,347, 336,347,
-+ 0,0, 0,0, 0,0, 243,243,
-+ 347,351, 347,351, 347,351, 347,351,
-+ 347,351, 347,351, 347,351, 347,351,
-+ 347,351, 347,351, 0,0, 0,0,
-+ 240,285, 349,349, 287,287, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 243,243, 0,0,
-+ 0,0, 244,287, 287,288, 0,0,
-+ 240,286, 240,286, 240,286, 240,286,
-+ 240,286, 240,286, 240,286, 240,286,
-+ 240,286, 240,286, 243,244, 243,245,
-+ 243,244, 243,244, 243,244, 243,244,
-+ 243,244, 243,244, 243,244, 243,244,
-+ 244,287, 0,0, 0,0, 256,298,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 244,288, 0,0, 325,325, 0,0,
-+ 244,287, 244,287, 244,287, 244,287,
-+ 244,287, 244,287, 244,287, 244,287,
-+ 244,287, 244,287, 256,298, 0,0,
-+ 0,0, 290,287, 0,0, 287,289,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 325,325, 256,299, 0,0,
-+ 342,349, 0,0, 256,300, 256,300,
-+ 256,300, 256,300, 256,300, 256,300,
-+ 256,300, 256,300, 256,300, 256,300,
-+ 290,287, 325,342, 325,343, 325,342,
-+ 325,342, 325,342, 325,342, 325,342,
-+ 325,342, 325,342, 325,342, 342,349,
-+ 290,288, 244,289, 350,349, 0,0,
-+ 0,0, 290,244, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 342,349,
-+ 342,349, 342,349, 342,349, 342,349,
-+ 342,349, 342,349, 342,349, 342,349,
-+ 342,349, 350,349, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 350,342, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 0,0, 0,0, 0,0,
-+ 0,0, 290,289, 0,0, 0,0,
-+ 0,0};
-+ struct yysvf yysvec[] ={
-+ 0, 0, 0,
-+ yycrank+1, 0, 0,
-+ yycrank+0, yysvec+1, 0,
-+ yycrank+27, 0, 0,
-+ yycrank+0, yysvec+3, 0,
-+ yycrank+3, 0, yyvstop+1,
-+ yycrank+0, 0, yyvstop+3,
-+ yycrank+47, 0, 0,
-+ yycrank+141, 0, 0,
-+ yycrank+3, yysvec+8, 0,
-+ yycrank+37, yysvec+8, 0,
-+ yycrank+2, 0, 0,
-+ yycrank+3, 0, 0,
-+ yycrank+4, 0, 0,
-+ yycrank+5, 0, 0,
-+ yycrank+2, 0, 0,
-+ yycrank+4, 0, 0,
-+ yycrank+7, 0, 0,
-+ yycrank+54, 0, 0,
-+ yycrank+4, 0, 0,
-+ yycrank+8, 0, 0,
-+ yycrank+12, 0, yyvstop+5,
-+ yycrank+14, 0, 0,
-+ yycrank+104, 0, 0,
-+ yycrank+57, 0, yyvstop+7,
-+ yycrank+8, 0, yyvstop+9,
-+ yycrank+60, 0, yyvstop+11,
-+ yycrank+0, yysvec+12, yyvstop+13,
-+ yycrank+61, 0, yyvstop+15,
-+ yycrank+0, yysvec+13, yyvstop+17,
-+ yycrank+45, 0, yyvstop+19,
-+ yycrank+64, 0, yyvstop+21,
-+ yycrank+0, 0, yyvstop+23,
-+ yycrank+68, 0, 0,
-+ yycrank+0, 0, yyvstop+25,
-+ yycrank+109, 0, yyvstop+27,
-+ yycrank+66, 0, yyvstop+29,
-+ yycrank+0, yysvec+17, yyvstop+31,
-+ yycrank+67, 0, yyvstop+33,
-+ yycrank+0, 0, yyvstop+35,
-+ yycrank+0, yysvec+18, yyvstop+37,
-+ yycrank+0, yysvec+19, yyvstop+39,
-+ yycrank+42, 0, yyvstop+41,
-+ yycrank+0, yysvec+20, yyvstop+43,
-+ yycrank+100, 0, yyvstop+45,
-+ yycrank+45, 0, 0,
-+ yycrank+59, 0, 0,
-+ yycrank+87, 0, 0,
-+ yycrank+113, 0, 0,
-+ yycrank+77, 0, 0,
-+ yycrank+203, 0, 0,
-+ yycrank+222, 0, 0,
-+ yycrank+209, 0, 0,
-+ yycrank+219, yysvec+8, 0,
-+ yycrank+229, 0, 0,
-+ yycrank+106, 0, 0,
-+ yycrank+79, 0, 0,
-+ yycrank+86, 0, 0,
-+ yycrank+122, 0, 0,
-+ yycrank+114, 0, 0,
-+ yycrank+111, 0, 0,
-+ yycrank+127, 0, 0,
-+ yycrank+126, 0, 0,
-+ yycrank+239, yysvec+8, 0,
-+ yycrank+182, yysvec+50, 0,
-+ yycrank+114, 0, 0,
-+ yycrank+129, 0, 0,
-+ yycrank+134, 0, 0,
-+ yycrank+136, 0, 0,
-+ yycrank+131, 0, 0,
-+ yycrank+127, 0, 0,
-+ yycrank+134, 0, 0,
-+ yycrank+132, 0, 0,
-+ yycrank+135, 0, 0,
-+ yycrank+131, 0, 0,
-+ yycrank+139, 0, 0,
-+ yycrank+181, 0, 0,
-+ yycrank+186, 0, 0,
-+ yycrank+189, 0, 0,
-+ yycrank+184, 0, 0,
-+ yycrank+201, 0, 0,
-+ yycrank+204, 0, 0,
-+ yycrank+249, 0, 0,
-+ yycrank+290, 0, 0,
-+ yycrank+300, 0, 0,
-+ yycrank+208, 0, 0,
-+ yycrank+0, yysvec+25, 0,
-+ yycrank+0, yysvec+26, 0,
-+ yycrank+0, yysvec+28, 0,
-+ yycrank+0, yysvec+30, 0,
-+ yycrank+0, yysvec+31, 0,
-+ yycrank+210, 0, 0,
-+ yycrank+211, 0, 0,
-+ yycrank+192, 0, 0,
-+ yycrank+0, yysvec+38, 0,
-+ yycrank+0, yysvec+42, 0,
-+ yycrank+0, yysvec+44, 0,
-+ yycrank+199, 0, 0,
-+ yycrank+200, 0, 0,
-+ yycrank+201, 0, 0,
-+ yycrank+204, 0, 0,
-+ yycrank+205, 0, 0,
-+ yycrank+211, 0, 0,
-+ yycrank+213, 0, 0,
-+ yycrank+214, 0, 0,
-+ yycrank+218, 0, 0,
-+ yycrank+219, 0, 0,
-+ yycrank+220, 0, 0,
-+ yycrank+242, 0, 0,
-+ yycrank+243, 0, 0,
-+ yycrank+244, 0, 0,
-+ yycrank+245, 0, 0,
-+ yycrank+246, 0, 0,
-+ yycrank+247, 0, 0,
-+ yycrank+0, 0, yyvstop+47,
-+ yycrank+248, 0, 0,
-+ yycrank+249, 0, 0,
-+ yycrank+261, 0, 0,
-+ yycrank+257, 0, 0,
-+ yycrank+252, 0, 0,
-+ yycrank+259, 0, 0,
-+ yycrank+253, 0, 0,
-+ yycrank+270, 0, 0,
-+ yycrank+272, 0, 0,
-+ yycrank+326, 0, 0,
-+ yycrank+336, 0, 0,
-+ yycrank+385, 0, yyvstop+49,
-+ yycrank+281, 0, 0,
-+ yycrank+293, 0, 0,
-+ yycrank+298, 0, 0,
-+ yycrank+300, 0, 0,
-+ yycrank+289, 0, 0,
-+ yycrank+292, 0, 0,
-+ yycrank+287, 0, 0,
-+ yycrank+285, 0, 0,
-+ yycrank+288, 0, 0,
-+ yycrank+293, 0, 0,
-+ yycrank+370, 0, 0,
-+ yycrank+397, 0, 0,
-+ yycrank+398, 0, 0,
-+ yycrank+400, 0, 0,
-+ yycrank+419, 0, 0,
-+ yycrank+422, 0, yyvstop+51,
-+ yycrank+293, yysvec+139, 0,
-+ yycrank+435, 0, 0,
-+ yycrank+310, yysvec+140, 0,
-+ yycrank+436, 0, 0,
-+ yycrank+437, 0, 0,
-+ yycrank+312, yysvec+142, yyvstop+53,
-+ yycrank+312, yysvec+140, 0,
-+ yycrank+303, yysvec+147, 0,
-+ yycrank+440, 0, yyvstop+55,
-+ yycrank+299, yysvec+147, 0,
-+ yycrank+316, yysvec+142, yyvstop+57,
-+ yycrank+439, 0, yyvstop+59,
-+ yycrank+443, 0, yyvstop+61,
-+ yycrank+441, 0, yyvstop+63,
-+ yycrank+401, 0, 0,
-+ yycrank+455, 0, 0,
-+ yycrank+475, 0, 0,
-+ yycrank+0, 0, yyvstop+65,
-+ yycrank+0, 0, yyvstop+67,
-+ yycrank+0, 0, yyvstop+69,
-+ yycrank+0, 0, yyvstop+71,
-+ yycrank+0, 0, yyvstop+73,
-+ yycrank+0, 0, yyvstop+75,
-+ yycrank+0, 0, yyvstop+77,
-+ yycrank+0, 0, yyvstop+79,
-+ yycrank+0, 0, yyvstop+81,
-+ yycrank+0, 0, yyvstop+83,
-+ yycrank+0, 0, yyvstop+85,
-+ yycrank+0, 0, yyvstop+87,
-+ yycrank+0, 0, yyvstop+89,
-+ yycrank+0, 0, yyvstop+91,
-+ yycrank+0, 0, yyvstop+93,
-+ yycrank+0, 0, yyvstop+95,
-+ yycrank+0, 0, yyvstop+97,
-+ yycrank+0, 0, yyvstop+99,
-+ yycrank+0, 0, yyvstop+101,
-+ yycrank+418, 0, 0,
-+ yycrank+347, yysvec+179, 0,
-+ yycrank+419, 0, 0,
-+ yycrank+353, yysvec+179, 0,
-+ yycrank+420, 0, 0,
-+ yycrank+422, 0, 0,
-+ yycrank+429, 0, 0,
-+ yycrank+492, 0, 0,
-+ yycrank+415, 0, 0,
-+ yycrank+529, 0, yyvstop+103,
-+ yycrank+541, 0, yyvstop+105,
-+ yycrank+406, yysvec+189, yyvstop+107,
-+ yycrank+514, 0, 0,
-+ yycrank+356, 0, 0,
-+ yycrank+365, 0, 0,
-+ yycrank+543, 0, 0,
-+ yycrank+578, 0, 0,
-+ yycrank+607, 0, 0,
-+ yycrank+633, 0, 0,
-+ yycrank+359, yysvec+195, 0,
-+ yycrank+661, 0, 0,
-+ yycrank+376, yysvec+196, 0,
-+ yycrank+687, 0, 0,
-+ yycrank+713, 0, 0,
-+ yycrank+377, yysvec+196, 0,
-+ yycrank+368, yysvec+202, 0,
-+ yycrank+364, yysvec+202, 0,
-+ yycrank+481, yysvec+188, yyvstop+109,
-+ yycrank+724, 0, 0,
-+ yycrank+373, 0, 0,
-+ yycrank+371, 0, 0,
-+ yycrank+379, 0, 0,
-+ yycrank+372, 0, 0,
-+ yycrank+482, 0, yyvstop+112,
-+ yycrank+395, 0, 0,
-+ yycrank+396, 0, 0,
-+ yycrank+390, 0, 0,
-+ yycrank+398, 0, 0,
-+ yycrank+387, 0, 0,
-+ yycrank+400, 0, 0,
-+ yycrank+385, 0, 0,
-+ yycrank+399, 0, 0,
-+ yycrank+419, 0, 0,
-+ yycrank+402, 0, 0,
-+ yycrank+419, 0, 0,
-+ yycrank+419, 0, 0,
-+ yycrank+739, 0, 0,
-+ yycrank+749, 0, 0,
-+ yycrank+759, 0, 0,
-+ yycrank+477, 0, yyvstop+114,
-+ yycrank+457, 0, 0,
-+ yycrank+458, 0, 0,
-+ yycrank+445, 0, 0,
-+ yycrank+463, 0, 0,
-+ yycrank+457, 0, 0,
-+ yycrank+474, 0, 0,
-+ yycrank+475, 0, 0,
-+ yycrank+769, 0, 0,
-+ yycrank+532, yysvec+236, 0,
-+ yycrank+581, 0, yyvstop+116,
-+ yycrank+779, 0, 0,
-+ yycrank+828, 0, yyvstop+118,
-+ yycrank+592, 0, yyvstop+120,
-+ yycrank+593, 0, yyvstop+122,
-+ yycrank+838, 0, 0,
-+ yycrank+864, 0, yyvstop+124,
-+ yycrank+546, yysvec+244, yyvstop+126,
-+ yycrank+496, 0, 0,
-+ yycrank+490, 0, 0,
-+ yycrank+497, 0, 0,
-+ yycrank+490, 0, 0,
-+ yycrank+511, 0, 0,
-+ yycrank+505, 0, 0,
-+ yycrank+502, 0, 0,
-+ yycrank+514, 0, 0,
-+ yycrank+513, 0, 0,
-+ yycrank+608, 0, yyvstop+128,
-+ yycrank+890, 0, yyvstop+131,
-+ yycrank+499, 0, 0,
-+ yycrank+520, 0, 0,
-+ yycrank+522, 0, 0,
-+ yycrank+499, 0, 0,
-+ yycrank+507, 0, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+524, 0, 0,
-+ yycrank+535, 0, 0,
-+ yycrank+537, 0, 0,
-+ yycrank+532, 0, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+543, 0, 0,
-+ yycrank+547, 0, 0,
-+ yycrank+530, 0, 0,
-+ yycrank+0, 0, yyvstop+133,
-+ yycrank+0, 0, yyvstop+135,
-+ yycrank+0, 0, yyvstop+137,
-+ yycrank+0, 0, yyvstop+139,
-+ yycrank+525, 0, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+547, 0, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+549, 0, 0,
-+ yycrank+553, 0, 0,
-+ yycrank+536, 0, 0,
-+ yycrank+645, 0, yyvstop+141,
-+ yycrank+671, yysvec+186, yyvstop+143,
-+ yycrank+659, 0, yyvstop+145,
-+ yycrank+722, 0, yyvstop+147,
-+ yycrank+660, 0, yyvstop+149,
-+ yycrank+830, 0, yyvstop+151,
-+ yycrank+662, 0, yyvstop+153,
-+ yycrank+550, 0, 0,
-+ yycrank+916, yysvec+243, yyvstop+155,
-+ yycrank+551, 0, 0,
-+ yycrank+574, 0, 0,
-+ yycrank+576, 0, 0,
-+ yycrank+560, 0, 0,
-+ yycrank+577, 0, 0,
-+ yycrank+575, 0, 0,
-+ yycrank+570, 0, 0,
-+ yycrank+689, 0, yyvstop+157,
-+ yycrank+691, 0, 0,
-+ yycrank+653, yysvec+298, yyvstop+159,
-+ yycrank+598, 0, 0,
-+ yycrank+587, 0, 0,
-+ yycrank+658, yysvec+212, yyvstop+161,
-+ yycrank+583, 0, 0,
-+ yycrank+604, 0, 0,
-+ yycrank+593, 0, 0,
-+ yycrank+627, 0, 0,
-+ yycrank+627, 0, 0,
-+ yycrank+629, 0, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+627, 0, 0,
-+ yycrank+687, 0, 0,
-+ yycrank+632, 0, 0,
-+ yycrank+633, 0, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+634, 0, 0,
-+ yycrank+689, 0, 0,
-+ yycrank+751, 0, 0,
-+ yycrank+647, 0, 0,
-+ yycrank+635, 0, 0,
-+ yycrank+629, 0, 0,
-+ yycrank+650, 0, 0,
-+ yycrank+638, 0, 0,
-+ yycrank+655, 0, 0,
-+ yycrank+901, 0, 0,
-+ yycrank+0, yysvec+306, 0,
-+ yycrank+0, yysvec+304, 0,
-+ yycrank+0, yysvec+306, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+654, 0, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+660, 0, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+662, 0, 0,
-+ yycrank+786, 0, 0,
-+ yycrank+0, yysvec+318, yyvstop+163,
-+ yycrank+0, yysvec+323, 0,
-+ yycrank+0, yysvec+321, 0,
-+ yycrank+0, yysvec+323, 0,
-+ yycrank+683, 0, 0,
-+ yycrank+927, 0, yyvstop+165,
-+ yycrank+728, yysvec+342, yyvstop+167,
-+ yycrank+0, yysvec+306, 0,
-+ yycrank+0, yysvec+260, 0,
-+ yycrank+0, yysvec+275, 0,
-+ yycrank+800, 0, 0,
-+ yycrank+0, yysvec+323, 0,
-+ yycrank+829, 0, yyvstop+169,
-+ yycrank+953, yysvec+325, yyvstop+171,
-+ yycrank+0, 0, yyvstop+173,
-+ 0, 0, 0};
-+ struct yywork *yytop = yycrank+1013;
-+ struct yysvf *yybgin = yysvec+1;
-+ char yymatch[] ={
-+ 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,011 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 011 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ '0' ,'0' ,'2' ,'3' ,'3' ,'3' ,'6' ,'6' ,
-+ '6' ,'6' ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,'a' ,
-+ 'a' ,'a' ,01 ,'k' ,'k' ,'k' ,'n' ,'n' ,
-+ 'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,'n' ,
-+ 'n' ,'n' ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 ,
-+ 0};
-+ char yyextra[] ={
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0};
-+ /* ncform 4.1 83/08/11 */
-+
-diff -c mh/zotnet/tws/dtimep.lex:1.1.1.1 mh/zotnet/tws/dtimep.lex:1.2
-*** mh/zotnet/tws/dtimep.lex:1.1.1.1 Tue Feb 9 07:44:02 1993
---- mh/zotnet/tws/dtimep.lex Tue Feb 9 07:44:02 1993
-***************
-*** 34,53 ****
- d [0-9]
- %{
- #ifndef lint
-! static char ident[] = "@(#)$Id: dtimep.lex,v 2.14 1992/12/15 00:20:22 jromine Exp $";
- #endif
- #include "tws.h"
- #include "../h/strings.h"
- #include <ctype.h>
- #include <sys/types.h>
-! #ifndef SYS5
- #include <sys/timeb.h>
-! #endif /* not SYS5 */
-
- #ifdef SYS5
-- extern int daylight;
- extern long timezone;
-- extern char *tzname[];
- #endif /* SYS5 */
-
- /*
---- 34,51 ----
- d [0-9]
- %{
- #ifndef lint
-! static char ident[] = "@(#)$Id: dtimep.lex,v 1.1.1.1 1993/01/30 04:41:48 jtc Exp $";
- #endif
- #include "tws.h"
- #include "../h/strings.h"
- #include <ctype.h>
- #include <sys/types.h>
-! #if !defined(SYS5) && !defined(ZONEINFO)
- #include <sys/timeb.h>
-! #endif /* !defined(SYS5) && !defined(ZONEINFO) */
-
- #ifdef SYS5
- extern long timezone;
- #endif /* SYS5 */
-
- /*
-***************
-*** 168,175 ****
- register char *cp;
- register int gotdate = 0;
- #ifndef SYS5
- struct timeb tb;
-! #endif /* not SYS5 */
- long tclock;
-
- start_cond = 0;
---- 166,178 ----
- register char *cp;
- register int gotdate = 0;
- #ifndef SYS5
-+ #ifdef ZONEINFO
-+ struct tm *tm;
-+ time_t clock;
-+ #else
- struct timeb tb;
-! #endif /* ZONEINFO */
-! #endif /* not SYS5 */
- long tclock;
-
- start_cond = 0;
-***************
-*** 178,190 ****
- bzero( (char *) &tw, sizeof tw);
-
- /* Set default time zone. */
-! #ifndef SYS5
-! ftime( &tb );
-! tw.tw_zone = -tb.timezone;
-! #else /* SYS5 */
- tzset( );
- tw.tw_zone = -(timezone / 60);
-! #endif /* SYS5 */
-
- while (isspace(*str))
- str++;
---- 181,202 ----
- bzero( (char *) &tw, sizeof tw);
-
- /* Set default time zone. */
-! #ifdef SYS5
- tzset( );
- tw.tw_zone = -(timezone / 60);
-! #else
-! #ifdef ZONEINFO
-! time (&clock);
-! tm = localtime(&clock);
-! tw.tw_zone = tm->tm_gmtoff / 60;
-! if (tm -> tm_isdst) /* if DST is in effect */
-! tw.tw_zone -= 60; /* reset to normal offset */
-! #else
-! ftime( &tb );
-! tw.tw_zone = -tb.timezone;
-! #endif /* ZONEINFO */
-! #endif /* SYS5 */
-!
-
- while (isspace(*str))
- str++;
-
-------- =_aaaaaaaaaa0--
-
-
-