solenv/bin/make_installer.pl | 11 -- solenv/bin/modules/installer/control.pm | 11 -- solenv/bin/modules/installer/converter.pm | 2 solenv/bin/modules/installer/languages.pm | 109 +++++++++++++++++++++----- solenv/bin/modules/installer/packagepool.pm | 9 -- solenv/bin/modules/installer/systemactions.pm | 11 -- vcl/source/window/dockwin.cxx | 5 + 7 files changed, 106 insertions(+), 52 deletions(-)
New commits: commit 064c425f69e15091cfd9078ad120447f69f0b021 Author: Andre Fischer <a...@apache.org> Date: Mon Dec 2 14:16:32 2013 +0000 123729: Factored out the creation of directory names the depend on build languages. diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 1495890..def1bf0 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -1645,15 +1645,8 @@ for (;1;last) if ( $installer::globals::updatepack ) { $logminor = $installer::globals::lastminor; } else { $logminor = $installer::globals::minor; } - my $loglanguagestring = $$languagestringref; - my $loglanguagestring_orig = $loglanguagestring; - if (length($loglanguagestring) > $installer::globals::max_lang_length) - { - my $number_of_languages = installer::systemactions::get_number_of_langs($loglanguagestring); - chomp(my $shorter = `echo $loglanguagestring | md5sum | sed -e "s/ .*//g"`); - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $loglanguagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + my $loglanguagestring_orig = $$languagestringref; + my $loglanguagestring = installer::languages::get_language_directory_name($$languagestringref); # Setup the directory where the language dependent log file will be stored. $loggingdir = $loggingdir . $loglanguagestring . $installer::globals::separator; diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index 51edf8d..8db26b2 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -428,16 +428,7 @@ sub determine_ship_directory my $shipdrive = $ENV{'SHIPDRIVE'}; - my $languagestring = $$languagesref; - - if (length($languagestring) > $installer::globals::max_lang_length ) - { - my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); - chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $languagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + my $languagestring = installer::languages::get_language_directory_name($$languagesref); my $productstring = $installer::globals::product; my $productsubdir = ""; diff --git a/solenv/bin/modules/installer/converter.pm b/solenv/bin/modules/installer/converter.pm index 5ef25e4..c6d2b79 100644 --- a/solenv/bin/modules/installer/converter.pm +++ b/solenv/bin/modules/installer/converter.pm @@ -305,7 +305,7 @@ sub make_path_conform sub copy_collector { - my ($oldcollector) = @_; + my ( $oldcollector ) = @_; my @newcollector = (); diff --git a/solenv/bin/modules/installer/languages.pm b/solenv/bin/modules/installer/languages.pm index 030956d..0b19c1f 100644 --- a/solenv/bin/modules/installer/languages.pm +++ b/solenv/bin/modules/installer/languages.pm @@ -29,6 +29,10 @@ use installer::exiter; use installer::globals; use installer::remover; use installer::ziplist; +use Digest::MD5; + +use strict; + =head2 analyze_languagelist() @@ -70,6 +74,33 @@ sub analyze_languagelist() +=head2 get_language_directory_name ($language_string) + + Create a directory name that contains the given set of languages. + When $language_string exceeds a certain length then it is shortened. + +=cut +sub get_language_directory_name ($) +{ + my ($language_string) = @_; + + if (length($language_string) > $installer::globals::max_lang_length) + { + my $number_of_languages = ($language_string =~ tr/_//); + my $digest = new Digest::MD5(); + $digest->add($language_string); + my $short_digest = substr($digest->hexdigest(), 0, 8); + return "lang_" . $number_of_languages . "_id_" . $short_digest; + } + else + { + return $language_string; + } +} + + + + #################################################### # Reading languages from zip list file #################################################### @@ -123,27 +154,23 @@ sub all_elements_of_array1_in_array2 # All languages defined for one product ############################################# -sub get_all_languages_for_one_product -{ - my ( $languagestring, $allvariables ) = @_; +=head2 get_all_languages_for_one_product($languagestring, $allvariables) + + $languagestring can be one or more language names, separated by ','. - my @languagearray = (); + $installer::globals::ismultilingual is set to 1 when $languagestring contains more than one languages. - my $last = $languagestring; +=cut +sub get_all_languages_for_one_product ($$) +{ + my ( $languagestring, $allvariables ) = @_; - $installer::globals::ismultilingual = 0; # setting the global variable $ismultilingual ! - if ( $languagestring =~ /\,/ ) { $installer::globals::ismultilingual = 1; } - while ( $last =~ /^\s*(.+?)\,(.+)\s*$/) # "$" for minimal matching, comma separated list - { - my $first = $1; - $last = $2; - installer::remover::remove_leading_and_ending_whitespaces(\$first); - push(@languagearray, "$first"); - } + $installer::globals::ismultilingual = ($languagestring =~ /\,/ ) ? 1 : 0; - installer::remover::remove_leading_and_ending_whitespaces(\$last); - push(@languagearray, "$last"); + my $languages = $languagestring; + $languages =~ s/\s+//g; + my @languagearray = split(/,/, $languages); if ( $installer::globals::iswindowsbuild ) { @@ -381,10 +408,58 @@ sub get_java_language # $javalanguage =~ s/\-/\_/; # } - $javalanguage = $language; + my $javalanguage = $language; $javalanguage =~ s/\-/\_/; return $javalanguage; } + + +=head2 get_key_language ($languages) + + Determine the key language from the array of @$languages. + + If there is only one language then that is the key language. + + If there are two languages and one is en-US and was automatically + added, then the other language is the key language. + + When there is more than one language and the case above does not + apply then return either 'multiasia' or 'multiwestern' as key + language, depending on whether one of the asian language parts + 'jp', 'ko', 'zh' appear. + +=cut +sub get_key_language ($) +{ + my ($languages) = @_; + + my $language_count = scalar @$languages; + + if ($language_count == 1) + { + return $languages->[0]; + } + else + { + if ($installer::globals::added_english && $language_count==1) + { + # Only multilingual because of added English. + return $languages->[1]; + } + else + { + if ($languages->[1] =~ /(jp|ko|zh)/) + { + return "multiasia"; + } + else + { + return "multiwestern"; + } + } + } +} + 1; diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index 76e4ace..b4396b4 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -451,16 +451,7 @@ sub create_directories if (!($locallanguagesref eq "" )) # this will be a path like "01_49", for Profiles and ConfigurationFiles, idt-Files { - my $languagestring = $$languagesref; - - if (length($languagestring) > $installer::globals::max_lang_length ) - { - my $number_of_languages = get_number_of_langs($languagestring); - chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $languagestring = "lang_" . $number_of_languages . "_id_" . $id; - } + my $languagestring = installer::languages::get_language_directory_name($$languagesref); $path = $path . $languagestring . $installer::globals::separator; create_directory($path); commit 8d679227fafe9108c4dc6e8adff85a727e4ef3af Author: Armin Le Grand <a...@apache.org> Date: Mon Dec 2 14:14:13 2013 +0000 i123765 reset buffered DropTarget when undocking diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx index bee7abf..8992486 100644 --- a/vcl/source/window/dockwin.cxx +++ b/vcl/source/window/dockwin.cxx @@ -864,6 +864,11 @@ void DockingWindow::SetFloatingMode( sal_Bool bFloatMode ) // BorderWindow den Parent umsetzen if ( mpOldBorderWin ) mpOldBorderWin->SetParent( pWin ); + + // #123765# reset the buffered DropTargets when undocking, else it may not + // be correctly initialized + mpWindowImpl->mxDNDListenerContainer.clear(); + SetParent( pWin ); SetPosPixel( Point() ); mpWindowImpl->mpBorderWindow = pWin; commit fc561f8c79bc84b168fa339c1dc15a56a8e43b81 Author: Andre Fischer <a...@apache.org> Date: Mon Dec 2 14:12:06 2013 +0000 123595: Don't print newline as first character in line. diff --git a/solenv/bin/modules/installer/packagepool.pm b/solenv/bin/modules/installer/packagepool.pm index b6c25d4..69d9a09 100644 --- a/solenv/bin/modules/installer/packagepool.pm +++ b/solenv/bin/modules/installer/packagepool.pm @@ -163,16 +163,15 @@ sub compare_package_content if ( $identical ) { my $first = 1; - my $start = "\n"; foreach my $dest ( keys %{$newcontent} ) { if ( ! exists($oldcontent->{$dest}) ) { $identical = 0; - $installer::logger::Info->printf("%s...... file only in one package (A): %s\n", $start, $dest); + $installer::logger::Info->print("\n") if $first; + $installer::logger::Info->printf("...... file only in one package (A): %s\n", $dest); $infoline = "File only in existing pool package: $dest\n"; push(@installer::globals::pcfdiffcomment, $infoline); - if ( $first ) { $start = ""; } $first = 0; } } @@ -185,10 +184,10 @@ sub compare_package_content if ( ! exists($newcontent->{$dest}) ) { $identical = 0; - $installer::logger::Info->printf("%s...... file only in one package (B): %s\n", $start, $dest); + $installer::logger::Info->print("\n") if $first; + $installer::logger::Info->printf("...... file only in one package (B): %s\n", $dest); $infoline = "File only in new package: $dest\n"; push(@installer::globals::pcfdiffcomment, $infoline); - if ( $first ) { $start = ""; } $first = 0; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits