diff options
Diffstat (limited to 'oox/source/drawingml/customshapes/generatePresetsData.pl')
-rwxr-xr-x | oox/source/drawingml/customshapes/generatePresetsData.pl | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/oox/source/drawingml/customshapes/generatePresetsData.pl b/oox/source/drawingml/customshapes/generatePresetsData.pl new file mode 100755 index 000000000..99b2ff153 --- /dev/null +++ b/oox/source/drawingml/customshapes/generatePresetsData.pl @@ -0,0 +1,74 @@ +#!/usr/bin/env perl +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +sub loadData() +{ + open (IN, "<custom-shapes.log"); + + my %sources; + + while (<IN>) + { + if (/==csdata== /) + { + if (/shape name: '/) + { + chop; + s/.*shape name: '([^']+)'.*/$1/; + $name = $_; + } + else + { + if (/==csdata== begin/) + { + $inside = true; + @code = (); + } + else + { + if (/==csdata== end/) + { + s/^ <\/([^>]+)>/$1/; + undef $inside; + $sources{$name} = [ @code ]; + } + } + } + } + else + { + if ($inside) + { + push @code, $_; + } + } + } + + close (IN); + + return \%sources; +} + +sub generateData +{ + my $sources = shift; + open (OUT, ">oox-drawingml-cs-presets"); + + foreach $shape (sort(keys %$sources)) + { + printf OUT "/* %s */\n", $shape; + print OUT @{$sources->{$shape}}; + } + + close OUT; +} + +generateData(loadData()); + +# vim:set ft=perl shiftwidth=4 softtabstop=4 expandtab: # |