[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: y2k problem with wml



[cc to Brian Bassett, recent maintainer of the WML Debian package]

On Mon, 3 Jan 2000, James A. Treacy wrote:

> There is a y2k bug in the version of wml on master that has kept the
> web pages from updating in the new year. The variables $WML_GEN_ISOTIME
> and $WML_SRC_ISOTIME compute the year incorrectly. 'print STDERR
> $WML_SRC_ISOTIME' gave:
> 
> 03-01-19100 10:09:58
> 
> It is a common misconception that the year is returned as 2 digits,
> when it is given as the number of years since 1900.
> 
> I have doctored ctime.wml to check for a year > 19000 and fix it in
> this case. Since the pages compile fine at home, I suspect this has
> been fixed in a more recent version of wml (master runs slink).

Hi Debian People,

all y2k known bugs have been fixed in wml-1.7.1.
If you do not want to upgrade to wml-1.7.4, you may apply the attached
patch against wml-1.6.8.

Best regards

-- 
Denis Barbier
WML Maintainer
--- wml_backend/p2_mhc/libmhtml/filefuncs.c	1999/02/16 15:14:46	1.3
+++ wml_backend/p2_mhc/libmhtml/filefuncs.c	1999/06/05 17:02:35	1.4
@@ -157,7 +157,7 @@
   sprintf (buffer, "%02d", ti->tm_mday);
   symbol_add_value (sym, buffer);
 
-  sprintf (buffer, "%02d", ti->tm_year);
+  sprintf (buffer, "%04d", ti->tm_year + 1900);
   symbol_add_value (sym, buffer);
 
   sprintf (buffer, "%02d", ti->tm_hour);
--- wml_backend/p3_eperl/eperl_sys.c	1999/01/12 14:24:14	1.2
+++ wml_backend/p3_eperl/eperl_sys.c	1999/05/20 11:39:26	1.4
@@ -239,8 +239,8 @@
     char timestr[128];
 
     tm = localtime(t);
-    sprintf(timestr, "%02d-%02d-19%02d %02d:%02d",
-                      tm->tm_mday, tm->tm_mon+1, tm->tm_year,
+    sprintf(timestr, "%02d-%02d-%04d %02d:%02d",
+                      tm->tm_mday, tm->tm_mon+1, tm->tm_year+1900,
                       tm->tm_hour, tm->tm_min);
     return strdup(timestr);
 }
--- wml_docs/wml_intro.pod	1999/01/04 15:56:59	1.1.1.1
+++ wml_docs/wml_intro.pod	1999/05/20 11:39:30	1.3
@@ -137,21 +137,18 @@
   #use wml::std::tags
 
   <perl>
-  @dow = ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' );
-  @moy = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
-           'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
-  sub ctime {
-      local($time) = @_[0];
-      local($sec, $min, $hour, $mday, $mon, $year, 
-            $wday, $yday, $isdst) = localtime($time);
-      local($str) = sprintf("%s %s %2d %02d:%02d:%02d 19%s%s",
-          $dow[$wday], $moy[$mon], $mday, $hour, $min, $sec, $year, 
-          $isdst ?  " DST" : "");
+  sub isotime {
+      my ($time) = @_;
+  
+      my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
+          localtime($time);
+      my ($str) = sprintf("%02d-%02d-%04d %02d:%02d:%02d",
+           $mday, $mon+1, $year+1900, $hour, $min, $sec);
       return $str;
   }
   </perl>
 
-  The current time is <:= &ctime(time()) :>.
+  The current date is <:= &isotime(time()) :>.
 
 =item B<Pass 4: Low-Level Macro Construct Expansion>
 
@@ -349,7 +346,7 @@
 
 B<Example:>
 
-  [EN:Welcome to:][DE:Wilkommen zu:] Foo Bar Baz Quux!
+  [EN:Welcome to:][DE:Willkommen zu:] Foo Bar Baz Quux!
 
 =back
 
--- wml_frontend/wmb.src	1999/01/13 11:42:27	1.3
+++ wml_frontend/wmb.src	1999/05/20 11:39:31	1.4
@@ -148,17 +148,6 @@
     }
 }
 
-sub isotime {
-    my ($time) = @_;
-  
-    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
-        localtime($time);
-    my ($str) = sprintf("%02d-%02d-19%02d %02d:%02d:%02d",
-         $mday, $mon+1, $year, $hour, $min, $sec);
-    return $str;
-}
-$time = &isotime(time());
-
 $version = `wml -V3 2>&1`;
 $version =~ s|^.*?(Built)|Used WML System:\n$1|s;
 
--- wml_frontend/wml.src	1999/01/13 08:32:55	1.3
+++ wml_frontend/wml.src	1999/05/27 16:54:40	1.20
@@ -61,21 +61,16 @@
          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' );
 sub ctime {
     my ($time) = @_;
-  
-    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
-        localtime($time);
-    my ($str) = sprintf("%s %s %2d %02d:%02d:%02d 19%s%s",
-         $dow[$wday], $moy[$mon], $mday, $hour, $min, $sec, $year, 
-         $isdst ?  " DST" : "");
-    return $str;
+    return scalar(localtime($time));
 }
+ 
 sub isotime {
     my ($time) = @_;
   
     my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = 
         localtime($time);
-    my ($str) = sprintf("%02d-%02d-19%02d %02d:%02d:%02d",
-         $mday, $mon+1, $year, $hour, $min, $sec);
+    my ($str) = sprintf("%02d-%02d-%04d %02d:%02d:%02d",
+         $mday, $mon+1, $year+1900, $hour, $min, $sec);
     return $str;
 }


Reply to: