crouch@crunchie.axion.bt.co.uk (the man whose head expanded) (07/06/89)
I've managed to get mh to run on our hp cluster; however we have a problem
with the scan command. Scan doesn't seem able to extract the dat from the
message, so when we type scan we get output such as:
6 00/01 To:crouch@axion.b starting getalias
^^^^^ This should be 07/06.
Has anyone seen this before or can suggest possible fixes.
Any help would be appreciated.
Regards,
Chris Rouch
--------------------------------------------------------------------------
crouch@axion.bt.co.uk RT3141, BTRL, Martlesham Heath, Ipswich
+44 473 646093
"A woman drove me to drink, and I didn't even have the courtesy to thank her"gregg@cbnewsc.ATT.COM (gregg.g.wonderly) (07/07/89)
From article <1909@zaphod.axion.bt.co.uk>, by crouch@crunchie.axion.bt.co.uk (the man whose head expanded): > I've managed to get mh to run on our hp cluster; however we have a problem > with the scan command. Scan doesn't seem able to extract the dat from the > message, so when we type scan we get output such as: > > 6 00/01 To:crouch@axion.b starting getalias > > ^^^^^ This should be 07/06. > > Has anyone seen this before or can suggest possible fixes. One problem that I am aware of with date processing is in ~mh/zotnet/tws/dtimep.lex. There are others there too when you do not pass it a strictly conforming date. change the lines near line 203 from [0-2]{d}{d}{d}{w} { tw.tw_hour = CVT2; tw.tw_min = CVT2; BEGIN Z; } to [0-2]{d}{d}{d}{w} { if (tw.tw_hour) { cp += 2; tw.tw_year = CVT2; tw.tw_zone = ZONE(-5 * 60); /* HACK, force EST */ } else { tw.tw_hour = CVT2; tw.tw_min = CVT2; BEGIN Z; } } Without seeing the exact date line that you are passing it, I can not say for sure, but this will certainly fix some problems. Particularly, this fixes the case where the date line does not have a Time Zone with it (it should, but some don't). -- ----- gregg.g.wonderly@att.com (AT&T bell laboratories)
seligman@polya.Stanford.EDU (Scott Seligman) (07/08/89)
In article <1909@zaphod.axion.bt.co.uk> crouch@axion.bt.co.uk writes: >I've managed to get mh to run on our hp cluster; however we have a problem >with the scan command. Scan doesn't seem able to extract the dat from the >message, so when we type scan we get output such as: > > 6 00/01 To:crouch@axion.b starting getalias > > ^^^^^ This should be 07/06. I had exactly the same problem. I fixed it by "lex"ing the file zotnet/tws/dtimep.lex on another system. It looks to me like lex on our 6.2 system was buggy. I haven't tried it under 6.5. Let me know if you'd like me to send you a working version of dtimep.c, the output of lex. Scott seligman@polya.stanford.edu
mark@comp.vuw.ac.nz (Mark Davies) (07/09/89)
In article <10458@polya.Stanford.EDU> seligman@Polya.Stanford.EDU.Stanford.EDU (Scott Seligman) writes: -In article <1909@zaphod.axion.bt.co.uk> crouch@axion.bt.co.uk writes: ->I've managed to get mh to run on our hp cluster; however we have a problem ->with the scan command. Scan doesn't seem able to extract the dat from the ->message, so when we type scan we get output such as: -> 6 00/01 To:crouch@axion.b starting getalias -> ^^^^^ This should be 07/06. -I had exactly the same problem. I fixed it by "lex"ing the file -zotnet/tws/dtimep.lex on another system. It looks to me like -lex on our 6.2 system was buggy. I haven't tried it under -6.5. Let me know if you'd like me to send you a working version -of dtimep.c, the output of lex. I had the same problem on our 835 running HPUX 3.0, and fixed it the same way, by lexing it on another system. cheers mark -- Domainised: mark@comp.vuw.ac.nz Bang form: ...!uunet!vuwcomp!mark
neil@yc.estec.nl (Neil Dixon) (07/10/89)
Chris,
I seem to recall that the problem is a mismatch in the types
produced by lex, and the types in lexstring.c. I can't remember the
exact details but here's the patch.
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# patch.neil
# This archive created: Mon Jul 10 09:32:53 1989
export PATH; PATH=/bin:$PATH
echo shar: extracting "'patch.neil'" '(2101 characters)'
if test -f 'patch.neil'
then
echo shar: will not over-write existing file "'patch.neil'"
else
sed 's/^ X//' << \SHAR_EOF > 'patch.neil'
XIndex: lexstring.c
XVersion: -r1.1/-r1.3
X*** /tmp/md526..1 Mon Jul 10 09:32:26 1989
X--- /tmp/md526..2 Mon Jul 10 09:32:26 1989
X***************
X*** 6,12 ****
X #define YYLMAX 256
X
X struct yysvf {
X! struct yywork *yystoff;
X struct yysvf *yyother;
X int *yystops;
X };
X--- 6,12 ----
X #define YYLMAX 256
X
X struct yysvf {
X! int yystoff;
X struct yysvf *yyother;
X int *yystops;
X };
X***************
X*** 24,30 ****
X extern char yyextra[];
X
X #ifdef LEXDEBUG
X! static int debug = 0;
X #endif LEXDEBUG
X
X lex_string( strptr, start_cond)
X--- 24,30 ----
X extern char yyextra[];
X
X #ifdef LEXDEBUG
X! static int debug = 1;
X #endif LEXDEBUG
X
X lex_string( strptr, start_cond)
X***************
X*** 46,56 ****
X if(debug)
X fprintf(stderr,"state %d\n",state-yysvec-1);
X # endif
X! tran = state->yystoff;
X if(tran == yycrank)
X /* may not be any transitions */
X if (state->yyother == 0 ||
X! state->yyother->yystoff == yycrank)
X break;
X
X ch = *cp++;
X--- 46,56 ----
X if(debug)
X fprintf(stderr,"state %d\n",state-yysvec-1);
X # endif
X! tran = &yycrank[state->yystoff];
X if(tran == yycrank)
X /* may not be any transitions */
X if (state->yyother == 0 ||
X! state->yyother->yystoff == 0)
X break;
X
X ch = *cp++;
X***************
X*** 80,86 ****
X
X } else if(tran < yycrank) {
X /* r < yycrank */
X! tran = yycrank+(yycrank-tran) + ch;
X # ifdef LEXDEBUG
X if (debug)
X fprintf(stderr,"compressed state\n");
X--- 80,86 ----
X
X } else if(tran < yycrank) {
X /* r < yycrank */
X! tran = yycrank + (yycrank - tran) + ch;
X # ifdef LEXDEBUG
X if (debug)
X fprintf(stderr,"compressed state\n");
X***************
X*** 111,117 ****
X }
X }
X if ((state = state->yyother) &&
X! (tran = state->yystoff) != yycrank){
X # ifdef LEXDEBUG
X if(debug)
X fprintf(stderr,"fall back to state %d\n",
X--- 111,117 ----
X }
X }
X if ((state = state->yyother) &&
X! (tran = &yycrank[state->yystoff]) != yycrank){
X # ifdef LEXDEBUG
X if(debug)
X fprintf(stderr,"fall back to state %d\n",
SHAR_EOF
if test 2101 -ne "`wc -c < 'patch.neil'`"
then
echo shar: error transmitting "'patch.neil'" '(should have been 2101 characters)'
fi
fi # end of overwriting check
# End of shell archive
exit 0
--
Neil Dixon <neil@yc.estec.nl> UUCP:...!mcvax!esatst!neil, BITNET: NDIXON@ESTEC
Thermal Control & Life Support Division (YC)
European Space Research and Technology Centre (ESTEC),
Noordwijk, The Netherlands.