]> git.marmaro.de Git - mmh/commitdiff
Scan listings shall not contain body content. Hence, removed this feature.
authormarkus schnalke <meillo@marmaro.de>
Mon, 30 Jan 2012 15:16:26 +0000 (16:16 +0100)
committermarkus schnalke <meillo@marmaro.de>
Mon, 30 Jan 2012 15:16:26 +0000 (16:16 +0100)
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.

12 files changed:
etc/scan.MMDDYY
etc/scan.YYYYMMDD
etc/scan.nmh
etc/scan.nomime
etc/scan.size
etc/scan.time
etc/scan.timely
etc/scan.unseen
man/mh-format.man5
man/scan.man1
uip/rcvtty.c
uip/scansbr.c

index dd20b2905a51583be7699998a3e8420f628158e8..942ddcc31c8559f00b08101268c1ff99e2a7501f 100644 (file)
@@ -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})
index 741681ded33bc3c34cf112288f247e385fc2b311..e91bcb1ee1f9716091fb4e43765db5371e913e80 100644 (file)
@@ -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})
index a59116cf3d6b0292448e7ce47c6ffff9b0e10e8b..b15a28157f2f9ee87b55e313833a337e79d9f1e7 100644 (file)
@@ -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})
index 8e2cedf69883ad60bcf1645f019f4b1c9f004be4..145e73f8e8313863a4ffee420f9849ac2eb73841 100644 (file)
@@ -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}
index a6b6698c7a3752eb950f7312d06d104d281970b4..5f35b36507692948deaef3df4136759a3edcd675 100644 (file)
@@ -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})
index ee54a523f30c059ee62ef6e239688980adc66695..4c5813374036150983f919b45fd635f7c0f13349 100644 (file)
@@ -4,4 +4,4 @@
 %<{date} %|*%>\
 %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\
 %<(zero)%17(decode(friendly{from}))%>  \
-%(decode{subject})%<{body}<<%{body}%>
+%(decode{subject})
index 06c068c202270c83694b4bfcaed60b3b01db134e..54f6d0a2d6753b59e5aebc32861e3116bf294758 100644 (file)
@@ -7,4 +7,4 @@
 %<{date} %|*%>\
 %<(mymbox{from})%<{to}To:%14(decode(friendly{to}))%>%>\
 %<(zero)%17(decode(friendly{from}))%>  \
-%(decode{subject})%<{body}<<%{body}%>
+%(decode{subject})
index d1cd195c996f35313b64ebf784744bfe3d80da78..2cd0b820a5e78835559e36888b981c44794437c5 100644 (file)
@@ -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})
index 9629de55a092a5e8dc7015c55c657652e6d23c72..ee59f716fb80ae955a313ad886aa541a2c96e19d 100644 (file)
@@ -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
index ba59b45389f9e2732ae9b9e5f615acf053ba766f..173289591e94970470cee36f0d1f93abbcc3809e 100644 (file)
@@ -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<<Last week I asked some of
-16\-   10/\|05 crocker message id format\0\0\<<I recommend
+15+    10/\|05 crocker nned
+16\-   10/\|05 crocker message id format
 18     10/\|06 brien   Re: Exit status from mkdir
 19     10/\|07*brien   \*(lqscan\*(rq listing format in nmh
 .fi
@@ -54,11 +54,6 @@ command).
 The `*' on message 19 indicates that no \*(lqDate:\*(rq header was
 present.  The time of last modification of the message is given instead.
 .PP
-If there is sufficient room left on the
-.B scan
-line after the
-subject, the line will be filled with text from the body, preceded by
-\*(lq<<\*(rq, and terminated by \*(lq>>\*(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
index e1f5e9422feedf1c5426341a75c9d3848d743a32..a62d091fd77d52402f9a7ff152ffedcc88a3493b 100644 (file)
@@ -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
index a43044c8a637b76264afd89969569069ff0d5527..9617237a3a92791536758f70e090cb4bf4a7b3a1 100644 (file)
 /*
 ** 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);