user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 3/3] msgtime: deal with strange minutes in TZ offsets
  2019-11-25  5:24  5% [PATCH 0/3] msgtime: tests and wonky offsets Eric Wong
@ 2019-11-25  5:24  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-11-25  5:24 UTC (permalink / raw)
  To: meta; +Cc: Eric W. Biederman

I'm not sure if TZ minute offsets aside from '00' or '30' exist,
but lets just deal with them properly when negative.  Examples
taken from various inboxes on lore.kernel.org.  These are mostly
message from spammers, but some are legitimate messages.
---
 lib/PublicInbox/MsgTime.pm | 4 ++++
 t/msgtime.t                | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/lib/PublicInbox/MsgTime.pm b/lib/PublicInbox/MsgTime.pm
index 58e11d72..7dec48ce 100644
--- a/lib/PublicInbox/MsgTime.pm
+++ b/lib/PublicInbox/MsgTime.pm
@@ -23,6 +23,10 @@ sub str2date_zone ($) {
 	my $sign = ($off < 0) ? '-' : '+';
 	my $hour = abs(int($off / 3600));
 	my $min  = ($off / 60) % 60;
+
+	# deal with weird offsets like '-0420' properly
+	$min = 60 - $min if ($min && $off < 0);
+
 	my $zone = sprintf('%s%02d%02d', $sign, $hour, $min);
 
 	# "-1200" is the furthest westermost zone offset,
diff --git a/t/msgtime.t b/t/msgtime.t
index f969fa25..cecbb921 100644
--- a/t/msgtime.t
+++ b/t/msgtime.t
@@ -92,4 +92,9 @@ is_datestamp('Tue, 3 Jun 2003 8:58:23 --500', [1054648703, '-0500']);
 is_datestamp('Thu, 18 May 100 10:40:43 +0200 (MET DST)', [958639243, '+0200']);
 is_datestamp('Thu, 18 May 2000 10:40:43 +0200', [958639243, '+0200']);
 is_datestamp('Tue, 27 Feb 2007 16:23:25 -0060', [1172597005, '-0100']);
+is_datestamp('Wed, 20 Dec 2006 05:32:58 -0420', [1166608378, '-0420']);
+is_datestamp('Wed, 20 Dec 2006 05:32:58 +0420', [1166577178, '+0420']);
+is_datestamp('Thu, 14 Dec 2006 00:20:24 +0480', [1166036424, '+0520']);
+is_datestamp('Thu, 14 Dec 2006 00:20:24 -0480', [1166074824, '-0520']);
+is_datestamp('Mon, 14 Apr 2014 07:59:01 -0007', [1397462761, '-0007']);
 done_testing();

^ permalink raw reply related	[relevance 7%]

* [PATCH 0/3] msgtime: tests and wonky offsets
@ 2019-11-25  5:24  5% Eric Wong
  2019-11-25  5:24  7% ` [PATCH 3/3] msgtime: deal with strange minutes in TZ offsets Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2019-11-25  5:24 UTC (permalink / raw)
  To: meta; +Cc: Eric W. Biederman

I've been working on making Date::Parse optional, but found
some existing bugs and improvements to test cases along the
way.

Eric Wong (3):
  t/msgtime: show date in test descriptions
  t/msgtime: add more checks for known cases
  msgtime: deal with strange minutes in TZ offsets

 lib/PublicInbox/MsgTime.pm |  4 ++++
 t/msgtime.t                | 31 ++++++++++++++++++++++---------
 2 files changed, 26 insertions(+), 9 deletions(-)


^ permalink raw reply	[relevance 5%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-11-25  5:24  5% [PATCH 0/3] msgtime: tests and wonky offsets Eric Wong
2019-11-25  5:24  7% ` [PATCH 3/3] msgtime: deal with strange minutes in TZ offsets Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).