Commit Diff


commit - e6c443621bbcc8929f4c08648bfd1ab6014b66b9
commit + 141d60097223f56e82ae3c45c90d6453cdd11cba
blob - 304714cd7a9084e6a8bea491bb7951eb5fa07626
blob + d21bfed109a92820e0cb1a86fa701a8a5aaa816a
--- src/cmd/acme/mail/mesg.c
+++ src/cmd/acme/mail/mesg.c
@@ -161,6 +161,9 @@ loadinfo(Message *m, char *dir)
 		}else if(strcmp(s, "digest") == 0){
 			free(m->digest);
 			m->digest = estrdup(t);
+		}else if(strcmp(s, "filename") == 0){
+			free(m->filename);
+			m->filename = estrdup(t);
 		}
 		free(s);
 	}
blob - da2b0ab50b3b544e408fa092337169b1d231ef1a
blob + 9ca3b8f9e18e0d67eda4a7fab1ed625e34a27a04
--- src/cmd/upas/nfs/box.h
+++ src/cmd/upas/nfs/box.h
@@ -93,6 +93,7 @@ struct Part
 	char*	desc;
 	char*	encoding;
 	char*	charset;
+	char*	filename;
 	char*	raw;
 	char*	rawheader;
 	char*	rawbody;
blob - 71d33ec12794130b4482b8bb8116bcbc9beff7c1
blob + 228b53f698c8a6ba5d512d7f0671b4620ed351e0
--- src/cmd/upas/nfs/fs.c
+++ src/cmd/upas/nfs/fs.c
@@ -604,9 +604,8 @@ filedata(int type, Box *box, Msg *msg, Part *part, cha
 			fmtprint(&fmt, "type %s\n", part->type);
 		if(part->lines)
 			fmtprint(&fmt, "lines %d\n", part->lines);
-	/*	fmtprint(&fmt, "disposition %s\", ""); */
-	/*	fmtprint(&fmt, "filename %s\n", ""); */
-	/*	fmtprint(&fmt, "digest %s\n", ""); */
+		if(part->filename)
+			fmtprint(&fmt, "filename %s\n", part->filename);
 		s = fmtstrflush(&fmt);
 		if(s == nil)
 			s = estrdup("");
blob - 409544f0deb61e05c858ea3fd5912953928e3462
blob + 1caa97b2fc5547ab22b739ef827f79456a2f8fb4
--- src/cmd/upas/nfs/imap.c
+++ src/cmd/upas/nfs/imap.c
@@ -1458,7 +1458,8 @@ static struct {
 	char *name;
 	int offset;
 } paramtab[] = {
-	"charset",	offsetof(Part, charset)
+	"charset",	offsetof(Part, charset),
+	"name",		offsetof(Part, filename)
 };
 
 static void