Mercurial > bins
annotate debian/patches/12_optional_xml_elements @ 6:3021deef1599
Encoding related fixes
* chomp encoding string
* reformat else (seems someone hacked it in)
* debug print encoding
* do not use :utf8 binmode ("re-encode") on written file if the input is _already_ UTF-8
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Thu, 16 Oct 2008 00:02:14 +0200 |
parents | c5749e43b1d7 |
children |
rev | line source |
---|---|
4
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
1 #! /bin/sh /usr/share/dpatch/dpatch-run |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
2 ## 12_optional_xml_elements.dpatch by Martin Michlmayr <tbm@cyrius.com> |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
3 ## |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
4 ## DP: Make XML elements optional and check whether the XML files are |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
5 ## DP: valid bins files [#308338] |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
6 |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
7 @DPATCH@ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
8 --- bins-1.1.29.orig/bins |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
9 +++ bins-1.1.29/bins |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
10 @@ -3899,10 +3899,14 @@ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
11 if (-e $descFile) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
12 beVerboseN(" Reading desc file $descFile.", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
13 $document = getXMLAsGrove($descFile); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
14 - %descHash = getDescXML($document, $configHash); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
15 - #$descHash{descFileName} = uri_escape($descFile, '^-A-Za-z0-9/_\.'); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
16 - $configHash = getConfigXML($document, '/image/bins', $configHash); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
17 - %exifHash = getExifXML($document, \@priorityList); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
18 + if (! $document->at_path("/image")) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
19 + beVerboseN("Description file $descFile has no <image> element, ignoring.", 1); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
20 + } else { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
21 + %descHash = getDescXML($document, $configHash) if $document->at_path("/image/description"); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
22 + #$descHash{descFileName} = uri_escape($descFile, '^-A-Za-z0-9/_\.'); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
23 + $configHash = getConfigXML($document, '/image/bins', $configHash) if $document->at_path("/image/bins"); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
24 + %exifHash = getExifXML($document, \@priorityList) if $document->at_path("/image/exif"); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
25 + } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
26 } else { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
27 $descHash{descFileName} = ""; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
28 } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
29 @@ -4541,6 +4545,10 @@ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
30 beVerboseN("Reading album description file '$descFile'...", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
31 |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
32 my $document = getXMLAsGrove($descFile); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
33 + if (! $document->at_path("/album")) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
34 + beVerboseN("Description file $descFile has no <album> element, ignoring.", 1); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
35 + return $configHash; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
36 + } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
37 # I have to do that, don't ask me why... |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
38 |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
39 #$XML::UM::ENCDIR="/usr/lib/perl5/XML/Parser/"; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
40 @@ -4548,37 +4556,40 @@ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
41 # Encoding => 'ISO-8859-9', |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
42 # EncodeUnmapped => \&XML::UM::encode_unmapped_dec); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
43 |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
44 - $configHash = getConfigXML($document, "/album/bins", $configHash); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
45 + $configHash = getConfigXML($document, "/album/bins", $configHash) if |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
46 + $document->at_path("/album/bins"); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
47 |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
48 - foreach my $element |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
49 - (@{$document->at_path('/album/description')->{Contents}}) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
50 - if (UNIVERSAL::isa($element, 'XML::Grove::Element') && $element->{Name} eq "field") { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
51 - $fieldName = $element->{Attributes}{'name'}; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
52 - $fieldValue = ""; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
53 - if (grep (/^$fieldName$/, @AlbumFieldNames)) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
54 - beVerbose(" Reading field '$fieldName':", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
55 - foreach my $characters (@{$element->{Contents}}) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
56 - $fieldValue .= $characters->as_canon_xml(); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
57 - } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
58 - #if ($fieldName ne "shortdesc" && $fieldName ne "longdesc"){ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
59 - # $fieldValue = decode_entities($fieldValue); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
60 - #} |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
61 - if ($fieldName eq "sampleimage"){ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
62 - $fieldValue = |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
63 - trimWhiteSpace(decode_entities($fieldValue)); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
64 - beVerbose("'".$fieldValue."'\n", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
65 - }else{ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
66 - $fieldValue = |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
67 - trimWhiteSpace(decode_entities(xml2html($fieldValue))); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
68 - beVerbose("'".$fieldValue."'\n", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
69 + if ($document->at_path("/album/description")) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
70 + foreach my $element |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
71 + (@{$document->at_path('/album/description')->{Contents}}) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
72 + if (UNIVERSAL::isa($element, 'XML::Grove::Element') && $element->{Name} eq "field") { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
73 + $fieldName = $element->{Attributes}{'name'}; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
74 + $fieldValue = ""; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
75 + if (grep (/^$fieldName$/, @AlbumFieldNames)) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
76 + beVerbose(" Reading field '$fieldName':", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
77 + foreach my $characters (@{$element->{Contents}}) { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
78 + $fieldValue .= $characters->as_canon_xml(); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
79 + } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
80 + #if ($fieldName ne "shortdesc" && $fieldName ne "longdesc"){ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
81 + # $fieldValue = decode_entities($fieldValue); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
82 + #} |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
83 + if ($fieldName eq "sampleimage"){ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
84 + $fieldValue = |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
85 + trimWhiteSpace(decode_entities($fieldValue)); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
86 + beVerbose("'".$fieldValue."'\n", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
87 + }else{ |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
88 + $fieldValue = |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
89 + trimWhiteSpace(decode_entities(xml2html($fieldValue))); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
90 + beVerbose("'".$fieldValue."'\n", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
91 + } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
92 + # $fieldValue = $encode->(trimWhiteSpace($fieldValue)); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
93 + $hash->{$fieldName} = $fieldValue; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
94 + } else { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
95 + beVerboseN(" Ignoring unknown field '$fieldName'.", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
96 } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
97 - # $fieldValue = $encode->(trimWhiteSpace($fieldValue)); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
98 - $hash->{$fieldName} = $fieldValue; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
99 - } else { |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
100 - beVerboseN(" Ignoring unknown field '$fieldName'.", 3); |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
101 } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
102 } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
103 - } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
104 + } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
105 return $configHash; |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
106 } |
c5749e43b1d7
Adding debian files (to original 1.1.29)
Peter Gervai <grin@grin.hu>
parents:
diff
changeset
|
107 |