* 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; 9+ 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] 9+ messages in thread
* Re: Strange date format in git-send-email 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 0 siblings, 1 reply; 9+ messages in thread From: Jakub Narebski @ 2006-07-05 9:00 UTC (permalink / raw) To: git Martijn Kuipers wrote: > 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 [...] > Is this my problem (or kmail), or is there something funny with > git-send-email? I just don't git it. Yes, there was a problem with git-sen-email, namely it used strftime to print "Date:" header, but strftime is locale specific setting $ENV{LC_ALL} = 'C' is not enought. There were two patches on the list: one hacky adding setlocale call (not applied), second implementing rfc-822 date in Perl. Should be in current. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Strange date format in git-send-email 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 0 siblings, 1 reply; 9+ messages in thread From: Junio C Hamano @ 2006-07-05 21:22 UTC (permalink / raw) To: jnareb; +Cc: git Jakub Narebski <jnareb@gmail.com> writes: > There were two patches on the list: one hacky adding setlocale > call (not applied), second implementing rfc-822 date in Perl. > Should be in current. What do you mean by "should be in current"? I specifically asked you about this issue a few days ago, even with a patch to test out for people who are having problems, but haven't heard back anything yet. The issue is still on hold and not in "current" as far as I am concerned. To: Jakub Narebski <jnareb@gmail.com> Cc: git@vger.kernel.org, Eric Wong <normalperson@yhbt.net> From: Junio C Hamano <junkio@cox.net> Subject: Re: [PATCH] send-email: Use setlocale in addition to $ENV{LC_ALL} to set locale Date: Sun, 02 Jul 2006 19:49:50 -0700 Message-ID: <7vd5cnv1v5.fsf@assigned-by-dhcp.cox.net> I was reviewing old log and noticed this topic has never been resolved. Your proposal was to use POSIX::setlocale(), and Eric's counter-proposal was to mimic what 822-date script does, doing it by hand without mucking with locales, and the discussion seemed to have died there. Does this still need to be addressed? My gut feeling is that it would probably be less problematic if we do not muck with locales at all (so drop POSIX::strftime as well). So maybe something like this (totally untested)? ... ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] do not use locale specific strftime when preparing 2822 date 2006-07-05 21:22 ` Junio C Hamano @ 2006-07-07 18:57 ` Jakub Narebski 2006-07-07 19:03 ` Jakub Narebski 2006-07-07 19:08 ` Junio C Hamano 0 siblings, 2 replies; 9+ messages in thread From: Jakub Narebski @ 2006-07-07 18:57 UTC (permalink / raw) To: git; +Cc: Jakub Narebski, Junio C Hamano Signed-off-by: Junio C Hamano <junkio@cox.net> Acked-by: Jakub Narebski <jnareb@gmail.com> --- This patch is sent from patched version of git-send-email.perl with git tools 1.3.0. This patch is generated from current master after Junio's patch Message-ID: <7vd5cnv1v5.fsf@assigned-by-dhcp.cox.net> applied. 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] 9+ messages in thread
* Re: [PATCH] do not use locale specific strftime when preparing 2822 date 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:08 ` Junio C Hamano 1 sibling, 1 reply; 9+ messages in thread From: Jakub Narebski @ 2006-07-07 19:03 UTC (permalink / raw) To: git It looks like it is _almost_ correct. It should be Date: Fri, 07 Jul 2006 20:57:55 +0200 instead of Date: Fri, 7 Jul 2006 20:57:55 +0200 It is "day = ([FWS] 1*2DIGIT) / obs-day" in RFC2822. -- Jakub Narebski ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] do not use locale specific strftime when preparing 2822 date 2006-07-07 19:03 ` Jakub Narebski @ 2006-07-07 19:25 ` Junio C Hamano 2006-07-07 19:53 ` Jakub Narebski 0 siblings, 1 reply; 9+ messages in thread From: Junio C Hamano @ 2006-07-07 19:25 UTC (permalink / raw) To: jnareb; +Cc: git Jakub Narebski <jnareb@gmail.com> writes: > It looks like it is _almost_ correct. It should be > Date: Fri, 07 Jul 2006 20:57:55 +0200 > instead of > Date: Fri, 7 Jul 2006 20:57:55 +0200 > > It is "day = ([FWS] 1*2DIGIT) / obs-day" in RFC2822. I think you are reading ABNF wrong. <a>*<b>element means at least <a> times and at most <b> times occurrences of element. Exact number of repetition is written as <n>element (which is a short-and for <n>*<n>element). See the definition of "hour" and friends a few lines below what you quoted. It is defined as "2DIGIT / obs-hour" and that is why we say "01:23:45" not "1:23:45" ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] do not use locale specific strftime when preparing 2822 date 2006-07-07 19:25 ` Junio C Hamano @ 2006-07-07 19:53 ` Jakub Narebski 0 siblings, 0 replies; 9+ messages in thread From: Jakub Narebski @ 2006-07-07 19:53 UTC (permalink / raw) To: git Junio C Hamano wrote: > Jakub Narebski <jnareb@gmail.com> writes: > >> It looks like it is _almost_ correct. It should be >> Date: Fri, 07 Jul 2006 20:57:55 +0200 >> instead of >> Date: Fri, 7 Jul 2006 20:57:55 +0200 >> >> It is "day = ([FWS] 1*2DIGIT) / obs-day" in RFC2822. > > I think you are reading ABNF wrong. [...] > > See the definition of "hour" and friends a few lines below what > you quoted. It is defined as "2DIGIT / obs-hour" and that is > why we say "01:23:45" not "1:23:45" But it is "day = [...] 2DIGIT [...]"! Besides, that what other mailers do (I checked the post I replied via git-send-email to, i.e. your post). Although I don't think that it can cause any problems, like using locale date with non US-ASCII characters did... -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] do not use locale specific strftime when preparing 2822 date 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:08 ` Junio C Hamano 2006-07-07 20:01 ` Jakub Narebski 1 sibling, 1 reply; 9+ messages in thread From: Junio C Hamano @ 2006-07-07 19:08 UTC (permalink / raw) To: Jakub Narebski; +Cc: git Jakub Narebski <jnareb@gmail.com> writes: > Signed-off-by: Junio C Hamano <junkio@cox.net> > Acked-by: Jakub Narebski <jnareb@gmail.com> > --- > This patch is sent from patched version of git-send-email.perl > with git tools 1.3.0. This patch is generated from current master > after Junio's patch > Message-ID: <7vd5cnv1v5.fsf@assigned-by-dhcp.cox.net> > applied. Good test. Thanks. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] do not use locale specific strftime when preparing 2822 date 2006-07-07 19:08 ` Junio C Hamano @ 2006-07-07 20:01 ` Jakub Narebski 0 siblings, 0 replies; 9+ messages in thread From: Jakub Narebski @ 2006-07-07 20:01 UTC (permalink / raw) To: git Junio C Hamano wrote: > Jakub Narebski <jnareb@gmail.com> writes: > >> Signed-off-by: Junio C Hamano <junkio@cox.net> >> Acked-by: Jakub Narebski <jnareb@gmail.com> >> --- >> This patch is sent from patched version of git-send-email.perl >> with git tools 1.3.0. This patch is generated from current master >> after Junio's patch >> Message-ID: <7vd5cnv1v5.fsf@assigned-by-dhcp.cox.net> >> applied. > > Good test. Thanks. By the way, patch didn't apply cleanly (some fuzz was used). The patch I send was from _applied_ (to master) patch. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-07-07 20:05 UTC | newest] Thread overview: 9+ 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
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).