Mailfs date problem
- From: Leonard den Ottolander <leonard den ottolander nl>
- To: MC development <mc-devel gnome org>
- Subject: Mailfs date problem
- Date: Fri, 19 May 2006 00:06:27 +0200
Hi,
Pavel Tsekov drew my attention to the fact that the fact that we now
only parse dates with 3 elements (either year or time, not both) broke
mailfs. I intend to fix this, but haven't had time to look into this
thoroughly.
The representation for files younger and older than 6 months use either
time or year in the third field. However, there's a bit of an issue as
to what constitutes to 6 months that I need to investigate before I can
commit a correct fix. GNU ls seems to change at 180 or 181 days in the
past (not sure why this is inconsistent) but I'm unsure what mc assumes
internally (this day 6 months ago?).
Anyway, if you are using mc from CVS and using mailfs you can
temporarily use the attached patch which parses the date values back to
3 fields (year, not time). This causes all times for emails younger than
6 months to be represented as 00:00 which is ugly but at least it gets
rid of the year in the mail name.
I hope to find some time to fix this issue correctly next week (or the
week after that ;) .
Leonard.
--
mount -t life -o ro /dev/dna /genetic/research
--- mailfs.in.000 2002-12-24 07:56:17.000000000 +0100
+++ mailfs.in 2006-05-14 00:03:22.000000000 +0200
@@ -21,7 +21,7 @@ if (eval "require Date::Manip") {
$parse_date=
sub {
local $_ =localtime(str2time($_[0],$TZ));
- s/^... (.+) (\d\d:\d\d):\d\d (\d\d\d\d)$/$1 $3 $2/;
+ s/^... (.+) (\d\d:\d\d):\d\d (\d\d\d\d)$/$1 $2/;
return $_;
}
} else { # use "light" version
@@ -29,7 +29,7 @@ if (eval "require Date::Manip") {
# assumes something like: Mon, 5 Jan 1998 16:08:19 +0200 (GMT+0200)
# if you have mails with another date format, add it here
if (/(\d\d?) ([A-Z][a-z][a-z]) (\d\d\d\d) (\d\d?:\d\d)/) {
- return "$2 $1 $3 $4";
+ return "$2 $1 $3";
}
# Y2K bug.
# Date: Mon, 27 Mar 100 16:30:47 +0000 (GMT)
@@ -38,12 +38,12 @@ if (eval "require Date::Manip") {
if ($correct_year < 1970) {
$correct_year += 100;
}
- return "$2 $1 $correct_year $4";
+ return "$2 $1 $correct_year";
}
# AOLMail(SM).
# Date: Sat Jul 01 10:06:06 2000
if (/([A-Z][a-z][a-z]) (\d\d?) (\d\d?:\d\d)(:\d\d)? (\d\d\d\d)/) {
- return "$1 $2 $5 $3";
+ return "$1 $2 $5";
}
# Fallback
return localtime(time);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]