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

Reply via email to