[Libreoffice] [PATCH] Created installer::languages::shorten_language_string
Sean McMurray
libreoffice at mcmurrays.org
Wed Oct 20 08:20:22 PDT 2010
Replaced similar code in other loactions to point to here.
Used Digest::MD5 instead of spawning a separate os process.
This patch is public domain.
---
solenv/bin/make_installer.pl | 8 +-------
solenv/bin/modules/installer/control.pm | 12 ++----------
solenv/bin/modules/installer/languages.pm | 15 +++++++++++++++
solenv/bin/modules/installer/systemactions.pm | 12 ++----------
4 files changed, 20 insertions(+), 27 deletions(-)
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index 9c6c771..6d0cfee 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -660,13 +660,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
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;
- }
+ $loglanguagestring = installer::languages::shorten_language_string($loglanguagestring);
$installer::globals::logfilename = "log_" . $installer::globals::build;
if ( $logminor ne "" ) { $installer::globals::logfilename .= "_" . $logminor; }
diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm
index 5f7c2ca..0d9e238 100644
--- a/solenv/bin/modules/installer/control.pm
+++ b/solenv/bin/modules/installer/control.pm
@@ -32,6 +32,7 @@ use installer::converter;
use installer::exiter;
use installer::files;
use installer::globals;
+use installer::languages;
use installer::pathanalyzer;
use installer::scriptitems;
use installer::systemactions;
@@ -409,16 +410,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::shorten_language_string($$languagesref);
my $productstring = $installer::globals::product;
my $productsubdir = "";
diff --git a/solenv/bin/modules/installer/languages.pm b/solenv/bin/modules/installer/languages.pm
index 84828bf..29f3b78 100644
--- a/solenv/bin/modules/installer/languages.pm
+++ b/solenv/bin/modules/installer/languages.pm
@@ -27,6 +27,7 @@
package installer::languages;
+use Digest::MD5;
use installer::converter;
use installer::existence;
use installer::exiter;
@@ -376,4 +377,18 @@ sub get_java_language
return $javalanguage;
}
+sub shorten_language_string {
+ chomp;
+ my $languagestring = shift;
+ if (length($languagestring) > $installer::globals::max_lang_length )
+ {
+ my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring);
+ my $shorter = Digest::MD5->new($languagestring);
+ $shorter =~s/ .*//g;
+ my $id = substr($shorter, 0, 8); # taking only the first 8 digits
+ $languagestring = "lang_" . $number_of_languages . "_id_" . $id;
+ }
+ return $languagestring;
+}
+
1;
diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm
index e3ef783..0c39477 100644
--- a/solenv/bin/modules/installer/systemactions.pm
+++ b/solenv/bin/modules/installer/systemactions.pm
@@ -32,6 +32,7 @@ use File::Copy;
use installer::converter;
use installer::exiter;
use installer::globals;
+use installer::languages;
use installer::pathanalyzer;
use installer::remover;
@@ -397,16 +398,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::shorten_language_string($$languagesref);
$path = $path . $languagestring . $installer::globals::separator;
create_directory($path);
--
1.6.2.5
More information about the LibreOffice
mailing list