summary refs log tree commit diff
path: root/show.c
diff options
context:
space:
mode:
authorChristian Neukirchen <chneukirchen@gmail.com>2016-07-18 00:06:18 +0200
committerChristian Neukirchen <chneukirchen@gmail.com>2016-07-18 00:09:35 +0200
commitdac8663abd9b321abaa395bc4b595c2b642ab731 (patch)
tree7828b0fcd76f3ea28e0f205ec35634aa5162cea6 /show.c
parent08032f89babab3b5ec792f6aa394a28f95112e11 (diff)
downloadmblaze-dac8663abd9b321abaa395bc4b595c2b642ab731.tar.gz
mblaze-dac8663abd9b321abaa395bc4b595c2b642ab731.tar.xz
mblaze-dac8663abd9b321abaa395bc4b595c2b642ab731.zip
show: update cur
Diffstat (limited to 'show.c')
-rw-r--r--show.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/show.c b/show.c
index cdb080e..5ead13c 100644
--- a/show.c
+++ b/show.c
@@ -78,7 +78,7 @@ render_mime(int depth, char *ct, char *body, size_t bodylen)
 	char *mt = mimetype(ct);
 	char *tlmt = tlmimetype(ct);
 
-	char *filename, *fn, *fne;
+	char *filename = 0, *fn, *fne;
 	if (blaze822_mime_parameter(ct, "name", &fn, &fne))
 		filename = strndup(fn, fne-fn);
 
@@ -292,17 +292,30 @@ extract(char *file, int argc, char **argv, int use_stdout)
 	walk_mime(msg, 0, extract_mime);
 }
 
+static char *newcur;
+
 void
 show(char *file)
 {
 	struct message *msg;
 
+	while (*file == ' ' || *file == '\t')
+		file++;
+
+	if (newcur) {
+		printf("\014\n");
+		free(newcur);
+	}
+	newcur = strdup(file);
+
 	if (qflag)
 		msg = blaze822(file);
 	else
 		msg = blaze822_file(file);
-	if (!msg)
+	if (!msg) {
+		fprintf(stderr, "show: %s: %s\n", file, strerror(errno));
 		return;
+	}
 
 	if (Hflag) {  // raw headers
 		size_t hl = blaze822_headerlen(msg);
@@ -388,6 +401,7 @@ main(int argc, char *argv[])
 		if (!(qflag || rflag))
 			filters = blaze822("filters");
 		blaze822_loop(argc-optind, argv+optind, show);
+		blaze822_seq_setcur(newcur);
 	}
 
 	return 0;