line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
2
|
|
|
|
|
|
|
# File: HTML.pm |
3
|
|
|
|
|
|
|
# |
4
|
|
|
|
|
|
|
# Description: Read HTML meta information |
5
|
|
|
|
|
|
|
# |
6
|
|
|
|
|
|
|
# Revisions: 01/30/2007 - P. Harvey Created |
7
|
|
|
|
|
|
|
# |
8
|
|
|
|
|
|
|
# References: 1) http://www.w3.org/TR/html4/ |
9
|
|
|
|
|
|
|
# 2) http://www.daisy.org/publications/specifications/daisy_202.html |
10
|
|
|
|
|
|
|
# 3) http://vancouver-webpages.com/META/metatags.detail.html |
11
|
|
|
|
|
|
|
# 4) http://www.html-reference.com/META.htm |
12
|
|
|
|
|
|
|
#------------------------------------------------------------------------------ |
13
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
package Image::ExifTool::HTML; |
15
|
|
|
|
|
|
|
|
16
|
4
|
|
|
4
|
|
4813
|
use strict; |
|
4
|
|
|
|
|
15
|
|
|
4
|
|
|
|
|
157
|
|
17
|
4
|
|
|
4
|
|
20
|
use vars qw($VERSION @ISA @EXPORT_OK); |
|
4
|
|
|
|
|
13
|
|
|
4
|
|
|
|
|
257
|
|
18
|
4
|
|
|
4
|
|
24
|
use Image::ExifTool qw(:DataAccess :Utils); |
|
4
|
|
|
|
|
9
|
|
|
4
|
|
|
|
|
1006
|
|
19
|
4
|
|
|
4
|
|
1106
|
use Image::ExifTool::PostScript; |
|
4
|
|
|
|
|
10
|
|
|
4
|
|
|
|
|
170
|
|
20
|
4
|
|
|
4
|
|
2143
|
use Image::ExifTool::XMP qw(EscapeXML UnescapeXML); |
|
4
|
|
|
|
|
72
|
|
|
4
|
|
|
|
|
13072
|
|
21
|
|
|
|
|
|
|
require Exporter; |
22
|
|
|
|
|
|
|
|
23
|
|
|
|
|
|
|
$VERSION = '1.16'; |
24
|
|
|
|
|
|
|
@ISA = qw(Exporter); |
25
|
|
|
|
|
|
|
@EXPORT_OK = qw(EscapeHTML UnescapeHTML); |
26
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
sub SetHTMLCharset($$); |
28
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
# convert HTML charset (lower case) to ExifTool Charset name |
30
|
|
|
|
|
|
|
my %htmlCharset = ( |
31
|
|
|
|
|
|
|
macintosh => 'MacRoman', |
32
|
|
|
|
|
|
|
'iso-8859-1' => 'Latin', |
33
|
|
|
|
|
|
|
'utf-8' => 'UTF8', |
34
|
|
|
|
|
|
|
'windows-1252' => 'Latin', |
35
|
|
|
|
|
|
|
); |
36
|
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
# HTML 4 character entity references |
38
|
|
|
|
|
|
|
my %entityNum = ( |
39
|
|
|
|
|
|
|
'quot' => 34, 'eth' => 240, 'lsquo' => 8216, |
40
|
|
|
|
|
|
|
'amp' => 38, 'ntilde' => 241, 'rsquo' => 8217, |
41
|
|
|
|
|
|
|
'apos' => 39, 'ograve' => 242, 'sbquo' => 8218, |
42
|
|
|
|
|
|
|
'lt' => 60, 'oacute' => 243, 'ldquo' => 8220, |
43
|
|
|
|
|
|
|
'gt' => 62, 'ocirc' => 244, 'rdquo' => 8221, |
44
|
|
|
|
|
|
|
'nbsp' => 160, 'otilde' => 245, 'bdquo' => 8222, |
45
|
|
|
|
|
|
|
'iexcl' => 161, 'ouml' => 246, 'dagger' => 8224, |
46
|
|
|
|
|
|
|
'cent' => 162, 'divide' => 247, 'Dagger' => 8225, |
47
|
|
|
|
|
|
|
'pound' => 163, 'oslash' => 248, 'bull' => 8226, |
48
|
|
|
|
|
|
|
'curren' => 164, 'ugrave' => 249, 'hellip' => 8230, |
49
|
|
|
|
|
|
|
'yen' => 165, 'uacute' => 250, 'permil' => 8240, |
50
|
|
|
|
|
|
|
'brvbar' => 166, 'ucirc' => 251, 'prime' => 8242, |
51
|
|
|
|
|
|
|
'sect' => 167, 'uuml' => 252, 'Prime' => 8243, |
52
|
|
|
|
|
|
|
'uml' => 168, 'yacute' => 253, 'lsaquo' => 8249, |
53
|
|
|
|
|
|
|
'copy' => 169, 'thorn' => 254, 'rsaquo' => 8250, |
54
|
|
|
|
|
|
|
'ordf' => 170, 'yuml' => 255, 'oline' => 8254, |
55
|
|
|
|
|
|
|
'laquo' => 171, 'OElig' => 338, 'frasl' => 8260, |
56
|
|
|
|
|
|
|
'not' => 172, 'oelig' => 339, 'euro' => 8364, |
57
|
|
|
|
|
|
|
'shy' => 173, 'Scaron' => 352, 'image' => 8465, |
58
|
|
|
|
|
|
|
'reg' => 174, 'scaron' => 353, 'weierp' => 8472, |
59
|
|
|
|
|
|
|
'macr' => 175, 'Yuml' => 376, 'real' => 8476, |
60
|
|
|
|
|
|
|
'deg' => 176, 'fnof' => 402, 'trade' => 8482, |
61
|
|
|
|
|
|
|
'plusmn' => 177, 'circ' => 710, 'alefsym'=> 8501, |
62
|
|
|
|
|
|
|
'sup2' => 178, 'tilde' => 732, 'larr' => 8592, |
63
|
|
|
|
|
|
|
'sup3' => 179, 'Alpha' => 913, 'uarr' => 8593, |
64
|
|
|
|
|
|
|
'acute' => 180, 'Beta' => 914, 'rarr' => 8594, |
65
|
|
|
|
|
|
|
'micro' => 181, 'Gamma' => 915, 'darr' => 8595, |
66
|
|
|
|
|
|
|
'para' => 182, 'Delta' => 916, 'harr' => 8596, |
67
|
|
|
|
|
|
|
'middot' => 183, 'Epsilon'=> 917, 'crarr' => 8629, |
68
|
|
|
|
|
|
|
'cedil' => 184, 'Zeta' => 918, 'lArr' => 8656, |
69
|
|
|
|
|
|
|
'sup1' => 185, 'Eta' => 919, 'uArr' => 8657, |
70
|
|
|
|
|
|
|
'ordm' => 186, 'Theta' => 920, 'rArr' => 8658, |
71
|
|
|
|
|
|
|
'raquo' => 187, 'Iota' => 921, 'dArr' => 8659, |
72
|
|
|
|
|
|
|
'frac14' => 188, 'Kappa' => 922, 'hArr' => 8660, |
73
|
|
|
|
|
|
|
'frac12' => 189, 'Lambda' => 923, 'forall' => 8704, |
74
|
|
|
|
|
|
|
'frac34' => 190, 'Mu' => 924, 'part' => 8706, |
75
|
|
|
|
|
|
|
'iquest' => 191, 'Nu' => 925, 'exist' => 8707, |
76
|
|
|
|
|
|
|
'Agrave' => 192, 'Xi' => 926, 'empty' => 8709, |
77
|
|
|
|
|
|
|
'Aacute' => 193, 'Omicron'=> 927, 'nabla' => 8711, |
78
|
|
|
|
|
|
|
'Acirc' => 194, 'Pi' => 928, 'isin' => 8712, |
79
|
|
|
|
|
|
|
'Atilde' => 195, 'Rho' => 929, 'notin' => 8713, |
80
|
|
|
|
|
|
|
'Auml' => 196, 'Sigma' => 931, 'ni' => 8715, |
81
|
|
|
|
|
|
|
'Aring' => 197, 'Tau' => 932, 'prod' => 8719, |
82
|
|
|
|
|
|
|
'AElig' => 198, 'Upsilon'=> 933, 'sum' => 8721, |
83
|
|
|
|
|
|
|
'Ccedil' => 199, 'Phi' => 934, 'minus' => 8722, |
84
|
|
|
|
|
|
|
'Egrave' => 200, 'Chi' => 935, 'lowast' => 8727, |
85
|
|
|
|
|
|
|
'Eacute' => 201, 'Psi' => 936, 'radic' => 8730, |
86
|
|
|
|
|
|
|
'Ecirc' => 202, 'Omega' => 937, 'prop' => 8733, |
87
|
|
|
|
|
|
|
'Euml' => 203, 'alpha' => 945, 'infin' => 8734, |
88
|
|
|
|
|
|
|
'Igrave' => 204, 'beta' => 946, 'ang' => 8736, |
89
|
|
|
|
|
|
|
'Iacute' => 205, 'gamma' => 947, 'and' => 8743, |
90
|
|
|
|
|
|
|
'Icirc' => 206, 'delta' => 948, 'or' => 8744, |
91
|
|
|
|
|
|
|
'Iuml' => 207, 'epsilon'=> 949, 'cap' => 8745, |
92
|
|
|
|
|
|
|
'ETH' => 208, 'zeta' => 950, 'cup' => 8746, |
93
|
|
|
|
|
|
|
'Ntilde' => 209, 'eta' => 951, 'int' => 8747, |
94
|
|
|
|
|
|
|
'Ograve' => 210, 'theta' => 952, 'there4' => 8756, |
95
|
|
|
|
|
|
|
'Oacute' => 211, 'iota' => 953, 'sim' => 8764, |
96
|
|
|
|
|
|
|
'Ocirc' => 212, 'kappa' => 954, 'cong' => 8773, |
97
|
|
|
|
|
|
|
'Otilde' => 213, 'lambda' => 955, 'asymp' => 8776, |
98
|
|
|
|
|
|
|
'Ouml' => 214, 'mu' => 956, 'ne' => 8800, |
99
|
|
|
|
|
|
|
'times' => 215, 'nu' => 957, 'equiv' => 8801, |
100
|
|
|
|
|
|
|
'Oslash' => 216, 'xi' => 958, 'le' => 8804, |
101
|
|
|
|
|
|
|
'Ugrave' => 217, 'omicron'=> 959, 'ge' => 8805, |
102
|
|
|
|
|
|
|
'Uacute' => 218, 'pi' => 960, 'sub' => 8834, |
103
|
|
|
|
|
|
|
'Ucirc' => 219, 'rho' => 961, 'sup' => 8835, |
104
|
|
|
|
|
|
|
'Uuml' => 220, 'sigmaf' => 962, 'nsub' => 8836, |
105
|
|
|
|
|
|
|
'Yacute' => 221, 'sigma' => 963, 'sube' => 8838, |
106
|
|
|
|
|
|
|
'THORN' => 222, 'tau' => 964, 'supe' => 8839, |
107
|
|
|
|
|
|
|
'szlig' => 223, 'upsilon'=> 965, 'oplus' => 8853, |
108
|
|
|
|
|
|
|
'agrave' => 224, 'phi' => 966, 'otimes' => 8855, |
109
|
|
|
|
|
|
|
'aacute' => 225, 'chi' => 967, 'perp' => 8869, |
110
|
|
|
|
|
|
|
'acirc' => 226, 'psi' => 968, 'sdot' => 8901, |
111
|
|
|
|
|
|
|
'atilde' => 227, 'omega' => 969, 'lceil' => 8968, |
112
|
|
|
|
|
|
|
'auml' => 228, 'thetasym'=>977, 'rceil' => 8969, |
113
|
|
|
|
|
|
|
'aring' => 229, 'upsih' => 978, 'lfloor' => 8970, |
114
|
|
|
|
|
|
|
'aelig' => 230, 'piv' => 982, 'rfloor' => 8971, |
115
|
|
|
|
|
|
|
'ccedil' => 231, 'ensp' => 8194, 'lang' => 9001, |
116
|
|
|
|
|
|
|
'egrave' => 232, 'emsp' => 8195, 'rang' => 9002, |
117
|
|
|
|
|
|
|
'eacute' => 233, 'thinsp' => 8201, 'loz' => 9674, |
118
|
|
|
|
|
|
|
'ecirc' => 234, 'zwnj' => 8204, 'spades' => 9824, |
119
|
|
|
|
|
|
|
'euml' => 235, 'zwj' => 8205, 'clubs' => 9827, |
120
|
|
|
|
|
|
|
'igrave' => 236, 'lrm' => 8206, 'hearts' => 9829, |
121
|
|
|
|
|
|
|
'iacute' => 237, 'rlm' => 8207, 'diams' => 9830, |
122
|
|
|
|
|
|
|
'icirc' => 238, 'ndash' => 8211, |
123
|
|
|
|
|
|
|
'iuml' => 239, 'mdash' => 8212, |
124
|
|
|
|
|
|
|
); |
125
|
|
|
|
|
|
|
my %entityName; # look up entity names by number (built as necessary) |
126
|
|
|
|
|
|
|
|
127
|
|
|
|
|
|
|
# HTML info |
128
|
|
|
|
|
|
|
# (tag ID's are case insensitive and must be all lower case in tables) |
129
|
|
|
|
|
|
|
%Image::ExifTool::HTML::Main = ( |
130
|
|
|
|
|
|
|
GROUPS => { 2 => 'Document' }, |
131
|
|
|
|
|
|
|
NOTES => q{ |
132
|
|
|
|
|
|
|
Meta information extracted from the header of HTML and XHTML files. This is |
133
|
|
|
|
|
|
|
a mix of information found in the C elements, C element, and the |
134
|
|
|
|
|
|
|
C element. </td>
</tr>
<tr>
<td class="h" >
<a name="135">135</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="136">136</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> dc => { </td>
</tr>
<tr>
<td class="h" >
<a name="137">137</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'DC', </td>
</tr>
<tr>
<td class="h" >
<a name="138">138</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::dc' }, </td>
</tr>
<tr>
<td class="h" >
<a name="139">139</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="140">140</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ncc => { </td>
</tr>
<tr>
<td class="h" >
<a name="141">141</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'NCC', </td>
</tr>
<tr>
<td class="h" >
<a name="142">142</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::ncc' }, </td>
</tr>
<tr>
<td class="h" >
<a name="143">143</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="144">144</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> prod => { </td>
</tr>
<tr>
<td class="h" >
<a name="145">145</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'Prod', </td>
</tr>
<tr>
<td class="h" >
<a name="146">146</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::prod' }, </td>
</tr>
<tr>
<td class="h" >
<a name="147">147</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="148">148</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> vw96 => { </td>
</tr>
<tr>
<td class="h" >
<a name="149">149</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'VW96', </td>
</tr>
<tr>
<td class="h" >
<a name="150">150</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::vw96' }, </td>
</tr>
<tr>
<td class="h" >
<a name="151">151</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="152">152</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'http-equiv' => { </td>
</tr>
<tr>
<td class="h" >
<a name="153">153</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'HTTP-equiv', </td>
</tr>
<tr>
<td class="h" >
<a name="154">154</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::equiv' }, </td>
</tr>
<tr>
<td class="h" >
<a name="155">155</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="156">156</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> o => { </td>
</tr>
<tr>
<td class="h" >
<a name="157">157</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'Office', </td>
</tr>
<tr>
<td class="h" >
<a name="158">158</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> SubDirectory => { TagTable => 'Image::ExifTool::HTML::Office' }, </td>
</tr>
<tr>
<td class="h" >
<a name="159">159</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="160">160</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> abstract => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="161">161</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> author => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="162">162</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> classification => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="163">163</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-language'=>{ Name => 'ContentLanguage' }, </td>
</tr>
<tr>
<td class="h" >
<a name="164">164</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> copyright => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="165">165</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> description => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="166">166</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> distribution => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="167">167</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'doc-class' => { Name => 'DocClass' }, </td>
</tr>
<tr>
<td class="h" >
<a name="168">168</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'doc-rights' => { Name => 'DocRights' }, </td>
</tr>
<tr>
<td class="h" >
<a name="169">169</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'doc-type' => { Name => 'DocType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="170">170</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> formatter => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="171">171</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> generator => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="172">172</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> generatorversion=> { Name => 'GeneratorVersion' }, </td>
</tr>
<tr>
<td class="h" >
<a name="173">173</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> googlebot => { Name => 'GoogleBot' }, </td>
</tr>
<tr>
<td class="h" >
<a name="174">174</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> keywords => { List => 1 }, </td>
</tr>
<tr>
<td class="h" >
<a name="175">175</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> mssmarttagspreventparsing => { Name => 'NoMSSmartTags' }, </td>
</tr>
<tr>
<td class="h" >
<a name="176">176</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> originator => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="177">177</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> owner => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="178">178</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> progid => { Name => 'ProgID' }, </td>
</tr>
<tr>
<td class="h" >
<a name="179">179</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> rating => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="180">180</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> refresh => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="181">181</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'resource-type' => { Name => 'ResourceType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="182">182</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'revisit-after' => { Name => 'RevisitAfter' }, </td>
</tr>
<tr>
<td class="h" >
<a name="183">183</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> robots => { List => 1 }, </td>
</tr>
<tr>
<td class="h" >
<a name="184">184</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> title => { Notes => "the only extracted tag which isn't from an HTML META element" }, </td>
</tr>
<tr>
<td class="h" >
<a name="185">185</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="186">186</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="187">187</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # ref 2 </td>
</tr>
<tr>
<td class="h" >
<a name="188">188</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::dc = ( </td>
</tr>
<tr>
<td class="h" >
<a name="189">189</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTML-dc', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="190">190</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> NOTES => 'Dublin Core schema tags (also used in XMP).', </td>
</tr>
<tr>
<td class="h" >
<a name="191">191</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> contributor => { Groups => { 2 => 'Author' }, List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="192">192</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> coverage => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="193">193</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> creator => { Groups => { 2 => 'Author' }, List => 'Seq' }, </td>
</tr>
<tr>
<td class="h" >
<a name="194">194</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> date => { </td>
</tr>
<tr>
<td class="h" >
<a name="195">195</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Groups => { 2 => 'Time' }, </td>
</tr>
<tr>
<td class="h" >
<a name="196">196</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> List => 'Seq', </td>
</tr>
<tr>
<td class="h" >
<a name="197">197</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> PrintConv => '$self->ConvertDateTime($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="198">198</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="199">199</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> description => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="200">200</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'format' => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="201">201</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> identifier => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="202">202</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> language => { List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="203">203</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> publisher => { Groups => { 2 => 'Author' }, List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="204">204</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> relation => { List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="205">205</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> rights => { Groups => { 2 => 'Author' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="206">206</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> source => { Groups => { 2 => 'Author' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="207">207</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> subject => { List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="208">208</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> title => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="209">209</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> type => { List => 'Bag' }, </td>
</tr>
<tr>
<td class="h" >
<a name="210">210</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="211">211</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="212">212</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # ref 2 </td>
</tr>
<tr>
<td class="h" >
<a name="213">213</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::ncc = ( </td>
</tr>
<tr>
<td class="h" >
<a name="214">214</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTML-ncc', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="215">215</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> charset => { Name => 'CharacterSet' }, # name changed to avoid conflict with -charset option </td>
</tr>
<tr>
<td class="h" >
<a name="216">216</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> depth => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="217">217</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> files => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="218">218</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> footnotes => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="219">219</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> generator => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="220">220</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> kbytesize => { Name => 'KByteSize' }, </td>
</tr>
<tr>
<td class="h" >
<a name="221">221</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> maxpagenormal => { Name => 'MaxPageNormal' }, </td>
</tr>
<tr>
<td class="h" >
<a name="222">222</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> multimediatype => { Name => 'MultimediaType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="223">223</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> narrator => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="224">224</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> pagefront => { Name => 'PageFront' }, </td>
</tr>
<tr>
<td class="h" >
<a name="225">225</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> pagenormal => { Name => 'PageNormal' }, </td>
</tr>
<tr>
<td class="h" >
<a name="226">226</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> pagespecial => { Name => 'PageSpecial' }, </td>
</tr>
<tr>
<td class="h" >
<a name="227">227</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> prodnotes => { Name => 'ProdNotes' }, </td>
</tr>
<tr>
<td class="h" >
<a name="228">228</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> producer => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="229">229</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> produceddate => { Name => 'ProducedDate', Groups => { 2 => 'Time' } }, # YYYY-mm-dd </td>
</tr>
<tr>
<td class="h" >
<a name="230">230</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> revision => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="231">231</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> revisiondate => { Name => 'RevisionDate', Groups => { 2 => 'Time' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="232">232</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> setinfo => { Name => 'SetInfo' }, </td>
</tr>
<tr>
<td class="h" >
<a name="233">233</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sidebars => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="234">234</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sourcedate => { Name => 'SourceDate', Groups => { 2 => 'Time' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="235">235</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sourceedition => { Name => 'SourceEdition' }, </td>
</tr>
<tr>
<td class="h" >
<a name="236">236</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sourcepublisher => { Name => 'SourcePublisher' }, </td>
</tr>
<tr>
<td class="h" >
<a name="237">237</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sourcerights => { Name => 'SourceRights' }, </td>
</tr>
<tr>
<td class="h" >
<a name="238">238</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sourcetitle => { Name => 'SourceTitle' }, </td>
</tr>
<tr>
<td class="h" >
<a name="239">239</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> tocitems => { Name => 'TOCItems' }, </td>
</tr>
<tr>
<td class="h" >
<a name="240">240</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> totaltime => { Name => 'Duration' }, # HH:MM:SS </td>
</tr>
<tr>
<td class="h" >
<a name="241">241</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="242">242</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="243">243</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # ref 3 </td>
</tr>
<tr>
<td class="h" >
<a name="244">244</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::vw96 = ( </td>
</tr>
<tr>
<td class="h" >
<a name="245">245</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTML-vw96', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="246">246</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> objecttype => { Name => 'ObjectType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="247">247</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="248">248</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="249">249</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # ref 2 </td>
</tr>
<tr>
<td class="h" >
<a name="250">250</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::prod = ( </td>
</tr>
<tr>
<td class="h" >
<a name="251">251</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTML-prod', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="252">252</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> reclocation => { Name => 'RecLocation' }, </td>
</tr>
<tr>
<td class="h" >
<a name="253">253</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> recengineer => { Name => 'RecEngineer' }, </td>
</tr>
<tr>
<td class="h" >
<a name="254">254</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="255">255</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="256">256</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # ref 3/4 </td>
</tr>
<tr>
<td class="h" >
<a name="257">257</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::equiv = ( </td>
</tr>
<tr>
<td class="h" >
<a name="258">258</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTTP-equiv', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="259">259</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> NOTES => 'These tags have a family 1 group name of "HTTP-equiv".', </td>
</tr>
<tr>
<td class="h" >
<a name="260">260</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'cache-control' => { Name => 'CacheControl' }, </td>
</tr>
<tr>
<td class="h" >
<a name="261">261</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-disposition' => { Name => 'ContentDisposition' }, </td>
</tr>
<tr>
<td class="h" >
<a name="262">262</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-language' => { Name => 'ContentLanguage' }, </td>
</tr>
<tr>
<td class="h" >
<a name="263">263</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-script-type' => { Name => 'ContentScriptType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="264">264</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-style-type' => { Name => 'ContentStyleType' }, </td>
</tr>
<tr>
<td class="h" >
<a name="265">265</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # note: setting the HTMLCharset like this will miss any tags which come earlier </td>
</tr>
<tr>
<td class="h" >
<a name="266">266</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'content-type' => { Name => 'ContentType', RawConv => \&SetHTMLCharset }, </td>
</tr>
<tr>
<td class="h" >
<a name="267">267</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'default-style' => { Name => 'DefaultStyle' }, </td>
</tr>
<tr>
<td class="h" >
<a name="268">268</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> expires => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="269">269</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'ext-cache' => { Name => 'ExtCache' }, </td>
</tr>
<tr>
<td class="h" >
<a name="270">270</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> imagetoolbar => { Name => 'ImageToolbar' }, </td>
</tr>
<tr>
<td class="h" >
<a name="271">271</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> lotus => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="272">272</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'page-enter' => { Name => 'PageEnter' }, </td>
</tr>
<tr>
<td class="h" >
<a name="273">273</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'page-exit' => { Name => 'PageExit' }, </td>
</tr>
<tr>
<td class="h" >
<a name="274">274</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'pics-label' => { Name => 'PicsLabel' }, </td>
</tr>
<tr>
<td class="h" >
<a name="275">275</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> pragma => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="276">276</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> refresh => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="277">277</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'reply-to' => { Name => 'ReplyTo' }, </td>
</tr>
<tr>
<td class="h" >
<a name="278">278</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'set-cookie' => { Name => 'SetCookie' }, </td>
</tr>
<tr>
<td class="h" >
<a name="279">279</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'site-enter' => { Name => 'SiteEnter' }, </td>
</tr>
<tr>
<td class="h" >
<a name="280">280</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'site-exit' => { Name => 'SiteExit' }, </td>
</tr>
<tr>
<td class="h" >
<a name="281">281</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> vary => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="282">282</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 'window-target' => { Name => 'WindowTarget' }, </td>
</tr>
<tr>
<td class="h" >
<a name="283">283</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="284">284</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="285">285</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # MS Office namespace (ref PH) </td>
</tr>
<tr>
<td class="h" >
<a name="286">286</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> %Image::ExifTool::HTML::Office = ( </td>
</tr>
<tr>
<td class="h" >
<a name="287">287</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> GROUPS => { 1 => 'HTML-office', 2 => 'Document' }, </td>
</tr>
<tr>
<td class="h" >
<a name="288">288</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> NOTES => 'Tags written by Microsoft Office applications.', </td>
</tr>
<tr>
<td class="h" >
<a name="289">289</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Subject => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="290">290</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Author => { Groups => { 2 => 'Author' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="291">291</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Keywords => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="292">292</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Description => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="293">293</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Template => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="294">294</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> LastAuthor => { Groups => { 2 => 'Author' } }, </td>
</tr>
<tr>
<td class="h" >
<a name="295">295</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Revision => { Name => 'RevisionNumber' }, </td>
</tr>
<tr>
<td class="h" >
<a name="296">296</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> TotalTime => { Name => 'TotalEditTime', PrintConv => 'ConvertTimeSpan($val, 60)' }, </td>
</tr>
<tr>
<td class="h" >
<a name="297">297</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Created => { </td>
</tr>
<tr>
<td class="h" >
<a name="298">298</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'CreateDate', </td>
</tr>
<tr>
<td class="h" >
<a name="299">299</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Groups => { 2 => 'Time' }, </td>
</tr>
<tr>
<td class="h" >
<a name="300">300</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ValueConv => 'Image::ExifTool::XMP::ConvertXMPDate($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="301">301</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> PrintConv => '$self->ConvertDateTime($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="302">302</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="303">303</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> LastSaved => { </td>
</tr>
<tr>
<td class="h" >
<a name="304">304</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'ModifyDate', </td>
</tr>
<tr>
<td class="h" >
<a name="305">305</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Groups => { 2 => 'Time' }, </td>
</tr>
<tr>
<td class="h" >
<a name="306">306</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ValueConv => 'Image::ExifTool::XMP::ConvertXMPDate($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="307">307</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> PrintConv => '$self->ConvertDateTime($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="308">308</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="309">309</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> LastSaved => { </td>
</tr>
<tr>
<td class="h" >
<a name="310">310</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'ModifyDate', </td>
</tr>
<tr>
<td class="h" >
<a name="311">311</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Groups => { 2 => 'Time' }, </td>
</tr>
<tr>
<td class="h" >
<a name="312">312</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ValueConv => 'Image::ExifTool::XMP::ConvertXMPDate($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="313">313</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> PrintConv => '$self->ConvertDateTime($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="314">314</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="315">315</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> LastPrinted => { </td>
</tr>
<tr>
<td class="h" >
<a name="316">316</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Name => 'LastPrinted', </td>
</tr>
<tr>
<td class="h" >
<a name="317">317</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Groups => { 2 => 'Time' }, </td>
</tr>
<tr>
<td class="h" >
<a name="318">318</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ValueConv => 'Image::ExifTool::XMP::ConvertXMPDate($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="319">319</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> PrintConv => '$self->ConvertDateTime($val)', </td>
</tr>
<tr>
<td class="h" >
<a name="320">320</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> }, </td>
</tr>
<tr>
<td class="h" >
<a name="321">321</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Pages => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="322">322</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Words => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="323">323</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Characters => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="324">324</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Category => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="325">325</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Manager => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="326">326</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Company => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="327">327</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Lines => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="328">328</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Paragraphs => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="329">329</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> CharactersWithSpaces => { }, </td>
</tr>
<tr>
<td class="h" >
<a name="330">330</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> Version => { Name => 'RevisionNumber' }, </td>
</tr>
<tr>
<td class="h" >
<a name="331">331</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> ); </td>
</tr>
<tr>
<td class="h" >
<a name="332">332</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="333">333</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> #------------------------------------------------------------------------------ </td>
</tr>
<tr>
<td class="h" >
<a name="334">334</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Set HTMLCharset member based on content type </td>
</tr>
<tr>
<td class="h" >
<a name="335">335</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Inputs: 0) content type string, 1) ExifTool ref </td>
</tr>
<tr>
<td class="h" >
<a name="336">336</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Returns: original string </td>
</tr>
<tr>
<td class="h" >
<a name="337">337</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sub SetHTMLCharset($$) </td>
</tr>
<tr>
<td class="h" >
<a name="338">338</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="339">339</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#339-1">
1
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#339-1">
0
</a>
</td>
<td >
3
</td>
<td class="s"> my ($val, $et) = @_; </td>
</tr>
<tr>
<td class="h" >
<a name="340">340</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#340-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
12
</td>
<td class="s"> $$et{HTMLCharset} = $htmlCharset{lc $1} if $val =~ /charset=['"]?([-\w]+)/; </td>
</tr>
<tr>
<td class="h" >
<a name="341">341</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> return $val; </td>
</tr>
<tr>
<td class="h" >
<a name="342">342</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="343">343</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="344">344</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> #------------------------------------------------------------------------------ </td>
</tr>
<tr>
<td class="h" >
<a name="345">345</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Convert single UTF-8 character to HTML character reference </td>
</tr>
<tr>
<td class="h" >
<a name="346">346</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Inputs: 0) UTF-8 character sequence </td>
</tr>
<tr>
<td class="h" >
<a name="347">347</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Returns: HTML character reference (eg. """); </td>
</tr>
<tr>
<td class="h" >
<a name="348">348</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Note: Must be called via EscapeHTML to load name lookup </td>
</tr>
<tr>
<td class="h" >
<a name="349">349</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sub EscapeChar($) </td>
</tr>
<tr>
<td class="h" >
<a name="350">350</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="351">351</a>
</td>
<td class="c3" >
157
</td>
<td >
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#351-1">
157
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#351-1">
0
</a>
</td>
<td >
280
</td>
<td class="s"> my $ch = shift; </td>
</tr>
<tr>
<td class="h" >
<a name="352">352</a>
</td>
<td class="c3" >
157
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
513
</td>
<td class="s"> my $val; </td>
</tr>
<tr>
<td class="h" >
<a name="353">353</a>
</td>
<td class="c3" >
157
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#353-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
276
</td>
<td class="s"> if ($] < 5.006001) { </td>
</tr>
<tr>
<td class="h" >
<a name="354">354</a>
</td>
<td class="c0" >
<a href="# ">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> ($val) = Image::ExifTool::UnpackUTF8($ch); </td>
</tr>
<tr>
<td class="h" >
<a name="355">355</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="356">356</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # the meaning of "U0" is reversed as of Perl 5.10.0! </td>
</tr>
<tr>
<td class="h" >
<a name="357">357</a>
</td>
<td class="c3" >
157
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#357-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
385
</td>
<td class="s"> ($val) = unpack($] < 5.010000 ? 'U0U' : 'C0U', $ch); </td>
</tr>
<tr>
<td class="h" >
<a name="358">358</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="359">359</a>
</td>
<td class="c3" >
157
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#359-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
339
</td>
<td class="s"> return '?' unless defined $val; </td>
</tr>
<tr>
<td class="h" >
<a name="360">360</a>
</td>
<td class="c3" >
157
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#360-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
484
</td>
<td class="s"> return "&$entityName{$val};" if $entityName{$val}; </td>
</tr>
<tr>
<td class="h" >
<a name="361">361</a>
</td>
<td class="c3" >
112
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
433
</td>
<td class="s"> return sprintf('&#x%x;',$val); </td>
</tr>
<tr>
<td class="h" >
<a name="362">362</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="363">363</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="364">364</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> #------------------------------------------------------------------------------ </td>
</tr>
<tr>
<td class="h" >
<a name="365">365</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Escape any special characters for HTML </td>
</tr>
<tr>
<td class="h" >
<a name="366">366</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Inputs: 0) string to be escaped, 1) optional string encoding (default 'UTF8') </td>
</tr>
<tr>
<td class="h" >
<a name="367">367</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Returns: escaped string </td>
</tr>
<tr>
<td class="h" >
<a name="368">368</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sub EscapeHTML($;$) </td>
</tr>
<tr>
<td class="h" >
<a name="369">369</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="370">370</a>
</td>
<td class="c3" >
167
</td>
<td >
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#370-1">
167
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#370-1">
0
</a>
</td>
<td >
326
</td>
<td class="s"> my ($str, $enc) = @_; </td>
</tr>
<tr>
<td class="h" >
<a name="371">371</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # escape XML characters </td>
</tr>
<tr>
<td class="h" >
<a name="372">372</a>
</td>
<td class="c3" >
167
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
392
</td>
<td class="s"> $str = EscapeXML($str); </td>
</tr>
<tr>
<td class="h" >
<a name="373">373</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # escape other special characters if they exist </td>
</tr>
<tr>
<td class="h" >
<a name="374">374</a>
</td>
<td class="c3" >
167
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#374-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
428
</td>
<td class="s"> if ($str =~ /[\x80-\xff]/) { </td>
</tr>
<tr>
<td class="h" >
<a name="375">375</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # generate entity name lookup if necessary </td>
</tr>
<tr>
<td class="h" >
<a name="376">376</a>
</td>
<td class="c3" >
16
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#376-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
67
</td>
<td class="s"> unless (%entityName) { </td>
</tr>
<tr>
<td class="h" >
<a name="377">377</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
9
</td>
<td class="s"> local $_; </td>
</tr>
<tr>
<td class="h" >
<a name="378">378</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
157
</td>
<td class="s"> foreach (keys %entityNum) { </td>
</tr>
<tr>
<td class="h" >
<a name="379">379</a>
</td>
<td class="c3" >
506
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
1350
</td>
<td class="s"> $entityName{$entityNum{$_}} = $_; </td>
</tr>
<tr>
<td class="h" >
<a name="380">380</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="381">381</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
25
</td>
<td class="s"> delete $entityName{39}; # 'apos' is not valid HTML </td>
</tr>
<tr>
<td class="h" >
<a name="382">382</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="383">383</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # suppress warnings </td>
</tr>
<tr>
<td class="h" >
<a name="384">384</a>
</td>
<td class="c3" >
16
</td>
<td >
</td>
<td >
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#384-1">
0
</a>
</td>
<td >
</td>
<td >
120
</td>
<td class="s"> local $SIG{'__WARN__'} = sub { 1 }; </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td class="c0" >
<a href="#386">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="385">385</a>
</td>
<td class="c3" >
16
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#385-1">
50
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--condition.html#385-1">
33
</a>
</td>
<td >
</td>
<td >
</td>
<td >
74
</td>
<td class="s"> if ($enc and $enc ne 'UTF8') { </td>
</tr>
<tr>
<td class="h" >
<a name="386">386</a>
</td>
<td class="c0" >
<a href="#387">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $str = Image::ExifTool::Decode(undef, $str, $enc, undef, 'UTF8'); </td>
</tr>
<tr>
<td class="h" >
<a name="387">387</a>
</td>
<td class="c0" >
<a href="# ">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $str =~ s/([\xc2-\xf7][\x80-\xbf]+)/EscapeChar($1)/sge; </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td class="c0" >
<a href="#388">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="388">388</a>
</td>
<td class="c0" >
<a href="#461">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $str = Image::ExifTool::Decode(undef, $str, 'UTF8', undef, $enc); </td>
</tr>
<tr>
<td class="h" >
<a name="389">389</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="390">390</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # escape any non-ascii characters for HTML </td>
</tr>
<tr>
<td class="h" >
<a name="391">391</a>
</td>
<td class="c3" >
16
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
77
</td>
<td class="s"> $str =~ s/([\xc2-\xf7][\x80-\xbf]+)/EscapeChar($1)/sge; </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td class="c3" >
157
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
299
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="392">392</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="393">393</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="394">394</a>
</td>
<td class="c3" >
167
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
455
</td>
<td class="s"> return $str; </td>
</tr>
<tr>
<td class="h" >
<a name="395">395</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="396">396</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="397">397</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> #------------------------------------------------------------------------------ </td>
</tr>
<tr>
<td class="h" >
<a name="398">398</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Unescape all HTML character references </td>
</tr>
<tr>
<td class="h" >
<a name="399">399</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Inputs: 0) string to be unescaped, 1) optional string encoding (default 'UTF8') </td>
</tr>
<tr>
<td class="h" >
<a name="400">400</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Returns: unescaped string </td>
</tr>
<tr>
<td class="h" >
<a name="401">401</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sub UnescapeHTML($;$) </td>
</tr>
<tr>
<td class="h" >
<a name="402">402</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="403">403</a>
</td>
<td class="c3" >
154
</td>
<td >
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#403-1">
154
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#403-1">
0
</a>
</td>
<td >
349
</td>
<td class="s"> my ($str, $enc) = @_; </td>
</tr>
<tr>
<td class="h" >
<a name="404">404</a>
</td>
<td class="c3" >
154
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
437
</td>
<td class="s"> return UnescapeXML($str, \%entityNum, $enc); </td>
</tr>
<tr>
<td class="h" >
<a name="405">405</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="406">406</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="407">407</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> #------------------------------------------------------------------------------ </td>
</tr>
<tr>
<td class="h" >
<a name="408">408</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Extract information from a HTML file </td>
</tr>
<tr>
<td class="h" >
<a name="409">409</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Inputs: 0) ExifTool object reference, 1) DirInfo reference </td>
</tr>
<tr>
<td class="h" >
<a name="410">410</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # Returns: 1 on success, 0 if this wasn't a valid HTML file </td>
</tr>
<tr>
<td class="h" >
<a name="411">411</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> sub ProcessHTML($$) </td>
</tr>
<tr>
<td class="h" >
<a name="412">412</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="413">413</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#413-1">
1
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--subroutine.html#413-1">
0
</a>
</td>
<td >
11
</td>
<td class="s"> my ($et, $dirInfo) = @_; </td>
</tr>
<tr>
<td class="h" >
<a name="414">414</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
7
</td>
<td class="s"> my $raf = $$dirInfo{RAF}; </td>
</tr>
<tr>
<td class="h" >
<a name="415">415</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
3
</td>
<td class="s"> my $buff; </td>
</tr>
<tr>
<td class="h" >
<a name="416">416</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="417">417</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # validate HTML or XHTML file </td>
</tr>
<tr>
<td class="h" >
<a name="418">418</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#418-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> $raf->Read($buff, 256) or return 0; </td>
</tr>
<tr>
<td class="h" >
<a name="419">419</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#419-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
12
</td>
<td class="s"> $buff =~ /^(\xef\xbb\xbf)?\s*<(!DOCTYPE\s+HTML|HTML|\?xml)/i or return 0; </td>
</tr>
<tr>
<td class="h" >
<a name="420">420</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#420-1">
50
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--condition.html#420-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
13
</td>
<td class="s"> $buff =~ /<(!DOCTYPE\s+)?HTML/i or return 0 if $2 eq '?xml'; </td>
</tr>
<tr>
<td class="h" >
<a name="421">421</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
7
</td>
<td class="s"> $et->SetFileType(); </td>
</tr>
<tr>
<td class="h" >
<a name="422">422</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="423">423</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#423-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> $raf->Seek(0,0) or $et->Warn('Seek error'), return 1; </td>
</tr>
<tr>
<td class="h" >
<a name="424">424</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="425">425</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
8
</td>
<td class="s"> local $/ = Image::ExifTool::PostScript::GetInputRecordSeparator($raf); </td>
</tr>
<tr>
<td class="h" >
<a name="426">426</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#426-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
5
</td>
<td class="s"> $/ or $et->Warn('Invalid HTML data'), return 1; </td>
</tr>
<tr>
<td class="h" >
<a name="427">427</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="428">428</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # extract header information </td>
</tr>
<tr>
<td class="h" >
<a name="429">429</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
2
</td>
<td class="s"> my $doc; </td>
</tr>
<tr>
<td class="h" >
<a name="430">430</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
6
</td>
<td class="s"> while ($raf->ReadLine($buff)) { </td>
</tr>
<tr>
<td class="h" >
<a name="431">431</a>
</td>
<td class="c3" >
76
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#431-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
134
</td>
<td class="s"> if (not defined $doc) { </td>
</tr>
<tr>
<td class="h" >
<a name="432">432</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # look for 'head' element </td>
</tr>
<tr>
<td class="h" >
<a name="433">433</a>
</td>
<td class="c3" >
5
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#433-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
21
</td>
<td class="s"> next unless $buff =~ /<head\b/ig; </td>
</tr>
<tr>
<td class="h" >
<a name="434">434</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> $doc = substr($buff, pos($buff)); </td>
</tr>
<tr>
<td class="h" >
<a name="435">435</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
11
</td>
<td class="s"> next; </td>
</tr>
<tr>
<td class="h" >
<a name="436">436</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="437">437</a>
</td>
<td class="c3" >
71
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
120
</td>
<td class="s"> $doc .= $buff; </td>
</tr>
<tr>
<td class="h" >
<a name="438">438</a>
</td>
<td class="c3" >
71
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#438-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
189
</td>
<td class="s"> last if $buff =~ m{</head>}i; </td>
</tr>
<tr>
<td class="h" >
<a name="439">439</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="440">440</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#440-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> return 1 unless defined $doc; </td>
</tr>
<tr>
<td class="h" >
<a name="441">441</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="442">442</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # process all elements in header </td>
</tr>
<tr>
<td class="h" >
<a name="443">443</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
25
</td>
<td class="s"> my $tagTablePtr = GetTagTable('Image::ExifTool::HTML::Main'); </td>
</tr>
<tr>
<td class="h" >
<a name="444">444</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
3
</td>
<td class="s"> for (;;) { </td>
</tr>
<tr>
<td class="h" >
<a name="445">445</a>
</td>
<td class="c3" >
36
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#445-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
213
</td>
<td class="s"> last unless $doc =~ m{<([\w:.-]+)(.*?)>}sg; </td>
</tr>
<tr>
<td class="h" >
<a name="446">446</a>
</td>
<td class="c3" >
35
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
136
</td>
<td class="s"> my ($tagName, $attrs) = ($1, $2); </td>
</tr>
<tr>
<td class="h" >
<a name="447">447</a>
</td>
<td class="c3" >
35
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
70
</td>
<td class="s"> my $tag = lc($tagName); </td>
</tr>
<tr>
<td class="h" >
<a name="448">448</a>
</td>
<td class="c3" >
35
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
46
</td>
<td class="s"> my ($val, $grp); </td>
</tr>
<tr>
<td class="h" >
<a name="449">449</a>
</td>
<td class="c3" >
35
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#449-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
103
</td>
<td class="s"> if ($attrs =~ m{/$}) { # self-contained XHTML tags end in '/>' </td>
</tr>
<tr>
<td class="h" >
<a name="450">450</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
53
</td>
<td class="s"> $val = ''; </td>
</tr>
<tr>
<td class="h" >
<a name="451">451</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="452">452</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # look for element close </td>
</tr>
<tr>
<td class="h" >
<a name="453">453</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> my $pos = pos($doc); </td>
</tr>
<tr>
<td class="h" >
<a name="454">454</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
8
</td>
<td class="s"> my $close = "</$tagName>"; </td>
</tr>
<tr>
<td class="h" >
<a name="455">455</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # the following doesn't work on Solaris Perl 5.6.1 due to Perl bug: </td>
</tr>
<tr>
<td class="h" >
<a name="456">456</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # if ($doc =~ m{(.*?)</$tagName>}sg) { </td>
</tr>
<tr>
<td class="h" >
<a name="457">457</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # $val = $1; </td>
</tr>
<tr>
<td class="h" >
<a name="458">458</a>
</td>
<td class="c3" >
2
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#458-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
51
</td>
<td class="s"> if ($doc =~ m{$close}sg) { </td>
</tr>
<tr>
<td class="h" >
<a name="459">459</a>
</td>
<td class="c3" >
2
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
23
</td>
<td class="s"> $val = substr($doc, $pos, pos($doc)-$pos-length($close)); </td>
</tr>
<tr>
<td class="h" >
<a name="460">460</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="461">461</a>
</td>
<td class="c0" >
<a href="#462">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> pos($doc) = $pos; </td>
</tr>
<tr>
<td class="h" >
<a name="462">462</a>
</td>
<td class="c0" >
<a href="#463">
0
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#462-1">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> next unless $tag eq 'meta'; # META tags don't need to be closed </td>
</tr>
<tr>
<td class="h" >
<a name="463">463</a>
</td>
<td class="c0" >
<a href="#476">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $val = ''; </td>
</tr>
<tr>
<td class="h" >
<a name="464">464</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="465">465</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="466">466</a>
</td>
<td class="c3" >
35
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
54
</td>
<td class="s"> my $table = $tagTablePtr; </td>
</tr>
<tr>
<td class="h" >
<a name="467">467</a>
</td>
<td class="c3" >
35
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#467-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
63
</td>
<td class="s"> if ($tag eq 'meta') { </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td >
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#-2">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="468">468</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # parse HTML META element </td>
</tr>
<tr>
<td class="h" >
<a name="469">469</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
51
</td>
<td class="s"> undef $tag; </td>
</tr>
<tr>
<td class="h" >
<a name="470">470</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # tag name is in NAME or HTTP-EQUIV attribute </td>
</tr>
<tr>
<td class="h" >
<a name="471">471</a>
</td>
<td class="c3" >
33
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#471-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
127
</td>
<td class="s"> if ($attrs =~ /\bname\s*=\s*['"]?([\w:.-]+)/si) { </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td >
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#-2">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="472">472</a>
</td>
<td class="c3" >
32
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
64
</td>
<td class="s"> $tagName = $1; </td>
</tr>
<tr>
<td class="h" >
<a name="473">473</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } elsif ($attrs =~ /\bhttp-equiv\s*=\s*['"]?([\w:.-]+)/si) { </td>
</tr>
<tr>
<td class="h" >
<a name="474">474</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> $tagName = "HTTP-equiv.$1"; </td>
</tr>
<tr>
<td class="h" >
<a name="475">475</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="476">476</a>
</td>
<td class="c0" >
<a href="#485">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> next; # no name </td>
</tr>
<tr>
<td class="h" >
<a name="477">477</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="478">478</a>
</td>
<td class="c3" >
33
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#478-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
86
</td>
<td class="s"> $tag = lc($tagName) or next; </td>
</tr>
<tr>
<td class="h" >
<a name="479">479</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # tag value is in CONTENT attribute </td>
</tr>
<tr>
<td class="h" >
<a name="480">480</a>
</td>
<td class="c3" >
33
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#480-1">
50
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--condition.html#480-1">
33
</a>
</td>
<td >
</td>
<td >
</td>
<td >
173
</td>
<td class="s"> if ($attrs =~ /\bcontent\s*=\s*(['"])(.*?)\1/si or </td>
</tr>
<tr>
<td class="h" >
<a name="481">481</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> $attrs =~ /\bcontent\s*=\s*(['"]?)([\w:.-]+)/si) </td>
</tr>
<tr>
<td class="h" >
<a name="482">482</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> { </td>
</tr>
<tr>
<td class="h" >
<a name="483">483</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
77
</td>
<td class="s"> $val = $2; </td>
</tr>
<tr>
<td class="h" >
<a name="484">484</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="485">485</a>
</td>
<td class="c0" >
<a href="#494">
0
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#485-1">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> next unless length $val; </td>
</tr>
<tr>
<td class="h" >
<a name="486">486</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="487">487</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # isolate group name (separator is '.' in HTML, but ':' in ref 2) </td>
</tr>
<tr>
<td class="h" >
<a name="488">488</a>
</td>
<td class="c3" >
33
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#488-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
110
</td>
<td class="s"> if ($tag =~ /^([\w-]+)[:.]([\w-]+)/) { </td>
</tr>
<tr>
<td class="h" >
<a name="489">489</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
75
</td>
<td class="s"> ($grp, $tag) = ($1, $2); </td>
</tr>
<tr>
<td class="h" >
<a name="490">490</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
233
</td>
<td class="s"> my $tagInfo = $et->GetTagInfo($tagTablePtr, $grp); </td>
</tr>
<tr>
<td class="h" >
<a name="491">491</a>
</td>
<td class="c3" >
33
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#491-1">
50
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--condition.html#491-1">
33
</a>
</td>
<td >
</td>
<td >
</td>
<td >
120
</td>
<td class="s"> if ($tagInfo and $$tagInfo{SubDirectory}) { </td>
</tr>
<tr>
<td class="h" >
<a name="492">492</a>
</td>
<td class="c3" >
33
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
90
</td>
<td class="s"> $table = GetTagTable($tagInfo->{SubDirectory}->{TagTable}); </td>
</tr>
<tr>
<td class="h" >
<a name="493">493</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="494">494</a>
</td>
<td class="c0" >
<a href="#523">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $tag = "$grp.$tag"; </td>
</tr>
<tr>
<td class="h" >
<a name="495">495</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="496">496</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="497">497</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } elsif ($tag eq 'xml') { </td>
</tr>
<tr>
<td class="h" >
<a name="498">498</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
9
</td>
<td class="s"> $et->VPrint(0, "Parsing XML\n"); </td>
</tr>
<tr>
<td class="h" >
<a name="499">499</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # parse XML tags (quick-and-dirty) </td>
</tr>
<tr>
<td class="h" >
<a name="500">500</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
3
</td>
<td class="s"> my $xml = $val; </td>
</tr>
<tr>
<td class="h" >
<a name="501">501</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
16
</td>
<td class="s"> while ($xml =~ /<([\w-]+):([\w-]+)(\s.*?)?>([^<]*?)<\/\1:\2>/g) { </td>
</tr>
<tr>
<td class="h" >
<a name="502">502</a>
</td>
<td class="c3" >
25
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
102
</td>
<td class="s"> ($grp, $tag, $val) = ($1, $2, $4); </td>
</tr>
<tr>
<td class="h" >
<a name="503">503</a>
</td>
<td class="c3" >
25
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
64
</td>
<td class="s"> my $tagInfo = $et->GetTagInfo($tagTablePtr, $grp); </td>
</tr>
<tr>
<td class="h" >
<a name="504">504</a>
</td>
<td class="c3" >
25
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#504-1">
50
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--condition.html#504-1">
33
</a>
</td>
<td >
</td>
<td >
</td>
<td >
85
</td>
<td class="s"> next unless $tagInfo and $$tagInfo{SubDirectory}; </td>
</tr>
<tr>
<td class="h" >
<a name="505">505</a>
</td>
<td class="c3" >
25
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
69
</td>
<td class="s"> $table = GetTagTable($tagInfo->{SubDirectory}->{TagTable}); </td>
</tr>
<tr>
<td class="h" >
<a name="506">506</a>
</td>
<td class="c3" >
25
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#506-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
93
</td>
<td class="s"> unless ($$table{$tag}) { </td>
</tr>
<tr>
<td class="h" >
<a name="507">507</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
14
</td>
<td class="s"> my $name = ucfirst $tag; </td>
</tr>
<tr>
<td class="h" >
<a name="508">508</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
15
</td>
<td class="s"> $name =~ s/_x([0-9a-f]{4})_/chr(hex($1))/gie; # convert hex codes </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
8
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="509">509</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
13
</td>
<td class="s"> $name =~ s/\s(.)/\U$1/g; # capitalize all words in tag name </td>
</tr>
<tr>
<td class="h" >
<a name="510">510</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
12
</td>
<td class="s"> $name =~ tr/-_a-zA-Z0-9//dc; # remove illegal characters (also hex code wide chars) </td>
</tr>
<tr>
<td class="h" >
<a name="511">511</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
23
</td>
<td class="s"> AddTagToTable($table, $tag, { Name => $name }); </td>
</tr>
<tr>
<td class="h" >
<a name="512">512</a>
</td>
<td class="c3" >
5
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
21
</td>
<td class="s"> $et->VPrint(0, " [adding $tag '${name}']\n"); </td>
</tr>
<tr>
<td class="h" >
<a name="513">513</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="514">514</a>
</td>
<td class="c3" >
25
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#514-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
103
</td>
<td class="s"> $val = $et->Decode($val, $$et{HTMLCharset}) if $$et{HTMLCharset}; </td>
</tr>
<tr>
<td class="h" >
<a name="515">515</a>
</td>
<td class="c3" >
25
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
72
</td>
<td class="s"> $et->HandleTag($table, $tag, UnescapeXML($val)); </td>
</tr>
<tr>
<td class="h" >
<a name="516">516</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="517">517</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> next; </td>
</tr>
<tr>
<td class="h" >
<a name="518">518</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } else { </td>
</tr>
<tr>
<td class="h" >
<a name="519">519</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # the only other element we process is TITLE </td>
</tr>
<tr>
<td class="h" >
<a name="520">520</a>
</td>
<td class="c3" >
1
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#520-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
4
</td>
<td class="s"> next unless $tag eq 'title'; </td>
</tr>
<tr>
<td class="h" >
<a name="521">521</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="522">522</a>
</td>
<td class="c3" >
34
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#522-1">
50
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
88
</td>
<td class="s"> unless ($$table{$tag}) { </td>
</tr>
<tr>
<td class="h" >
<a name="523">523</a>
</td>
<td class="c0" >
<a href="#524">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> my $name = $tagName; </td>
</tr>
<tr>
<td class="h" >
<a name="524">524</a>
</td>
<td class="c0" >
<a href="#525">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $name =~ s/\W+(\w)/\u$1/sg; </td>
</tr>
<tr>
<td class="h" >
<a name="525">525</a>
</td>
<td class="c0" >
<a href="#526">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> my $info = { Name => $name, Groups => { 0 => 'HTML' } }; </td>
</tr>
<tr>
<td class="h" >
<a name="526">526</a>
</td>
<td class="c0" >
<a href="#527">
0
</a>
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#526-1">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $info->{Groups}->{1} = ($grp eq 'http-equiv' ? 'HTTP-equiv' : "HTML-$grp") if $grp; </td>
</tr>
<tr>
<td class="h" >
<a > </a>
</td>
<td >
</td>
<td class="c0" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#-2">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="527">527</a>
</td>
<td class="c0" >
<a href="#528">
0
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> AddTagToTable($table, $tag, $info); </td>
</tr>
<tr>
<td class="h" >
<a name="528">528</a>
</td>
<td class="c0" >
0
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
0
</td>
<td class="s"> $et->VPrint(0, " [adding $tag '${tagName}']\n"); </td>
</tr>
<tr>
<td class="h" >
<a name="529">529</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="530">530</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> # recode if necessary </td>
</tr>
<tr>
<td class="h" >
<a name="531">531</a>
</td>
<td class="c3" >
34
</td>
<td class="c3" >
<a href="blib-lib-Image-ExifTool-HTML-pm--branch.html#531-1">
100
</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
121
</td>
<td class="s"> $val = $et->Decode($val, $$et{HTMLCharset}) if $$et{HTMLCharset}; </td>
</tr>
<tr>
<td class="h" >
<a name="532">532</a>
</td>
<td class="c3" >
34
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
134
</td>
<td class="s"> $val =~ s{\s*$/\s*}{ }sg; # replace linefeeds and indenting spaces </td>
</tr>
<tr>
<td class="h" >
<a name="533">533</a>
</td>
<td class="c3" >
34
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
70
</td>
<td class="s"> $val = UnescapeHTML($val); # unescape HTML character references </td>
</tr>
<tr>
<td class="h" >
<a name="534">534</a>
</td>
<td class="c3" >
34
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
96
</td>
<td class="s"> $et->HandleTag($table, $tag, $val); </td>
</tr>
<tr>
<td class="h" >
<a name="535">535</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="536">536</a>
</td>
<td class="c3" >
1
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
7
</td>
<td class="s"> return 1; </td>
</tr>
<tr>
<td class="h" >
<a name="537">537</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> } </td>
</tr>
<tr>
<td class="h" >
<a name="538">538</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="539">539</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> 1; # end </td>
</tr>
<tr>
<td class="h" >
<a name="540">540</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> </td>
</tr>
<tr>
<td class="h" >
<a name="541">541</a>
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td >
</td>
<td class="s"> __END__ </td>
</tr>
</table>
</body>
</html>
|