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

Bug#595698: www.debian.org: not robust to CRLF (dos end of lines): items missing from indexes/get_recent_list



tags 595698 patch
thanks

Hi,

Le 05/09/2010 17:56, Simon Paillard a écrit :
> As experienced since today with the announcement of Lenny 5.0.6, dos
> (CRLF) end of lines doesn't match some regex.
> 
> As a consequence, the announce did not appear in any News listing
> (either homepage or /News/ /News/2010), while a french translation
> without CRLF of the same file does appear.
> 
> Affected file :
> english/template/debian/recent_list.wml
> 
> Maybe other regex in the website are affected as well.

The attached patch relax associated regexps to match even if the closing
tag is not at the end of line (which will also make it match tags if
they are followed by spaces for example).

> Other way could be a pre-commit hook that forbids or issues a warning
> on CRLF. 

Regards

David

Index: english/template/debian/events_common.wml
===================================================================
RCS file: /cvsroot/webwml/webwml/english/template/debian/events_common.wml,v
retrieving revision 1.38
diff -u -r1.38 events_common.wml
--- english/template/debian/events_common.wml	16 Aug 2008 13:33:40 -0000	1.38
+++ english/template/debian/events_common.wml	12 Feb 2011 20:01:04 -0000
@@ -81,31 +81,31 @@
      <protect pass=2>
      foreach $line (<$fh>) 
 	 {
-        if ($line =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/) 
+        if ($line =~ /^<define-tag pagetitle>(.*)<\/define-tag>/) 
 		{
            $title = $1;
         }
-        elsif ($line =~ /^<define-tag date>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag date>(.*)<\/define-tag>/) 
 		{
            $date = $1;
         }
-        elsif ($line =~ /^<define-tag startdate>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag startdate>(.*)<\/define-tag>/) 
 		{
            $startdate = $1;
         }
-        elsif ($line =~ /^<define-tag enddate>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag enddate>(.*)<\/define-tag>/) 
 		{
            $enddate = $1;
         }
-        elsif ($line =~ /^<define-tag contact>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag contact>(.*)<\/define-tag>/) 
 		{
            $contact = $1;
         }
-        elsif ($line =~ /^<define-tag email>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag email>(.*)<\/define-tag>/) 
 		{
            $email = $1;
         }
-        elsif ($line =~ /^<define-tag desc>(.*)<\/define-tag>$/) 
+        elsif ($line =~ /^<define-tag desc>(.*)<\/define-tag>/) 
 		{
            $desc = $1;
         }
Index: english/template/debian/legal_lists.wml
===================================================================
RCS file: /cvsroot/webwml/webwml/english/template/debian/legal_lists.wml,v
retrieving revision 1.3
diff -u -r1.3 legal_lists.wml
--- english/template/debian/legal_lists.wml	9 Mar 2005 10:52:46 -0000	1.3
+++ english/template/debian/legal_lists.wml	12 Feb 2011 20:01:35 -0000
@@ -106,13 +106,13 @@
         <protect pass=2>
         my ( $free, $l_name, $rdate );
         foreach my $l (<DATAFILE>) {
-            if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/) 
+            if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>/) 
             { $title = qq/$1/; }
-            if ($l =~ /^<define-tag license-name>(.*)<\/define-tag>$/) 
+            if ($l =~ /^<define-tag license-name>(.*)<\/define-tag>/) 
             { $l_name = qq/$1/; }
-            elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>$/) 
+            elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>/) 
             { $rdate = qq/$1/; }
-            elsif ($l =~ /^<define-tag isfree>(.*)<\/define-tag>$/) 
+            elsif ($l =~ /^<define-tag isfree>(.*)<\/define-tag>/) 
             { $free = qq/$1/; }
         }
         </protect>
Index: english/template/debian/recent_list.wml
===================================================================
RCS file: /cvsroot/webwml/webwml/english/template/debian/recent_list.wml,v
retrieving revision 1.140
diff -u -r1.140 recent_list.wml
--- english/template/debian/recent_list.wml	6 Feb 2011 21:52:17 -0000	1.140
+++ english/template/debian/recent_list.wml	12 Feb 2011 19:59:19 -0000
@@ -253,27 +253,27 @@
 	    $where, $moreinfo, $startdate, $enddate, $repfile, $just);
 	my (@hdate, @rdate, @isodate) = ();
 	<protect pass=2>
-	if ($content =~ /^<define-tag pagetitle>\s*(.*?)\s*<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag pagetitle>\s*(.*?)\s*<\/define-tag>/ms) {
 	    $title = qq/$1/; }      # all
-	if ($content =~ /^<define-tag release_date>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag release_date>(.*?)<\/define-tag>/ms) {
 	    $date = qq/$1/; }       # News, news.XX.rdf
-	if ($content =~ /^<p>(.*?)<\/p>$/ms) {
+	if ($content =~ /^<p>(.*?)<\/p>/ms) {
             $moreinfo = qq/$1/; }   # news.XX.rdf  Should catch the first paragraph
-	if ($content =~ /^<define-tag where>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag where>(.*?)<\/define-tag>/ms) {
 	    $where = qq/$1/; }      # events
-	if ($content =~ /^<define-tag date>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag date>(.*?)<\/define-tag>/ms) {
 	    $date = qq/$1/; }       # events
-	if ($content =~ /^<define-tag description>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag description>(.*?)<\/define-tag>/ms) {
 	    $desc = qq/$1/; }       # security
-	if ($content =~ /^<define-tag justification>\s*(.*?)\s*<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag justification>\s*(.*?)\s*<\/define-tag>/ms) {
 	    $just = qq/$1/; }      # licenses
-	if ($content =~ /^<define-tag moreinfo>(?:(.*?<\/p>)|(.*?)<\/define-tag>)$/ms) {
+	if ($content =~ /^<define-tag moreinfo>(?:(.*?<\/p>)|(.*?)<\/define-tag>)/ms) {
 	    $moreinfo = qq/$1/; }   # dsa-long.XX.rdf
-	if ($content =~ /^<define-tag status>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag status>(.*?)<\/define-tag>/ms) {
 	    $status = qq/$1/; }     # vote
-	if ($content =~ /^<define-tag startdate>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag startdate>(.*?)<\/define-tag>/ms) {
 	    $startdate = qq/$1/; }	# startdate (events)
-	if ($content =~ /^<define-tag enddate>(.*?)<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag enddate>(.*?)<\/define-tag>/ms) {
 	    $enddate = $1; }        # enddate (events)
 	my ($shortfile) = $file =~ /^(?:.*\/)?(.*)\.wml$/;
 	if ($content =~ /<a\s+href="($shortfile-report)"\s*>/ms) {
@@ -304,9 +304,9 @@
 		};
 	    <protect pass=2>
 	     foreach my $l (<DATAFILE>) {
-		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/)
+		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>/)
 		 { $title = qq/$1/; }
-		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>$/)
+		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>/)
 		 { $rdate = qq/$1/; }
 	     }
 	    </protect>
@@ -395,13 +395,13 @@
 	    <protect pass=2>
              my ( $free, $l_name );
 	     foreach my $l (<DATAFILE>) {
-		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/)
+		 if ($l =~ /^<define-tag pagetitle>(.*)<\/define-tag>/)
 		 { $title = qq/$1/; }
-		 if ($l =~ /^<define-tag license-name>(.*)<\/define-tag>$/)
+		 if ($l =~ /^<define-tag license-name>(.*)<\/define-tag>/)
 		 { $l_name = qq/$1/; }
-		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>$/)
+		 elsif ($l =~ /^<define-tag report_date>(.*)<\/define-tag>/)
 		 { $rdate = qq/$1/; }
-		 elsif ($l =~ /^<define-tag isfree>(.*)<\/define-tag>$/)
+		 elsif ($l =~ /^<define-tag isfree>(.*)<\/define-tag>/)
 		 { $free = qq/$1/; }
 	     }
 	    </protect>
@@ -427,7 +427,7 @@
 		};
 	    <protect pass=2>
 	     foreach my $l (<DATAFILE>) {
-		 if ($l =~ /^<define-tag release_date>(.*)<\/define-tag>$/)
+		 if ($l =~ /^<define-tag release_date>(.*)<\/define-tag>/)
 		 { $rdate = qq/$1/; }
 	     }
 	    </protect>
Index: english/template/debian/users_list.wml
===================================================================
RCS file: /cvsroot/webwml/webwml/english/template/debian/users_list.wml,v
retrieving revision 1.1
diff -u -r1.1 users_list.wml
--- english/template/debian/users_list.wml	30 Jul 2005 18:23:03 -0000	1.1
+++ english/template/debian/users_list.wml	12 Feb 2011 20:02:20 -0000
@@ -73,9 +73,9 @@
 
 	my ($title, $webpage);
 	<protect pass=2>
-	if ($content =~ /^<define-tag pagetitle>\s*(.*?)\s*<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag pagetitle>\s*(.*?)\s*<\/define-tag>/ms) {
 	    $title = qq/$1/; }
-	if ($content =~ /^<define-tag webpage>\s*(.*?)\s*<\/define-tag>$/ms) {
+	if ($content =~ /^<define-tag webpage>\s*(.*?)\s*<\/define-tag>/ms) {
 	    $webpage = qq/$1/; }
 	my ($shortfile) = $file =~ /^(?:.*\/)?(.*)\.wml$/;
 	#$eng_dir =~ /^(?:.*\/)?(.*)$/;
Index: english/template/debian/votebar.wml
===================================================================
RCS file: /cvsroot/webwml/webwml/english/template/debian/votebar.wml,v
retrieving revision 1.116
diff -u -r1.116 votebar.wml
--- english/template/debian/votebar.wml	5 Feb 2011 16:49:23 -0000	1.116
+++ english/template/debian/votebar.wml	12 Feb 2011 20:03:10 -0000
@@ -221,9 +221,9 @@
     $title = ''; $status = '';
 <protect pass=2>
     foreach $line (<$fh>) {
-      if ($line =~ /^<define-tag pagetitle>(.*)<\/define-tag>$/) {
+      if ($line =~ /^<define-tag pagetitle>(.*)<\/define-tag>/) {
         $title = $1;
-      } elsif ($line =~ /^<define-tag status>(.*)<\/define-tag>$/) {
+      } elsif ($line =~ /^<define-tag status>(.*)<\/define-tag>/) {
         $status = $1;
       }
 </protect>

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: