1*cdf0e10cSrcweir#*************************************************************************
2*cdf0e10cSrcweir#
3*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir#
5*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir#
7*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir#
9*cdf0e10cSrcweir# This file is part of OpenOffice.org.
10*cdf0e10cSrcweir#
11*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir# only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir#
15*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir#
21*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir# version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir# <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir# for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir#
26*cdf0e10cSrcweir#*************************************************************************
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir
29*cdf0e10cSrcweirpackage par2script::converter;
30*cdf0e10cSrcweir
31*cdf0e10cSrcweiruse par2script::remover;
32*cdf0e10cSrcweir
33*cdf0e10cSrcweir#############################
34*cdf0e10cSrcweir# Converter
35*cdf0e10cSrcweir#############################
36*cdf0e10cSrcweir
37*cdf0e10cSrcweirsub convert_array_to_hash
38*cdf0e10cSrcweir{
39*cdf0e10cSrcweir	my ($arrayref) = @_;
40*cdf0e10cSrcweir
41*cdf0e10cSrcweir	my ($line, $key, $value);
42*cdf0e10cSrcweir
43*cdf0e10cSrcweir	my %newhash = ();
44*cdf0e10cSrcweir
45*cdf0e10cSrcweir	for ( my $i = 0; $i <= $#{$arrayref}; $i++ )
46*cdf0e10cSrcweir	{
47*cdf0e10cSrcweir		$line = ${$arrayref}[$i];
48*cdf0e10cSrcweir
49*cdf0e10cSrcweir		if ( $line =~ /^\s*(\w+?)\s+(.*?)\s*$/ )
50*cdf0e10cSrcweir		{
51*cdf0e10cSrcweir			$key = $1;
52*cdf0e10cSrcweir			$value = $2;
53*cdf0e10cSrcweir			$newhash{$key} = $value;
54*cdf0e10cSrcweir		}
55*cdf0e10cSrcweir	}
56*cdf0e10cSrcweir
57*cdf0e10cSrcweir	return \%newhash;
58*cdf0e10cSrcweir}
59*cdf0e10cSrcweir
60*cdf0e10cSrcweirsub convert_hash_into_array
61*cdf0e10cSrcweir{
62*cdf0e10cSrcweir	my ($hashref) = @_;
63*cdf0e10cSrcweir
64*cdf0e10cSrcweir	my @array = ();
65*cdf0e10cSrcweir	my ($key, $value, $input);
66*cdf0e10cSrcweir
67*cdf0e10cSrcweir	foreach $key (keys %{$hashref})
68*cdf0e10cSrcweir	{
69*cdf0e10cSrcweir		$value = $hashref->{$key};
70*cdf0e10cSrcweir		$input = "$key = $value\n";
71*cdf0e10cSrcweir		push(@array ,$input);
72*cdf0e10cSrcweir	}
73*cdf0e10cSrcweir
74*cdf0e10cSrcweir	return \@array
75*cdf0e10cSrcweir}
76*cdf0e10cSrcweir
77*cdf0e10cSrcweirsub convert_stringlist_into_array_2
78*cdf0e10cSrcweir{
79*cdf0e10cSrcweir	my ( $input, $separator ) = @_;
80*cdf0e10cSrcweir
81*cdf0e10cSrcweir	my @newarray = ();
82*cdf0e10cSrcweir	my $first = "";
83*cdf0e10cSrcweir	my $last = "";
84*cdf0e10cSrcweir
85*cdf0e10cSrcweir	$last = $input;
86*cdf0e10cSrcweir
87*cdf0e10cSrcweir	while ( $last =~ /^\s*(.+?)\s*\Q$separator\E\s*(.+)\s*$/)	# "$" for minimal matching
88*cdf0e10cSrcweir	{
89*cdf0e10cSrcweir		$first = $1;
90*cdf0e10cSrcweir		$last = $2;
91*cdf0e10cSrcweir		par2script::remover::remove_leading_and_ending_whitespaces(\$first);
92*cdf0e10cSrcweir		if ( $first ) { push(@newarray, $first); }
93*cdf0e10cSrcweir	}
94*cdf0e10cSrcweir
95*cdf0e10cSrcweir	par2script::remover::remove_leading_and_ending_whitespaces(\$last);
96*cdf0e10cSrcweir	if ( $last ) { push(@newarray, $last); }
97*cdf0e10cSrcweir
98*cdf0e10cSrcweir	return \@newarray;
99*cdf0e10cSrcweir}
100*cdf0e10cSrcweir
101*cdf0e10cSrcweirsub convert_stringlist_into_array
102*cdf0e10cSrcweir{
103*cdf0e10cSrcweir	my ( $includestringref, $separator ) = @_;
104*cdf0e10cSrcweir
105*cdf0e10cSrcweir	my @newarray = ();
106*cdf0e10cSrcweir	my ($first, $last);
107*cdf0e10cSrcweir
108*cdf0e10cSrcweir	$last = ${$includestringref};
109*cdf0e10cSrcweir
110*cdf0e10cSrcweir	while ( $last =~ /^\s*(.+?)\s*\Q$separator\E\s*(.+)\s*$/)	# "$" for minimal matching
111*cdf0e10cSrcweir	{
112*cdf0e10cSrcweir		$first = $1;
113*cdf0e10cSrcweir		$last = $2;
114*cdf0e10cSrcweir		par2script::remover::remove_leading_and_ending_whitespaces(\$first);
115*cdf0e10cSrcweir		push(@newarray, $first);
116*cdf0e10cSrcweir	}
117*cdf0e10cSrcweir
118*cdf0e10cSrcweir	par2script::remover::remove_leading_and_ending_whitespaces(\$last);
119*cdf0e10cSrcweir	push(@newarray, $last);
120*cdf0e10cSrcweir
121*cdf0e10cSrcweir	return \@newarray;
122*cdf0e10cSrcweir}
123*cdf0e10cSrcweir
124*cdf0e10cSrcweir#############################################################################
125*cdf0e10cSrcweir# The file name contains for some files "/". If this programs runs on
126*cdf0e10cSrcweir# a windows platform, this has to be converted to "\".
127*cdf0e10cSrcweir#############################################################################
128*cdf0e10cSrcweir
129*cdf0e10cSrcweirsub convert_slash_to_backslash
130*cdf0e10cSrcweir{
131*cdf0e10cSrcweir	my ($filesarrayref) = @_;
132*cdf0e10cSrcweir
133*cdf0e10cSrcweir	my ($onefile, $filename);
134*cdf0e10cSrcweir
135*cdf0e10cSrcweir	for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
136*cdf0e10cSrcweir	{
137*cdf0e10cSrcweir		$onefile = ${$filesarrayref}[$i];
138*cdf0e10cSrcweir		$onefile->{'Name'} =~ s/\//\\/g;
139*cdf0e10cSrcweir	}
140*cdf0e10cSrcweir}
141*cdf0e10cSrcweir
142*cdf0e10cSrcweir1;
143