[Libreoffice-commits] .: soldep/bootstrp soldep/inc soldep/prj soldep/source soldep/util

Kohei Yoshida kohei at kemper.freedesktop.org
Mon Dec 13 07:52:05 PST 2010


 dev/null                                |binary
 soldep/bootstrp/appdef.cxx              |  168 -
 soldep/bootstrp/build_list_converter.pl |  892 ----------
 soldep/bootstrp/hashtbl.cxx             |  514 ------
 soldep/bootstrp/makefile.mk             |   82 
 soldep/bootstrp/minormk.cxx             |  189 --
 soldep/bootstrp/prj.cxx                 | 2717 --------------------------------
 soldep/bootstrp/prodmap.cxx             |  519 ------
 soldep/inc/appdef.hxx                   |  164 -
 soldep/inc/dtsodcmp.hrc                 |   99 -
 soldep/inc/minormk.hxx                  |   80 
 soldep/inc/prodmap.hxx                  |   86 -
 soldep/inc/soldep/connctr.hxx           |   87 -
 soldep/inc/soldep/depper.hxx            |  211 --
 soldep/inc/soldep/depwin.hxx            |   76 
 soldep/inc/soldep/graphwin.hxx          |   56 
 soldep/inc/soldep/hashobj.hxx           |   47 
 soldep/inc/soldep/hashtbl.hxx           |  207 --
 soldep/inc/soldep/objwin.hxx            |  160 -
 soldep/inc/soldep/prj.hxx               |  476 -----
 soldep/inc/soldep/sdtresid.hxx          |   54 
 soldep/inc/soldep/soldep.hxx            |  119 -
 soldep/inc/soldep/soldlg.hrc            |   79 
 soldep/inc/soldep/soldlg.hxx            |  163 -
 soldep/inc/soldep/tbox.hxx              |  105 -
 soldep/prj/build.lst                    |    5 
 soldep/prj/d.lst                        |   38 
 soldep/source/connctr.cxx               |  275 ---
 soldep/source/depapp.cxx                |  150 -
 soldep/source/depapp.hxx                |  111 -
 soldep/source/depper.cxx                |  689 --------
 soldep/source/depwin.cxx                |  167 -
 soldep/source/graphwin.cxx              |   80 
 soldep/source/hashobj.cxx               |   40 
 soldep/source/makefile.mk               |  144 -
 soldep/source/objwin.cxx                |  823 ---------
 soldep/source/sdtresid.cxx              |   51 
 soldep/source/soldep.cxx                | 1722 --------------------
 soldep/source/soldlg.cxx                |  269 ---
 soldep/source/soldlg.src                |  374 ----
 soldep/source/tbox.cxx                  |  598 -------
 soldep/util/perl.mk                     |   71 
 42 files changed, 12957 deletions(-)

New commits:
commit dff585f44222366f465ef60394f69844e4c82711
Author: Kohei Yoshida <kyoshida at novell.com>
Date:   Mon Dec 13 10:51:14 2010 -0500

    Removed soldep module - module no one uses anymore.

diff --git a/soldep/bootstrp/appdef.cxx b/soldep/bootstrp/appdef.cxx
deleted file mode 100644
index dbec58d..0000000
--- a/soldep/bootstrp/appdef.cxx
+++ /dev/null
@@ -1,168 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <appdef.hxx>
-
-const char* GetDefStandList()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_STANDLST");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( _DEF_STAND_LIST );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, _DEF_STAND_LIST );
-    }
-    return pRet;
-}
-
-
-const char* GetIniRoot()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_INIROOT");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( _INIROOT );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, _INIROOT );
-    }
-    return pRet;
-}
-
-const char* GetIniRootOld()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_INIROOTOLD");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( _INIROOT_OLD );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, _INIROOT_OLD );
-    }
-    return pRet;
-}
-
-const char* GetSSolarIni()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_SSOLARINI");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( _DEF_SSOLARINI );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, _DEF_SSOLARINI );
-    }
-    return pRet;
-}
-
-
-const char* GetSSCommon()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_SSCOMMON");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( _DEF_SSCOMMON );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, _DEF_SSCOMMON );
-    }
-    return pRet;
-}
-
-
-const char* GetBServerRoot()
-{
-    char* pRet;
-    char* pEnv = getenv("STAR_BSERVERROOT");
-    if ( pEnv )
-    {
-        int nLen = strlen( pEnv );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, pEnv );
-    }
-    else
-    {
-        int nLen = strlen( B_SERVER_ROOT );
-        pRet = ( char *) malloc( nLen + 1 );
-        (void) strcpy( pRet, B_SERVER_ROOT );
-    }
-    return pRet;
-}
-
-const char* GetEnv( const char *pVar )
-{
-    char *pRet = getenv( pVar );
-    if ( !pRet )
-        pRet = "";
-    return pRet;
-}
-
-const char* GetEnv( const char *pVar, const char *pDefault )
-{
-    char *pRet = getenv( pVar );
-    if ( !pRet )
-        return pDefault;
-    return pRet;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/soldep/bootstrp/build_list_converter.pl b/soldep/bootstrp/build_list_converter.pl
deleted file mode 100644
index b913b18..0000000
--- a/soldep/bootstrp/build_list_converter.pl
+++ /dev/null
@@ -1,892 +0,0 @@
-:
-eval 'exec perl -wS $0 ${1+"$@"}'
-    if 0;
-
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-
-#*****************************************************************************************
-# ASCII parser for the changeover of the current build.lst files to XML files            *
-# programmer: Pascal Junck, Sun Microsystems GmbH                                        *
-#*****************************************************************************************
-
-# this is the first step for the changeover of the current 'build.lst' files to the new
-# 'build.xlist'(XML) files
-# before we create the new ones we have to parse all important informations from the old files
-# important parameters are:
-# 1. 'module name'
-# 2. 'module dependency names'
-# 3. 'dependency type'
-# 4. 'job dir'
-# 5. 'depending directories'
-# 6. 'job platform'(only: 'w', 'u', 'm' and 'all')
-# 7. 'job'(only: 'nmake' means 'make')
-# 8. 'build requirements'(here called: 'restrictions')
-
-
-#################################  begin of main   #######################################
-
-use strict;
-use lib ("/home/vg119683/work/modules");
-
-use XMLBuildListParser;
-
-# get and work with each argument(build.lst files) of the commando line
-# e.g. if the user wants to parse the build.lst file(s):
-#   user input (on unix) for all modules    : 'perl -w ascii_parser.pl /so/ws/SRC680/src.m42/*/prj/build.lst'
-#   user input (on windows) for one module  : 'perl -w ascii_parser.pl O:/SRC680/src.m42/[module]/prj/build.lst'
-# get all arguments (build.lst files) of the commando line in this global variable '@buildlist_files'
-my @buildlist_files = @ARGV;
-# global variable for each file name that we want to parse in ASCII
-my $parse_file = "";
-# set the global variable '$debug' (= 1) to see all results on the terminal,
-# else (= 0) it shows nothing of the working output!
-my $debug = 0;
-
-# open the filehandle 'ERROR_LOG' for all errors
-open (ERROR_LOG, ">>ascii_parse.log")
-  or die "Error. Open the file <ascii_parse.log> wasn't successful!\n\n";
-
-# reference of the instance of a new object
-my $XMLTree;
-
-foreach (@buildlist_files)
-{
-   # get each element (= module) in '$parse_file'
-   $parse_file = $_;
-
-   # open the filehandle 'PARSE_ASCII' for each module/file that we want to parse
-   open (PARSE_ASCII, $parse_file)
-     or die "Error. Open the module <$parse_file> wasn't successful!\n\n";
-
-   # create a new object
-   $XMLTree = XMLBuildListParser->new();
-
-   # invoking of the main subroutine
-   reading_file();
-
-   # is the file name 'build.lst' in the path on the command line?
-   # if not, we can not parse and create the new 'build.xlist' file
-   if ($parse_file =~ /build(\w+)?\.lst\S*$/)
-   {
-      my $path = $parse_file;
-
-      $path =~ s/build(\w+)?\.lst\S*$/build\.xlist/;
-
-      $XMLTree->saveXMLFile($path);
-   }
-   else
-   {
-      add_errorlog_no_buildlst_file_found_statement($parse_file);
-   }
-
-   # close the current $parse_file
-   close(PARSE_ASCII);
-
-}
-# after all files were read close the errorlog file
-close(ERROR_LOG);
-
-
-###########################  begin of subroutines  #####################################
-#
-#                       global used variable: $parse_file
-#
-########################################################################################
-
-
-########################################################################################
-#       sub: reading_file
-#      gets: $_ (current file)
-#   returns: -
-########################################################################################
-sub reading_file
-{
-   # variable for the name of the current module
-   my $module_name = "";
-
-   # hashes for the infos beginning at the second line of the build.lst files
-   my %dir_of_job_platform = ();
-   my %dir_of_alias = ();
-
-   # control variable for the module dependency line of the file
-   #   like line 1 of module 'sal' (dependencies means the colon(s)) (SRC680/src.m42)
-   #   "sa      sal     :       xml2cmp NULL"
-   my $module_dependency_line_exists = 0;
-   my $module_dependency_line_was_read = 0;
-
-   # this line variables are for checking that all lines will be read
-   # counts each line
-   my $line_number = 0;
-   # for the sum of the informative lines (='module dependency line' and 'nmake' lines of the file)
-   my $info_line_sum = 0;
-   # for the sum of the no-info lines, like:
-   # job lines: 'usr1', 'get', ... and comment lines: '# ...' or empty lines
-   my $no_info_line_sum = 0;
-
-   # read all lines of the file to resolve the first alias
-   # with the matching dir to know all aliases and directories
-   # at the later second file reading
-   while (<PARSE_ASCII>)
-   {
-      # the variable for each line of a file
-      my $line = $_;
-
-      # count each line for more exact error descriptions in the log file
-      $line_number += 1;
-
-      # remember it, if this line exists
-      if ( (is_module_dependency_line($line)) && ($module_dependency_line_exists == 0) )
-      {
-         $module_dependency_line_exists = 1;
-
-         # get the name of the current module
-         $module_name = get_module_name($line);
-      }
-
-      # skip all lines, that hasn't the job 'nmake'
-      next if (!(is_nmake_line($line)));
-
-      # check that the infos (job directory, job platform and alias) exist
-      if (my ($job_dir, $job_platform, $alias) = get_alias_resolving_infos($line))
-      {
-         # prove that it's a valid job_platform
-         # and that each first alias and matching job platform exists only once
-         check_alias_and_job_platform($job_dir, $job_platform, $alias, \%dir_of_job_platform,
-                                      \%dir_of_alias, $module_name, $line_number);
-      }
-      else
-      {
-         chomp;
-         add_errorlog_unknown_format_statement($line, $module_name, $line_number);
-         next;
-      }
-   }
-   # reset the $line_number, because we count it again
-   $line_number = 0;
-
-   # read the same file again
-   seek (PARSE_ASCII,0,0);
-
-   # read each line of the file for all other informations
-   # e.g. line 8 of module 'sal'
-   # "sa  sal\systools\win32\guistdio  nmake  -     n          sa_guistdio     sa_uwinapi.n          NULL"
-   #             $job_dir              $job     $job_platform   1.$alias   2.$alias + alias platform
-   while (<PARSE_ASCII>)
-   {
-      # the variable for each line of a file
-      my $line = $_;
-
-      # count each line to check at the end of the file that all lines were read
-      # and for more exact error descriptions in the log file
-      $line_number += 1;
-
-      # is it a 'nmake' or a 'module dependency' line?
-      # if not: print this line to STDOUT,
-      #         count one to the no-info lines,
-      #         try to get the information about the module name from this line
-      #         and skip the line
-      if ( (!(is_nmake_line($line))) && (!(is_module_dependency_line($line))) )
-      {
-         my $no_info_line = show_no_info_line($line, $line_number);
-
-         $no_info_line_sum += $no_info_line;
-
-         # if no module dependency line exists get the name of the current module from another line
-         $module_name = get_module_name($line) if (!($module_name));
-
-         # skip the no-info line
-         next;
-      }
-
-      # only if the module dependency line exists and it wasn't read get the infos about it
-      if ( ($module_dependency_line_exists) && (!($module_dependency_line_was_read)) )
-      {
-         ($module_dependency_line_was_read, $info_line_sum) = get_module_dependency_line_infos
-                                                              ($line, $module_name, $line_number);
-      }
-
-      # get all 'nmake' line infos
-      my $info_line = get_nmake_line_infos($line, \%dir_of_alias, \%dir_of_job_platform,
-                                           $module_name, $line_number);
-
-      # count the info lines;
-      $info_line_sum += $info_line;
-   }
-
-   if ($debug == 1)
-   {
-      # show the sums of the info and no-info lines
-      lines_sums_output($module_name, $line_number, $info_line_sum, $no_info_line_sum);
-   }
-}
-
-########################################################################################
-#       sub: is_module_dependency_line
-#      gets: $line
-#   returns: 1 (true) or 0 (false)
-########################################################################################
-sub is_module_dependency_line
-{
-   my $line = shift;
-
-   # if the module dpendency line exists return 1, otherwise 0
-   ($line =~ /^\w+\s+\S+\s+:+\s+/)
-   ? return 1
-   : return 0;
-}
-
-########################################################################################
-#       sub: is_nmake_line
-#      gets: $line
-#   returns: '1' (true) or '0' (false)
-########################################################################################
-sub is_nmake_line
-{
-   my $line = shift;
-
-   # these lines are NO nmake lines:
-   # 1. a empty line
-   # 2. a comment line (perhaps with the job 'nmake')
-   #    like line 20 of module 'bridges' (SRC680/src.m42)
-   #    "#br  bridges\source\cli_uno  nmake  -  w,vc7  br_cli_uno br_unotypes NULL========= "
-   # 3. the module dependency line
-   #    like line 1 of module 'sal' (dependencies means the colon(s)) (SRC680/src.m42)
-   #    "sa      sal     :       xml2cmp N                                    ULL"
-   # 4. a 'p' job platform line (for OS2)
-   # 5. a line with a job, which is not 'nmake'
-   ($line =~ (/^[^\s+\#]/) && (!(/\s+:+\s+/)) && (!(/\s+p\s+/)) && (/\bnmake\b/) )
-   ? return 1
-   : return 0;
-}
-
-########################################################################################
-#       sub: get_alias_resolving_infos
-#      gets: $line
-#   returns: $job_dir, $job_platform, $alias
-########################################################################################
-sub get_alias_resolving_infos
-{
-   my $line = shift;
-
-   if ($line =~ /^\w+\s+(\S+)\s+\w+\s+\-\s+(\w+)\,?(\w+)?\s+(\S+)\s+/)
-   {
-      # get the current work directory
-      my $temp_job_dir = $1;
-
-      my $job_dir = change_job_directory($temp_job_dir);
-
-      # get the job platform of the current job
-      # if it is a 'n' job platform transform it to 'w'
-      # because 'n' can be used now as 'w' (both means windows)
-      my $job_platform = $2;
-      $job_platform = "w" if($job_platform eq "n");
-
-      # get the first alias in each line
-      my $alias = $4;
-
-      return ($job_dir, $job_platform, $alias);
-   }
-   return (undef, undef, undef);
-}
-
-########################################################################################
-#       sub: change_job_directory
-#      gets: $job_dir
-#   returns: $changed_job_dir
-########################################################################################
-# we don't need the module name and the first '\' in the current directory
-sub change_job_directory
-{
-   my $changed_job_dir = shift;
-
-   # ignore the module name
-   $changed_job_dir =~ s/^\w+//;
-   # change all other '\' against the '/' of the current dir
-   $changed_job_dir =~ s/\\/\//g;
-
-   # get only a "/" if we are in the root directory
-   $changed_job_dir = "/" if ($changed_job_dir eq "");
-
-   return $changed_job_dir;
-}
-
-########################################################################################
-#       sub: check_alias_and_job_platform
-#      gets: $job_dir, $job_platform, $alias, $dir_of_job_platform_ref,
-#            $dir_of_alias_ref, $module_name, $line_number
-#   returns: -
-########################################################################################
-# get it in the hash only if it is a valid job platform,
-# like 'w', 'u', 'm' and 'n'
-# 'all' is also valid but it doesn't exist in an alias platform(!)
-sub check_alias_and_job_platform
-{
-   my ($job_dir, $job_platform, $alias, $dir_of_job_platform_ref,
-       $dir_of_alias_ref, $module_name, $line_number) = @_;
-
-   # is it a valid job_platform?
-   if ($job_platform =~ /(w|u|m|n|all)/)
-   {
-      # get only the 'w', 'u', 'm' and 'n' based job platforms
-      if ($job_platform =~ /[wumn]/)
-      {
-         # doesn't the key already exist?
-         (!(exists $$dir_of_job_platform_ref{$job_platform.$alias}))
-           # get the first alias with the matching job platform in the hash
-         ? get_alias_and_job_platform($job_platform, $alias, $dir_of_job_platform_ref)
-           # this is a line with a redundant alias and job platform
-         : add_errorlog_alias_redundancy_statement($module_name, $alias, $job_platform, $line_number);
-      }
-      if (!(exists $$dir_of_alias_ref{$alias}))
-      {
-         # get each first alias with the matching job platform
-         get_alias_and_matching_directory($dir_of_alias_ref, $alias, $job_dir);
-      }
-   }
-   # it's not a valid job platform
-   else
-   {
-      add_errorlog_invalid_platform_statement($module_name, $job_platform, $line_number);
-   }
-}
-
-########################################################################################
-#       sub: get_alias_and_job_platform
-#      gets: $job_platform, $alias, $dir_of_job_platform_ref
-#   returns: -
-########################################################################################
-# get the the job platform and the first alias as a unique key
-# and the job platform as value of the hash
-# it's for checking later that the alias platform is equal to the job platform
-#   e.g.: line 6 + 7 of the module 'gtk' (SRC680/src.m42)
-#   "gt  gtk\pkgconfig  nmake  -  u   gt_pkg   NULL"
-#   "gt  gtk\glib       nmake  -  u   gt_glib gt_pkg.u NULL"
-#   the alias 'gt_pkg' has the directory 'gtk\pkgconfig' (we need only 'pkgconfig')
-#   and it has the job platform 'u' - compare it with the alias platform 'gt_pkg.u'
-sub get_alias_and_job_platform
-{
-   my ($job_platform, $alias, $dir_of_job_platform_ref) = @_;
-
-   # key = 'job platform' and 'first alias'   =>   value = 'job platform'
-   $$dir_of_job_platform_ref{$job_platform.$alias} = $job_platform;
-}
-
-########################################################################################
-#       sub: get_alias_and_matching_directory
-#      gets: $dir_of_alias_ref, $alias, $job_dir
-#   returns: -
-########################################################################################
-# fill the hash with the first alias and the matching directory
-#   e.g. line 14 of module 'setup2' (SRC680/src.m42)
-#   "se  setup2\win\source\unloader   nmake   -   w   se_wulo se_unotypes NULL"
-#   key = 'se_wulo'     =>    value = 'win/source/unloader'
-sub get_alias_and_matching_directory
-{
-   my ($dir_of_alias_ref, $alias, $job_dir) = @_;
-
-   #     key = 'first alias'  => value = 'job directory'
-   $$dir_of_alias_ref{$alias} = $job_dir;
-}
-
-########################################################################################
-#       sub: show_no_info_line
-#      gets: $line, $line_number
-#   returns: $no_info_line
-########################################################################################
-sub show_no_info_line
-{
-   my ($line, $line_number) = @_;
-   my $no_info_line += 1;
-
-   chomp($line);
-
-   print"Ignore line <$line_number>:\n\"$line\"\n\n" if ($debug);
-
-   return $no_info_line;
-}
-
-########################################################################################
-#       sub: get_module_name
-#      gets: $line
-#   returns: $module_name
-########################################################################################
-sub get_module_name
-{
-   my $line = shift;
-   my $module_name = "";
-
-   if ($line =~ /^\w+\s+([\w\.\-]+)\\?/)
-   {
-      $module_name = $1;
-   }
-
-   # set the 'module name' in the data structure tree
-   $XMLTree->setModuleName($module_name);
-
-   return $module_name;
-}
-
-########################################################################################
-#       sub: get_module_dependency_line_infos
-#      gets: $line, $module_name, $line_number
-#   returns: $module_dependency_line_was_read, $info_line_sum
-########################################################################################
-# get the informations about the module dependency line
-# like line 1 of module 'sal' (SRC680/src.m42)
-#    "sa     sal              :                       xml2cmp             NULL"
-#        $module_name   $module_dependency    @module_dependency_names
-sub get_module_dependency_line_infos
-{
-   my ($line, $module_name, $line_number) = @_;
-   my $module_dependency = "";
-   my @module_dependency_names = ();
-   my %dep_modules_and_products = ();
-   my $product = "";
-
-   my $module_dependency_line_was_read = 1;
-   my $info_line_sum = 1;
-
-   if ($debug)
-   {
-      print"\nline number               : <$line_number>\n";
-      print"module-name               : <$module_name>\n";
-   }
-
-   # get the dependencies
-   if ($line =~ /\s+(:+)\s+/)
-   {
-      $module_dependency = $1;
-      print"module-dependency         : <$module_dependency>\n" if ($debug);
-
-      # transform the dependency type to the corresponding tag name
-      if ($module_dependency eq ":")
-      {
-         $module_dependency = "md-simple";
-      }
-      elsif ($module_dependency eq "::")
-      {
-         $module_dependency = "md-always";
-      }
-      elsif ($module_dependency eq ":::")
-      {
-         $module_dependency = "md-force";
-      }
-   }
-
-   # get a list of all depending module names
-   if ($line =~ /:+\s+([\S\s]+)\s+NULL/)
-   {
-      @module_dependency_names = split(/\s+/, $1);
-
-      foreach my $module (@module_dependency_names)
-      {
-         # check whether that there is another product (as "all") of a module
-         if ($module =~ /(\S+):+(\S+)/)
-         {
-            $dep_modules_and_products{$2} = $1;
-         }
-         else
-         {
-            $dep_modules_and_products{$module} = "all";
-         }
-      }
-   }
-
-   # add the dependency module names, the module dependency type and the product to the data structure
-   foreach my $module (sort keys %dep_modules_and_products)
-   {
-      print"module-dependency-name(s) : key <$module>  value <".$dep_modules_and_products{$module}.">\n" if ($debug);
-
-      $XMLTree->addModuleDependencies($module, $module_dependency, $dep_modules_and_products{$module});
-   }
-
-   return ($module_dependency_line_was_read, $info_line_sum);
-}
-
-########################################################################################
-#       sub: get_nmake_line_infos
-#      gets: $line, \%dir_of_alias, \%dir_of_job_platform, $module_name, $line_number
-#   returns: $info_line
-########################################################################################
-# get all infos about the 'nmake' lines
-# e.g. line 8 of module 'sal'
-# "sa  sal\systools\win32\guistdio  nmake  -     n         sa_guistdio     sa_uwinapi.n          NULL"
-#             $job_dir              $job     $job_platform  1.$alias   2.$alias + alias platform
-sub get_nmake_line_infos
-{
-   my ($line, $dir_of_alias_ref, $dir_of_job_platform_ref, $module_name, $line_number) = @_;
-   my $directories_ref = "";
-   my $info_line = 0;
-
-   # get the infos about the 'nmake' lines
-   if ($line =~ /^\w+\s+(\S+)\s+(\w+)\s+\-\s+(\w+)\,?(\S+)?/)
-   {
-      # get the current working directory
-      my $temp_job_dir = $1;
-      my $job_dir = change_job_directory($temp_job_dir);
-
-      # get the job
-      my $job = $2;
-      $job = "make" if ($job eq "nmake");
-
-      # get the job platform of the current job
-      # if it is a 'n' job platform transform it to 'wnt'
-      # available values are: 'wnt', 'unx', 'mac' or 'all'
-      my $job_platform = $3;
-      $job_platform = change_job_platform_name($job_platform);
-
-      # get the first alias in each line
-      my $restriction = $4;
-      my %build_req = ( "$restriction" => "$job_platform") if ($restriction && $job_platform);
-
-
-      # get all aliases (but not the first) in an array
-      my $aliases_ref = get_aliases($line);
-
-      # filter the list of aliases, which has a 'p' job platform
-      # and transform a 'n' ending alias platform to a 'w' ending alias platform
-      filter_aliases($aliases_ref);
-
-      # resolve all aliases (alias[.job platform] => matching directory)
-      $directories_ref = resolve_aliases($aliases_ref, $dir_of_alias_ref,
-                                         $dir_of_job_platform_ref, $module_name, $line_number);
-
-      # count the informative lines
-      $info_line = 1;
-
-      $XMLTree->addJob($job_dir, $job, $job_platform, $directories_ref, \%build_req);
-
-      # show the infos, that we know about each line
-      if ($debug == 1)
-      {
-         show_line_infos($line_number, $job_dir, $job, $job_platform, $restriction, $aliases_ref, $directories_ref);
-      }
-   }
-   return $info_line;
-}
-
-########################################################################################
-#       sub: change_job_platform_name
-#      gets: $job_platform
-#   returns: $job_platform
-########################################################################################
-sub change_job_platform_name
-{
-   my $job_platform = shift;
-
-   $job_platform = "wnt" if($job_platform eq "n" || $job_platform eq "w");
-   $job_platform = "unx" if($job_platform eq "u");
-   $job_platform = "mac" if($job_platform eq "m");
-
-   return $job_platform;
-}
-
-########################################################################################
-#       sub: get_aliases
-#      gets: $_ (current line)
-#   returns: \@aliases
-########################################################################################
-# get all aliases of the line in an array
-sub get_aliases
-{
-   my $line = shift;
-   my @aliases = ();
-
-   # get all aliases in an array (but cut out the first alias)
-   if ($line =~ /\-\s+[\w+\,]+\s+([\S\s]+)\s+NULL$/)
-   {
-      print"\nall job aliases           : <$1>\n" if ($debug);
-
-      @aliases = split /\s+/, $1;
-
-      # we don't need the first alias (it stands for the current job directory)
-      shift @aliases;
-   }
-   return \@aliases;
-}
-
-########################################################################################
-#       sub: filter_aliases
-#      gets: $aliases_ref
-#   returns: -
-########################################################################################
-# filter all aliases, because we only need the 'w', 'u' and 'm' job platform based aliases
-sub filter_aliases
-{
-   my $aliases_ref = shift;
-
-   # get the highest index of the array (number of elements of the array - 1)
-   # also works: my $index = scalar(@$aliases_ref)-1;
-   my $index = $#{@{$aliases_ref}};
-
-   for (; $index >= 0; $index--)
-   {
-      # filter the 'p' job platform based aliases from '@aliases'
-      splice(@$aliases_ref, $index, 1) if ($$aliases_ref[$index] =~ /\.p$/);
-
-      # transform a '.n' ending alias platform to '.w' ending alias platform
-      if ($$aliases_ref[$index] =~ /\.n$/)
-      {
-         $$aliases_ref[$index] =~ s/\.n$/\.w/;
-         splice(@$aliases_ref, $index, 1, $$aliases_ref[$index]);
-      }
-   }
-}
-
-########################################################################################
-#       sub: resolve_aliases
-#      gets: $aliases_ref, $dir_of_alias_ref, $dir_of_job_platform_ref,
-#            $module_name, $line_number
-#   returns: \@directories
-########################################################################################
-# here we get each alias with the matching job directory
-sub resolve_aliases
-{
-   my ($aliases_ref, $dir_of_alias_ref, $dir_of_job_platform_ref, $module_name, $line_number) = @_;
-
-   my @directories = ();
-   my ($alias_platform, $alias, $temp_alias) = "";
-
-   # resolving all directory aliases
-   foreach $temp_alias (@$aliases_ref)
-   {
-      ($alias, $alias_platform) = compare_job_platform_with_alias_platform
-                                  ($temp_alias, $dir_of_job_platform_ref, $module_name, $line_number);
-
-      # does the alias exist?
-      if (exists $$dir_of_alias_ref{$alias})
-      {
-         # then get the matching directory in the array
-         push (@directories, $$dir_of_alias_ref{$alias});
-      }
-      else
-      {
-         add_errorlog_no_directory_of_alias_statement($module_name, $alias, $line_number);
-      }
-   }
-   return \@directories;
-}
-
-########################################################################################
-#       sub: compare_job_platform_with_alias_platform
-#      gets: $alias, $dir_of_job_platform_ref, $module_name, $line_number
-#   returns: $alias
-########################################################################################
-sub compare_job_platform_with_alias_platform
-{
-   my ($alias, $dir_of_job_platform_ref, $module_name, $line_number) = @_;
-
-   my $alias_platform = "";
-
-   # compare the alias platform (with a dot and an ending letter, like "al_alib.u")
-   # with the job platform of the line in which this alias was resolved
-   if ($alias =~ /\.([wum])$/)
-   {
-      $alias_platform = $1;
-
-      # don't memorize the ending dot and letter
-      $alias =~ s/\.\w$//;
-
-      # if the value(= job platform) of the hash or the alias platform has no value
-      # set it to "no valid value"
-      if (!(exists $$dir_of_job_platform_ref{$alias_platform.$alias}))
-      {
-         $$dir_of_job_platform_ref{$alias_platform.$alias} = "no valid value";
-      }
-      $alias_platform = "no valid value" if (!($alias_platform));
-
-      # are the job platform and the alias platform equal?
-      if ($$dir_of_job_platform_ref{$alias_platform.$alias} ne $alias_platform)
-      {
-         add_errorlog_not_equal_platforms_statement
-         ($module_name, $alias, $alias_platform, $dir_of_job_platform_ref, $line_number);
-      }
-   }
-   return ($alias, $alias_platform);
-}
-
-########################################################################################
-#       sub: show_line_infos
-#      gets: $line_number, $job_dir, $job, $job_platform, $restriction,
-#            $aliases_ref, $directories_ref
-#   returns: -
-########################################################################################
-# print the infos about each line
-sub show_line_infos
-{
-   my ($line_number, $job_dir, $job, $job_platform, $restriction, $aliases_ref, $directories_ref) = @_;
-
-   print"line number               : <$line_number>\n";
-   print"job directory             : <$job_dir>\n";
-   print"job                       : <$job>\n";
-   print"job platform              : <$job_platform>\n" if ($job_platform =~ /(w|u|m|all)/);
-   print"restriction               : <$restriction>\n" if ($restriction);
-   print"alias dependencies        : <@$aliases_ref>\n";
-   print"directory dependencies    : <@$directories_ref>\n\n";
-}
-
-########################################################################################
-#       sub: lines_sums_output
-#      gets: $module_name, $line_number, $info_line_sum, $no_info_line_sum
-#   returns: -
-########################################################################################
-sub lines_sums_output
-{
-   # this line variables are for checking that all lines will be read:
-   my ($module_name, $line_number, $info_line_sum, $no_info_line_sum) = @_;
-   my $lines_sum = 0;
-
-   add_errorlog_no_module_name_statement() if (!($module_name));
-
-   # were all lines read? and is the checksum okay?
-   $lines_sum = $info_line_sum + $no_info_line_sum;
-   if ($lines_sum == $line_number)
-   {
-      print"All $line_number line(s) of module <$module_name> were read and checked!\n\n";
-   }
-   else
-   {
-      add_errorlog_different_lines_sums_statement($module_name);
-   }
-
-   print"module: <$module_name>\n".
-        "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n".
-        "   info line(s) sum    =  $info_line_sum\n".
-        "no-info line(s) sum    =  $no_info_line_sum\n".
-        "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n".
-        "  total line(s) sum    =  $line_number\n\n\n";
-}
-
-
-############################ ERROR_LOG subroutines #####################################
-
-
-########################################################################################
-#       sub: add_errorlog_invalid_job_platform_statement
-#      gets: $module_name, $platform, $line_number
-#   returns: -
-########################################################################################
-sub add_errorlog_invalid_job_platform_statement
-{
-   my ($module_name, $job_platform, $line_number) = @_;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file> line <$line_number>.\n".
-                   "The job platform <$job_platform> is not valid.\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_not_equal_platforms_statement
-#      gets: $module_name, $alias, $alias_platform, $dir_of_job_platform_ref, $line_number
-#   returns: -
-########################################################################################
-sub add_errorlog_not_equal_platforms_statement
-{
-   my ($module_name, $alias, $alias_platform, $dir_of_job_platform_ref, $line_number) = @_;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file> line <$line_number>.\n".
-                   "The alias platform <$alias.$alias_platform> is not equal ".
-                   "with the job platform <$$dir_of_job_platform_ref{$alias_platform.$alias}>.\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_no_directory_of_alias_statement
-#      gets: $module_name, $alias, $line_number
-#   returns: -
-########################################################################################
-sub add_errorlog_no_directory_of_alias_statement
-{
-   my ($module_name, $alias, $line_number) = @_;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file> line <$line_number>.\n".
-                   "The directory of the alias <$alias> doesn't exist!\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_no_module_name_statement
-#      gets: -
-#   returns: -
-########################################################################################
-sub add_errorlog_no_module_name_statement
-{
-   print ERROR_LOG "Error. No module name found in dir/file <$parse_file>.\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_alias_redundancy_statement
-#      gets: $module_name, $alias, $job_platform, $line_number
-#   returns: -
-########################################################################################
-sub add_errorlog_alias_redundancy_statement
-{
-   my ($module_name, $alias, $job_platform, $line_number)= @_;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file> line <$line_number>.\n".
-                   "The alias <$alias> with the job platform <$job_platform> is redundant.\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_unknown_format_statement
-#      gets: $module_name, $line_number
-#   returns: -
-########################################################################################
-sub add_errorlog_unknown_format_statement
-{
-   my ($line, $module_name, $line_number) = @_;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file> line <$line_number>.".
-                   "\nUnknown format:\n\"$line\"\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_different_lines_sums_statement
-#      gets: $module_name
-#   returns: -
-########################################################################################
-sub add_errorlog_different_lines_sums_statement
-{
-   my $module_name = shift;
-
-   print ERROR_LOG "Error in module <$module_name> of dir/file <$parse_file>.\n".
-                   "The sums of all info and no-info lines are not correct!\n\n";
-}
-
-########################################################################################
-#       sub: add_errorlog_no_buildlst_file_found_statement
-#      gets: $parse_file
-#   returns: -
-########################################################################################
-sub add_errorlog_no_buildlst_file_found_statement
-{
-   my $parse_file = shift;
-
-   print ERROR_LOG "Error in command line argument <$parse_file>.\n".
-                   "File 'build.lst' not found!\n";
-}
-
-############################# end of the subroutines ###################################
diff --git a/soldep/bootstrp/hashtbl.cxx b/soldep/bootstrp/hashtbl.cxx
deleted file mode 100644
index 866994b..0000000
--- a/soldep/bootstrp/hashtbl.cxx
+++ /dev/null
@@ -1,514 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <tools/gen.hxx>
-#include <tools/debug.hxx>
-#include <soldep/hashtbl.hxx>
-
-// ------------------------------------------------------------- 
-// class HashItem
-//
-class HashItem
-{
-    enum ETag { TAG_EMPTY, TAG_USED, TAG_DELETED };   
-
-    void*   m_pObject;
-    ETag    m_Tag;
-    ByteString  m_Key;
-
-public:
-    HashItem() { m_Tag = TAG_EMPTY; m_pObject = NULL; }
-
-    BOOL IsDeleted() const
-    {   return m_Tag == TAG_DELETED; }
-    
-    BOOL IsEmpty() const
-    {   return m_Tag == TAG_DELETED || m_Tag == TAG_EMPTY; } 
-
-    BOOL IsFree() const
-    {   return m_Tag == TAG_EMPTY; }
-    
-    BOOL IsUsed() const
-    {   return m_Tag == TAG_USED; }
-
-    void Delete()
-    { m_Tag = TAG_DELETED; m_Key = ""; m_pObject = NULL; }
-
-    ByteString const& GetKey() const
-    { return m_Key; }
-
-    void* GetObject() const
-    { return m_pObject; }
-
-    void SetObject(ByteString const Key, void *pObject)
-    { m_Tag = TAG_USED; m_Key = Key; m_pObject = pObject; }
-};
-
-#define MIN(a,b) (a)<(b)?(a):(b)
-#define MAX(a,b) (a)>(b)?(a):(b)
-
-// ------------------------------------------------------------- 
-// class HashTable
-//
-
-/*static*/ double HashTable::m_defMaxLoadFactor = 0.8;
-/*static*/ double HashTable::m_defDefGrowFactor = 2.0;
-
-HashTable::HashTable(ULONG lSize, BOOL bOwner, double dMaxLoadFactor, double dGrowFactor)
-{
-    m_lSize          = lSize;
-    m_bOwner         = bOwner;
-    m_lElem          = 0;
-    m_dMaxLoadFactor = MAX(0.5,MIN(1.0,dMaxLoadFactor));  // 0.5 ... 1.0
-    m_dGrowFactor    = MAX(1.3,MIN(5.0,dGrowFactor));     // 1.3 ... 5.0    
-    m_pData          = new HashItem [lSize];
-
-// Statistik
-#ifdef DBG_UTIL
-    m_aStatistic.m_lSingleHash = 0;
-    m_aStatistic.m_lDoubleHash = 0;
-    m_aStatistic.m_lProbe	   = 0;
-#endif
-}
-
-HashTable::~HashTable()
-{
-    // Wenn die HashTable der Owner der Objecte ist,
-    // müssen die Destruktoren separat gerufen werden.
-    // Dies geschieht über die virtuelle Methode OnDeleteObject()
-    //
-    // Problem: Virtuelle Funktionen sind im Destructor nicht virtuell!!
-    //          Der Code muß deshalb ins Macro
-
-    /*
-    if (m_bOwner)
-    {
-        for (ULONG i=0; i<GetSize(); i++)
-        {
-            void *pObject = GetObjectAt(i);
-
-            if (pObject != NULL)
-                OnDeleteObject(pObject());
-        }
-    }
-    */
-
-    // Speicher für HashItems freigeben
-    delete [] m_pData;
-}
-
-void* HashTable::GetObjectAt(ULONG lPos) const
-// Gibt Objekt zurück, wenn es eines gibt, sonst NULL;
-{
-    DBG_ASSERT(lPos<m_lSize, "HashTable::GetObjectAt()");
-    
-    HashItem *pItem = &m_pData[lPos];
-
-    return pItem->IsUsed() ? pItem->GetObject() : NULL;
-}
-
-void HashTable::OnDeleteObject(void*)
-{
-    DBG_ERROR("HashTable::OnDeleteObject(void*) nicht überladen");
-}
-
-ULONG HashTable::Hash(ByteString const& Key) const
-{
-    /*
-    ULONG lHash = 0;
-    ULONG i,n;
-    
-    for (i=0,n=Key.Len(); i<n; i++)
-    {   
-        lHash *= 256L;
-        lHash += (ULONG)(USHORT)Key.GetStr()[i];
-        lHash %= m_lSize;
-    }
-    return lHash;
-    */
-
-    // Hashfunktion von P.J. Weinberger
-    // aus dem "Drachenbuch" von Aho/Sethi/Ullman
-    ULONG i,n;
-    ULONG h = 0;
-    ULONG g = 0;
-    
-    for (i=0,n=Key.Len(); i<n; i++)
-    {
-        h = (h<<4) + (ULONG)(USHORT)Key.GetBuffer()[i];
-        g = h & 0xf0000000;
-
-        if (g != 0)
-        {
-            h = h ^ (g >> 24);
-            h = h ^ g;
-        }
-    }
-
-    return h % m_lSize;
-} 
-
-ULONG HashTable::DHash(ByteString const& Key, ULONG lOldHash) const
-{
-    ULONG lHash = lOldHash;
-    ULONG i,n;
-    
-    for (i=0,n=Key.Len(); i<n; i++)
-    {   
-        lHash *= 256L;
-        lHash += (ULONG)(USHORT)Key.GetBuffer()[i];
-        lHash %= m_lSize;
-    }
-    return lHash;
-
-/*    return 
-        (
-            lHash
-        +	(char)Key.GetStr()[0] * 256
-        +	(char)Key.GetStr()[Key.Len()-1]
-        +	1
-        ) 
-        % m_lSize;
-*/
-}
-
-ULONG HashTable::Probe(ULONG lPos) const
-// gibt den Folgewert von lPos zurück
-{
-    lPos++; if (lPos==m_lSize) lPos=0;
-    return lPos;
-}
- 
-BOOL HashTable::IsFull() const
-{   
-    return m_lElem>=m_lSize; 
-}
-
-BOOL HashTable::Insert(ByteString const& Key, void* pObject)
-// pre:  Key ist nicht im Dictionary enthalten, sonst return FALSE
-//       Dictionary ist nicht voll, sonst return FALSE
-// post: pObject ist unter Key im Dictionary; m_nElem wurde erhöht
-{
-    SmartGrow();
-
-    if (IsFull())
-    {
-        DBG_ERROR("HashTable::Insert() is full");
-        return FALSE;
-    }
-
-    if (FindPos(Key) != NULL )
-        return FALSE;
-
-    ULONG     lPos  = Hash(Key);
-    HashItem *pItem = &m_pData[lPos];
-
-    // first hashing
-    //
-    if (pItem->IsEmpty())
-    {                    
-        pItem->SetObject(Key, pObject);
-        m_lElem++;
-
-        #ifdef DBG_UTIL
-        m_aStatistic.m_lSingleHash++;
-        #endif
-
-        return TRUE;
-    } 
-                          
-    // double hashing
-    //
-    lPos  = DHash(Key,lPos);
-    pItem = &m_pData[lPos];
-    
-    if (pItem->IsEmpty())
-    {
-        pItem->SetObject(Key, pObject);
-        m_lElem++;
-
-        #ifdef DBG_UTIL
-        m_aStatistic.m_lDoubleHash++;
-        #endif
-
-        return TRUE;
-    }
-
-    // linear probing
-    //                  
-    do
-    {
-        #ifdef DBG_UTIL
-        m_aStatistic.m_lProbe++;
-        #endif
-
-        lPos  = Probe(lPos);
-        pItem = &m_pData[lPos];
-    }
-    while(!pItem->IsEmpty());
-
-    pItem->SetObject(Key, pObject);
-    m_lElem++;
-    return TRUE;
-}
-
-HashItem* HashTable::FindPos(ByteString const& Key) const
-// sucht den Key; gibt Refrenz auf den Eintrag (gefunden)
-// oder NULL (nicht gefunden) zurück
-//
-// pre:  -
-// post: -
-{
-    // first hashing
-    //
-    ULONG     lPos  = Hash(Key);
-    HashItem *pItem = &m_pData[lPos];
-    
-    if (pItem->IsUsed()
-    &&  pItem->GetKey() == Key)
-    {
-        return pItem;
-    }   
-                        
-    // double hashing
-    //
-    if (pItem->IsDeleted() || pItem->IsUsed())
-    {
-        lPos  = DHash(Key,lPos);
-        pItem = &m_pData[lPos];
-            
-        if (pItem->IsUsed()
-        &&  pItem->GetKey() == Key)
-        {
-            return pItem;
-        }        
-
-        // linear probing
-        //                  
-        if (pItem->IsDeleted() || pItem->IsUsed())
-        { 
-            ULONG n      = 0;
-            BOOL  bFound = FALSE;
-            BOOL  bEnd   = FALSE;
-            
-            do
-            {                      
-                n++;
-                lPos   = Probe(lPos);
-                pItem  = &m_pData[lPos];
-
-                bFound =  pItem->IsUsed() 
-                       && pItem->GetKey() == Key;
-                       
-                bEnd = !(n<m_lSize || pItem->IsFree());       
-            }
-            while(!bFound && !bEnd);
-            
-            return bFound ? pItem : NULL;       
-        }
-    }      
-
-    // nicht gefunden
-    //
-    return NULL;
-}   
-
-void* HashTable::Find(ByteString const& Key) const
-// Gibt Verweis des Objektes zurück, das unter Key abgespeichert ist,
-// oder NULL wenn nicht vorhanden.
-//
-// pre:  -
-// post: -
-{                  
-    HashItem *pItem = FindPos(Key);
-    
-    if (pItem != NULL
-    &&  pItem->GetKey() == Key)
-        return pItem->GetObject();
-    else
-        return NULL;
-}
-
-void* HashTable::Delete(ByteString const& Key)
-// Löscht Objekt, das unter Key abgespeichert ist und gibt Verweis
-// darauf zurück.
-// Gibt NULL zurück, wenn Key nicht vorhanden ist.
-//
-// pre:  -
-// post: Objekt ist nicht mehr enthalten; m_lElem dekrementiert
-//       Wenn die HashTable der Owner ist, wurde das Object gelöscht
-{
-    HashItem *pItem = FindPos(Key);
-    
-    if (pItem != NULL
-    &&  pItem->GetKey() == Key)
-    {
-        void* pObject = pItem->GetObject();
-
-        if (m_bOwner)
-            OnDeleteObject(pObject);
-
-        pItem->Delete();
-        m_lElem--;
-        return pObject;
-    }
-    else
-    {
-        return NULL;
-    }
-}
-
-double HashTable::CalcLoadFactor() const
-// prozentuale Belegung der Hashtabelle berechnen
-{
-    return double(m_lElem) / double(m_lSize);
-}
-
-void HashTable::SmartGrow()
-// Achtung: da die Objekte umkopiert werden, darf die OnDeleteObject-Methode
-//          nicht gerufen werden
-{
-    double dLoadFactor = CalcLoadFactor();
-
-    if (dLoadFactor <= m_dMaxLoadFactor)
-        return; // nothing to grow 
-
-    ULONG     lOldSize = m_lSize;              // alte Daten sichern
-    HashItem* pOldData = m_pData;              
-
-    m_lSize = ULONG (m_dGrowFactor * m_lSize); // neue Größe
-    m_pData = new HashItem[m_lSize];           // neue Daten holen
-
-    // kein Speicher:
-    // Zustand "Tabelle voll" wird in Insert abgefangen
-    //
-    if (m_pData == NULL)
-    {
-        m_lSize = lOldSize;
-        m_pData = pOldData;
-        return;
-    }
-
-    m_lElem = 0;                               // noch keine neuen Daten 
-
-    // Umkopieren der Daten
-    //
-    for (ULONG i=0; i<lOldSize; i++)
-    {
-        HashItem *pItem = &pOldData[i];
-
-        if (pItem->IsUsed())
-            Insert(pItem->GetKey(),pItem->GetObject());
-    }
-
-    delete [] pOldData;
-}
-
-// Iterator ---------------------------------------------------------
-//
-
-HashTableIterator::HashTableIterator(HashTable const& aTable)
-: m_aTable(aTable)
-{
-    m_lAt = 0;
-}
-
-void* HashTableIterator::GetFirst()
-{
-    m_lAt = 0;
-    return FindValidObject(TRUE /* forward */);
-}
-
-void* HashTableIterator::GetLast()
-{
-    m_lAt = m_aTable.GetSize() -1;
-    return FindValidObject(FALSE /* backward */);
-}
-
-void* HashTableIterator::GetNext()
-{
-    if (m_lAt+1 >= m_aTable.GetSize())
-        return NULL;
-
-    m_lAt++;
-    return FindValidObject(TRUE /* forward */);
-}
-
-void* HashTableIterator::GetPrev()
-{
-    if (m_lAt <= 0)
-        return NULL;
-
-    m_lAt--;
-    return FindValidObject(FALSE /* backward */);
-}
-
-void* HashTableIterator::FindValidObject(BOOL bForward) 
-// Sucht nach einem vorhandenen Objekt ab der aktuellen
-// Position.
-//
-// pre:  ab inkl. m_lAt soll die Suche beginnen
-// post: if not found then
-//			if bForward == TRUE then
-//				m_lAt == m_aTable.GetSize() -1
-//			else
-//				m_lAt == 0
-//		 else
-//			m_lAt ist die gefundene Position
-{
-    void *pObject = m_aTable.GetObjectAt(m_lAt);
-
-    if (pObject != NULL)
-        return pObject;
-    
-    while (pObject == NULL
-       && (bForward ? ((m_lAt+1) < m_aTable.GetSize()) 
-                    :   m_lAt    > 0))
-    {
-        if (bForward)
-            m_lAt++;
-        else
-            m_lAt--;
-
-        pObject = m_aTable.GetObjectAt(m_lAt);
-    } 
-
-#ifdef DBG_UTIL
-
-    if (pObject == NULL)
-    {
-        DBG_ASSERT(bForward ? m_lAt == m_aTable.GetSize() -1 : m_lAt == 0,
-            "HashTableIterator::FindValidObject()");
-    }
-
-#endif
-
-    return pObject; 
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/soldep/bootstrp/makefile.mk b/soldep/bootstrp/makefile.mk
deleted file mode 100644
index 60b2242..0000000
--- a/soldep/bootstrp/makefile.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=soldep
-TARGET=bootstrpdt
-ENABLE_EXCEPTIONS=true
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# fixme, code is not yet 64 bit clean
-.IF "$(OS)$(CPU)"=="LINUXX" || ("$(COM)"=="C52" && "$(CPU)"=="U")
-all:
-    @echo nothing to do
-.ENDIF
-
-# --- Files --------------------------------------------------------
-
-EXCEPTIONSFILES= \
-                  $(SLO)$/prj.obj
-
-SLOFILES=\
-          $(SLO)$/dep.obj \
-          $(SLO)$/minormk.obj \
-          $(SLO)$/prodmap.obj \
-          $(SLO)$/appdef.obj \
-           $(SLO)$/hashtbl.obj		\
-          $(SLO)$/prj.obj
-
-
-SHL1TARGET	=$(TARGET)$(DLLPOSTFIX)
-SHL1IMPLIB	=$(TARGET)
-SHL1LIBS	=$(SLB)$/$(TARGET).lib
-SHL1DEF		=$(MISC)$/$(SHL1TARGET).def
-SHL1DEPN	=$(SHL1LIBS)
-SHL1STDLIBS=\
-            $(TOOLSLIB) \
-            $(BTSTRPLIB)		\
-            $(SALLIB)
-
-DEF1NAME    =$(SHL1TARGET)
-DEF1DEPN	=$(MISC)$/$(SHL1TARGET).flt
-DEFLIB1NAME	=$(TARGET)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE :	target.mk
-
-$(MISC)$/$(SHL1TARGET).flt: makefile.mk
-    @echo ------------------------------
-    @echo Making: $@
-    @echo WEP > $@
-    @echo LIBMAIN >> $@
-    @echo LibMain >> $@
-    @echo __CT >> $@
diff --git a/soldep/bootstrp/minormk.cxx b/soldep/bootstrp/minormk.cxx
deleted file mode 100644
index 1b72616..0000000
--- a/soldep/bootstrp/minormk.cxx
+++ /dev/null
@@ -1,189 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "minormk.hxx"
-#include "prodmap.hxx"
-#include <appdef.hxx>
-#include <tools/fsys.hxx>
-#include <tools/geninfo.hxx>
-
-//
-// class MinorMk
-//
-
-/*****************************************************************************/
-MinorMk::MinorMk(
-    GenericInformationList *pList,
-    const ByteString &rVersion,
-    const ByteString &rWorkStamp,
-    const ByteString &rEnvironment,
-    const ByteString &rMinor
-)
-/*****************************************************************************/
-{
-    String sRoot( ProductMapper::GetVersionRoot( pList, rVersion ));
-    if ( sRoot.Len()) {
-        ByteString sPath( sRoot, RTL_TEXTENCODING_ASCII_US );
-        sPath += "/";
-        sPath += rEnvironment;
-        sPath += "/";
-        sPath += "inc";
-        if ( rMinor.Len()) {
-            sPath += ".";
-            sPath += rMinor;
-        }
-#ifdef UNX
-        sPath.SearchAndReplaceAll( "\\", "/" );
-        while( sPath.SearchAndReplace( "//", "/" ) != STRING_NOTFOUND ) {};
-#else
-        sPath.SearchAndReplaceAll( "/", "\\" );
-        while( sPath.SearchAndReplace( "\\\\", "\\" ) != STRING_NOTFOUND ) {};
-#endif
-        DirEntry aPath( String( sPath, RTL_TEXTENCODING_ASCII_US ));
-
-        ByteString sFile( rWorkStamp );
-        sFile += "minor.mk";
-
-        DirEntry aFile( aPath );
-        aFile += DirEntry( String( sFile, RTL_TEXTENCODING_ASCII_US ));
-        if ( !aFile.Exists()) {
-            sFile = sFile.Copy( 3 );
-            aFile = aPath;
-            aFile += DirEntry( String( sFile, RTL_TEXTENCODING_ASCII_US ));
-        }
-        ReadMinorMk( aFile.GetFull());
-    }
-}
-
-/*****************************************************************************/
-MinorMk::MinorMk( GenericInformationList *pList, const ByteString rVersion )
-/*****************************************************************************/
-{
-    String sRoot( ProductMapper::GetVersionRoot( pList, rVersion ));
-    if ( sRoot.Len()) {
-        ByteString sPath( sRoot, RTL_TEXTENCODING_ASCII_US );
-        sPath += "/src/solenv/inc";
-#ifdef UNX
-        sPath.SearchAndReplaceAll( "\\", "/" );
-        while( sPath.SearchAndReplace( "//", "/" ) != STRING_NOTFOUND ) {};
-#else
-        sPath.SearchAndReplaceAll( "/", "\\" );
-        while( sPath.SearchAndReplace( "\\\\", "\\" ) != STRING_NOTFOUND ) {};
-#endif
-        DirEntry aPath( String( sPath, RTL_TEXTENCODING_ASCII_US ));
-
-         ByteString sFile( "minor.mk" );
-
-        DirEntry aFile( aPath );
-        aFile += DirEntry( String( sFile, RTL_TEXTENCODING_ASCII_US ));
-
-        ReadMinorMk( aFile.GetFull());
-    }
-}
-
-/*****************************************************************************/
-MinorMk::MinorMk( const ByteString &rMinor,	const ByteString &rEnvironment )
-/*****************************************************************************/
-                : bExists( FALSE )
-{
-    ByteString sDelimiter( DirEntry::GetAccessDelimiter(), RTL_TEXTENCODING_ASCII_US );
-
-
-    ByteString sSolver( GetEnv( "SOLARVERSION" ));
-    BOOL bNewEnv = TRUE;
-    if ( !sSolver.Len()) {
-        sSolver = GetEnv( "SOLARVER" );
-        bNewEnv = FALSE;
-    }
-    ByteString sUPD( GetEnv( "UPD" ));
-
-    ByteString sMinorMk( sSolver );
-    sMinorMk += sDelimiter;
-    if ( !bNewEnv ) {
-        sMinorMk += sUPD;
-        sMinorMk += sDelimiter;
-    }
-
-    if ( rEnvironment.Len()) {
-        sMinorMk += rEnvironment;
-        sMinorMk += sDelimiter;
-        sMinorMk += "inc";
-        if( rMinor.Len()) {
-            sMinorMk += ".";
-            sMinorMk += rMinor;
-        }
-        sMinorMk += sDelimiter;
-    }
-
-    sMinorMk += sUPD;
-    sMinorMk += "minor.mk";
-
-    String sFile( sMinorMk, RTL_TEXTENCODING_ASCII_US );
-
-    ReadMinorMk( sFile );
-}
-
-/*****************************************************************************/
-void MinorMk::ReadMinorMk( const String &rFileName )
-/*****************************************************************************/
-{
-    if ( DirEntry( rFileName ).Exists()) {
-        bExists = TRUE;
-        SvFileStream aStream( rFileName, STREAM_STD_READ );
-        while ( !aStream.IsOpen())
-            aStream.Open( rFileName, STREAM_STD_READ );
-
-        ByteString sLine;
-        while ( !aStream.IsEof()) {
-            aStream.ReadLine( sLine );
-
-            if ( sLine.GetToken( 0, '=' ) == "RSCVERSION" )
-                sRSCVERSION = sLine.GetToken( 1, '=' );
-            else if ( sLine.GetToken( 0, '=' ) == "RSCREVISION" )
-                sRSCREVISION = sLine.GetToken( 1, '=' );
-            else if ( sLine.GetToken( 0, '=' ) == "BUILD" )
-                sBUILD = sLine.GetToken( 1, '=' );
-            else if ( sLine.GetToken( 0, '=' ) == "LAST_MINOR" )
-                sLAST_MINOR = sLine.GetToken( 1, '=' );
-        }
-        aStream.Close();
-
-        sRSCVERSION.EraseTrailingChars();
-        sRSCREVISION.EraseTrailingChars();
-        sBUILD.EraseTrailingChars();
-        sLAST_MINOR.EraseTrailingChars();
-    }
-}
-
-/*****************************************************************************/
-MinorMk::~MinorMk()
-/*****************************************************************************/
-{
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/soldep/bootstrp/prj.cxx b/soldep/bootstrp/prj.cxx
deleted file mode 100644
index 816df1b..0000000
--- a/soldep/bootstrp/prj.cxx
+++ /dev/null
@@ -1,2717 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <stdlib.h>
-#include <stdio.h>
-#include <bootstrp/sstring.hxx>
-#include <osl/mutex.hxx>
-
-#define ENABLE_BYTESTRING_STREAM_OPERATORS
-#include <tools/stream.hxx>
-#include <tools/geninfo.hxx>
-#include <soldep/prj.hxx>
-#include <bootstrp/inimgr.hxx>
-
-#ifndef MACOSX
-#pragma hdrstop
-#endif
-
-#ifdef MAC
-#define putenv(x)
-#endif
-
-#if defined(DOS) || defined(WNT) || defined(OS2)
-#define LIST_DELIMETER ';'
-#else
-#ifdef UNX
-#define LIST_DELIMETER ':'
-#else
-#ifdef MAC
-#define LIST_DELIMETER ','
-#endif
-#endif
-#endif
-
-#if defined(DOS) || defined(WNT) || defined(OS2) || defined(WIN)
-#define PATH_DELIMETER '\\'
-#else
-#ifdef UNX
-#define PATH_DELIMETER '/'
-#else
-#ifdef MAC
-#define PATH_DELIMETER ':'
-#endif
-#endif
-#endif
-
-//
-//	class SimpleConfig
-//
-
-/*****************************************************************************/
-SimpleConfig::SimpleConfig( String aSimpleConfigFileName )
-/*****************************************************************************/
-{
-    nLine = 0;
-    aFileName = aSimpleConfigFileName;
-    aFileStream.Open ( aFileName, STREAM_READ );
-}
-
-/*****************************************************************************/
-SimpleConfig::SimpleConfig( DirEntry& rDirEntry )
-/*****************************************************************************/
-{
-    nLine = 0;
-    aFileName = rDirEntry.GetFull();
-    aFileStream.Open ( aFileName, STREAM_READ );
-}
-
-/*****************************************************************************/
-SimpleConfig::~SimpleConfig()
-/*****************************************************************************/
-{
-    aFileStream.Close ();
-}
-
-/*****************************************************************************/
-ByteString SimpleConfig::GetNext()
-/*****************************************************************************/
-{
-    ByteString aString;
-
-    if ( aStringBuffer =="" )
-      while ((aStringBuffer = GetNextLine()) == "\t");
-    if ( aStringBuffer =="" )
-        return ByteString();
-
-    aString = aStringBuffer.GetToken(0,'\t');
-    aStringBuffer.Erase(0, aString.Len()+1);
-
-    aStringBuffer.EraseLeadingChars( '\t' );
-
-    return aString;
-}
-
-/*****************************************************************************/
-ByteString	SimpleConfig::GetNextLine()
-/*****************************************************************************/
-{
-    ByteString aSecStr;
-    sal_Bool bStreamOk;
-    nLine++;
-
-    bStreamOk = aFileStream.ReadLine ( aTmpStr );
-    if ( (aTmpStr.Search( "#" ) == 0) )
-        return "\t";
-    aTmpStr = aTmpStr.EraseLeadingChars();
-    aTmpStr = aTmpStr.EraseTrailingChars();
-    while ( aTmpStr.SearchAndReplace(ByteString(' '),ByteString('\t') ) != STRING_NOTFOUND );
-    int nLength = aTmpStr.Len();
-    if ( bStreamOk && (nLength == 0) )
-        return "\t";
-    BOOL bFound = FALSE;
-    ByteString aEraseString;
-    for ( USHORT i = 0; i<= nLength; i++)
-    {
-#ifdef MAC
-        if ( aTmpStr.GetChar( i ) == '"')
-        {
-            if ( bFound) bFound = FALSE;
-            else bFound = TRUE;
-            aTmpStr.SetChar( i, '\t' );
-        }
-#endif
-        if ( aTmpStr.GetChar( i ) == 0x20  && !bFound )
-            aTmpStr.SetChar( i, 0x09 );
-    }
-    return aTmpStr;
-}
-
-/*****************************************************************************/
-ByteString SimpleConfig::GetCleanedNextLine( BOOL bReadComments )
-/*****************************************************************************/
-{
-    sal_Bool bStreamOk;
-    sal_Bool bReadNextLine = sal_True;
-    while (bReadNextLine)
-    {
-        bStreamOk = aFileStream.ReadLine ( aTmpStr );
-        if (!bStreamOk)
-            return ByteString();
-
-        ByteString sTab = "\t";
-        ByteString sDoubleTab = "\t\t";
-        ByteString sSpace = " ";
-        xub_StrLen nIndex = 0;
-
-        aTmpStr.SearchAndReplaceAll(sSpace, sTab);
-        while ( (nIndex = aTmpStr.SearchAndReplace(sDoubleTab, sTab, nIndex )) != STRING_NOTFOUND );
-
-        aTmpStr = aTmpStr.EraseLeadingAndTrailingChars('\t'); // remove tabs
-
-        if ( aTmpStr.Search( "#" ) == 0 )
-        {
-            if (bReadComments )
-                return aTmpStr;
-        }
-        else if (aTmpStr != ByteString::EmptyString())
-            bReadNextLine = sal_False;
-    }
-
-    return aTmpStr;
-}
-
-
-//
-//	class CommandData
-//
-
-/*****************************************************************************/
-CommandData::CommandData()
-/*****************************************************************************/
-{
-    nOSType = 0;
-    nCommand = 0;
-    pDepList = 0;
-    pCommandList = 0;
-}
-
-/*****************************************************************************/
-CommandData::~CommandData()
-/*****************************************************************************/
-{
-    if ( pDepList )
-    {
-        ByteString *pString = pDepList->First();
-        while ( pString )
-        {
-            delete pString;
-            pString = pDepList->Next();
-        }
-        delete pDepList;
-
-        pDepList = NULL;
-    }
-    if ( pCommandList )
-    {
-        ByteString *pString = pCommandList->First();
-        while ( pString )
-        {
-            delete pString;
-            pString = pCommandList->Next();
-        }
-        delete pCommandList;
-
-        pCommandList = NULL;
-    }
-}
-
-/*****************************************************************************/
-ByteString CommandData::GetOSTypeString()
-/*****************************************************************************/
-{
-    ByteString aRetStr;
-
-    switch (nOSType)
-    {
-        case OS_WIN16 | OS_WIN32 | OS_OS2 | OS_UNX | OS_MAC :
-            aRetStr = "all";
-            break;
-        case OS_WIN32 | OS_WIN16 :
-            aRetStr = "w";
-            break;
-        case OS_OS2 :
-            aRetStr = "p";
-            break;
-        case OS_UNX :
-            aRetStr = "u";
-            break;
-        case OS_WIN16 :
-            aRetStr = "d";
-            break;
-        case OS_WIN32 :
-            aRetStr = "n";
-            break;
-        case OS_MAC :
-            aRetStr = "m";
-            break;
-        default :
-            aRetStr = "none";
-    }
-
-    return aRetStr;
-}
-
-/*****************************************************************************/
-ByteString CommandData::GetCommandTypeString()
-/*****************************************************************************/
-{
-    ByteString aRetStr;
-
-    switch (nCommand)
-    {
-        case COMMAND_NMAKE :
-            aRetStr = "nmake";
-            break;
-        case COMMAND_GET :
-            aRetStr = "get";
-            break;
-        default :
-            aRetStr = "usr";
-            aRetStr += ByteString::CreateFromInt64( nCommand + 1 - COMMAND_USER_START );
-
-    }
-
-    return aRetStr;
-}
-
-/*****************************************************************************/
-void CommandData::AddCommand(ByteString* pCommand)
-/*****************************************************************************/
-{
-    if (!pCommandList)
-        pCommandList = new SByteStringList();
-    pCommandList->Insert(pCommand, LIST_APPEND);
-}
-
-/*****************************************************************************/
-CommandData& CommandData::operator>>  ( SvStream& rStream )
-/*****************************************************************************/
-{
-    rStream << aPrj;
-    rStream << aLogFileName;
-    rStream << aInpath;
-    rStream << aUpd;
-    rStream << aUpdMinor;
-    rStream << aProduct;
-    rStream << aCommand;
-    rStream << aPath;
-    rStream << aPrePath;
-    rStream << aPreFix;
-    rStream << aCommandPara;
-    rStream << aComment;
-    rStream << sClientRestriction;
-
-    rStream << nOSType;
-    rStream << nCommand;
-    rStream << nDepth;
-
-    if (pDepList)
-    {
-        rStream << sal_True;
-        *pDepList >> rStream;
-    }
-    else
-        rStream << sal_False;
-
-    if (pCommandList)
-    {
-        rStream << sal_True;
-        *pCommandList >> rStream;
-    }
-    else
-        rStream << sal_False;
-
-    return *this;
-}
-
-/*****************************************************************************/
-CommandData& CommandData::operator<<  ( SvStream& rStream )
-/*****************************************************************************/
-{
-    rStream >> aPrj;
-    rStream >> aLogFileName;
-    rStream >> aInpath;
-    rStream >> aUpd;
-    rStream >> aUpdMinor;
-    rStream >> aProduct;
-    rStream >> aCommand;
-    rStream >> aPath;
-    rStream >> aPrePath;
-    rStream >> aPreFix;
-    rStream >> aCommandPara;
-    rStream >> aComment;
-    rStream >> sClientRestriction;
-
-    rStream >> nOSType;
-    rStream >> nCommand;
-    rStream >> nDepth;
-
-    BOOL bDepList;
-    rStream >> bDepList;
-    if (pDepList)
-        pDepList->CleanUp();
-    if (bDepList)
-    {
-        if (!pDepList)
-            pDepList = new SByteStringList();
-        *pDepList << rStream;
-    }
-    else
-    {
-        if (pDepList)
-        DELETEZ (pDepList);
-    }
-
-    BOOL bCommandList;
-    rStream >> bCommandList;
-    if (pCommandList)
-        pCommandList->CleanUp();
-    if (bCommandList)
-    {
-        if (!pCommandList)
-            pCommandList = new SByteStringList();
-        *pCommandList << rStream;
-    }
-    else
-    {
-        if (pCommandList)
-            DELETEZ (pCommandList);
-    }
-
-    return *this;
-}
-
-
-
-//
-// class DepInfo
-//
-
-/*****************************************************************************/
-DepInfo::~DepInfo()
-/*****************************************************************************/
-{
-    RemoveProject();
-
-    if ( pModeList )
-    {
-        ByteString *pString = pModeList->First();
-        while ( pString )
-        {
-            delete pString;
-            pString = pModeList->Next();
-        }
-        delete pModeList;
-
-        pModeList = NULL;
-    }
-}
-
-/*****************************************************************************/
-void DepInfo::SetProject (ByteString* pStr)
-/*****************************************************************************/
-{
-    RemoveProject();
-    pProject = pStr;
-}
-
-/*****************************************************************************/
-void DepInfo::RemoveProject ()
-/*****************************************************************************/
-{
-    if (pProject)
-    {
-        delete pProject;
-        pProject = NULL;
-    }
-}
-
-/*****************************************************************************/
-DepInfo& DepInfo::operator<<  ( SvStream& rStream )
-/*****************************************************************************/
-{
-    RemoveProject();
-    pProject = new ByteString();
-    rStream >> *pProject;
-
-    BOOL bModeList;
-    rStream >> bModeList;
-    if (pModeList)
-        pModeList->CleanUp();
-    if (bModeList)
-    {
-        if (!pModeList)
-            pModeList = new SByteStringList();
-        *pModeList << rStream;
-    }
-    else
-        DELETEZ (pModeList);
-
-    rStream >> bAllModes;
-    return *this;
-}
-
-/*****************************************************************************/
-DepInfo& DepInfo::operator>>  ( SvStream& rStream )
-/*****************************************************************************/
-{
-    rStream << *pProject;
-    if (pModeList)
-    {
-        rStream << sal_True;
-        *pModeList >> rStream;
-    }
-    else
-        rStream << sal_False;
-    rStream << bAllModes;
-
-    return *this;
-}
-
-//
-// class SDepInfoList
-//
-
-/*****************************************************************************/
-SDepInfoList::SDepInfoList()
-/*****************************************************************************/
-                                : pAllModeList(0)
-{
-}
-
-/*****************************************************************************/
-SDepInfoList::~SDepInfoList()
-/*****************************************************************************/
-{
-    if (pAllModeList)
-        delete pAllModeList;
-}
-
-/*****************************************************************************/
-ULONG SDepInfoList::IsString( ByteString* pStr )
-/*****************************************************************************/
-{
-    ULONG nRet = NOT_THERE;
-    if ( (nRet = GetPrevString( pStr )) != 0 )
-    {
-        ByteString* pString = GetObject( nRet )->GetProject();
-        if ( *pString == *pStr )
-            return nRet;
-        else
-            return NOT_THERE;
-    }
-    else
-    {
-        ByteString* pString = GetObject( 0 )->GetProject();
-        if ( pString && (*pString == *pStr) )
-            return 0;
-        else
-            return NOT_THERE;
-    }
-    return nRet;
-}
-
-/*****************************************************************************/
-ULONG SDepInfoList::GetPrevString( ByteString* pStr )
-/*****************************************************************************/
-{
-    ULONG nRet = 0;
-    BOOL bFound = FALSE;
-    ULONG nCount_l = Count();
-    ULONG nUpper = nCount_l;
-    ULONG nLower = 0;
-    ULONG nCurrent = nUpper / 2;
-    ULONG nRem = 0;
-    ByteString* pString;
-
-    do
-    {
-        if ( (nCurrent == nLower) || (nCurrent == nUpper) )
-            return nLower;
-        pString = GetObject( nCurrent )->GetProject();
-        int nResult =  pStr->CompareTo( *pString );
-        if ( nResult == COMPARE_LESS )
-        {
-            nUpper = nCurrent;
-            nCurrent = (nCurrent + nLower) /2;
-        }
-        else if ( nResult == COMPARE_GREATER )
-        {
-            nLower = nCurrent;
-            nCurrent = (nUpper + nCurrent) /2;
-        }
-        else if ( nResult == COMPARE_EQUAL )
-            return nCurrent;
-        if ( nRem == nCurrent )
-            return nCurrent;
-        nRem = nCurrent;
-    }
-    while ( !bFound );
-    return nRet;
-}
-
-/*****************************************************************************/
-void SDepInfoList::PutModeString( DepInfo* pInfoList, ByteString* pStr )
-/*****************************************************************************/
-{
-    SByteStringList* pList = pInfoList->GetModeList();
-    if (!pList)
-    {
-        pList = new SByteStringList;
-        pInfoList->SetModeList(pList);
-
-    }
-
-    if (pList)
-    {
-        // check if string exists
-        ByteString *pString = pList->First();
-        while ( pString )
-        {
-            if (*pString == *pStr)
-            {
-                delete pStr;
-                return;
-            }
-            pString = pList->Next();
-        }
-        pList->PutString( pStr );
-    }
-    else
-        delete pStr;
-}
-
-/*****************************************************************************/
-ULONG SDepInfoList::PutString( ByteString* pStr)
-/*****************************************************************************/
-{
-    return PutString( pStr, NULL);
-}
-
-/**************************************************************************
-*
-*	Sortiert einen ByteString in die Liste ein und gibt die Position,
-*	an der einsortiert wurde, zurueck
-*
-**************************************************************************/
-
-ULONG SDepInfoList::PutString( ByteString* pStr, ByteString* pModeStr)
-{
-    if (pAllModeList)
-    {
-        delete pAllModeList;
-        pAllModeList = NULL;
-    }
-
-    ULONG nPos = GetPrevString ( pStr );
-    if ( Count() )
-    {
-        {
-            DepInfo* pInfo = GetObject( 0 );
-            ByteString* pString = pInfo->GetProject();
-            if ( pString->CompareTo( *pStr ) == COMPARE_GREATER )
-            {
-                pInfo = new DepInfo;
-                if (pInfo)
-                {
-                    pInfo->SetProject(pStr);
-                    if (pModeStr)
-                        PutModeString(pInfo, pModeStr);
-                    else
-                        pInfo->SetAllModes();
-                    Insert( pInfo, (ULONG)0 );
-                }
-                return (ULONG)0;
-            }
-        }
-        ByteString* pString = GetObject( nPos )->GetProject();
-        if ( *pStr != *pString )
-        {
-            DepInfo* pInfo = new DepInfo;
-            if (pInfo)
-            {
-                pInfo->SetProject(pStr);
-                if (pModeStr)
-                    PutModeString(pInfo, pModeStr);
-                else
-                    pInfo->SetAllModes();
-                Insert( pInfo, nPos+1 );
-            }
-            return ( nPos +1 );
-        }
-        else
-        {
-            delete pStr;
-            DepInfo* pInfo = GetObject( nPos );
-            if (pModeStr)
-                PutModeString(pInfo, pModeStr);
-            else
-                pInfo->SetAllModes();
-            return ( nPos +1 );
-        }
-    }
-    else
-    {
-        DepInfo* pInfo = new DepInfo;
-        if (pInfo)
-        {
-            pInfo->SetProject(pStr);
-            if (pModeStr)
-                PutModeString(pInfo, pModeStr);
-            else
-                pInfo->SetAllModes();
-            Insert( pInfo);
-            return (ULONG)0;
-        }
-    }
-
-    delete pStr;
-    if (pModeStr)
-        delete pModeStr;
-    return NOT_THERE;
-}
-
-/*****************************************************************************/
-ByteString* SDepInfoList::RemoveString( const ByteString& rName )
-/*****************************************************************************/
-{
-    ULONG i;
-    ByteString* pReturn;
-    if (pAllModeList)
-    {
-        delete pAllModeList;
-        pAllModeList = NULL;
-    }
-
-    for( i = 0 ; i < Count(); i++ )
-    {
-        if ( rName == *(GetObject( i )->GetProject()) )
-        {
-            pReturn = new ByteString(*(GetObject(i)->GetProject()));
-            DepInfo* pInfo;
-            pInfo = GetObject(i);
-            delete pInfo;
-            Remove(i);
-            return pReturn;
-        }
-    }
-
-    return NULL;
-}
-
-/*****************************************************************************/
-SByteStringList* SDepInfoList::GetAllDepModes()
-/*****************************************************************************/
-{
-    if (pAllModeList)
-            return pAllModeList;
-
-    DepInfo *pInfo = First();
-    while ( pInfo )
-    {
-        if (!pInfo->IsAllModes() && pInfo->GetModeList())
-        {
-            if (!pAllModeList)
-                pAllModeList = new SByteStringList();
-            ByteString* pStr = pInfo->GetModeList()->First();
-            while (pStr)
-            {
-                if (pAllModeList->IsString(pStr) == NOT_THERE)
-                    pAllModeList->PutString(pStr);
-                pStr = pInfo->GetModeList()->Next();
-            }
-        }
-        pInfo = Next();
-    }
-    return pAllModeList;
-}
-
-/*****************************************************************************/
-SDepInfoList& SDepInfoList::operator<< ( SvStream& rStream )
-/*****************************************************************************/
-{
-    ULONG nCount_l;
-    rStream >> nCount_l;
-    for ( USHORT i = 0; i < nCount_l; i++ ) {
-        DepInfo* pDepInfo = new DepInfo();
-        *pDepInfo << rStream;
-        Insert (pDepInfo, LIST_APPEND);
-    }
-    return *this;
-}
-
-/*****************************************************************************/
-SDepInfoList& SDepInfoList::operator>> ( SvStream& rStream )
-/*****************************************************************************/
-{
-    ULONG nCount_l = Count();
-    rStream << nCount_l;
-    DepInfo* pDepInfo = First();
-    while (pDepInfo) {
-        *pDepInfo >> rStream;
-        pDepInfo = Next();
-    }
-
-    return *this;
-}
-
-/*****************************************************************************/
-CommandData* Prj::GetDirectoryList ( USHORT nWhatOS, USHORT nCommand )
-/*****************************************************************************/
-{
-    return (CommandData *)NULL;
-}
-
-/*****************************************************************************/
-CommandData* Prj::GetDirectoryData( ByteString aLogFileName )
-/*****************************************************************************/
-{
-    PrjList* pPrjList = GetCommandDataList ();
-    CommandData *pData = NULL;
-    ULONG nCount_l = pPrjList->Count();
-    for ( ULONG i=0; i<nCount_l; i++ )
-    {
-        pData = pPrjList->GetObject(i);
-        if ( pData->GetLogFile() == aLogFileName )
-            return pData;
-    }
-    return NULL;
-}
-
-//
-//	class Prj
-//
-
-/*****************************************************************************/
-Prj::Prj() :
-    pPrjInitialDepList(0),
-    pPrjDepList(0),
-    pPrjDepInfoList(0),
-    bSorted( FALSE ),
-    bHardDependencies( FALSE ),
-    bFixedDependencies( FALSE ),
-    bVisited( FALSE ),
-    bIsAvailable( TRUE ),
-    pTempCommandDataList (0),
-    bTempCommandDataListPermanent (FALSE),
-    bError (FALSE)
-/*****************************************************************************/
-{
-}
-
-/*****************************************************************************/
-Prj::Prj( ByteString aName ) :
-    aProjectName( aName ),
-    pPrjInitialDepList(0),
-    pPrjDepList(0),
-    pPrjDepInfoList(0),
-    bSorted( FALSE ),
-    bHardDependencies( FALSE ),
-    bFixedDependencies( FALSE ),
-    bVisited( FALSE ),
-    bIsAvailable( TRUE ),
-    pTempCommandDataList (0),
-    bTempCommandDataListPermanent (FALSE),
-    bError (FALSE)
-/*****************************************************************************/
-{
-}
-
-/*****************************************************************************/
-Prj::~Prj()
-/*****************************************************************************/
-{
-    pPrjDepList = RemoveStringList (pPrjDepList);
-    pPrjInitialDepList = RemoveStringList (pPrjInitialDepList);
-    pPrjDepInfoList = RemoveDepInfoList (pPrjDepInfoList);
-}
-
-/*****************************************************************************/
-SByteStringList* Prj::RemoveStringList(SByteStringList* pStringList )
-/*****************************************************************************/
-{
-    if ( pStringList )
-    {
-        ByteString *pString = pStringList->First();
-        while ( pString )
-        {
-            delete pString;
-            pString = pStringList->Next();
-        }
-
-        delete pStringList;
-
-        pStringList = NULL;
-    }
-    return pStringList;
-}
-
-/*****************************************************************************/
-SDepInfoList* Prj::RemoveDepInfoList(SDepInfoList* pInfoList )
-/*****************************************************************************/
-{
-    if ( pInfoList )
-    {
-        DepInfo *pInfo = pInfoList->First();
-        while ( pInfo )
-        {
-            delete pInfo;
-            pInfo = pInfoList->Next();
-        }
-
-        delete pInfoList;
-
-        pInfoList = NULL;
-    }
-    return pInfoList;
-}
-
-/*****************************************************************************/
-void Prj::AddDependencies( ByteString aStr )
-/*****************************************************************************/
-{
-
-    if ( !pPrjDepInfoList )
-        pPrjDepInfoList = new SDepInfoList;
-
-    pPrjDepInfoList->PutString( new ByteString(aStr) );
-}
-
-/*****************************************************************************/
-void Prj::AddDependencies( ByteString aStr, ByteString aModeStr )
-/*****************************************************************************/
-{
-
-    // needs dirty flag - not expanded
-    if ( !pPrjDepInfoList )
-        pPrjDepInfoList = new SDepInfoList;
-
-    pPrjDepInfoList->PutString( new ByteString(aStr), new ByteString(aModeStr) );
-}
-
-/*****************************************************************************/
-SByteStringList* Prj::GetDependencies( BOOL bExpanded )
-/*****************************************************************************/
-{
-    if ( bExpanded )
-    {
-        if (!pPrjDepList)
-            SetMode (NULL);
-        return pPrjDepList;
-    }
-    else
-    {
-        if (!pPrjInitialDepList)
-            SetMode (NULL);
-        return pPrjInitialDepList;
-    }
-}
-
-/*****************************************************************************/
-void Prj::SetMode(SByteStringList* pModList)
-/*****************************************************************************/
-{
-    pPrjDepList = RemoveStringList (pPrjDepList);
-    pPrjInitialDepList = RemoveStringList (pPrjInitialDepList);
-
-    if (!pPrjDepInfoList)
-        return;
-
-    pPrjDepList = new SByteStringList;
-    pPrjInitialDepList = new SByteStringList;
-
-    DepInfo *pInfo = pPrjDepInfoList->First();
-    while ( pInfo )
-    {
-        if (pInfo->IsAllModes() || !pInfo->GetModeList() || !pModList)
-        {
-            pPrjDepList->PutString( new ByteString((ByteString) *(pInfo->GetProject())));
-            pPrjInitialDepList->PutString( new ByteString((ByteString) *(pInfo->GetProject())));
-        }
-        else
-        {
-            BOOL bStringFound = FALSE;
-            SByteStringList * pDepList = pInfo->GetModeList();
-            ByteString *pModString = pDepList->First();
-            while ( pModString )
-            {
-                ByteString *pDefModString = pModList->First();
-                while ( pDefModString )
-                {
-                    if (*pDefModString == *pModString)
-                    {
-                        pPrjDepList->PutString( new ByteString((ByteString) *(pInfo->GetProject())));
-                        pPrjInitialDepList->PutString( new ByteString((ByteString) *(pInfo->GetProject())));
-                        bStringFound = TRUE;
-                        break;
-                    }
-                    pDefModString = pModList->Next();
-                }
-                if (bStringFound)
-                    break;
-                pModString = pDepList->Next();
-            }
-
-        }
-
-        pInfo = pPrjDepInfoList->Next();
-    }
-}
-
-/*****************************************************************************/
-BOOL Prj::InsertDirectory ( ByteString aDirName, USHORT aWhat,
-                                USHORT aWhatOS, ByteString aLogFileName,
-                                const ByteString &rClientRestriction )
-/*****************************************************************************/
-{
-    CommandData* pData = new CommandData();
-
-    pData->SetPath( aDirName );
-    pData->SetCommandType( aWhat );
-    pData->SetOSType( aWhatOS );
-    pData->SetLogFile( aLogFileName );
-    pData->SetClientRestriction( rClientRestriction );
-
-    PrjList* pPrjList = GetCommandDataList ();
-    pPrjList->Insert( pData );
-
-    return FALSE;
-}
-
-/*****************************************************************************/
-//
-// removes directory and existing dependencies on it
-//
-CommandData* Prj::RemoveDirectory ( ByteString aLogFileName )
-/*****************************************************************************/
-{
-    PrjList* pPrjList = GetCommandDataList ();
-    ULONG nCount_l = pPrjList->Count();
-    CommandData* pData;
-    CommandData* pDataFound = NULL;
-    SByteStringList* pDataDeps;
-
-    for ( USHORT i = 0; i < nCount_l; i++ )
-    {
-        pData = pPrjList->GetObject( i );
-        if ( pData->GetLogFile() == aLogFileName )
-            pDataFound = pData;
-        else
-        {
-            pDataDeps = pData->GetDependencies();
-            if ( pDataDeps )
-            {
-                ByteString* pString;
-                ULONG nDataDepsCount = pDataDeps->Count();
-                for ( ULONG j = nDataDepsCount; j > 0; j-- )
-                {
-                    pString = pDataDeps->GetObject( j - 1 );
-                    if ( pString->GetToken( 0, '.') == aLogFileName )
-                        pDataDeps->Remove( pString );
-                }
-            }
-        }
-    }
-
-    Remove( pDataFound );
-
-    return pDataFound;
-}
-
-/*****************************************************************************/
-void Prj::ExtractDependencies()
-/*****************************************************************************/
-{
-    ULONG nPos = 0;
-    CommandData* pData = GetObject(nPos);
-    while (pData)
-    {
-        SByteStringList* pDepList = pData->GetDependencies();
-        if (pDepList)
-        {
-            ByteString * pDepStr = pDepList->First();
-            while (pDepStr)
-            {
-                CommandData* pSearchData = First();
-                while (pSearchData)
-                {
-                    if ((*pDepStr == pSearchData->GetPath()) && (pData->GetOSType() & pSearchData->GetOSType()))
-                    {
-                        *pDepStr = pSearchData->GetLogFile();
-                        break;
-                    }
-
-                    pSearchData = Next();
-                }
-
-                pDepStr = pDepList->Next();
-            }
-        }
-        nPos ++;
-        pData = GetObject(nPos);
-    }
-}
-
-/*****************************************************************************/
-PrjList* Prj::GetCommandDataList ()
-/*****************************************************************************/
-{
-    if (pTempCommandDataList)
-        return pTempCommandDataList;
-    else
-        return (PrjList*)this;
-}
-
-/*****************************************************************************/
-void Prj::RemoveTempCommandDataList()
-/*****************************************************************************/
-{
-    if (pTempCommandDataList)
-    {
-        delete pTempCommandDataList; // this list remove the elements by itself
-        pTempCommandDataList = NULL;
-    }
-}
-
-/*****************************************************************************/
-void Prj::GenerateTempCommandDataList()
-/*****************************************************************************/
-{
-    if (pTempCommandDataList)
-        RemoveTempCommandDataList();
-    pTempCommandDataList = new PrjList();
-    CommandData* pCommandData = First();
-    while (pCommandData) {
-        SvMemoryStream* pStream = new SvMemoryStream();
-        *pCommandData >> *pStream;
-        CommandData* pNewCommandData = new CommandData();
-        pStream->Seek( STREAM_SEEK_TO_BEGIN );
-        *pNewCommandData << *pStream;
-        pTempCommandDataList->Insert(pNewCommandData, LIST_APPEND);
-        delete pStream;
-        pCommandData = Next();
-    }
-}
-
-/*****************************************************************************/
-void Prj::GenerateEmptyTempCommandDataList()
-/*****************************************************************************/
-{
-    if (pTempCommandDataList)
-        RemoveTempCommandDataList();
-    pTempCommandDataList = new PrjList();
-}
-
-/*****************************************************************************/
-Prj& Prj::operator>>  ( SvStream& rStream )
-/*****************************************************************************/
-{
-    rStream << bVisited;
-    rStream << aProjectName;
-    rStream << aProjectPrefix;
-    rStream << bHardDependencies;
-    rStream << bFixedDependencies;
-    rStream << bSorted;
-    rStream << bIsAvailable;
-    rStream << bError;
-
-    if (pPrjDepInfoList)
-    {
-        rStream << sal_True;
-        *pPrjDepInfoList >> rStream;
-    }
-    else
-        rStream << sal_False;
-
-    ULONG nCount_l = Count();
-    rStream << nCount_l;
-
-    CommandData* pData = First();
-    while (pData) {
-        *pData >> rStream;
-        pData = Next();
-    }
-
-    return *this;
-}
-
-/*****************************************************************************/
-Prj& Prj::operator<<  ( SvStream& rStream )
-/*****************************************************************************/
-{
-       rStream >> bVisited;
-    rStream >> aProjectName;
-    rStream >> aProjectPrefix;
-    rStream >> bHardDependencies;
-    rStream >> bFixedDependencies;
-    rStream >> bSorted;
-    rStream >> bIsAvailable;
-    rStream >> bError;
-
-    BOOL bDepList;
-    rStream >> bDepList;
-    DELETEZ (pPrjDepInfoList);
-    if (bDepList)
-    {
-        pPrjDepInfoList = new SDepInfoList();
-        *pPrjDepInfoList << rStream;
-    }
-
-    ULONG nCount_l;
-    rStream >> nCount_l;
-
-    for ( USHORT i = 0; i < nCount_l; i++ ) {
-        CommandData* pData = new CommandData();
-        *pData << rStream;
-        Insert (pData, LIST_APPEND);
-    }
-
-    return *this;
-}
-
-
-//
-//	class Star
-//
-
-/*****************************************************************************/
-Star::Star()
-/*****************************************************************************/
-                : pDepMode (NULL),
-                pAllDepMode (NULL)
-{
-    // this ctor is only used by StarWriter
-}
-
-/*****************************************************************************/
-Star::Star(String aFileName, USHORT nMode )
-/*****************************************************************************/
-                : nStarMode( nMode ),
-                sFileName( aFileName ),
-                pDepMode (NULL),
-                pAllDepMode (NULL)
-{
-    Read( aFileName );
-}
-
-/*****************************************************************************/
-Star::Star(SolarFileList *pSolarFiles )
-/*****************************************************************************/
-                : nStarMode( STAR_MODE_MULTIPLE_PARSE ),
-                pDepMode (NULL),
-                pAllDepMode (NULL)
-{
-    // this ctor is used by StarBuilder to get the information for the whole workspace
-    Read( pSolarFiles );
-}
-
-/*****************************************************************************/
-Star::Star(GenericInformationList *pStandLst, ByteString &rVersion,
-    BOOL bLocal, const char *pSourceRoot )
-/*****************************************************************************/
-                : pDepMode (NULL),
-                pAllDepMode (NULL)
-{
-    UpdateFileList (pStandLst, rVersion, TRUE, bLocal, pSourceRoot);
-}
-
-/*****************************************************************************/
-void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersion,
-    BOOL bRead, BOOL bLocal, const char *pSourceRoot )
-/*****************************************************************************/
-{
-    sSourceRoot=String::CreateFromAscii(""); // clear old SourceRoot
-    ByteString sPath( rVersion );
-    if ( pSourceRoot )
-        sSourceRoot = String::CreateFromAscii( pSourceRoot );
-
-#ifdef UNX
-    sPath += "/settings/UNXSOLARLIST";
-#else
-    sPath += "/settings/SOLARLIST";
-#endif
-    GenericInformation *pInfo = pStandLst->GetInfo( sPath, TRUE );
-
-    if( pInfo && pInfo->GetValue().Len()) {
-        ByteString sFile( pInfo->GetValue());
-        if ( bLocal ) {
-            IniManager aIniManager;
-            aIniManager.ToLocal( sFile );
-        }
-        String sFileName_l( sFile, RTL_TEXTENCODING_ASCII_US );
-        nStarMode = STAR_MODE_SINGLE_PARSE;
-        if (bRead)
-            Read( sFileName_l );
-    }
-    else {
-        SolarFileList *pFileList = new SolarFileList();
-
-        sPath = rVersion;
-        sPath += "/drives";
-
-        GenericInformation *pInfo_l = pStandLst->GetInfo( sPath, TRUE );
-        if ( pInfo_l && pInfo_l->GetSubList())  {
-            GenericInformationList *pDrives = pInfo_l->GetSubList();
-            for ( ULONG i = 0; i < pDrives->Count(); i++ ) {
-                GenericInformation *pDrive = pDrives->GetObject( i );
-                if ( pDrive ) {
-                    DirEntry aEntry;
-                    BOOL bOk = FALSE;
-                    if ( sSourceRoot.Len()) {
-                        aEntry = DirEntry( sSourceRoot );
-                        bOk = TRUE;
-                    }
-                    else {
-#ifdef UNX
-                        sPath = "UnixVolume";
-                        GenericInformation *pUnixVolume = pDrive->GetSubInfo( sPath );
-                        if ( pUnixVolume ) {
-                            String sRoot( pUnixVolume->GetValue(), RTL_TEXTENCODING_ASCII_US );
-                            aEntry = DirEntry( sRoot );
-                            bOk = TRUE;
-                         }
-#else
-                        bOk = TRUE;
-                        String sRoot( *pDrive, RTL_TEXTENCODING_ASCII_US );
-                        sRoot += String::CreateFromAscii( "\\" );
-                        aEntry = DirEntry( sRoot );
-#endif
-                    }
-                    if ( bOk ) {
-                        sPath = "projects";
-                        GenericInformation *pProjectsKey = pDrive->GetSubInfo( sPath, TRUE );
-                        if ( pProjectsKey ) {
-                            if ( !sSourceRoot.Len()) {
-                                sPath = rVersion;
-                                sPath += "/settings/PATH";

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list