]>
diplodocus.org Git - nmh/blob - docs/historical/mh-nov-1983/cmds/rmm.c
2 static char sccsid
[] = "@(#)rmm.c 4.1 2/23/83";
13 struct swit switches
[] = {
22 char *folder
, *nfolder
, *maildir
, *msgs
[100], buf
[32];
24 register char *cp
, *sp
;
27 char *arguments
[50], **argp
;
33 cp
= r1bindex(argv
[0], '/');
34 if((cp
= m_find(cp
)) != NULL
) {
35 ap
= brkstring(cp
= getcpy(cp
), " ", "\n");
36 ap
= copyip(ap
, arguments
);
43 switch(smatch(++cp
, switches
)) {
44 case -2:ambigsw(cp
, switches
); /* ambiguous */
47 case -1:fprintf(stderr
, "rmm: -%s unknown\n", cp
);
50 case 0: fprintf(stderr
, "\"-all\" changed to \"all\"\n");
53 case 1: help("rmm [+folder] [msgs] [switches]",
59 fprintf(stderr
, "Only one folder at a time.\n");
69 folder
= m_getfolder();
70 maildir
= m_maildir(folder
);
71 if(chdir(maildir
) < 0) {
72 fprintf(stderr
, "Can't chdir to: ");
76 if(!(mp
= m_gmsg(folder
))) {
77 fprintf(stderr
, "Can't read folder!?\n");
81 fprintf(stderr
, "No messages in \"%s\".\n", folder
);
84 for(msgnum
= 0; msgnum
< msgp
; msgnum
++)
85 if(!m_convert(msgs
[msgnum
]))
88 fprintf(stderr
, "rmm: lasagne 'n sausage\n"); /* never get here */
91 m_replace(pfolder
, folder
);
92 if((cp
= m_find("delete-prog")) == NULL
) {
93 for(msgnum
= mp
->lowsel
; msgnum
<= mp
->hghsel
; msgnum
++)
94 if(mp
->msgstats
[msgnum
] & SELECTED
) {
95 sp
= getcpy(m_name(msgnum
));
100 while(--cp
>= buf
&& *cp
!= '/');
107 if(link(sp
, buf
) == -1 || unlink(sp
) == -1)
108 fprintf(stderr
, "Can't rename %s to %s.\n", sp
, buf
);
111 if(mp
->numsel
> MAXARGS
-2) {
112 fprintf(stderr
, "rmm: more than %d messages for deletion-prog\n",MAXARGS
-2);
115 vec
= (char **) calloc(MAXARGS
+2, sizeof *vec
);
117 for(msgnum
= mp
->lowsel
; msgnum
<= mp
->hghsel
; msgnum
++)
118 if(mp
->msgstats
[msgnum
]&SELECTED
)
119 vec
[vecp
++] = getcpy(m_name(msgnum
));
125 fprintf(stderr
, "Can't exec deletion prog--");