git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Strange date format in git-send-email
@ 2006-07-05  7:17 Martijn Kuipers
  2006-07-05  9:00 ` Jakub Narebski
  0 siblings, 1 reply; 11+ messages in thread
From: Martijn Kuipers @ 2006-07-05  7:17 UTC (permalink / raw)
  To: git

Dear list,

My email is sorted by date and a number of email-patches list the date format 
as unknown (in kmail, that is).

When checking the headers of these mails I see the following pattern:

Date: mer, 05 jui 2006 00:36:08 +0200
X-Mailer: git-send-email 1.4.1

Date: wto, 20 cze 2006 17:59:19 +0200
X-Mailer: git-send-email 1.3.0

Date: Tue, Mar 14 12:12:35 2006 -0500
User-Agent: send_patch 0.1

Date: Tue Feb 7 18:21:02 2006 +0100


Some of these are quite old, and it has been sometime since I last noticed it 
(I actually thought it was fixed). But today I received another patch-email 
from the list ([PATCH] Beautifulise git-show output), which showed the same 
problem.

Is this my problem (or kmail), or is there something funny with 
git-send-email? I just don't git it.

If you need more info, just holler.

Kind regards,
Martijn
----------------------------------------------------------------------------------------------
Actually, did actually notice actually how many times non-native English 
speaker actually use actually?

^ permalink raw reply	[flat|nested] 11+ messages in thread
* [PATCH] do not use locale specific strftime when preparing 2822 date
@ 2006-07-07 18:53 Jakub Narebski
  2006-07-07 19:59 ` Jakub Narebski
  0 siblings, 1 reply; 11+ messages in thread
From: Jakub Narebski @ 2006-07-07 18:53 UTC (permalink / raw)
  To: git; +Cc: Jakub Narebski

---

 git-send-email.perl |   41 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 38 insertions(+), 3 deletions(-)

f00ff14faf86c376d0ffb3cef24d2e5a5437dfcf
diff --git a/git-send-email.perl b/git-send-email.perl
index b04b8f4..c9c1975 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -34,8 +34,43 @@ sub readline {
 package main;
 
 # most mail servers generate the Date: header, but not all...
-$ENV{LC_ALL} = 'C';
-use POSIX qw/strftime/;
+sub format_2822_time {
+	my ($time) = @_;
+	my @localtm = localtime($time);
+	my @gmttm = gmtime($time);
+	my $localmin = $localtm[1] + $localtm[2] * 60;
+	my $gmtmin = $gmttm[1] + $gmttm[2] * 60;
+	if ($localtm[0] != $gmttm[0]) {
+		die "local zone differs from GMT by a non-minute interval\n";
+	}
+	if ((($gmttm[6] + 1) % 7) == $localtm[6]) {
+		$localmin += 1440;
+	} elsif ((($gmttm[6] - 1) % 7) == $localtm[6]) {
+		$localmin -= 1440;
+	} elsif ($gmttm[6] != $localtm[6]) {
+		die "local time offset greater than or equal to 24 hours\n";
+	}
+	my $offset = $localmin - $gmtmin;
+	my $offhour = $offset / 60;
+	my $offmin = abs($offset % 60);
+	if (abs($offhour) >= 24) {
+		die ("local time offset greater than or equal to 24 hours\n");
+	}
+
+	return sprintf("%s, %2d %s %d %02d:%02d:%02d %s%02d%02d",
+		       qw(Sun Mon Tue Wed Thu Fri Sat)[$localtm[6]],
+		       $localtm[3],
+		       qw(Jan Feb Mar Apr May Jun
+			  Jul Aug Sep Oct Nov Dec)[$localtm[4]],
+		       $localtm[5]+1900,
+		       $localtm[2],
+		       $localtm[1],
+		       $localtm[0],
+		       ($offset >= 0) ? '+' : '-',
+		       abs($offhour),
+		       $offmin,
+		       );
+}
 
 my $have_email_valid = eval { require Email::Valid; 1 };
 my $smtp;
@@ -387,7 +422,7 @@ sub send_message
 	my @recipients = unique_email_list(@to);
 	my $to = join (",\n\t", @recipients);
 	@recipients = unique_email_list(@recipients,@cc,@bcclist);
-	my $date = strftime('%a, %d %b %Y %H:%M:%S %z', localtime($time++));
+	my $date = format_2822_time($time++);
 	my $gitversion = '@@GIT_VERSION@@';
 	if ($gitversion =~ m/..GIT_VERSION../) {
 	    $gitversion = `git --version`;
-- 
1.3.0

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-07-07 20:05 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-05  7:17 Strange date format in git-send-email Martijn Kuipers
2006-07-05  9:00 ` Jakub Narebski
2006-07-05 21:22   ` Junio C Hamano
2006-07-07 18:57     ` [PATCH] do not use locale specific strftime when preparing 2822 date Jakub Narebski
2006-07-07 19:03       ` Jakub Narebski
2006-07-07 19:25         ` Junio C Hamano
2006-07-07 19:53           ` Jakub Narebski
2006-07-07 19:08       ` Junio C Hamano
2006-07-07 20:01         ` Jakub Narebski
  -- strict thread matches above, loose matches on Subject: below --
2006-07-07 18:53 Jakub Narebski
2006-07-07 19:59 ` Jakub Narebski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).