summaryrefslogtreecommitdiff
path: root/solenv/bin/gen_userfeedback_VCL_names.pl
diff options
context:
space:
mode:
authorHans-Joachim Lankenau <hjs@openoffice.org>2009-03-24 14:11:39 +0000
committerHans-Joachim Lankenau <hjs@openoffice.org>2009-03-24 14:11:39 +0000
commit68b1055e55777f2cee3af6b4bd2ad1538a832e8e (patch)
treeedb1309236168caed307214cd1ed09ebafea6969 /solenv/bin/gen_userfeedback_VCL_names.pl
parent2d6a5f8abdbeaa42e47f60756e2fda10d7342b51 (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-xsolenv/bin/gen_userfeedback_VCL_names.pl200
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;
+