This is an automated email from the git hooks/post-receive script. ntyni pushed a commit to branch master in repository libhtml-defang-perl.
commit a67f75015478853a3f2b026d02c116ea2e6f890a Author: Niko Tyni <nt...@debian.org> Date: Sun Dec 27 18:50:07 2015 +0200 Fix regexp syntax for Perl 5.22, eliminating new warnings. Closes: #809096 --- .../0001-Fix-regexp-syntax-for-Perl-5.22.patch | 51 ++ ...x-test-script-regexp-syntax-for-Perl-5.22.patch | 918 +++++++++++++++++++++ debian/patches/series | 2 + 3 files changed, 971 insertions(+) diff --git a/debian/patches/0001-Fix-regexp-syntax-for-Perl-5.22.patch b/debian/patches/0001-Fix-regexp-syntax-for-Perl-5.22.patch new file mode 100644 index 0000000..466e00c --- /dev/null +++ b/debian/patches/0001-Fix-regexp-syntax-for-Perl-5.22.patch @@ -0,0 +1,51 @@ +From f88618b06c4b8d2dee5bd38211c0e29703a648f8 Mon Sep 17 00:00:00 2001 +From: Niko Tyni <nt...@debian.org> +Date: Sun, 27 Dec 2015 18:22:25 +0200 +Subject: [PATCH 1/2] Fix regexp syntax for Perl 5.22 + +Perl 5.22 introduced the warning + + Unescaped left brace in regex is deprecated, passed through in regex + +which triggers in these regexps. + +Bug-Debian: https://bugs.debian.org/809096 +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=110663 +--- + lib/HTML/Defang.pm | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/lib/HTML/Defang.pm b/lib/HTML/Defang.pm +index c97b7b3..61794d8 100644 +--- a/lib/HTML/Defang.pm ++++ b/lib/HTML/Defang.pm +@@ -157,7 +157,7 @@ my $Executables = '([^@]\.com|'. + '.*\.(exe|cmd|bat|pif|scr|sys|sct|lnk|dll'. + '|vbs?|vbe|hta|shb|shs|hlp|chm|eml|wsf|wsh|js'. + '|asx|wm.|mdb|mht|msi|msp|cpl|lib|reg))'; +-my $SrcBanStd = qr/^([A-Za-z]*script|.*\&{|mocha|about|opera|mailto:|hcp:|\/(dev|proc)|\\|file|smb|cid:${Executables}(@|\?|$))/i; ++my $SrcBanStd = qr/^([A-Za-z]*script|.*\&\{|mocha|about|opera|mailto:|hcp:|\/(dev|proc)|\\|file|smb|cid:${Executables}(@|\?|$))/i; + + my %Rules = + ( +@@ -178,7 +178,7 @@ my %Rules = + "form-method" => qr/^(get|post)$/i, + "frame" => qr/^(void|above|below|hsides|vsides|lhs|rhs|box|border)$/i, + # href: Not javascript, vbs or vbscript +- "href" => [ qr/(?i:^([a-z]*script\s*:|.*\&{|mocha|hcp|opera\s*:|about\s*:|smb|\/dev\/|<))|[^\x00-\x7f]/ ], ++ "href" => [ qr/(?i:^([a-z]*script\s*:|.*\&\{|mocha|hcp|opera\s*:|about\s*:|smb|\/dev\/|<))|[^\x00-\x7f]/ ], + "usemap-href" => qr/^#[A-Za-z0-9_.-]+$/, # this is not really a href at all! + "input-size" => qr/^(\d{1,4})$/, # some browsers freak out with very large widgets + "input-type" => qr/^(button|checkbox|file|hidden|image|password|radio|readonly|reset|submit|text)$/i, +@@ -204,7 +204,7 @@ my %Rules = + # "style" => qr/expression|eval|script:|mocha:|\&{|\@import|(?<!background-)position:|background-image/i, # XXX there are probably a million more ways to cause trouble with css! + "style" => qr/^.*$/s, + #kc In addition to this, we could strip all 'javascript:|expression|' etc. from all attributes(in attribute_cleanup()) +- "stylesheet" => [ qr/expression|eval|script:|mocha:|\&{|\@import/i ], # stylesheets are forbidden if Embedded => 1. css positioning can be allowed in an iframe. ++ "stylesheet" => [ qr/expression|eval|script:|mocha:|\&\{|\@import/i ], # stylesheets are forbidden if Embedded => 1. css positioning can be allowed in an iframe. + # NB see also `process_stylesheet' below + "style-type" => [ qr/script|mocha/i ], + "size" => qr/^[\d.]+(px|%)?$/i, +-- +2.6.4 + diff --git a/debian/patches/0002-Fix-test-script-regexp-syntax-for-Perl-5.22.patch b/debian/patches/0002-Fix-test-script-regexp-syntax-for-Perl-5.22.patch new file mode 100644 index 0000000..775386e --- /dev/null +++ b/debian/patches/0002-Fix-test-script-regexp-syntax-for-Perl-5.22.patch @@ -0,0 +1,918 @@ +From d61140731d698d62258a7c8bb6b649cb7a4a7ea6 Mon Sep 17 00:00:00 2001 +From: Niko Tyni <nt...@debian.org> +Date: Sun, 27 Dec 2015 18:46:17 +0200 +Subject: [PATCH 2/2] Fix test script regexp syntax for Perl 5.22 + +Perl 5.22 introduced the warning + + Unescaped left brace in regex is deprecated, passed through in regex + +which triggers in these regexps. + +Bug: https://rt.cpan.org/Public/Bug/Display.html?id=110663 +--- + t/01_basic.t | 4 +- + t/02_xss.t | Bin 45684 -> 45691 bytes + t/03_styles.t | 136 ++++++++--------- + t/04_imports.t | 2 +- + t/05_callbacks.t | 442 +++++++++++++++++++++++++++---------------------------- + t/06_unicode.t | 2 +- + 6 files changed, 293 insertions(+), 293 deletions(-) + +diff --git a/t/01_basic.t b/t/01_basic.t +index 91a91f0..b1efcc3 100755 +--- a/t/01_basic.t ++++ b/t/01_basic.t +@@ -456,8 +456,8 @@ $H = <<EOF; + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{<!--$CommentStartText\[if gte mso 10\]> <mce:style><! /\* Style Definitions \*/ table.MsoNormalTable {mso-fareast-font-family:"Times New Roman";} $CommentEndText--> <!--$CommentStartText\[endif\]$CommentEndText--></p> +-<p> <span style="font-size: medium;">I need your help now!</span></p>}, "IE conditional comment without appropriate closing tag"); ++like($Res, qr[<!--$CommentStartText\[if gte mso 10\]> <mce:style><! /\* Style Definitions \*/ table.MsoNormalTable \{mso-fareast-font-family:"Times New Roman";} $CommentEndText--> <!--$CommentStartText\[endif\]$CommentEndText--></p> ++<p> <span style="font-size: medium;">I need your help now!</span></p>], "IE conditional comment without appropriate closing tag"); + + $H = <<'EOF'; + 1:<br> +diff --git a/t/02_xss.t b/t/02_xss.t +index 794340c..b4adbff 100644 +Binary files a/t/02_xss.t and b/t/02_xss.t differ +diff --git a/t/03_styles.t b/t/03_styles.t +index 5bf83d5..352286e 100644 +--- a/t/03_styles.t ++++ b/t/03_styles.t +@@ -40,9 +40,9 @@ p {font-family: "sans serif"} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-p {font-family: "sans serif"} +-$CommentEndText--></style>$}s, "Style tag property with quotes and space"); ++like($Res, qr[^<style><!--${CommentStartText} ++p \{font-family: "sans serif"} ++$CommentEndText--></style>$]s, "Style tag property with quotes and space"); + + $H = <<EOF; + <style> +@@ -51,10 +51,10 @@ p {text-align:center;color:red} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-p {text-align:center;color:red} ++like($Res, qr[^<style><!--${CommentStartText} ++p \{text-align:center;color:red} + $CommentEndText--></style> +-$}s, "Multiple properties"); ++$]s, "Multiple properties"); + + $H = <<EOF; + <style> +@@ -68,15 +68,15 @@ font-family: arial + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} ++like($Res, qr[^<style><!--${CommentStartText} + p +-{ ++\{ + text-align: center; + color: black; + font-family: arial + } + $CommentEndText--></style> +-$}s, "Multiple properties in readable format"); ++$]s, "Multiple properties in readable format"); + + $H = <<EOF; + <style> +@@ -88,13 +88,13 @@ color: green + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} ++like($Res, qr[^<style><!--${CommentStartText} + h1,h2,h3,h4,h5,h6 +-{ ++\{ + color: green + } + $CommentEndText--></style> +-$}s, "Multiple selectors"); ++$]s, "Multiple selectors"); + + $H = <<EOF; + <style> +@@ -104,11 +104,11 @@ p.center {text-align: center} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-p.right {text-align: right} +-p.center {text-align: center} ++like($Res, qr[^<style><!--${CommentStartText} ++p.right \{text-align: right} ++p.center \{text-align: center} + $CommentEndText--></style> +-$}s, "Selector with a period"); ++$]s, "Selector with a period"); + + $H = <<EOF; + <style> +@@ -117,10 +117,10 @@ $H = <<EOF; + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-.center {text-align: center} ++like($Res, qr[^<style><!--${CommentStartText} ++.center \{text-align: center} + $CommentEndText--></style> +-$}, "Selector starting in a period"); ++$], "Selector starting in a period"); + + $H = <<EOF; + <style> +@@ -129,10 +129,10 @@ input[type="text"] {background-color: blue} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-input\[type="text"\] {background-color: blue} ++like($Res, qr[^<style><!--${CommentStartText} ++input\[type="text"\] \{background-color: blue} + $CommentEndText--></style> +-$}s, "Selector with square brackets"); ++$]s, "Selector with square brackets"); + + $H = <<EOF; + <style> +@@ -141,10 +141,10 @@ $H = <<EOF; + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-#green {color: green} ++like($Res, qr[^<style><!--${CommentStartText} ++#green \{color: green} + $CommentEndText--></style> +-$}s, "Selector starting with a hash"); ++$]s, "Selector starting with a hash"); + + $H = <<EOF; + <style> +@@ -157,14 +157,14 @@ color: red + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} ++like($Res, qr[^<style><!--${CommentStartText} + p#para1 +-{ ++\{ + text-align: center; + color: red + } + $CommentEndText--></style> +-$}s, "Selector with a hash"); ++$]s, "Selector with a hash"); + + $H = <<EOF; + <style> +@@ -183,17 +183,17 @@ comment here + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} ++like($Res, qr[^<style><!--${CommentStartText} + + p +-{ ++\{ + text-align: center; + + color: black; + font-family: arial + } + $CommentEndText--></style> +-$}s, "All sorts of comments"); ++$]s, "All sorts of comments"); + + $H = <<EOF; + <style> +@@ -249,14 +249,14 @@ $H = <<EOF; + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<STYLE><!--${CommentStartText}BODY{/\*-moz-binding:url\("http://ha.ckers.org/xssmoz.xml#xss"\)\*/}$CommentEndText--></STYLE>$}s, "Remote style sheet part 4"); ++like($Res, qr[^<STYLE><!--${CommentStartText}BODY\{/\*-moz-binding:url\("http://ha.ckers.org/xssmoz.xml#xss"\)\*/}$CommentEndText--></STYLE>$]s, "Remote style sheet part 4"); + + $H = <<EOF; + <STYLE>li {list-style-image: url("javascript:alert('XSS')");}</STYLE><UL><LI>XSS + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<STYLE><!--${CommentStartText}li {/\*list-style-image: url\("javascript:alert\('XSS'\)"\);\*/}$CommentEndText--></STYLE><UL><LI>XSS$}s, "List-style-image"); ++like($Res, qr[^<STYLE><!--${CommentStartText}li \{/\*list-style-image: url\("javascript:alert\('XSS'\)"\);\*/}$CommentEndText--></STYLE><UL><LI>XSS$]s, "List-style-image"); + + $H = <<'EOF'; + <STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE> +@@ -276,9 +276,9 @@ $H = <<EOF; + a{sss:sss}</STYLE> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^<STYLE><!--${CommentStartText} ++like($Res, qr[^<STYLE><!--${CommentStartText} + +-a{sss:sss}$CommentEndText--></STYLE>$}s, "Removing multiple css imports"); ++a\{sss:sss}$CommentEndText--></STYLE>$]s, "Removing multiple css imports"); + + $H = <<EOF; + <STYLE>\@import'javascript:alert("XSS")'; +@@ -291,14 +291,14 @@ a{sss:11111111}</STYLE> + a{sss:22222222}</STYLE> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^<STYLE><!--${CommentStartText} ++like($Res, qr[^<STYLE><!--${CommentStartText} + +-a{sss:11111111}$CommentEndText--></STYLE> ++a\{sss:11111111}$CommentEndText--></STYLE> + <!--defang_someunknowntag--> + <br> + <STYLE><!--${CommentStartText} + +-a{sss:22222222}$CommentEndText--></STYLE>$}s, "Removing multiple css imports with multiple styles"); ++a\{sss:22222222}$CommentEndText--></STYLE>$]s, "Removing multiple css imports with multiple styles"); + + $H = <<EOF; + <STYLE> +@@ -308,11 +308,11 @@ p {property: value} + </STYLE> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^<STYLE> ++like($Res, qr[^<STYLE> + <!--${CommentStartText} +-p {property: value} ++p \{property: value} + $CommentEndText--> +-</STYLE>$}s, "Removing HTML comments"); ++</STYLE>$]s, "Removing HTML comments"); + + + # Tests taken from http://imfo.ru/csstest/css_hacks/import.php +@@ -471,7 +471,7 @@ $H = <<EOF; + <style>em{color:red};\@import url("style.css");</style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^<style><!--${CommentStartText}em{color:red}$CommentEndText--></style>$}, "Test 26"); ++like($Res, qr[^<style><!--${CommentStartText}em\{color:red}$CommentEndText--></style>$], "Test 26"); + + $H = <<EOF; + <style>\@import url("style.css");</style> +@@ -597,14 +597,14 @@ like($Res, qr{25:<a style="s5\{aa:ab\}s6\{ac:ad\}">}s, "Test style attribute - m + like($Res, qr{26:<a style=" s7 \{ ae : af \} s8 \{ ag : ah \} ">}s, "Test style attribute - multiple property pairs with selectors, braces and spaces but without semi-colon"); + like($Res, qr{27:<a style="s5\{ai:aj;\}s6\{ak:al;\}">}s, "Test style attribute - multiple property pairs with selectors, braces and semi-colon but without spaces"); + like($Res, qr{28:<a style=" s7 \{ am : an \} s8 \{ ao : ap ; \} ">}s, "Test style attribute - multiple property pairs with selectors, braces spaces and semi-colon"); +-like($Res, qr{29:<a style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">}s, "Test style attribute - style rule with and without selectors"); +-like($Res, qr{30:<a style="{color: #090; line-height: 1.2} ::first-letter {color: #900}">}, "Test style attribute - style rule with and without selectors in single line"); +-like($Res, qr{31:<a href="abccomscript" title="a" id="a1" style="{color: #900} +- :link {background: #ff0} +- :visited {background: #fff} +- :hover {outline: thin red solid} +- :active {background: #00f}"> +-$}, "Test style attribute - style rule with and without selectors over multiple lines"); ++like($Res, qr[29:<a style="\{color: #900} :link \{background: #ff0} :visited \{background: #fff} :hover \{outline: thin red solid} :active \{background: #00f}">]s, "Test style attribute - style rule with and without selectors"); ++like($Res, qr[30:<a style="\{color: #090; line-height: 1.2} ::first-letter \{color: #900}">], "Test style attribute - style rule with and without selectors in single line"); ++like($Res, qr[31:<a href="abccomscript" title="a" id="a1" style="\{color: #900} ++ :link \{background: #ff0} ++ :visited \{background: #fff} ++ :hover \{outline: thin red solid} ++ :active \{background: #00f}"> ++$], "Test style attribute - style rule with and without selectors over multiple lines"); + + $H = <<EOF; + <style> +@@ -623,19 +623,19 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{<style><!--${CommentStartText} ++like($Res, qr[<style><!--${CommentStartText} + +-selector1{ab:cd} +-selector2{ab:cd;} +-selector3{ab:cd;ef:gh} +-selector4{ab:cd;ef:gh;} +-selector5{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} +- selector6 { ab : cd } +- selector7 { ab : cd ; } +- selector8 { ab : cd ; ef : gh } +- selector9 { ab : cd ; ef : gh ; } +- selector10 { ab : cd ; x : y ; /\*r : url\(http://a.com\) \*/} +- $CommentEndText--></style>}s, "Test style tag css with and without spaces"); ++selector1\{ab:cd} ++selector2\{ab:cd;} ++selector3\{ab:cd;ef:gh} ++selector4\{ab:cd;ef:gh;} ++selector5\{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} ++ selector6 \{ ab : cd } ++ selector7 \{ ab : cd ; } ++ selector8 \{ ab : cd ; ef : gh } ++ selector9 \{ ab : cd ; ef : gh ; } ++ selector10 \{ ab : cd ; x : y ; /\*r : url\(http://a.com\) \*/} ++ $CommentEndText--></style>]s, "Test style tag css with and without spaces"); + + $H = <<EOF; + <style> +@@ -649,14 +649,14 @@ body {color: black} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style> ++like($Res, qr[^<style> + + <!--${CommentStartText} + +-body {color: black} ++body \{color: black} + + $CommentEndText--> +-</style>$}s, "Style tag with HTML comments"); ++</style>$]s, "Style tag with HTML comments"); + + $H = <<EOF; + <style> +@@ -665,7 +665,7 @@ body {color: black} + EOF + $Res = $Defang->defang($H); + +-like($Res, qr{^<style><!--${CommentStartText} +-body {color: black} +-$CommentEndText--></style>$}s, "Style tag without HTML comments"); ++like($Res, qr[^<style><!--${CommentStartText} ++body \{color: black} ++$CommentEndText--></style>$]s, "Style tag without HTML comments"); + +diff --git a/t/04_imports.t b/t/04_imports.t +index 144b09b..01c07bf 100644 +--- a/t/04_imports.t ++++ b/t/04_imports.t +@@ -167,7 +167,7 @@ $H = <<EOF; + <style>em{color:red};\@import url("style.css");</style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^<style><!--${CommentStartText}em{color:red}${CommentEndText}--></style>$}, "Test 26"); ++like($Res, qr[^<style><!--${CommentStartText}em\{color:red}${CommentEndText}--></style>$], "Test 26"); + + $H = <<EOF; + <style>\@import url("style.css");</style> +diff --git a/t/05_callbacks.t b/t/05_callbacks.t +index 59d23a8..d955331 100644 +--- a/t/05_callbacks.t ++++ b/t/05_callbacks.t +@@ -522,7 +522,7 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + </style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^1:<a style="a:b"> ++like($Res, qr[^1:<a style="a:b"> + 2:<a style=" c : d "> + 3:<a style="e:f;"> + 4:<a style=" g : h ; "> +@@ -532,51 +532,51 @@ like($Res, qr{^1:<a style="a:b"> + 7:<a style="i3:j3;k3:l3;"> + 8:<a style=" i4 : j4 ; k4 : l4 ; "> + +-9:<a style="{q:r}"> +-10:<a style=" { s : t } "> +-11:<a style="{u:v;}"> +-12:<a style=" { w : x ; } "> +- +-13:<a style="{i5:j5;k5:l5}"> +-14:<a style=" { i6 : j6 ; k6 : l6 } "> +-15:<a style="{i7:j7;k7:l7;}"> +-16:<a style=" { i8 : j8 ; k8 : l8 ; } "> +- +-17:<a style="s1{y:z}"> +-18:<a style=" s1 { y2 : z2 } "> +-19:<a style="s1{y3:z3;}"> +-20:<a style=" s1 { y4 : z4 ; } "> +- +-21:<a style="s1{y5:z5;y6:z6}"> +-22:<a style=" s2 { y7 : z7 ; y8 : z8 } "> +-23:<a style="s3{y9:z9;y10:z11;}"> +-24:<a style=" s4 { y12 : z12 ; y13 : z13 ; } "> +- +-25:<a style="s5{aa:ab}s6{ac:ad}"> +-26:<a style=" s7 { ae : af } s8 { ag : ah } "> +-27:<a style="s5{ai:aj;}s6{ak:al;}"> +-28:<a style=" s7 { am : an } s8 { ao : ap ; } "> +- +-29:<a style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}"> +-30:<a style="{color: #090; line-height: 1.2} ::first-letter {color: #900}"> +-31:<a href="abccomscript" title="a" id="a1" style="{color: #900} +- :link {background: #ff0} +- :visited {background: #fff} +- :hover {outline: thin red solid} +- :active {background: #00f}"> ++9:<a style="\{q:r}"> ++10:<a style=" \{ s : t } "> ++11:<a style="\{u:v;}"> ++12:<a style=" \{ w : x ; } "> ++ ++13:<a style="\{i5:j5;k5:l5}"> ++14:<a style=" \{ i6 : j6 ; k6 : l6 } "> ++15:<a style="\{i7:j7;k7:l7;}"> ++16:<a style=" \{ i8 : j8 ; k8 : l8 ; } "> ++ ++17:<a style="s1\{y:z}"> ++18:<a style=" s1 \{ y2 : z2 } "> ++19:<a style="s1\{y3:z3;}"> ++20:<a style=" s1 \{ y4 : z4 ; } "> ++ ++21:<a style="s1\{y5:z5;y6:z6}"> ++22:<a style=" s2 \{ y7 : z7 ; y8 : z8 } "> ++23:<a style="s3\{y9:z9;y10:z11;}"> ++24:<a style=" s4 \{ y12 : z12 ; y13 : z13 ; } "> ++ ++25:<a style="s5\{aa:ab}s6\{ac:ad}"> ++26:<a style=" s7 \{ ae : af } s8 \{ ag : ah } "> ++27:<a style="s5\{ai:aj;}s6\{ak:al;}"> ++28:<a style=" s7 \{ am : an } s8 \{ ao : ap ; } "> ++ ++29:<a style="\{color: #900} :link \{background: #ff0} :visited \{background: #fff} :hover \{outline: thin red solid} :active \{background: #00f}"> ++30:<a style="\{color: #090; line-height: 1.2} ::first-letter \{color: #900}"> ++31:<a href="abccomscript" title="a" id="a1" style="\{color: #900} ++ :link \{background: #ff0} ++ :visited \{background: #fff} ++ :hover \{outline: thin red solid} ++ :active \{background: #00f}"> + <style><!--${CommentStartText} + +-selector1{ab:cd} +-selector2{ab:cccd;} +-selector3{ab:cd;ef:gh} +-selector4{ab:cd;ef:gh;} +-selector5{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} +- selector6 { ab : cd } +- selector7 { ab : cd ; } +- selector8 { ab : cd ; ef : gh } +- selector9 { ab : cd ; ef : gh ; } +- selector10 { ab : cd ; x : y ; /\*r : url\(http://a.com\) \*/} +- ${CommentEndText}--></style>$}, "CSS callback - force normal"); ++selector1\{ab:cd} ++selector2\{ab:cccd;} ++selector3\{ab:cd;ef:gh} ++selector4\{ab:cd;ef:gh;} ++selector5\{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} ++ selector6 \{ ab : cd } ++ selector7 \{ ab : cd ; } ++ selector8 \{ ab : cd ; ef : gh } ++ selector9 \{ ab : cd ; ef : gh ; } ++ selector10 \{ ab : cd ; x : y ; /\*r : url\(http://a.com\) \*/} ++ ${CommentEndText}--></style>$], "CSS callback - force normal"); + + $Defang = HTML::Defang->new( + css_callback => sub { +@@ -649,7 +649,7 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + </style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^1:<a style="a:b"> ++like($Res, qr[^1:<a style="a:b"> + 2:<a style=" c : d "> + 3:<a style="e:f;"> + 4:<a style=" g : h ; "> +@@ -659,51 +659,51 @@ like($Res, qr{^1:<a style="a:b"> + 7:<a style="i3:j3;k3:l3;"> + 8:<a style=" i4 : j4 ; k4 : l4 ; "> + +-9:<a style="{q:r}"> +-10:<a style=" { s : t } "> +-11:<a style="{u:v;}"> +-12:<a style=" { w : x ; } "> +- +-13:<a style="{i5:j5;k5:l5}"> +-14:<a style=" { i6 : j6 ; k6 : l6 } "> +-15:<a style="{i7:j7;k7:l7;}"> +-16:<a style=" { i8 : j8 ; k8 : l8 ; } "> +- +-17:<a style="s1{y:z}"> +-18:<a style=" s1 { y2 : z2 } "> +-19:<a style="s1{y3:z3;}"> +-20:<a style=" s1 { y4 : z4 ; } "> +- +-21:<a style="s1{y5:z5;y6:z6}"> +-22:<a style=" s2 { y7 : z7 ; y8 : z8 } "> +-23:<a style="s3{y9:z9;y10:z11;}"> +-24:<a style=" s4 { y12 : z12 ; y13 : z13 ; } "> +- +-25:<a style="s5{aa:ab}s6{ac:ad}"> +-26:<a style=" s7 { ae : af } s8 { ag : ah } "> +-27:<a style="s5{ai:aj;}s6{ak:al;}"> +-28:<a style=" s7 { am : an } s8 { ao : ap ; } "> +- +-29:<a style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}"> +-30:<a style="{color: #090; line-height: 1.2} ::first-letter {color: #900}"> +-31:<a href="abccomscript" title="a" id="a1" style="{color: #900} +- :link {background: #ff0} +- :visited {background: #fff} +- :hover {outline: thin red solid} +- :active {background: #00f}"> ++9:<a style="\{q:r}"> ++10:<a style=" \{ s : t } "> ++11:<a style="\{u:v;}"> ++12:<a style=" \{ w : x ; } "> ++ ++13:<a style="\{i5:j5;k5:l5}"> ++14:<a style=" \{ i6 : j6 ; k6 : l6 } "> ++15:<a style="\{i7:j7;k7:l7;}"> ++16:<a style=" \{ i8 : j8 ; k8 : l8 ; } "> ++ ++17:<a style="s1\{y:z}"> ++18:<a style=" s1 \{ y2 : z2 } "> ++19:<a style="s1\{y3:z3;}"> ++20:<a style=" s1 \{ y4 : z4 ; } "> ++ ++21:<a style="s1\{y5:z5;y6:z6}"> ++22:<a style=" s2 \{ y7 : z7 ; y8 : z8 } "> ++23:<a style="s3\{y9:z9;y10:z11;}"> ++24:<a style=" s4 \{ y12 : z12 ; y13 : z13 ; } "> ++ ++25:<a style="s5\{aa:ab}s6\{ac:ad}"> ++26:<a style=" s7 \{ ae : af } s8 \{ ag : ah } "> ++27:<a style="s5\{ai:aj;}s6\{ak:al;}"> ++28:<a style=" s7 \{ am : an } s8 \{ ao : ap ; } "> ++ ++29:<a style="\{color: #900} :link \{background: #ff0} :visited \{background: #fff} :hover \{outline: thin red solid} :active \{background: #00f}"> ++30:<a style="\{color: #090; line-height: 1.2} ::first-letter \{color: #900}"> ++31:<a href="abccomscript" title="a" id="a1" style="\{color: #900} ++ :link \{background: #ff0} ++ :visited \{background: #fff} ++ :hover \{outline: thin red solid} ++ :active \{background: #00f}"> + <style><!--${CommentStartText} + +-selector1{ab:cd} +-selector2{ab:cccd;} +-selector3{ab:cd;ef:gh} +-selector4{ab:cd;ef:gh;} +-selector5{ab:cd;x:y;p:q;r:url\(http://a.com\);e:url\("http://b.com"\) ;} +- selector6 { ab : cd } +- selector7 { ab : cd ; } +- selector8 { ab : cd ; ef : gh } +- selector9 { ab : cd ; ef : gh ; } +- selector10 { ab : cd ; x : y ; r : url\(http://a.com\) } +- ${CommentEndText}--></style>$}, "CSS callback - force skip"); ++selector1\{ab:cd} ++selector2\{ab:cccd;} ++selector3\{ab:cd;ef:gh} ++selector4\{ab:cd;ef:gh;} ++selector5\{ab:cd;x:y;p:q;r:url\(http://a.com\);e:url\("http://b.com"\) ;} ++ selector6 \{ ab : cd } ++ selector7 \{ ab : cd ; } ++ selector8 \{ ab : cd ; ef : gh } ++ selector9 \{ ab : cd ; ef : gh ; } ++ selector10 \{ ab : cd ; x : y ; r : url\(http://a.com\) } ++ ${CommentEndText}--></style>$], "CSS callback - force skip"); + + $Defang = HTML::Defang->new( + css_callback => sub { +@@ -776,7 +776,7 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + </style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^1:<a style="/\*a:b\*/"> ++like($Res, qr[^1:<a style="/\*a:b\*/"> + 2:<a style=" /\*c : d \*/"> + 3:<a style="/\*e:f;\*/"> + 4:<a style=" /\*g : h ;\*/ "> +@@ -786,51 +786,51 @@ like($Res, qr{^1:<a style="/\*a:b\*/"> + 7:<a style="/\*i3:j3;\*//\*k3:l3;\*/"> + 8:<a style=" /\*i4 : j4 ;\*/ /\*k4 : l4 ;\*/ "> + +-9:<a style="{/\*q:r\*/}"> +-10:<a style=" { /\*s : t \*/} "> +-11:<a style="{/\*u:v;\*/}"> +-12:<a style=" { /\*w : x ;\*/ } "> +- +-13:<a style="{/\*i5:j5;\*//\*k5:l5\*/}"> +-14:<a style=" { /\*i6 : j6 ;\*/ /\*k6 : l6 \*/} "> +-15:<a style="{/\*i7:j7;\*//\*k7:l7;\*/}"> +-16:<a style=" { /\*i8 : j8 ;\*/ /\*k8 : l8 ;\*/ } "> +- +-17:<a style="s1{/\*y:z\*/}"> +-18:<a style=" s1 { /\*y2 : z2 \*/} "> +-19:<a style="s1{/\*y3:z3;\*/}"> +-20:<a style=" s1 { /\*y4 : z4 ;\*/ } "> +- +-21:<a style="s1{/\*y5:z5;\*//\*y6:z6\*/}"> +-22:<a style=" s2 { /\*y7 : z7 ;\*/ /\*y8 : z8 \*/} "> +-23:<a style="s3{/\*y9:z9;\*//\*y10:z11;\*/}"> +-24:<a style=" s4 { /\*y12 : z12 ;\*/ /\*y13 : z13 ;\*/ } "> +- +-25:<a style="s5{/\*aa:ab\*/}s6{/\*ac:ad\*/}"> +-26:<a style=" s7 { /\*ae : af \*/} s8 { /\*ag : ah \*/} "> +-27:<a style="s5{/\*ai:aj;\*/}s6{/\*ak:al;\*/}"> +-28:<a style=" s7 { /\*am : an \*/} s8 { /\*ao : ap ;\*/ } "> +- +-29:<a style="{/\*color: #900\*/} :link {/\*background: #ff0\*/} :visited {/\*background: #fff\*/} :hover {/\*outline: thin red solid\*/} :active {/\*background: #00f\*/}"> +-30:<a style="{/\*color: #090;\*/ /\*line-height: 1.2\*/} ::first-letter {/\*color: #900\*/}"> +-31:<a href="abccomscript" title="a" id="a1" style="{/\*color: #900\*/} +- :link {/\*background: #ff0\*/} +- :visited {/\*background: #fff\*/} +- :hover {/\*outline: thin red solid\*/} +- :active {/\*background: #00f\*/}"> ++9:<a style="\{/\*q:r\*/}"> ++10:<a style=" \{ /\*s : t \*/} "> ++11:<a style="\{/\*u:v;\*/}"> ++12:<a style=" \{ /\*w : x ;\*/ } "> ++ ++13:<a style="\{/\*i5:j5;\*//\*k5:l5\*/}"> ++14:<a style=" \{ /\*i6 : j6 ;\*/ /\*k6 : l6 \*/} "> ++15:<a style="\{/\*i7:j7;\*//\*k7:l7;\*/}"> ++16:<a style=" \{ /\*i8 : j8 ;\*/ /\*k8 : l8 ;\*/ } "> ++ ++17:<a style="s1\{/\*y:z\*/}"> ++18:<a style=" s1 \{ /\*y2 : z2 \*/} "> ++19:<a style="s1\{/\*y3:z3;\*/}"> ++20:<a style=" s1 \{ /\*y4 : z4 ;\*/ } "> ++ ++21:<a style="s1\{/\*y5:z5;\*//\*y6:z6\*/}"> ++22:<a style=" s2 \{ /\*y7 : z7 ;\*/ /\*y8 : z8 \*/} "> ++23:<a style="s3\{/\*y9:z9;\*//\*y10:z11;\*/}"> ++24:<a style=" s4 \{ /\*y12 : z12 ;\*/ /\*y13 : z13 ;\*/ } "> ++ ++25:<a style="s5\{/\*aa:ab\*/}s6\{/\*ac:ad\*/}"> ++26:<a style=" s7 \{ /\*ae : af \*/} s8 \{ /\*ag : ah \*/} "> ++27:<a style="s5\{/\*ai:aj;\*/}s6\{/\*ak:al;\*/}"> ++28:<a style=" s7 \{ /\*am : an \*/} s8 \{ /\*ao : ap ;\*/ } "> ++ ++29:<a style="\{/\*color: #900\*/} :link \{/\*background: #ff0\*/} :visited \{/\*background: #fff\*/} :hover \{/\*outline: thin red solid\*/} :active \{/\*background: #00f\*/}"> ++30:<a style="\{/\*color: #090;\*/ /\*line-height: 1.2\*/} ::first-letter \{/\*color: #900\*/}"> ++31:<a href="abccomscript" title="a" id="a1" style="\{/\*color: #900\*/} ++ :link \{/\*background: #ff0\*/} ++ :visited \{/\*background: #fff\*/} ++ :hover \{/\*outline: thin red solid\*/} ++ :active \{/\*background: #00f\*/}"> + <style><!--${CommentStartText} + +-selector1{/\*ab:cd\*/} +-selector2{/\*ab:cccd;\*/} +-selector3{/\*ab:cd;\*//\*ef:gh\*/} +-selector4{/\*ab:cd;\*//\*ef:gh;\*/} +-selector5{/\*ab:cd;\*//\*x:y;\*//\*p:q;\*//\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} +- selector6 { /\*ab : cd \*/} +- selector7 { /\*ab : cd ;\*/ } +- selector8 { /\*ab : cd ;\*/ /\*ef : gh \*/} +- selector9 { /\*ab : cd ;\*/ /\*ef : gh ;\*/ } +- selector10 { /\*ab : cd ;\*/ /\*x : y ;\*/ /\*r : url\(http://a.com\) \*/} +- ${CommentEndText}--></style>}, "CSS callback - force defang"); ++selector1\{/\*ab:cd\*/} ++selector2\{/\*ab:cccd;\*/} ++selector3\{/\*ab:cd;\*//\*ef:gh\*/} ++selector4\{/\*ab:cd;\*//\*ef:gh;\*/} ++selector5\{/\*ab:cd;\*//\*x:y;\*//\*p:q;\*//\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/} ++ selector6 \{ /\*ab : cd \*/} ++ selector7 \{ /\*ab : cd ;\*/ } ++ selector8 \{ /\*ab : cd ;\*/ /\*ef : gh \*/} ++ selector9 \{ /\*ab : cd ;\*/ /\*ef : gh ;\*/ } ++ selector10 \{ /\*ab : cd ;\*/ /\*x : y ;\*/ /\*r : url\(http://a.com\) \*/} ++ ${CommentEndText}--></style>], "CSS callback - force defang"); + + $Defang = HTML::Defang->new( + css_callback => sub { +@@ -901,7 +901,7 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + </style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^1:<a style="a:b;orange:juice"> ++like($Res, qr[^1:<a style="a:b;orange:juice"> + 2:<a style=" c : d ;orange:juice"> + 3:<a style="e:f;orange:juice"> + 4:<a style=" g : h ; orange:juice"> +@@ -911,51 +911,51 @@ like($Res, qr{^1:<a style="a:b;orange:juice"> + 7:<a style="i3:j3;k3:l3;orange:juice"> + 8:<a style=" i4 : j4 ; k4 : l4 ; orange:juice"> + +-9:<a style="{q:r;orange:juice}"> +-10:<a style=" { s : t ;orange:juice} "> +-11:<a style="{u:v;orange:juice}"> +-12:<a style=" { w : x ; orange:juice} "> +- +-13:<a style="{i5:j5;k5:l5;orange:juice}"> +-14:<a style=" { i6 : j6 ; k6 : l6 ;orange:juice} "> +-15:<a style="{i7:j7;k7:l7;orange:juice}"> +-16:<a style=" { i8 : j8 ; k8 : l8 ; orange:juice} "> +- +-17:<a style="s1{y:z;orange:juice}"> +-18:<a style=" s1 { y2 : z2 ;orange:juice} "> +-19:<a style="s1{y3:z3;orange:juice}"> +-20:<a style=" s1 { y4 : z4 ; orange:juice} "> +- +-21:<a style="s1{y5:z5;y6:z6;orange:juice}"> +-22:<a style=" s2 { y7 : z7 ; y8 : z8 ;orange:juice} "> +-23:<a style="s3{y9:z9;y10:z11;orange:juice}"> +-24:<a style=" s4 { y12 : z12 ; y13 : z13 ; orange:juice} "> +- +-25:<a style="s5{aa:ab;orange:juice}s6{ac:ad;orange:juice}"> +-26:<a style=" s7 { ae : af ;orange:juice} s8 { ag : ah ;orange:juice} "> +-27:<a style="s5{ai:aj;orange:juice}s6{ak:al;orange:juice}"> +-28:<a style=" s7 { am : an ;orange:juice} s8 { ao : ap ; orange:juice} "> +- +-29:<a style="{color: #900;orange:juice} :link {background: #ff0;orange:juice} :visited {background: #fff;orange:juice} :hover {outline: thin red solid;orange:juice} :active {background: #00f;orange:juice}"> +-30:<a style="{color: #090; line-height: 1.2;orange:juice} ::first-letter {color: #900;orange:juice}"> +-31:<a href="abccomscript" title="a" id="a1" style="{color: #900;orange:juice} +- :link {background: #ff0;orange:juice} +- :visited {background: #fff;orange:juice} +- :hover {outline: thin red solid;orange:juice} +- :active {background: #00f;orange:juice}"> ++9:<a style="\{q:r;orange:juice}"> ++10:<a style=" \{ s : t ;orange:juice} "> ++11:<a style="\{u:v;orange:juice}"> ++12:<a style=" \{ w : x ; orange:juice} "> ++ ++13:<a style="\{i5:j5;k5:l5;orange:juice}"> ++14:<a style=" \{ i6 : j6 ; k6 : l6 ;orange:juice} "> ++15:<a style="\{i7:j7;k7:l7;orange:juice}"> ++16:<a style=" \{ i8 : j8 ; k8 : l8 ; orange:juice} "> ++ ++17:<a style="s1\{y:z;orange:juice}"> ++18:<a style=" s1 \{ y2 : z2 ;orange:juice} "> ++19:<a style="s1\{y3:z3;orange:juice}"> ++20:<a style=" s1 \{ y4 : z4 ; orange:juice} "> ++ ++21:<a style="s1\{y5:z5;y6:z6;orange:juice}"> ++22:<a style=" s2 \{ y7 : z7 ; y8 : z8 ;orange:juice} "> ++23:<a style="s3\{y9:z9;y10:z11;orange:juice}"> ++24:<a style=" s4 \{ y12 : z12 ; y13 : z13 ; orange:juice} "> ++ ++25:<a style="s5\{aa:ab;orange:juice}s6\{ac:ad;orange:juice}"> ++26:<a style=" s7 \{ ae : af ;orange:juice} s8 \{ ag : ah ;orange:juice} "> ++27:<a style="s5\{ai:aj;orange:juice}s6\{ak:al;orange:juice}"> ++28:<a style=" s7 \{ am : an ;orange:juice} s8 \{ ao : ap ; orange:juice} "> ++ ++29:<a style="\{color: #900;orange:juice} :link \{background: #ff0;orange:juice} :visited \{background: #fff;orange:juice} :hover \{outline: thin red solid;orange:juice} :active \{background: #00f;orange:juice}"> ++30:<a style="\{color: #090; line-height: 1.2;orange:juice} ::first-letter \{color: #900;orange:juice}"> ++31:<a href="abccomscript" title="a" id="a1" style="\{color: #900;orange:juice} ++ :link \{background: #ff0;orange:juice} ++ :visited \{background: #fff;orange:juice} ++ :hover \{outline: thin red solid;orange:juice} ++ :active \{background: #00f;orange:juice}"> + <style><!--${CommentStartText} + +-selector1{ab:cd;orange:juice} +-selector2{ab:cccd;orange:juice} +-selector3{ab:cd;ef:gh;orange:juice} +-selector4{ab:cd;ef:gh;orange:juice} +-selector5{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/orange:juice} +- selector6 { ab : cd ;orange:juice} +- selector7 { ab : cd ; orange:juice} +- selector8 { ab : cd ; ef : gh ;orange:juice} +- selector9 { ab : cd ; ef : gh ; orange:juice} +- selector10 { ab : cd ; x : y ; /\*r : url\(http://a.com\) ;\*/orange:juice} +- ${CommentEndText}--></style>$}, "CSS callback - insert attribute"); ++selector1\{ab:cd;orange:juice} ++selector2\{ab:cccd;orange:juice} ++selector3\{ab:cd;ef:gh;orange:juice} ++selector4\{ab:cd;ef:gh;orange:juice} ++selector5\{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*//\*e:url\("http://b.com"\) ;\*/orange:juice} ++ selector6 \{ ab : cd ;orange:juice} ++ selector7 \{ ab : cd ; orange:juice} ++ selector8 \{ ab : cd ; ef : gh ;orange:juice} ++ selector9 \{ ab : cd ; ef : gh ; orange:juice} ++ selector10 \{ ab : cd ; x : y ; /\*r : url\(http://a.com\) ;\*/orange:juice} ++ ${CommentEndText}--></style>$], "CSS callback - insert attribute"); + + + $Defang = HTML::Defang->new( +@@ -1027,7 +1027,7 @@ selector5{ab:cd;x:y;p:q;r:url(http://a.com);e:url("http://b.com") ;} + </style> + EOF + $Res = $Defang->defang($H); +-like($Res, qr{^1:<a style=""> ++like($Res, qr[^1:<a style=""> + 2:<a style=" "> + 3:<a style=""> + 4:<a style=" "> +@@ -1037,51 +1037,51 @@ like($Res, qr{^1:<a style=""> + 7:<a style="i3:j3;"> + 8:<a style=" i4 : j4 ; "> + +-9:<a style="{}"> +-10:<a style=" {} "> +-11:<a style="{}"> +-12:<a style=" {} "> +- +-13:<a style="{i5:j5;}"> +-14:<a style=" { i6 : j6 ; } "> +-15:<a style="{i7:j7;}"> +-16:<a style=" { i8 : j8 ; } "> +- +-17:<a style="s1{}"> +-18:<a style=" s1 {} "> +-19:<a style="s1{}"> +-20:<a style=" s1 {} "> +- +-21:<a style="s1{y5:z5;}"> +-22:<a style=" s2 { y7 : z7 ; } "> +-23:<a style="s3{y9:z9;}"> +-24:<a style=" s4 { y12 : z12 ; } "> +- +-25:<a style="s5{}s6{}"> +-26:<a style=" s7 {} s8 {} "> +-27:<a style="s5{}s6{}"> +-28:<a style=" s7 {} s8 {} "> +- +-29:<a style="{} :link {} :visited {} :hover {} :active {}"> +-30:<a style="{color: #090; } ::first-letter {}"> +-31:<a href="abccomscript" title="a" id="a1" style="{} +- :link {} +- :visited {} +- :hover {} +- :active {}"> ++9:<a style="\{}"> ++10:<a style=" \{} "> ++11:<a style="\{}"> ++12:<a style=" \{} "> ++ ++13:<a style="\{i5:j5;}"> ++14:<a style=" \{ i6 : j6 ; } "> ++15:<a style="\{i7:j7;}"> ++16:<a style=" \{ i8 : j8 ; } "> ++ ++17:<a style="s1\{}"> ++18:<a style=" s1 \{} "> ++19:<a style="s1\{}"> ++20:<a style=" s1 \{} "> ++ ++21:<a style="s1\{y5:z5;}"> ++22:<a style=" s2 \{ y7 : z7 ; } "> ++23:<a style="s3\{y9:z9;}"> ++24:<a style=" s4 \{ y12 : z12 ; } "> ++ ++25:<a style="s5\{}s6\{}"> ++26:<a style=" s7 \{} s8 \{} "> ++27:<a style="s5\{}s6\{}"> ++28:<a style=" s7 \{} s8 \{} "> ++ ++29:<a style="\{} :link \{} :visited \{} :hover \{} :active \{}"> ++30:<a style="\{color: #090; } ::first-letter \{}"> ++31:<a href="abccomscript" title="a" id="a1" style="\{} ++ :link \{} ++ :visited \{} ++ :hover \{} ++ :active \{}"> + <style><!--${CommentStartText} + +-selector1{} +-selector2{} +-selector3{ab:cd;} +-selector4{ab:cd;} +-selector5{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*/} +- selector6 {} +- selector7 {} +- selector8 { ab : cd ; } +- selector9 { ab : cd ; } +- selector10 { ab : cd ; x : y ; } +- ${CommentEndText}--></style>$}, "CSS callback - remove attribute from style rule end"); ++selector1\{} ++selector2\{} ++selector3\{ab:cd;} ++selector4\{ab:cd;} ++selector5\{ab:cd;x:y;p:q;/\*r:url\(http://a.com\);\*/} ++ selector6 \{} ++ selector7 \{} ++ selector8 \{ ab : cd ; } ++ selector9 \{ ab : cd ; } ++ selector10 \{ ab : cd ; x : y ; } ++ ${CommentEndText}--></style>$], "CSS callback - remove attribute from style rule end"); + + $Defang = HTML::Defang->new( + css_callback => sub { +@@ -1102,7 +1102,7 @@ EOF + $Res = $Defang->defang($H); + like($Res, qr{1:<a STYLE="a:b;orange:juice">}, "Style callback attribute in upper case"); + like($Res, qr{2:<a STYLE="A:b;orange:juice">}, "Style callback attribute and style property in upper case"); +-like($Res, qr{3:<STYLE><!--${CommentStartText}A {WIDTH: 30;orange:juice}${CommentEndText}--></STYLE>}, "Style callback tag and style property in upper case"); ++like($Res, qr[3:<STYLE><!--${CommentStartText}A \{WIDTH: 30;orange:juice}${CommentEndText}--></STYLE>], "Style callback tag and style property in upper case"); + + ################################# + # Multiple callback test +diff --git a/t/06_unicode.t b/t/06_unicode.t +index d0a783e..e699ebb 100644 +--- a/t/06_unicode.t ++++ b/t/06_unicode.t +@@ -51,5 +51,5 @@ $Res = $Defang->defang($H); + ok(Encode::is_utf8($Res), "output2 is unicode"); + like($Res, qr{^<!--defang_p-->岡<!--/defang_p-->}, "defang2 preserves unicode"); + like($Res, qr{^<!--defang_a defang_href="http://blah\.com/ø" defang_class="û"-->non-english href<!--/defang_a-->}m, "defang2 preserves unicode2"); +-like($Res, qr(^<style><!--a { /\*color:redû;\*/ }--></style>)m, "style unicode correct"); ++like($Res, qr(^<style><!--a \{ /\*color:redû;\*/ }--></style>)m, "style unicode correct"); + +-- +2.6.4 + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..05876be --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +0001-Fix-regexp-syntax-for-Perl-5.22.patch +0002-Fix-test-script-regexp-syntax-for-Perl-5.22.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libhtml-defang-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits