File: tidy-not-tidyp.patch

package info (click to toggle)
libhtml-tidy-perl 1.60-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 472 kB
  • sloc: perl: 1,289; sh: 23; makefile: 7
file content (104 lines) | stat: -rw-r--r-- 2,858 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
From: Simon McVittie <smcv@debian.org>
Date: Fri, 22 Jul 2016 10:33:50 +0100
Subject: Look for tidy if tidyp is not found

tidy-html5 is an actively-maintained, HTML5-supporting variant of
the tidy library from which tidyp was forked.

Based on Debian-specific patches by Florian Schlichting and
gregor herrmann, which unconditionally switched from tidyp to tidy.
---
 Makefile.PL      |  6 ++++++
 Tidy.xs          | 15 +++++++++++++--
 lib/HTML/Tidy.pm |  7 +++++++
 t/version.t      |  2 +-
 4 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/Makefile.PL b/Makefile.PL
index 1bca2ef..e3f64a0 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -25,6 +25,12 @@ else {
     $libs = $vars[2];
 
     if ( !$libs ) {
+        @vars = ExtUtils::Liblist->ext( '-L/usr/lib -L/usr/local/lib -ltidy', 0, 1 );
+        $libs = $vars[2];
+        $inc = "-I. -I/usr/include/tidy -I/usr/local/include/tidy -I$Config{usrinc}/tidy -DWITH_TIDY";
+    }
+
+    if ( !$libs ) {
         $libs = '-ltidyp';
         print <<'EOF';
 
diff --git a/Tidy.xs b/Tidy.xs
index 2238b0b..0b86116 100644
--- a/Tidy.xs
+++ b/Tidy.xs
@@ -2,8 +2,14 @@
 #include "perl.h"
 #include "XSUB.h"
 
-#include <tidyp.h>
-#include <buffio.h>
+#ifdef WITH_TIDY
+# include <tidy.h>
+# include <tidybuffio.h>
+#else
+# include <tidyp.h>
+# include <buffio.h>
+#endif
+
 #include <stdio.h>
 #include <errno.h>
 
@@ -196,7 +202,12 @@ _tidyp_version()
     PREINIT:
         const char* version;
     CODE:
+#ifdef WITH_TIDY
+        /* tidy-html5 is required */
+        version = tidyLibraryVersion();
+#else
         version = tidyVersion();
+#endif
         RETVAL = newSVpv(version,0); /* will be automatically "mortalized" */
     OUTPUT:
         RETVAL
diff --git a/lib/HTML/Tidy.pm b/lib/HTML/Tidy.pm
index 32a5005..e19a33d 100644
--- a/lib/HTML/Tidy.pm
+++ b/lib/HTML/Tidy.pm
@@ -4,6 +4,7 @@ use 5.008;
 use strict;
 use warnings;
 use Carp ();
+use version 0.77 ();
 
 use HTML::Tidy::Message;
 
@@ -355,6 +356,12 @@ sub libtidyp_version { return shift->tidyp_version }
 sub tidyp_version {
     my $version_str = _tidyp_version();
 
+    # Convert tidy-html5 versions to the 5.002001 form so they work
+    # with naive numeric comparison
+    if ($version_str !~ m/^0\./) {
+        $version_str = version->parse("v$version_str")->numify;
+    }
+
     return $version_str;
 }
 
diff --git a/t/version.t b/t/version.t
index f225e3e..c2528cd 100644
--- a/t/version.t
+++ b/t/version.t
@@ -8,6 +8,6 @@ use Test::More tests => 4;
 use HTML::Tidy;
 
 for my $version_string (HTML::Tidy->tidyp_version, HTML::Tidy->libtidyp_version) {
-    like( $version_string, qr/^\d\.\d{2,}$/, 'Valid version string' );
+    like( $version_string, qr/^\d\.\d+$/, 'Valid version string' );
     cmp_ok( $version_string, '>=', '0.90', 'Version is greater than 0.90, which is the one I maintain' );
 }