[Libpst-devel] Re: PATCH: readpst.c code reorganisation

Arne Ahrend aahrend at web.de
Sun Feb 19 19:41:50 UTC 2006


On Sun, 19 Feb 2006 20:33:56 +0100
Arne Ahrend <aahrend at web.de> wrote:

Seventh patch

> This is a series of patches succesively taking chunks of code out of 
> the huge main() function in readpst.c and into separate functions.
> 
> No functionality change, but improvement of readability.
> 
> Arne

--- readpst.c-06	2006-02-19 20:04:43.000000000 +0100
+++ readpst.c	2006-02-19 20:04:49.000000000 +0100
@@ -93,6 +93,8 @@ void write_fabricated_header(FILE* f_out
 void write_normal_email(FILE* f_output, char f_name[], pst_item* item, int mode, pst_file* pst);
 void create_enter_dir(struct file_ll* f, char file_as[], int mode, int overwrite);
 void write_vcard(FILE* f_output, pst_item_contact* contact, char comment[]);
+void write_appointment(FILE* f_output, pst_item_appointment* appointment, pst_item_email* email,
+		       FILETIME* create_date, FILETIME* modify_date);
 // }}}1
 // Global Variables {{{1
 char *prog_name; 
@@ -431,61 +433,7 @@ int main(int argc, char** argv) {
 	if (f->type != PST_TYPE_APPOINTMENT) {
 	  DEBUG_MAIN(("main: I have an appointment, but folder isn't specified as an appointment type. Processing...\n"));
 	}
-	fprintf(f->output, "BEGIN:VEVENT\n");
-	if (item->create_date != NULL)
-	  fprintf(f->output, "CREATED:%s\n", rfc2445_datetime_format(item->create_date));
-	if (item->modify_date != NULL)
-	  fprintf(f->output, "LAST-MOD:%s\n", rfc2445_datetime_format(item->modify_date));
-	if (item->email != NULL && item->email->subject != NULL)
-	  fprintf(f->output, "SUMMARY:%s\n", rfc2426_escape(item->email->subject->subj));
-	if (item->email != NULL && item->email->body != NULL)
-	  fprintf(f->output, "DESCRIPTION:%s\n", rfc2426_escape(item->email->body));
-	if (item->appointment != NULL && item->appointment->start != NULL)
-	  fprintf(f->output, "DTSTART;VALUE=DATE-TIME:%s\n", rfc2445_datetime_format(item->appointment->start));
-	if (item->appointment != NULL && item->appointment->end != NULL)
-	  fprintf(f->output, "DTEND;VALUE=DATE-TIME:%s\n", rfc2445_datetime_format(item->appointment->end));
-	if (item->appointment != NULL && item->appointment->location != NULL)
-	  fprintf(f->output, "LOCATION:%s\n", rfc2426_escape(item->appointment->location));
-	if (item->appointment != NULL) {
-	  switch (item->appointment->showas) {
-	  case PST_FREEBUSY_TENTATIVE:
-	    fprintf(f->output, "STATUS:TENTATIVE\n");
-	    break;
-	  case PST_FREEBUSY_FREE:
-	    // mark as transparent and as confirmed
-	    fprintf(f->output, "TRANSP:TRANSPARENT\n");
-	  case PST_FREEBUSY_BUSY:
-	  case PST_FREEBUSY_OUT_OF_OFFICE:
-	    fprintf(f->output, "STATUS:CONFIRMED\n");
-	    break;
-	  }
-	  switch (item->appointment->label) {
-	  case PST_APP_LABEL_NONE:
-	    fprintf(f->output, "CATEGORIES:NONE\n"); break;
-	  case PST_APP_LABEL_IMPORTANT:
-	    fprintf(f->output, "CATEGORIES:IMPORTANT\n"); break;
-	  case PST_APP_LABEL_BUSINESS:
-	    fprintf(f->output, "CATEGORIES:BUSINESS\n"); break;
-	  case PST_APP_LABEL_PERSONAL:
-	    fprintf(f->output, "CATEGORIES:PERSONAL\n"); break;
-	  case PST_APP_LABEL_VACATION:
-	    fprintf(f->output, "CATEGORIES:VACATION\n"); break;
-	  case PST_APP_LABEL_MUST_ATTEND:
-	    fprintf(f->output, "CATEGORIES:MUST-ATTEND\n"); break;
-	  case PST_APP_LABEL_TRAVEL_REQ:
-	    fprintf(f->output, "CATEGORIES:TRAVEL-REQUIRED\n"); break;
-	  case PST_APP_LABEL_NEEDS_PREP:
-	    fprintf(f->output, "CATEGORIES:NEEDS-PREPARATION\n"); break;
-	  case PST_APP_LABEL_BIRTHDAY:
-	    fprintf(f->output, "CATEGORIES:BIRTHDAY\n"); break;
-	  case PST_APP_LABEL_ANNIVERSARY:
-	    fprintf(f->output, "CATEGORIES:ANNIVERSARY\n"); break;
-	  case PST_APP_LABEL_PHONE_CALL:
-	    fprintf(f->output, "CATEGORIES:PHONE-CALL\n"); break;
-	  }
-	}
-	fprintf(f->output, "END:VEVENT\n\n");
-	// }}}2
+	write_appointment(f->output, item->appointment, item->email, item->create_date, item->modify_date);
       } else {
 	f->skip_count++;
 	DEBUG_MAIN(("main: Unknown item type. %i. Ascii1=\"%s\"\n", 
@@ -1489,3 +1437,75 @@ void write_vcard(FILE* f_output, pst_ite
 	fprintf(f_output, "VERSION: 3.0\n");
 	fprintf(f_output, "END:VCARD\n\n");
 }
+
+void write_appointment(FILE* f_output, pst_item_appointment* appointment, pst_item_email* email,
+		       FILETIME* create_date, FILETIME* modify_date)
+{
+	fprintf(f_output, "BEGIN:VEVENT\n");
+	if (create_date != NULL)
+		fprintf(f_output, "CREATED:%s\n", rfc2445_datetime_format(create_date));
+	if (modify_date != NULL)
+		fprintf(f_output, "LAST-MOD:%s\n", rfc2445_datetime_format(modify_date));
+	if (email != NULL && email->subject != NULL)
+		fprintf(f_output, "SUMMARY:%s\n", rfc2426_escape(email->subject->subj));
+	if (email != NULL && email->body != NULL)
+		fprintf(f_output, "DESCRIPTION:%s\n", rfc2426_escape(email->body));
+	if (appointment != NULL && appointment->start != NULL)
+		fprintf(f_output, "DTSTART;VALUE=DATE-TIME:%s\n", rfc2445_datetime_format(appointment->start));
+	if (appointment != NULL && appointment->end != NULL)
+		fprintf(f_output, "DTEND;VALUE=DATE-TIME:%s\n", rfc2445_datetime_format(appointment->end));
+	if (appointment != NULL && appointment->location != NULL)
+		fprintf(f_output, "LOCATION:%s\n", rfc2426_escape(appointment->location));
+	if (appointment != NULL) {
+		switch (appointment->showas) {
+		case PST_FREEBUSY_TENTATIVE:
+			fprintf(f_output, "STATUS:TENTATIVE\n");
+			break;
+		case PST_FREEBUSY_FREE:
+			// mark as transparent and as confirmed
+			fprintf(f_output, "TRANSP:TRANSPARENT\n");
+		case PST_FREEBUSY_BUSY:
+		case PST_FREEBUSY_OUT_OF_OFFICE:
+			fprintf(f_output, "STATUS:CONFIRMED\n");
+			break;
+		}
+		switch (appointment->label) {
+		case PST_APP_LABEL_NONE:
+			fprintf(f_output, "CATEGORIES:NONE\n");
+			break;
+		case PST_APP_LABEL_IMPORTANT:
+			fprintf(f_output, "CATEGORIES:IMPORTANT\n");
+			break;
+		case PST_APP_LABEL_BUSINESS:
+			fprintf(f_output, "CATEGORIES:BUSINESS\n");
+			break;
+		case PST_APP_LABEL_PERSONAL:
+			fprintf(f_output, "CATEGORIES:PERSONAL\n");
+			break;
+		case PST_APP_LABEL_VACATION:
+			fprintf(f_output, "CATEGORIES:VACATION\n");
+			break;
+		case PST_APP_LABEL_MUST_ATTEND:
+			fprintf(f_output, "CATEGORIES:MUST-ATTEND\n");
+			break;
+		case PST_APP_LABEL_TRAVEL_REQ:
+			fprintf(f_output, "CATEGORIES:TRAVEL-REQUIRED\n");
+			break;
+		case PST_APP_LABEL_NEEDS_PREP:
+			fprintf(f_output, "CATEGORIES:NEEDS-PREPARATION\n");
+			break;
+		case PST_APP_LABEL_BIRTHDAY:
+			fprintf(f_output, "CATEGORIES:BIRTHDAY\n");
+			break;
+		case PST_APP_LABEL_ANNIVERSARY:
+			fprintf(f_output, "CATEGORIES:ANNIVERSARY\n");
+			break;
+		case PST_APP_LABEL_PHONE_CALL:
+			fprintf(f_output, "CATEGORIES:PHONE-CALL\n");
+			break;
+		}
+	}
+	fprintf(f_output, "END:VEVENT\n\n");
+	// }}}2
+}
+



More information about the Libpst-devel mailing list