diff options
Diffstat (limited to 'solenv/bin/modules/installer')
-rw-r--r-- | solenv/bin/modules/installer/globals.pm | 11 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/idtglobal.pm | 10 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/registry.pm | 35 | ||||
-rw-r--r-- | solenv/bin/modules/installer/xpdinstaller.pm | 16 |
4 files changed, 69 insertions, 3 deletions
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index cde8204972f9..8579e67ed970 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -82,8 +82,15 @@ BEGIN "dgo", "kok", "mni", - "sat" - + "sat", + "ug", + "om", + "si", + "or", + "oc", + "ml", + "as", + "ast" ); @items_at_modules = ("Files", "Dirs", "Unixlinks"); @asianlanguages = ("ja", "ko", "zh-CN", "zh-TW"); diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm index 991f0025e714..e9ad0c73d249 100644 --- a/solenv/bin/modules/installer/windows/idtglobal.pm +++ b/solenv/bin/modules/installer/windows/idtglobal.pm @@ -484,6 +484,16 @@ sub write_idt_header push(@{$idtref}, $oneline); } + if ( $definestring eq "reg64" ) + { + $oneline = "Registry\tRoot\tKey\tName\tValue\tComponent_\n"; + push(@{$idtref}, $oneline); + $oneline = "s72\ti2\tl255\tL255\tL0\ts72\n"; + push(@{$idtref}, $oneline); + $oneline = "Reg64\tRegistry\n"; + push(@{$idtref}, $oneline); + } + if ( $definestring eq "createfolder" ) { $oneline = "Directory_\tComponent_\n"; diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm index 832fd213a9f0..9f9da9485677 100644 --- a/solenv/bin/modules/installer/windows/registry.pm +++ b/solenv/bin/modules/installer/windows/registry.pm @@ -216,6 +216,27 @@ sub get_registry_value } ############################################################## +# Returning 64 bit value for registry table. +############################################################## + +sub get_registry_val64 +{ + my ($registry, $allvariableshashref) = @_; + + my $value = ""; + + if ( $registry->{'Val64'} ) { $value = $registry->{'Val64'}; } + + $value =~ s/\\\"/\"/g; # no more masquerading of '"' + $value =~ s/\<progpath\>/\[OFFICEINSTALLLOCATION\]/; + $value =~ s/\[OFFICEINSTALLLOCATION\]\\/\[OFFICEINSTALLLOCATION\]/; # removing "\" after "[OFFICEINSTALLLOCATION]" + + if ( $value =~ /\%/ ) { $value = installer::worker::replace_variables_in_string($value, $allvariableshashref); } + + return $value; +} + +############################################################## # Returning component for registry table. ############################################################## @@ -286,8 +307,10 @@ sub create_registry_table my $onelanguage = ${$languagesarrayref}[$m]; my @registrytable = (); + my @reg64table = (); installer::windows::idtglobal::write_idt_header(\@registrytable, "registry"); + installer::windows::idtglobal::write_idt_header(\@reg64table, "reg64"); for ( my $i = 0; $i <= $#{$registryref}; $i++ ) { @@ -306,6 +329,7 @@ sub create_registry_table $registry{'Key'} = get_registry_key($oneregistry, $allvariableshashref); $registry{'Name'} = get_registry_name($oneregistry, $allvariableshashref); $registry{'Value'} = get_registry_value($oneregistry, $allvariableshashref); + $registry{'Val64'} = get_registry_val64($oneregistry, $allvariableshashref); $registry{'Component_'} = get_registry_component($oneregistry, $allvariableshashref); # Collecting all components @@ -343,7 +367,11 @@ sub create_registry_table my $oneline = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t" . $registry{'Name'} . "\t" . $registry{'Value'} . "\t" . $registry{'Component_'} . "\n"; - push(@registrytable, $oneline); + my $oneline64 = $registry{'Registry'} . "\t" . $registry{'Root'} . "\t" . $registry{'Key'} . "\t" + . $registry{'Name'} . "\t" . $registry{'Val64'} . "\t" . $registry{'Component_'} . "\n"; + + if ( ! ( $style =~ /\bX64_ONLY\b/ )) { push(@registrytable, $oneline); } # standard registry table for 32 Bit + if (( $style =~ /\bX64\b/ ) || ( $style =~ /\bX64_ONLY\b/ )) { push(@reg64table , $oneline64); } } # If there are added user registry keys for files collected in @@ -360,6 +388,11 @@ sub create_registry_table installer::files::save_file($registrytablename ,\@registrytable); my $infoline = "Created idt file: $registrytablename\n"; push(@installer::globals::logfileinfo, $infoline); + + $registrytablename = $basedir . $installer::globals::separator . "Reg64.idt" . "." . $onelanguage; + installer::files::save_file($registrytablename ,\@reg64table ); + my $infoline = "Created idt file: $registrytablename\n"; + push(@installer::globals::logfileinfo, $infoline); } } diff --git a/solenv/bin/modules/installer/xpdinstaller.pm b/solenv/bin/modules/installer/xpdinstaller.pm index f18853dbdcdd..e81380807a87 100644 --- a/solenv/bin/modules/installer/xpdinstaller.pm +++ b/solenv/bin/modules/installer/xpdinstaller.pm @@ -449,6 +449,21 @@ sub get_forceintoupdate_value } ################################################### +# Substituting all occurences of "<" by "<" +# and all occurences of ">" by ">" +################################################### + +sub replace_brackets_in_string +{ + my ( $string ) = @_; + + if ( $string =~ /\</ ) { $string =~ s/\</\<\;/g; } + if ( $string =~ /\>/ ) { $string =~ s/\>/\>\;/g; } + + return $string; +} + +################################################### # Substituting all occurences of "\uUXYZ" by # "&#xUXYZ;", because the use xml saxparser does # not know anything about this encoding. Therfore @@ -506,6 +521,7 @@ sub collect_lang_values if ( $write_line ) { my $value = $module->{$key}; + $value = replace_brackets_in_string($value); $value = replace_javaencoding_in_string($value); my $line = $indent . "<" . $saveentry . " lang=" . "\"" . $javalanguage . "\"" . ">" . $value . "<\/" . $saveentry . ">" . "\n"; push(@{$xpdfile}, $line); |