xref: /trunk/main/solenv/bin/modules/installer/pathanalyzer.pm (revision ef1ef8e674fabf3a541d12c6e6c14cecdfc2f9e7)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28package installer::pathanalyzer;
29
30use installer::globals;
31
32###########################################
33# Path analyzer
34###########################################
35
36sub get_path_from_fullqualifiedname
37{
38    my ($longfilenameref) = @_;
39
40    if ( $$longfilenameref =~ /\Q$installer::globals::separator\E/ )    # Is there a separator in the path? Otherwise the path is empty.
41    {
42        if ( $$longfilenameref =~ /^\s*(\S.*\S\Q$installer::globals::separator\E)(\S.+\S?)/ )
43        {
44            $$longfilenameref = $1;
45        }
46    }
47    else
48    {
49        $$longfilenameref = ""; # there is no path
50    }
51}
52
53sub make_absolute_filename_to_relative_filename
54{
55    my ($longfilenameref) = @_;
56
57    if ( $installer::globals::isunix )
58    {
59        if ( $$longfilenameref =~ /^.*\/(\S.+\S?)/ )
60        {
61            $$longfilenameref = $1;
62        }
63    }
64
65    if ( $installer::globals::iswin )
66    {
67        # Either '/' or '\'. It would be possible to use $installer::globals::separator.
68        if ( $$longfilenameref =~ /^.*[\/\\](\S.+\S?)/ )
69        {
70            $$longfilenameref = $1;
71        }
72    }
73}
74
751;
76