+ char savename[BUFSIZ];
+
+ switch (*name) {
+ case '%':
+ strcpy(prevfile, mailname);
+ if (name[1] != 0) {
+ strcpy(savename, myname);
+ strncpy(myname, name+1, PATHSIZE-1);
+ myname[PATHSIZE-1] = 0;
+ findmail();
+ cp = mailname;
+ strcpy(myname, savename);
+ return(cp);
+ }
+ findmail();
+ return(mailname);
+
+ case '#':
+ if (name[1] != 0)
+ goto regular;
+ if (prevfile[0] == 0) {
+ printf("No previous file\n");
+ return(NOSTR);
+ }
+ strcpy(savename, prevfile);
+ strcpy(prevfile, mailname);
+ strcpy(mailname, savename);
+ return(mailname);
+
+ case '&':
+ strcpy(prevfile, mailname);
+ if (name[1] == 0)
+ return(mbox);
+ /* Fall into . . . */
+
+ default:
+regular:
+ strcpy(prevfile, mailname);
+ cp = expand(name);
+ return(cp);
+ }