diff archive/readpst.c.short_filename.diff @ 57:de3753c3160a

add archive directory with history of alioth versions that have been merged here
author Carl Byington <carl@five-ten-sg.com>
date Sat, 02 Feb 2008 12:54:07 -0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/archive/readpst.c.short_filename.diff	Sat Feb 02 12:54:07 2008 -0800
@@ -0,0 +1,63 @@
+Index: readpst.c
+===================================================================
+--- readpst.c	(revision 45)
++++ readpst.c	(working copy)
+@@ -149,6 +149,7 @@
+   int attach_num = 0;
+   int skip_child = 0;
+   struct file_ll  *f, *head;
++  char *attach_filename = NULL;
+   prog_name = argv[0];
+   // }}}2
+   // command-line option handling {{{2
+@@ -832,18 +833,25 @@
+ 	  }
+ 	  if (mode == MODE_SEPERATE) {
+ 	    f->name = check_filename(f->name);
+-	    if (item->current_attach->filename2 == NULL) {
++      // If there is a long filename (filename2) use that, otherwise
++      // use the 8.3 filename (filename1)
++      if (item->current_attach->filename2) {
++        attach_filename = item->current_attach->filename2;
++      } else {
++        attach_filename = item->current_attach->filename1;
++      }
++	    if (attach_filename == NULL) {
+ 	      temp = xmalloc(strlen(f->name)+15);
+ 	      sprintf(temp, "%s-attach%i", f->name, attach_num);
+ 	    } else {
+-	      temp = xmalloc(strlen(f->name)+strlen(item->current_attach->filename2)+15);
++	      temp = xmalloc(strlen(f->name)+strlen(attach_filename)+15);
+ 	      fp = NULL; x=0;
+ 	      do {
+ 		if (fp != NULL) fclose(fp);
+ 		if (x == 0)
+-		  sprintf(temp, "%s-%s", f->name, item->current_attach->filename2);
++		  sprintf(temp, "%s-%s", f->name, attach_filename);
+ 		else
+-		  sprintf(temp, "%s-%s-%i", f->name, item->current_attach->filename2, x);
++		  sprintf(temp, "%s-%s-%i", f->name, attach_filename, x);
+ 	      } while ((fp = fopen(temp, "r"))!=NULL && ++x < 99999999);
+ 	      if (x > 99999999) {
+ 	        DIE(("error finding attachment name. exhausted possibilities to %s\n", temp));
+@@ -878,11 +886,18 @@
+ 		fprintf(f->output, "Content-type: %s\n", item->current_attach->mimetype);
+ 	      }
+ 	      fprintf(f->output, "Content-transfer-encoding: base64\n");
+-	      if (item->current_attach->filename2 == NULL) {
++        // If there is a long filename (filename2) use that, otherwise
++        // use the 8.3 filename (filename1)
++        if (item->current_attach->filename2) {
++          attach_filename = item->current_attach->filename2;
++        } else {
++          attach_filename = item->current_attach->filename1;
++        }
++	      if (attach_filename == NULL) {
+ 		fprintf(f->output, "Content-Disposition: inline\n\n");
+ 	      } else {
+ 		fprintf(f->output, "Content-Disposition: attachment; filename=\"%s\"\n\n",
+-			item->current_attach->filename2);
++			attach_filename);
+ 	      }
+ 	    }
+ 	    if (item->current_attach->data != NULL) {