[dovecot-cvs] dovecot/src/lib-storage/index/mbox mbox-from.c, 1.6, 1.7

cras at dovecot.org cras at dovecot.org
Sun Aug 28 21:54:43 EEST 2005


Update of /var/lib/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv25289/src/lib-storage/index/mbox

Modified Files:
	mbox-from.c 
Log Message:
Timezones in From-lines weren't handled correctly.



Index: mbox-from.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-from.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- mbox-from.c	19 Aug 2005 15:49:49 -0000	1.6
+++ mbox-from.c	28 Aug 2005 18:54:35 -0000	1.7
@@ -145,8 +145,8 @@
 		   i_isdigit(msg[3]) && i_isdigit(msg[4]) && msg[5] == ' ') {
 		/* numeric timezone, use it */
                 seen_timezone = TRUE;
-		timezone = (msg[1]-'0') * 1000 + (msg[2]-'0') * 100 +
-			(msg[3]-'0') * 10 +(msg[4]-'0');
+		timezone = (msg[1]-'0') * 10*60*60 + (msg[2]-'0') * 60*60 +
+			(msg[3]-'0') * 10 + (msg[4]-'0');
 		if (msg[0] == '-') timezone = -timezone;
 		msg += 6;
 	}
@@ -166,8 +166,8 @@
 	    i_isdigit(msg[2]) && i_isdigit(msg[3]) &&
 	    i_isdigit(msg[4]) && i_isdigit(msg[5])) {
 		seen_timezone = TRUE;
-		timezone = (msg[2]-'0') * 1000 + (msg[3]-'0') * 100 +
-			(msg[4]-'0') * 10 +(msg[5]-'0');
+		timezone = (msg[2]-'0') * 10*60*60 + (msg[3]-'0') * 60*60 +
+			(msg[4]-'0') * 10 + (msg[5]-'0');
 		if (msg[1] == '-') timezone = -timezone;
 	}
 
@@ -176,7 +176,7 @@
 		if (t == (time_t)-1)
 			return -1;
 
-		t -= timezone * 60;
+		t -= timezone;
 		*time_r = t;
 	} else {
 		/* assume local timezone */



More information about the dovecot-cvs mailing list