2 # -----------------------------------------------------------------------------
4 # This script tries to normalize gnumeric files, i.e., remove insignificant
5 # differences due to versions, environment, or hash ordering.
7 # It is a perl script mucking with an xml file. Think it over. It is not
8 # hard to cheat this, but for purposes of testing code, it is fine.
14 # "x" out version numbers.
15 if (m
|^\s
*<gnm
:Version\s
+Epoch
="\d+"\s
+Major
="\d+"\s
+Minor
="\d+"\s
+Full
="[.0-9]+"/>\s
*$|) {
18 if (m
|^\s
*<office
:document
-meta
|) {
19 s/( office:version=")[.0-9]+(")/$1XXX$2/;
22 s{(\bxmlns:gnm="http://www.gnumeric.org/v)\d+(\.dtd)"}{$1XX$2};
24 if (m
|^\s
*<gnm
:PrintInformation
>\s
*$| .. m
|^\s
*</gnm
:PrintInformation
>\s
*$|) {
26 if (m
|^\s
*<gnm
:Margins
>\s
*$| .. m
|^\s
*</gnm
:Margins
>\s
*$|) {
27 s/="[-.0-9a-zA-Z]+"/="x"/g;
30 # "x" out information from cups.
31 s{(<gnm:(paper|orientation)>).*(</gnm:\2>)}{$1xxx$3};
34 if (m
|^\s
*<office
:meta
>\s
*$| .. m
|^\s
*</office
:meta
>\s
*$|) {
35 s
|(<meta
:creation
-date
>).*(</meta
:creation
-date
>)|$1XXX$2|;
38 if (m
|^\s
*<gnm
:name
>WorkbookView
::do_auto_completion
</gnm
:name
>\s
*$| ..
39 m
|^\s
*</gnm
:Attribute
>\s
*$|) {
40 s
|(<gnm
:value
>).*(</gnm
:value
>)|$1xxx$2|;
44 if (0 && m
|^\s
*<gnm
:Sheets
>\s
*$| .. m
|^\s
*</gnm
:Sheets
>\s
*$|) {
45 if (m
|^\s
*<gnm
:Names
>\s
*$| .. m
|^\s
*</gnm
:Names
>\s
*$|) {
46 if (m
|^\s
*<gnm
:Names
>\s
*$|) {
48 } elsif (m
|^\s
*</gnm
:Names
>\s
*$|) {
54 if (m
|^\s
*</gnm
:Name
>\s
*$|) {