]>
diplodocus.org Git - nmh/blob - docs/historical/mh-nov-1983/cmds/show.c
8 struct swit switches
[] = {
20 char *folder
, *maildir
, *msgs
[100];
22 register char *cp
, **ap
;
23 int msgp
, all
, drft
, pr
;
24 char *arguments
[50], **argp
;
27 setbuf(stdout
, _sobuf
);
34 cp
= r1bindex(argv
[0], '/');
35 if((cp
= m_find(cp
)) != NULL
) {
36 ap
= brkstring(cp
= getcpy(cp
), " ", "\n");
37 ap
= copyip(ap
, arguments
);
44 switch(smatch(++cp
, switches
)) {
45 case -2:ambigsw(cp
, switches
); /* ambiguous */
48 case -1:vec
[vecp
++] = --cp
; continue;
50 case 0: fprintf(stderr
, "\"-all\" changed to \"all\"\n");
52 case 1: drft
= 1; continue; /* -draft */
53 case 2: pr
= 1; continue; /* -pr */
54 case 3: pr
= 0; vecp
= 1; continue;/* -nopr */
56 help("show [+folder] [msgs] [switches] [switches for \"type\" or \"pr\" ]",
62 fprintf(stderr
, "Only one folder at a time.\n");
70 maildir
= m_maildir("");
75 folder
= m_getfolder();
76 maildir
= m_maildir(folder
);
78 if(chdir(maildir
) < 0) {
79 fprintf(stderr
, "Can't chdir to: ");
87 if(!(mp
= m_gmsg(folder
))) {
88 fprintf(stderr
, "Can't read folder!?\n");
92 fprintf(stderr
, "No messages in \"%s\".\n", folder
);
96 for(msgnum
= 0; msgnum
< msgp
; msgnum
++)
97 if(!m_convert(msgs
[msgnum
]))
100 fprintf(stderr
, "show: potato pancakes.\n"); /* never get here */
103 if(mp
->numsel
> MAXARGS
-2) {
104 fprintf(stderr
, "show: more than %d messages for show-exec\n", MAXARGS
-2);
107 for(msgnum
= mp
->lowsel
; msgnum
<= mp
->hghsel
; msgnum
++)
108 if(mp
->msgstats
[msgnum
]&SELECTED
)
109 vec
[vecp
++] = getcpy(m_name(msgnum
));
110 m_replace(pfolder
, folder
);
111 if(mp
->hghsel
!= mp
->curmsg
)
112 m_setcur(mp
->hghsel
);
114 printf("(Message %s:%s)\n", folder
, vec
[1]);
120 vec
[0] = "c:mh-type";
121 execv(showproc
, vec
);
126 perror(pr
? prproc
: showproc
);