From: markus schnalke Date: Mon, 30 Jan 2012 15:16:26 +0000 (+0100) Subject: Scan listings shall not contain body content. Hence, removed this feature. X-Git-Tag: mmh-thesis-end~384 X-Git-Url: http://git.marmaro.de/?p=mmh;a=commitdiff_plain;h=70b2643e0da8485174480c644ad9785c84f5bff4 Scan listings shall not contain body content. Hence, removed this feature. Scan listings shall operator on message headers and non-message information only. Displaying the beginning of the body complicates everything too much. That's no surprise, because it's something completely different. If you want to examine the body, then use show(1)/mhshow(1). Changed the default scan formats accordingly. --- diff --git a/etc/scan.MMDDYY b/etc/scan.MMDDYY index dd20b29..942ddcc 100644 --- a/etc/scan.MMDDYY +++ b/etc/scan.MMDDYY @@ -7,4 +7,4 @@ %02(mon{date})/%02(mday{date})/%(void(year{date}))%02(modulo 100)%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}>>%> +%(decode{subject}) diff --git a/etc/scan.YYYYMMDD b/etc/scan.YYYYMMDD index 741681d..e91bcb1 100644 --- a/etc/scan.YYYYMMDD +++ b/etc/scan.YYYYMMDD @@ -7,4 +7,4 @@ %4(year{date})-%02(mon{date})-%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}>>%> +%(decode{subject}) diff --git a/etc/scan.nmh b/etc/scan.nmh index a59116c..b15a281 100644 --- a/etc/scan.nmh +++ b/etc/scan.nmh @@ -6,4 +6,4 @@ %02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}>>%> +%(decode{subject}) diff --git a/etc/scan.nomime b/etc/scan.nomime index 8e2cedf..145e73f 100644 --- a/etc/scan.nomime +++ b/etc/scan.nomime @@ -7,4 +7,4 @@ %4(msg)%<(cur)+%| %>%<{replied}-%?{encrypted}E%| %>\ %02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ -%{subject}%<{body}<<%{body}>>%> +%{subject} diff --git a/etc/scan.size b/etc/scan.size index a6b6698..5f35b36 100644 --- a/etc/scan.size +++ b/etc/scan.size @@ -3,4 +3,4 @@ %5(size) \ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}%> +%(decode{subject}) diff --git a/etc/scan.time b/etc/scan.time index ee54a52..4c58133 100644 --- a/etc/scan.time +++ b/etc/scan.time @@ -4,4 +4,4 @@ %<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}%> +%(decode{subject}) diff --git a/etc/scan.timely b/etc/scan.timely index 06c068c..54f6d0a 100644 --- a/etc/scan.timely +++ b/etc/scan.timely @@ -7,4 +7,4 @@ %<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}%> +%(decode{subject}) diff --git a/etc/scan.unseen b/etc/scan.unseen index d1cd195..2cd0b82 100644 --- a/etc/scan.unseen +++ b/etc/scan.unseen @@ -2,4 +2,4 @@ %02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\ %<(zero)%17(decode(friendly{from}))%> \ -%(decode{subject})%<{body}<<%{body}>>%> +%(decode{subject}) diff --git a/man/mh-format.man5 b/man/mh-format.man5 index 9629de5..ee59f71 100644 --- a/man/mh-format.man5 +++ b/man/mh-format.man5 @@ -453,11 +453,11 @@ And finally, .PP .RS 5 .nf -%(decode{subject})%<{body}<<%{body}>>%> +%(decode{subject}) .fi .RE .PP -the mime-decoded subject and initial body (if any) are printed. +the mime-decoded subject is printed. .PP For a more complicated example, next consider a possible diff --git a/man/scan.man1 b/man/scan.man1 index ba59b45..1732895 100644 --- a/man/scan.man1 +++ b/man/scan.man1 @@ -28,14 +28,14 @@ produces a one\-line\-per\-message listing of the specified folder or messages. Each .B scan line contains the message number -(name), the date, the \*(lqFrom:\*(rq field, the \*(lqSubject\*(rq field, -and, if room allows, some of the body of the message. For example: +(name), the date, the \*(lqFrom:\*(rq field and the \*(lqSubject\*(rq field. +For example: .PP .RS 5 .nf .ta \w'15+- 'u +\w'07/\|05x 'u +\w'Dcrocker 'u -15+ 10/\|05 crocker nned\0\0<>\*(rq if the body is sufficiently short. .B Scan actually reads each of the specified messages and parses them to extract the desired fields. During parsing, appropriate error messages will be @@ -152,7 +147,6 @@ escapes: .nf .ta \w'Dtimenow 'u +\w'Returns 'u .I Escape Returns Description -body string the (compressed) first part of the body dtimenow date the current date folder string the name of the current folder .fi diff --git a/uip/rcvtty.c b/uip/rcvtty.c index e1f5e94..a62d091 100644 --- a/uip/rcvtty.c +++ b/uip/rcvtty.c @@ -35,7 +35,7 @@ #define SCANFMT \ "%2(hour{dtimenow}):%02(min{dtimenow}): %<(size)%5(size) %>%<{encrypted}E%>\ %<(mymbox{from})%<{to}To:%14(friendly{to})%>%>%<(zero)%17(friendly{from})%> \ -%{subject}%<{body}<<%{body}>>%>" +%{subject}" static struct swit switches[] = { #define BIFFSW 0 diff --git a/uip/scansbr.c b/uip/scansbr.c index a43044c..9617237 100644 --- a/uip/scansbr.c +++ b/uip/scansbr.c @@ -30,16 +30,13 @@ /* ** Buffer size for content part of header fields. We want this ** to be large enough so that we don't do a lot of extra FLDPLUS -** calls on m_getfld but small enough so that we don't snarf -** the entire message body when we're only going to display 30 -** characters of it. +** calls on m_getfld. */ #define SBUFSIZ 512 static struct format *fmt; static struct comp *datecomp; /* pntr to "date" comp */ -static struct comp *bodycomp; /* pntr to "body" pseudo-comp (if referenced) */ static int ncomps = 0; /* # of interesting components */ static char **compbuffers = 0; /* buffers for component text */ static struct comp **used_buf = 0; /* stack for comp that use buffers */ @@ -74,13 +71,12 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, int i, compnum, encrypted, state; unsigned char *cp, *tmpbuf; char **nxtbuf; - char *saved_c_text = NULL; struct comp *cptr; struct comp **savecomp; char *scnmsg = NULL; FILE *scnout = NULL; char name[NAMESZ]; - static int rlwidth, slwidth; + static int slwidth; #ifdef RPATHS char returnpath[BUFSIZ]; @@ -104,7 +100,6 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, /* Compile format string */ ncomps = fmt_compile(nfs, &fmt) + 1; - FINDCOMP(bodycomp, "body"); FINDCOMP(datecomp, "date"); FINDCOMP(cptr, "folder"); if (cptr && folder) @@ -113,7 +108,7 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, if (!cptr) if ((cptr = (struct comp *)calloc(1, sizeof(*cptr)))) { cptr->c_name = "encrypted"; - cptr->c_next = wantcomp[i = CHASH(cptr->c_name)]; + cptr->c_next = wantcomp[i=CHASH(cptr->c_name)]; wantcomp[i] = cptr; ncomps++; } @@ -129,9 +124,8 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, if (used_buf == NULL) adios(NULL, "unable to allocate component buffer stack"); used_buf += ncomps+1; *--used_buf = 0; - rlwidth = bodycomp && (width > SBUFSIZ) ? width : SBUFSIZ; for (i = ncomps; i--; ) - *nxtbuf++ = mh_xmalloc(rlwidth); + *nxtbuf++ = mh_xmalloc(SBUFSIZ); } /* @@ -148,7 +142,7 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, ** Get the first field. If the message is non-empty ** and we're doing an "inc", open the output file. */ - if ((state = m_getfld(FLD, name, tmpbuf, rlwidth, inb)) == FILEEOF) { + if ((state = m_getfld(FLD, name, tmpbuf, SBUFSIZ, inb)) == FILEEOF) { if (ferror(inb)) { advise("read", "unable to"); /* "read error" */ return SCNFAT; @@ -184,7 +178,7 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, /* scan - main loop */ for (compnum = 1; ; - state = m_getfld(state, name, tmpbuf, rlwidth, inb)) { + state = m_getfld(state, name, tmpbuf, SBUFSIZ, inb)) { switch (state) { case FLD: case FLDPLUS: @@ -221,7 +215,7 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, } while (state == FLDPLUS) { - state = m_getfld(state, name, tmpbuf, rlwidth, + state = m_getfld(state, name, tmpbuf, SBUFSIZ, inb); if (outnum) FPUTS(tmpbuf); @@ -229,49 +223,7 @@ scan(FILE *inb, int innum, int outnum, char *nfs, int width, int curflg, break; case BODY: - compnum = -1; - if (! outnum) { - state = FILEEOF; /* stop now if scan cmd */ - goto finished; - } - if (putc('\n', scnout) == EOF) DIEWRERR(); - FPUTS(tmpbuf); - /* - ** performance hack: some people like to run "inc" - ** on things like net.sources or large digests. - ** We do a copy directly into the output buffer - ** rather than going through an intermediate buffer. - ** - ** We need the amount of data m_getfld found & - ** don't want to do a strlen on the long buffer so - ** there's a hack in m_getfld to save the amount - ** of data it returned in the global "msg_count". - */ -body:; - while (state == BODY) { -#ifdef LINUX_STDIO - if (scnout->_IO_write_ptr == scnout->_IO_write_end) { -#elif defined(__DragonFly__) - if (((struct __FILE_public *)scnout)->_w <= 0) { -#else - if (scnout->_cnt <= 0) { -#endif - if (fflush(scnout) == EOF) - DIEWRERR(); - } -#ifdef LINUX_STDIO - 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; -#elif defined(__DragonFly__) - state = m_getfld(state, name, ((struct __FILE_public *)scnout)->_p, -(((struct __FILE_public *)scnout)->_w), inb); - ((struct __FILE_public *)scnout)->_w -= msg_count; - ((struct __FILE_public *)scnout)->_p += msg_count; -#else - state = m_getfld( state, name, scnout->_ptr, -(scnout->_cnt), inb); - scnout->_cnt -= msg_count; - scnout->_ptr += msg_count; -#endif - } + state = FILEEOF; goto finished; case LENERR: @@ -284,8 +236,6 @@ body:; FPUTS(name); if (putc('\n', scnout) == EOF) DIEWRERR(); - state = BODY; - goto body; } /* fall through */ @@ -306,12 +256,6 @@ finished: return SCNFAT; } - /* Save and restore buffer so we don't trash our dynamic pool! */ - if (bodycomp) { - saved_c_text = bodycomp->c_text; - bodycomp->c_text = tmpbuf; - } - if (size) dat[2] = size; else if (outnum > 0) { @@ -342,9 +286,6 @@ finished: fmt_scan(fmt, scanl, slwidth, dat); - if (bodycomp) - bodycomp->c_text = saved_c_text; - if (noisy) fputs(scanl, stdout);