diff options
author | Hans-Joachim Lankenau <hjs@openoffice.org> | 2009-03-24 14:11:39 +0000 |
---|---|---|
committer | Hans-Joachim Lankenau <hjs@openoffice.org> | 2009-03-24 14:11:39 +0000 |
commit | 68b1055e55777f2cee3af6b4bd2ad1538a832e8e (patch) | |
tree | edb1309236168caed307214cd1ed09ebafea6969 /solenv/bin/gen_userfeedback_VCL_names.pl | |
parent | 2d6a5f8abdbeaa42e47f60756e2fda10d7342b51 (diff) |
CWS-TOOLING: integrate CWS gh16
2009-03-24 11:26:56 +0100 gh r269930 : #i100151#
2009-03-24 11:26:18 +0100 gh r269928 : #i100151#fix a renaming issue
2009-03-20 12:31:00 +0100 gh r269795 : #i100356# some fixes required
2009-03-19 17:20:02 +0100 gh r269760 : #i100151# generate UserFeedback names
2009-03-19 17:17:49 +0100 gh r269759 : #i100151# deliver *.win files
2009-03-19 17:15:10 +0100 gh r269758 : #i100151# generate UserFeedback names and deliver them
2009-03-19 11:38:53 +0100 gh r269737 : #i100356# write logs to stdout. enable with switch -printlog
2009-03-12 14:15:48 +0100 gh r269408 : #i98580# build failed when debug enabled
2009-03-12 13:55:50 +0100 gh r269404 : #i61192#fix lineendings in hid.lst
Diffstat (limited to 'solenv/bin/gen_userfeedback_VCL_names.pl')
-rwxr-xr-x | solenv/bin/gen_userfeedback_VCL_names.pl | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/solenv/bin/gen_userfeedback_VCL_names.pl b/solenv/bin/gen_userfeedback_VCL_names.pl new file mode 100755 index 000000000000..2e5ed3cf2588 --- /dev/null +++ b/solenv/bin/gen_userfeedback_VCL_names.pl @@ -0,0 +1,200 @@ +: +eval 'exec perl -wS $0 ${1+"$@"}' + if 0; +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: ,v $ +# +# $Revision: $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* +# +# pushids - push HID.LST and *.win files for userexperience feedback +# + +use lib ("$ENV{SOLARENV}/bin/modules", "$ENV{COMMON_ENV_TOOLS}/modules"); + +use Carp; + +sub parse_info($$); + +if ( @ARGV != 3 ) +{ + print "usage: $ARGV[0] <path tp hid.lst> <path to *.win files> <output file>\n"; + print "example: $ARGV[0] ./hid.lst global/win common/misc/UserFeedbackNames.csv\n\n"; + die "invalid params"; +} + +my ($hid, $winpath, $outfile) = @ARGV; + +my @names; + +open HID, "<$hid" or die "can't open file $filename $! $^E"; +for (<HID>) { + chop; + my ($longname, $ID) = split " +"; + next if ( ! $ID ); + $upperlongname = $longname; + $upperlongname =~ tr/a-z/A-Z/; + $undeclared_hids{$upperlongname} = $longname; + + if ( exists $hids{$upperlongname} && ( $hids{$upperlongname} != $ID ) ) + { + print STDERR "errror: unclear definition of longname: $longname = $hids{$upperlongname} or $ID\n"; + } + $hids{$upperlongname} = $ID; + + if ( exists $revhids{ $ID } && ( $revhids{ $ID } ne $upperlongname ) ) + { + print STDERR "warn: two longnames have the same ID: $longname and $revhids{$ID} share ID $ID\n"; + } + $revhids{$ID} = $upperlongname; +} + +close HID; + +undef @revhids; + +#Add Active +$hids{"ACTIVE"} = 0; + +my %dialogs = (); + +foreach ( glob("$winpath/*win") ) { + $filename = $_; + open WIN, "< $filename" or die "can't open file $filename $! $^E"; + my $parentinfo = ""; + my @dialog = (); + my $parentshortname = ""; + + for ( <WIN> ) { + chop; + + s/^ +//; + s/ +/ /g; + + next if /^ *'/; + next if /^ *$/; + + my $ID = ""; + my $iteminfo; + my ($shortname, $longname) = split " +"; + + $shortname = "" if ( !$shortname ); + $longname = "" if ( !$longname ); + + # fake a correct entry if only *active is given and overwrite the attempt to declare it differently + if ( $shortname =~ /\*active/i ) + { + $longname = "Active"; + } + + +# find UNO Names + if ( $longname =~ /^(.uno:|http|private:factory|service:|macro:|.HelpId:)/i || $longname =~ s/^sym://i ) + { + $ID = $longname; + $longname = ""; + } + else + { + my $upperlongname = $longname; + $upperlongname =~ tr/a-z/A-Z/; + if ( $shortname !~ /^[\+\*]/ && !exists $hids{$upperlongname} ) + { + print STDERR "errror: Longname not in hid.lst: $filename $longname\n"; + } + if ( exists $hids{$upperlongname} ) + { + $ID = $hids{$upperlongname}; + } + delete $undeclared_hids{$upperlongname}; + } + + $iteminfo = "$shortname $longname $ID"; +# print "$iteminfo\n" if ( ! ( $shortname && $longname && $ID )); + $iteminfo =~ s/^\*//; + $iteminfo =~ s/^\+//; + +# find start of deklaration + if ( $shortname =~ s/^\+// ) + { + # copy existing dialog + if ( exists $dialogs{ $longname } ) + { + my @old = @{$dialogs{ $longname }}; + my ($oldshort, $oldlong, $oldID ) = split ( " ", shift @old ); + $iteminfo = "$shortname $oldlong $oldID"; + + $parentinfo = $iteminfo; + $parentshortname = $shortname; + $dialogs{ $parentshortname } = \@dialog; + @dialog = (); # break the link + push ( @{$dialogs{ $parentshortname }}, $iteminfo ); + push @names, " $parentinfo"; + + for ( @old ) + { + push @names, "$parentinfo $_"; + } + } + else + { # fake new dialog instead + $shortname = "*".$shortname; + } + } + if ( $shortname =~ s/^\*// ) + { + $parentinfo = $iteminfo; + $parentshortname = $shortname; + $dialogs{ $parentshortname } = \@dialog; + @dialog = (); # break the link + push ( @{$dialogs{ $parentshortname }}, $iteminfo ); + push @names, " $parentinfo"; + } + else + { + push ( @{$dialogs{ $parentshortname }}, $iteminfo ); + push @names, "$parentinfo $iteminfo"; + } + + } + close WIN; +} + +for ( keys %undeclared_hids ) { + $iteminfo = "$undeclared_hids{$_} $undeclared_hids{$_} $hids{$_}"; + push @names, " $iteminfo"; +} + +#---------------------------------------------------------------------------- +# write to files + +open HIDS, ">$outfile" or die "can't open file $filename $! $^E"; +print HIDS join "\n", @names; +print HIDS "\n"; +close HIDS; + |