diff options
author | Mikhail Voytenko <mav@openoffice.org> | 2011-01-06 14:57:12 +0100 |
---|---|---|
committer | Mikhail Voytenko <mav@openoffice.org> | 2011-01-06 14:57:12 +0100 |
commit | 125087d3a4ac8ffd111391fe27b71027c90acadc (patch) | |
tree | 6afc6264ea33686546be829e768b5522e978d88f /soldep | |
parent | 97f62a9636225cf2b9dd15b25752e570842f3c13 (diff) | |
parent | 2ad19fc838f554a2f9883fc7a8cda849dc414a94 (diff) |
removetooltypes01: rebase to DEV300_m96
Diffstat (limited to 'soldep')
-rw-r--r-- | soldep/bootstrp/appdef.cxx | 2 | ||||
-rw-r--r-- | soldep/bootstrp/command.cxx | 683 | ||||
-rw-r--r-- | soldep/bootstrp/makefile.mk | 3 | ||||
-rw-r--r-- | soldep/bootstrp/minormk.cxx | 2 | ||||
-rw-r--r-- | soldep/bootstrp/prj.cxx | 29 | ||||
-rw-r--r-- | soldep/bootstrp/sstring.cxx | 314 | ||||
-rw-r--r-- | soldep/inc/dep.hxx | 2 | ||||
-rw-r--r-- | soldep/inc/prodmap.hxx | 4 | ||||
-rw-r--r-- | soldep/inc/soldep/appdef.hxx (renamed from soldep/inc/appdef.hxx) | 0 | ||||
-rw-r--r-- | soldep/inc/soldep/command.hxx | 163 | ||||
-rw-r--r-- | soldep/inc/soldep/connctr.hxx | 4 | ||||
-rw-r--r-- | soldep/inc/soldep/listmacr.hxx | 60 | ||||
-rw-r--r-- | soldep/inc/soldep/objwin.hxx | 2 | ||||
-rw-r--r-- | soldep/inc/soldep/prj.hxx | 15 | ||||
-rw-r--r-- | soldep/inc/soldep/sstring.hxx | 105 | ||||
-rw-r--r-- | soldep/prj/d.lst | 5 | ||||
-rw-r--r-- | soldep/source/depapp.hxx | 2 | ||||
-rw-r--r-- | soldep/source/makefile.mk | 2 | ||||
-rw-r--r-- | soldep/source/soldep.cxx | 4 |
19 files changed, 1353 insertions, 48 deletions
diff --git a/soldep/bootstrp/appdef.cxx b/soldep/bootstrp/appdef.cxx index d1c94efe7..6c982eda8 100644 --- a/soldep/bootstrp/appdef.cxx +++ b/soldep/bootstrp/appdef.cxx @@ -29,7 +29,7 @@ #include <stdio.h> #include <string.h> -#include <appdef.hxx> +#include <soldep/appdef.hxx> const char* GetDefStandList() { diff --git a/soldep/bootstrp/command.cxx b/soldep/bootstrp/command.cxx new file mode 100644 index 000000000..4766d7302 --- /dev/null +++ b/soldep/bootstrp/command.cxx @@ -0,0 +1,683 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifdef SCO +#define _IOSTREAM_H +#endif + +#include <tools/fsys.hxx> +#include <tools/stream.hxx> +#include "soldep/command.hxx" +#include <tools/debug.hxx> +#include <soldep/appdef.hxx> + +#ifdef _MSC_VER +#pragma warning (push,1) +#endif + +#include <iostream> +#include <string.h> +#include <stdlib.h> +#include <stdio.h> +#include <ctype.h> +#include <errno.h> + +#ifdef _MSC_VER +#pragma warning (pop) +#endif + +//#define MH_TEST2 1 // fuers direkte Testen + +#if defined(WNT) || defined(OS2) +#ifdef _MSC_VER +#pragma warning (push,1) +#endif +#include <process.h> // for _SPAWN +#ifdef _MSC_VER +#pragma warning (pop) +#endif +#endif +#ifdef UNX +#include <sys/types.h> +#include <unistd.h> +#if ( defined NETBSD ) || defined (FREEBSD) || defined (AIX) \ + || defined (HPUX) || defined (MACOSX) +#include <sys/wait.h> +#else +#include <wait.h> +#endif +#define P_WAIT 1 // erstmal einen dummz +#endif + +#if defined WNT +#include <tools/svwin.h> +#endif + +#if defined(WNT) || defined(OS2) +#define cPathSeperator ';' +#endif +#ifdef UNX +#define cPathSeperator ':' +#endif + +/*****************************************************************************/ +CommandLine::CommandLine(sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + CommandBuffer[0] = '\0'; + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); +} + +/*****************************************************************************/ +CommandLine::CommandLine(const char *CommandString, sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); + + BuildCommand(CommandString); +} + +/*****************************************************************************/ +CommandLine::CommandLine(const CommandLine& CCommandLine, sal_Bool bWrite) +/*****************************************************************************/ + : bTmpWrite(bWrite) +{ + CommandBuffer = new char [1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + nArgc = 0; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + + ComShell = new char [128]; + char* pTemp = getenv("COMMAND_SHELL"); + if(!pTemp) + strcpy(ComShell,COMMAND_SHELL); + else + strcpy(ComShell,pTemp); + + strcpy(&ComShell[strlen(ComShell)]," -C "); + + BuildCommand(CCommandLine.CommandBuffer); +} + +/*****************************************************************************/ +CommandLine::~CommandLine() +/*****************************************************************************/ +{ + delete [] CommandBuffer; + delete [] ComShell; + //for (int i = 0; ppArgv[i] != '\0'; i++) { + for (int i = 0; ppArgv[i] != 0; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + +} + +/*****************************************************************************/ +CommandLine& CommandLine::operator=(const CommandLine& CCommandLine) +/*****************************************************************************/ +{ + strcpy (CommandBuffer, CCommandLine.CommandBuffer); + for (int i = 0; i != nArgc; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + BuildCommand(CommandBuffer); + return *this; +} + +/*****************************************************************************/ +CommandLine& CommandLine::operator=(const char *CommandString) +/*****************************************************************************/ +{ + strcpy (CommandBuffer, CommandString); + for (int i = 0; i != nArgc; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + ppArgv = new char * [1]; + ppArgv[0] = NULL; + BuildCommand(CommandBuffer); + + return *this; +} + +/*****************************************************************************/ +void CommandLine::Print() +/*****************************************************************************/ +{ + //cout << "******* start print *******" << endl; + //cout << "nArgc = " << nArgc << endl; + //cout << "CommandBuffer = " << CommandBuffer << endl; + for (int i = 0; ppArgv[i] != NULL; i++) { + //cout << "ppArgv[" << i << "] = " << ppArgv[i] << endl; + } + //cout << "******** end print ********" << endl; +} + +/*****************************************************************************/ +void CommandLine::BuildCommand(const char *CommandString) +/*****************************************************************************/ +{ + int index = 0, pos=0; + char buffer[1024]; + char WorkString[1024]; + + strcpy(WorkString,CommandString); + + //falls LogWindow -> in tmpfile schreiben + if(bTmpWrite) + { + strcpy(&WorkString[strlen(WorkString)]," >&"); + strcpy(&WorkString[strlen(WorkString)],getenv("TMP")); + strcpy(&WorkString[strlen(WorkString)],TMPNAME); + } + + // delete old memory and get some new memory for CommandBuffer + + delete [] CommandBuffer; + CommandBuffer = new char [strlen(ComShell)+strlen(WorkString)+1]; + if (CommandBuffer == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + strcpy (CommandBuffer, ComShell); + strcpy (&CommandBuffer[strlen(ComShell)], WorkString); + + CommandString = CommandBuffer; + + // get the number of tokens + Strtokens(CommandString); + + // delete the space for the old CommandLine + + for (int i = 0; ppArgv[i] != 0; i++) { + delete [] ppArgv[i]; + } + delete [] ppArgv; + + /* get space for the new command line */ + + ppArgv = (char **) new char * [nArgc+1]; + if (ppArgv == NULL) { + //cout << "Error: no space" << endl; + exit(0); + } + + // flush the white space + + while ( isspace(*CommandString) ) + CommandString++; + + index = 0; + + // start the loop to build all the individual tokens + + while (*CommandString != '\0') { + + pos = 0; + + // copy the token until white space is found + + while ( !isspace(*CommandString) && *CommandString != '\0') { + + buffer[pos++] = *CommandString++; + + } + + buffer[pos] = '\0'; + + // get space for the individual tokens + + ppArgv[index] = (char *) new char [strlen(buffer)+1]; + if (ppArgv[index] == NULL) { + //cout << "Error: nospace" << endl; + exit(0); + } + + // copy the token + + strcpy (ppArgv[index++], buffer); + + // flush while space + + while ( isspace(*CommandString) ) + CommandString++; + + } + + // finish by setting the las pointer to NULL + ppArgv[nArgc]= NULL; + +} + +/*****************************************************************************/ +void CommandLine::Strtokens(const char *CommandString) +/*****************************************************************************/ +{ + int count = 0; + const char *temp; + + temp = CommandString; + + /* bypass white space */ + + while (isspace(*temp)) temp++; + + for (count=0; *temp != '\0'; count++) { + + /* continue until white space of string terminator is found */ + + while ((!isspace(*temp)) && (*temp != '\0')) temp++; + + /* bypass white space */ + + while (isspace(*temp)) temp++; + + } + nArgc = count; +} + +/*****************************************************************************/ +CCommand::CCommand( ByteString &rString ) +/*****************************************************************************/ +{ + rString.SearchAndReplace( '\t', ' ' ); + aCommand = rString.GetToken( 0, ' ' ); + aCommandLine = Search( "PATH" ); +#ifndef UNX + aCommandLine += " /c "; +#else + aCommandLine += " -c "; +#endif + + ByteString sCmd( rString.GetToken( 0, ' ' )); + ByteString sParam( rString.Copy( sCmd.Len())); + + aCommandLine += Search( "PATH", sCmd ); + aCommandLine += sParam; + + ImplInit(); +} + +/*****************************************************************************/ +CCommand::CCommand( const char *pChar ) +/*****************************************************************************/ +{ + ByteString aString = pChar; + aString.SearchAndReplace( '\t', ' ' ); + aCommand = aString.GetToken( 0, ' ' ); + + aCommandLine = Search( "PATH" ); +#ifndef UNX + aCommandLine += " /c "; +#else + aCommandLine += " -c "; +#endif + ByteString rString( pChar ); + + ByteString sCmd( rString.GetToken( 0, ' ' )); + ByteString sParam( rString.Copy( sCmd.Len())); + + aCommandLine += Search( "PATH", sCmd ); + aCommandLine += sParam; + + ImplInit(); +} + +/*****************************************************************************/ +void CCommand::ImplInit() +/*****************************************************************************/ +{ + char pTmpStr[255]; + size_t *pPtr; + char *pChar; + int nVoid = sizeof( size_t * ); + nArgc = aCommandLine.GetTokenCount(' '); + sal_uIntPtr nLen = aCommandLine.Len(); + + ppArgv = (char **) new char[ (sal_uIntPtr)(nLen + nVoid * (nArgc +2) + nArgc ) ]; + pChar = (char *) ppArgv + ( (1+nArgc) * nVoid ); + pPtr = (size_t *) ppArgv; + for ( xub_StrLen i=0; i<nArgc; i++ ) + { + (void) strcpy( pTmpStr, aCommandLine.GetToken(i, ' ' ).GetBuffer() ); + size_t nStrLen = strlen( pTmpStr ) + 1; + strcpy( pChar, pTmpStr ); + *pPtr = (sal_uIntPtr) pChar; + pChar += nStrLen; + pPtr += 1; +#ifdef UNX + if ( i == 1 ) + { + sal_uInt16 nWo = aCommandLine.Search("csh -c "); + if (nWo != STRING_NOTFOUND) + aCommandLine.Erase(0, nWo + 7); + else + aCommandLine.Erase(0, 16); + i = nArgc; + strcpy( pChar, aCommandLine.GetBuffer() ); + *pPtr = (sal_uIntPtr) pChar; + pPtr += 1; + } +#endif + } + *pPtr = 0; +} + +/*****************************************************************************/ +CCommand::operator int() +/*****************************************************************************/ +{ + int nRet; +#if defined WNT + nRet = _spawnv( P_WAIT, ppArgv[0], (const char **) ppArgv ); +#elif defined OS2 + nRet = _spawnv( P_WAIT, ppArgv[0], ppArgv ); +#elif defined UNX + //fprintf( stderr, "CComand : operator (int) not implemented\n"); + // **** Unix Implementierung *************** + pid_t pid; + + if (( pid = fork()) < 0 ) + { + DBG_ASSERT( sal_False, "fork error" ); + } + else if ( pid == 0 ) + { + if ( execv( ppArgv[0], (char * const *) ppArgv ) < 0 ) + { + DBG_ASSERT( sal_False, "execv failed" ); + } + } + //fprintf( stderr, "parent: %s %s\n", ppArgv[0] , ppArgv[1] ); + if ( (nRet = waitpid( pid, NULL, 0 ) < 0) ) + { + DBG_ASSERT( sal_False, "wait error" ); + } +#endif + + switch ( errno ) + { + case E2BIG : + nError = COMMAND_TOOBIG; + break; + case EINVAL : + nError = COMMAND_INVALID; + break; + case ENOENT: + nError = COMMAND_NOTFOUND; + break; + case ENOEXEC : + nError = COMMAND_NOEXEC; + break; + case ENOMEM : + nError = COMMAND_NOMEM; + break; + default: + nError = COMMAND_UNKNOWN; + } + + if ( nRet ) + fprintf( stderr, "Program returned with errros\n"); + return nRet; +} + +/*****************************************************************************/ +ByteString CCommand::Search(ByteString aEnv, ByteString sItem) +/*****************************************************************************/ +{ + // default wird eine Shell im Path gesucht, + // wenn aber compsec gestzt ist holen wir uns die + // Shell von dort + if ( sItem.Equals( COMMAND_SHELL )) + { + ByteString aComspec = GetEnv( "COMSPEC" ); + if ( !aComspec.Equals("")) + return aComspec; + } + + DirEntry aItem( String( sItem, RTL_TEXTENCODING_ASCII_US )); + if ( aItem.Exists()) + return sItem; + + ByteString aEntry, sReturn; + ByteString sEnv( aEnv ); + ByteString sEnvironment = GetEnv( sEnv.GetBuffer()); + xub_StrLen nCount = sEnvironment.GetTokenCount( cPathSeperator ); + + sal_Bool bFound = sal_False; + + for ( xub_StrLen i=0; i<nCount && !bFound; i++ ) + { + aEntry = sEnvironment.GetToken(i, cPathSeperator ); +#ifndef UNX + aEntry += '\\'; +#else + aEntry += '/'; +#endif + aEntry += sItem; + + String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US ); + DirEntry aDirEntry( sEntry ); + aDirEntry.ToAbs(); + if ( aDirEntry.Exists()) { + sReturn = aEntry; + bFound = sal_True; + } + } + if ( !bFound ) + { + sEnv = sEnv.ToUpperAscii(); + ByteString sEnvironment2 = GetEnv(sEnv.GetBuffer() ); + xub_StrLen nCount2 = sEnvironment2.GetTokenCount( cPathSeperator ); + for ( xub_StrLen i=0; i<nCount2 && !bFound; i++ ) + { + aEntry = sEnvironment2.GetToken(i, cPathSeperator ); +#ifndef UNX + aEntry += '\\'; +#else + aEntry += '/'; +#endif + aEntry += sItem; + + String sEntry( aEntry, RTL_TEXTENCODING_ASCII_US ); + DirEntry aDirEntry( sEntry ); + aDirEntry.ToAbs(); + if ( aDirEntry.Exists()) { + sReturn = aEntry; + bFound = sal_True; + } + } + } + + if ( sReturn.Equals( "" )) + sReturn = sItem; + + return sReturn; +} + +/*****************************************************************************/ +CCommandd::CCommandd( ByteString &rString, CommandBits nBits ) +/*****************************************************************************/ + : CCommand( rString ), + nFlag( nBits ) +{ +} + + +/*****************************************************************************/ +CCommandd::CCommandd( const char *pChar, CommandBits nBits ) +/*****************************************************************************/ + : CCommand( pChar ), + nFlag( nBits ) +{ +} + +/*****************************************************************************/ +CCommandd::operator int() +/*****************************************************************************/ +{ + int nRet = 0; + +#ifdef WNT + LPCTSTR lpApplicationName = NULL; + LPTSTR lpCommandLine = (char *) GetCommandLine_().GetBuffer(); + LPSECURITY_ATTRIBUTES lpProcessAttributes = NULL; + LPSECURITY_ATTRIBUTES lpThreadAttributes = NULL; + sal_Bool bInheritHandles = sal_True; + + // wie wuenschen wir denn gestartet zu werden ?? + DWORD dwCreationFlags; + + if ( nFlag & COMMAND_EXECUTE_START ) + dwCreationFlags = DETACHED_PROCESS; + else + dwCreationFlags = CREATE_NEW_CONSOLE; + + // wir erben vom Vaterprozess + LPVOID lpEnvironment = NULL; + + // das exe im Pfad suchen + LPCTSTR lpCurrentDirectory = NULL; + + // in dieser Struktur bekommen wir die erzeugte Processinfo + // zurueck + PROCESS_INFORMATION aProcessInformation; + + // weiteres Startupinfo anlegen + STARTUPINFO aStartupInfo; + + aStartupInfo.cb = sizeof( STARTUPINFO ); + aStartupInfo.lpReserved = NULL; + aStartupInfo.lpDesktop = NULL; + + // das Fenster bekommt den Namen des Exes + aStartupInfo.lpTitle = NULL; + aStartupInfo.dwX = 100; + aStartupInfo.dwY = 100; + //aStartupInfo.dwXSize = 400; + //aStartupInfo.dwYSize = 400; + aStartupInfo.dwXCountChars = 40; + aStartupInfo.dwYCountChars = 40; + + // Farben setzen + aStartupInfo.dwFillAttribute = FOREGROUND_RED | BACKGROUND_RED | + BACKGROUND_BLUE | BACKGROUND_GREEN; + +// aStartupInfo.dwFlags = STARTF_USESTDHANDLES; + //aStartupInfo.wShowWindow = SW_NORMAL; //SW_SHOWDEFAULT; + //aStartupInfo.wShowWindow = SW_HIDE; //SW_SHOWNOACTIVATE; + aStartupInfo.wShowWindow = SW_SHOWNOACTIVATE; + aStartupInfo.cbReserved2 = NULL; + aStartupInfo.lpReserved2 = NULL; + //aStartupInfo.hStdInput = stdin; + //aStartupInfo.hStdOutput = stdout; + //aStartupInfo.hStdError = stderr; + + if ( nFlag & COMMAND_EXECUTE_HIDDEN ) + { + aStartupInfo.wShowWindow = SW_HIDE; + aStartupInfo.dwFlags = aStartupInfo.dwFlags | STARTF_USESHOWWINDOW; + } + + bool bProcess = CreateProcess( lpApplicationName, + lpCommandLine, lpProcessAttributes, + lpThreadAttributes, bInheritHandles, + dwCreationFlags, lpEnvironment, lpCurrentDirectory, + &aStartupInfo, &aProcessInformation ); + + LPVOID lpMsgBuf; + + if ( bProcess ) + { + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + GetLastError(), + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &lpMsgBuf, + 0, + NULL ); + + ByteString aErrorString = (char *) lpMsgBuf; + + if ( nFlag & COMMAND_EXECUTE_WAIT ) + { + DWORD aProcessState = STILL_ACTIVE; + while(aProcessState == STILL_ACTIVE) + { + GetExitCodeProcess(aProcessInformation.hProcess,&aProcessState); + } + } + } + else + fprintf( stderr, "Can not start Process !" ); + +#endif + return nRet; +} diff --git a/soldep/bootstrp/makefile.mk b/soldep/bootstrp/makefile.mk index 56d3fa1f0..b27f79734 100644 --- a/soldep/bootstrp/makefile.mk +++ b/soldep/bootstrp/makefile.mk @@ -47,11 +47,13 @@ EXCEPTIONSFILES= \ $(SLO)$/prj.obj SLOFILES=\ + $(SLO)$/command.obj \ $(SLO)$/dep.obj \ $(SLO)$/minormk.obj \ $(SLO)$/prodmap.obj \ $(SLO)$/appdef.obj \ $(SLO)$/hashtbl.obj \ + $(SLO)$/sstring.obj \ $(SLO)$/prj.obj @@ -62,7 +64,6 @@ SHL1DEF =$(MISC)$/$(SHL1TARGET).def SHL1DEPN =$(SHL1LIBS) SHL1STDLIBS=\ $(TOOLSLIB) \ - $(BTSTRPLIB) \ $(VOSLIB) \ $(SALLIB) diff --git a/soldep/bootstrp/minormk.cxx b/soldep/bootstrp/minormk.cxx index 3fc17bd8e..e0b46d71c 100644 --- a/soldep/bootstrp/minormk.cxx +++ b/soldep/bootstrp/minormk.cxx @@ -27,7 +27,7 @@ #include "minormk.hxx" #include "prodmap.hxx" -#include <appdef.hxx> +#include <soldep/appdef.hxx> #include <tools/fsys.hxx> #include <tools/geninfo.hxx> diff --git a/soldep/bootstrp/prj.cxx b/soldep/bootstrp/prj.cxx index ce63e6deb..df1109d5b 100644 --- a/soldep/bootstrp/prj.cxx +++ b/soldep/bootstrp/prj.cxx @@ -26,14 +26,14 @@ ************************************************************************/ #include <stdlib.h> #include <stdio.h> -#include <bootstrp/sstring.hxx> +#include <soldep/sstring.hxx> #include <vos/mutex.hxx> #define ENABLE_BYTESTRING_STREAM_OPERATORS #include <tools/stream.hxx> #include <tools/geninfo.hxx> #include <soldep/prj.hxx> -#include <bootstrp/inimgr.hxx> +//#include <bootstrp/inimgr.hxx> #ifndef MACOSX #pragma hdrstop @@ -1212,24 +1212,21 @@ Star::Star(SolarFileList *pSolarFiles ) } /*****************************************************************************/ -Star::Star(GenericInformationList *pStandLst, ByteString &rVersion, - BOOL bLocal, const char *pSourceRoot ) +Star::Star(GenericInformationList *pStandLst, ByteString &rVersion ) /*****************************************************************************/ : pDepMode (NULL), pAllDepMode (NULL) { - UpdateFileList (pStandLst, rVersion, TRUE, bLocal, pSourceRoot); + UpdateFileList (pStandLst, rVersion, TRUE ); } /*****************************************************************************/ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersion, - BOOL bRead, BOOL bLocal, const char *pSourceRoot ) + BOOL bRead ) /*****************************************************************************/ { sSourceRoot=String::CreateFromAscii(""); // clear old SourceRoot ByteString sPath( rVersion ); - if ( pSourceRoot ) - sSourceRoot = String::CreateFromAscii( pSourceRoot ); #ifdef UNX sPath += "/settings/UNXSOLARLIST"; @@ -1240,10 +1237,6 @@ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersi 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) @@ -1360,14 +1353,14 @@ void Star::UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersi /*****************************************************************************/ void Star::FullReload( GenericInformationList *pStandLst, ByteString &rVersion, - BOOL bRead, BOOL bLocal, const char *pSourceRoot ) + BOOL bRead ) /*****************************************************************************/ { ClearAvailableDeps(); ClearCurrentDeps(); ClearLoadedFilesList(); RemoveAllPrj(); - UpdateFileList( pStandLst, rVersion, bRead, bLocal, pSourceRoot ); + UpdateFileList( pStandLst, rVersion, bRead ); } /*****************************************************************************/ @@ -2419,13 +2412,11 @@ StarWriter::StarWriter( SolarFileList *pSolarFiles, BOOL bReadComments ) /*****************************************************************************/ StarWriter::StarWriter( GenericInformationList *pStandLst, ByteString &rVersion, - ByteString &rMinor, BOOL bReadComments, BOOL bLocal, const char *pSourceRoot ) + ByteString &rMinor, BOOL bReadComments ) /*****************************************************************************/ : Star () { ByteString sPath( rVersion ); - if ( pSourceRoot ) - sSourceRoot = String::CreateFromAscii( pSourceRoot ); #ifdef UNX sPath += "/settings/UNXSOLARLIST"; @@ -2436,10 +2427,6 @@ StarWriter::StarWriter( GenericInformationList *pStandLst, ByteString &rVersion, if( pInfo_l && pInfo_l->GetValue().Len()) { ByteString sFile( pInfo_l->GetValue()); - if ( bLocal ) { - IniManager aIniManager; - aIniManager.ToLocal( sFile ); - } String sFileName_l( sFile, RTL_TEXTENCODING_ASCII_US ); nStarMode = STAR_MODE_SINGLE_PARSE; Read( sFileName_l, bReadComments ); diff --git a/soldep/bootstrp/sstring.cxx b/soldep/bootstrp/sstring.cxx new file mode 100644 index 000000000..9dcf2ac8d --- /dev/null +++ b/soldep/bootstrp/sstring.cxx @@ -0,0 +1,314 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _TOOLS_STRINGLIST +# define _TOOLS_STRINGLIST +#endif + +#define ENABLE_BYTESTRING_STREAM_OPERATORS +#include <tools/stream.hxx> +#include "soldep/sstring.hxx" + +SByteStringList::SByteStringList() +{ +} + +SByteStringList::~SByteStringList() +{ +} + +sal_uIntPtr SByteStringList::IsString( ByteString* pStr ) +{ + sal_uIntPtr nRet = NOT_THERE; + if ( (nRet = GetPrevString( pStr )) != 0 ) + { + ByteString* pString = GetObject( nRet ); + if ( *pString == *pStr ) + return nRet; + else + return NOT_THERE; + } + else + { + ByteString* pString = GetObject( 0 ); + if ( pString && (*pString == *pStr) ) + return 0; + else + return NOT_THERE; + } +} + +sal_uIntPtr SByteStringList::GetPrevString( ByteString* pStr ) +{ + sal_uIntPtr nRet = 0; + sal_Bool bFound = sal_False; + sal_uIntPtr nCountMember = Count(); + sal_uIntPtr nUpper = nCountMember; + sal_uIntPtr nLower = 0; + sal_uIntPtr nCurrent = nUpper / 2; + sal_uIntPtr nRem = 0; + ByteString* pString; + + do + { + if ( (nCurrent == nLower) || (nCurrent == nUpper) ) + return nLower; + pString = GetObject( nCurrent ); + StringCompare 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; +} + +/************************************************************************** +* +* Sortiert einen ByteString in die Liste ein und gibt die Position, +* an der einsortiert wurde, zurueck +* +**************************************************************************/ + +sal_uIntPtr SByteStringList::PutString( ByteString* pStr ) +{ + sal_uIntPtr nPos = GetPrevString ( pStr ); + if ( Count() ) + { + { + ByteString* pString = GetObject( 0 ); + if ( pString->CompareTo( *pStr ) == COMPARE_GREATER ) + { + Insert( pStr, (sal_uIntPtr)0 ); + return (sal_uIntPtr)0; + } + } + ByteString* pString = GetObject( nPos ); + if ( *pStr != *pString ) + { + Insert( pStr, nPos+1 ); + return ( nPos +1 ); + } + } + else + { + Insert( pStr ); + return (sal_uIntPtr)0; + } + + return NOT_THERE; +} + +ByteString* SByteStringList::RemoveString( const ByteString& rName ) +{ + sal_uIntPtr i; + ByteString* pReturn; + + for( i = 0 ; i < Count(); i++ ) + { + if ( rName == *GetObject( i ) ) + { + pReturn = GetObject(i); + Remove(i); + return pReturn; + } + } + + return NULL; +} + +void SByteStringList::CleanUp() +{ + ByteString* pByteString = First(); + while (pByteString) { + delete pByteString; + pByteString = Next(); + } + Clear(); +} + +SByteStringList& SByteStringList::operator<< ( SvStream& rStream ) +{ + sal_uInt32 nListCount; + rStream >> nListCount; + for ( sal_uInt16 i = 0; i < nListCount; i++ ) { + ByteString* pByteString = new ByteString(); + rStream >> *pByteString; + Insert (pByteString, LIST_APPEND); + } + return *this; +} + +SByteStringList& SByteStringList::operator>> ( SvStream& rStream ) +{ + sal_uInt32 nListCount = Count(); + rStream << nListCount; + ByteString* pByteString = First(); + while (pByteString) { + rStream << *pByteString; + pByteString = Next(); + } + return *this; +} + + + + + + + +SUniStringList::SUniStringList() +{ +} + +SUniStringList::~SUniStringList() +{ +} + +sal_uIntPtr SUniStringList::IsString( UniString* pStr ) +{ + sal_uIntPtr nRet = NOT_THERE; + if ( (nRet = GetPrevString( pStr )) != 0 ) + { + UniString* pString = GetObject( nRet ); + if ( *pString == *pStr ) + return nRet; + else + return NOT_THERE; + } + else + { + UniString* pString = GetObject( 0 ); + if ( pString && (*pString == *pStr) ) + return 0; + else + return NOT_THERE; + } +} + +sal_uIntPtr SUniStringList::GetPrevString( UniString* pStr ) +{ + sal_uIntPtr nRet = 0; + sal_Bool bFound = sal_False; + sal_uIntPtr nCountMember = Count(); + sal_uIntPtr nUpper = nCountMember; + sal_uIntPtr nLower = 0; + sal_uIntPtr nCurrent = nUpper / 2; + sal_uIntPtr nRem = 0; + UniString* pString; + + do + { + if ( (nCurrent == nLower) || (nCurrent == nUpper) ) + return nLower; + pString = GetObject( nCurrent ); + StringCompare 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; +} + +/************************************************************************** +* +* Sortiert einen UniString in die Liste ein und gibt die Position, +* an der einsortiert wurde, zurueck +* +**************************************************************************/ + +sal_uIntPtr SUniStringList::PutString( UniString* pStr ) +{ + sal_uIntPtr nPos = GetPrevString ( pStr ); + if ( Count() ) + { + { + UniString* pString = GetObject( 0 ); + if ( pString->CompareTo( *pStr ) == COMPARE_GREATER ) + { + Insert( pStr, (sal_uIntPtr)0); + return (sal_uIntPtr)0; + } + } + UniString* pString = GetObject( nPos ); + if ( *pStr != *pString ) + { + Insert( pStr, nPos+1 ); + return ( nPos +1 ); + } + } + else + { + Insert( pStr ); + return (sal_uIntPtr)0; + } + + return NOT_THERE; +} + +UniString* SUniStringList::RemoveString( const UniString& rName ) +{ + sal_uIntPtr i; + UniString* pReturn; + + for( i = 0 ; i < Count(); i++ ) + { + if ( rName == *GetObject( i ) ) + { + pReturn = GetObject(i); + Remove(i); + return pReturn; + } + } + + return NULL; +} diff --git a/soldep/inc/dep.hxx b/soldep/inc/dep.hxx index a14dc077a..79649289e 100644 --- a/soldep/inc/dep.hxx +++ b/soldep/inc/dep.hxx @@ -28,7 +28,7 @@ #ifndef _DEP_HXX #define _DEP_HXX -#include <bootstrp/sstring.hxx> +#include <soldep/sstring.hxx> class SByteExtStringList : public SByteStringList { diff --git a/soldep/inc/prodmap.hxx b/soldep/inc/prodmap.hxx index c7bdef71d..85b530bb0 100644 --- a/soldep/inc/prodmap.hxx +++ b/soldep/inc/prodmap.hxx @@ -28,9 +28,7 @@ #ifndef PRODUCT_MAPPER_HXX #define PRODUCT_MAPPER_HXX -#ifndef _SSTRING_HXX -#include <bootstrp/sstring.hxx> -#endif +#include <soldep/sstring.hxx> class GenericInformation; class GenericInformationList; diff --git a/soldep/inc/appdef.hxx b/soldep/inc/soldep/appdef.hxx index 186bb1f1a..186bb1f1a 100644 --- a/soldep/inc/appdef.hxx +++ b/soldep/inc/soldep/appdef.hxx diff --git a/soldep/inc/soldep/command.hxx b/soldep/inc/soldep/command.hxx new file mode 100644 index 000000000..5c642ba69 --- /dev/null +++ b/soldep/inc/soldep/command.hxx @@ -0,0 +1,163 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef COMMAND_HXX +#define COMMAND_HXX + +#include <iostream> + +#include <tools/stream.hxx> +#define STRLEN 100 +#ifndef UNX +#define TMPNAME "\\command.tmp" +#else +#define TMPNAME "/tmp/command.tmp" +#endif + +/** Different types of spawnable programs +*/ +enum ExeType +{ + EXE, /// programm is a native executable + BAT, /// programm is a DOS-Batch + BTM /// programm is a 4DOS-Batch +}; + +#define COMMAND_NOTFOUND 0x0001 +#define COMMAND_TOOBIG 0x0002 +#define COMMAND_INVALID 0x0004 +#define COMMAND_NOEXEC 0x0008 +#define COMMAND_NOMEM 0x0010 +#define COMMAND_UNKNOWN 0x0020 + +#ifdef WNT +#define COMMAND_SHELL "4nt.exe" +#endif +#ifdef OS2 +#define COMMAND_SHELL "4os2.exe" +#endif +#ifdef UNX +#define COMMAND_SHELL "csh" +#endif + +class CommandLine; +class LogWindow; + +class CommandLine +{ +friend class ChildProcess; +private: + char *CommandBuffer; + char *ComShell; + char **ppArgv; + sal_Bool bTmpWrite; + +public: + CommandLine(sal_Bool bTmpWrite = sal_False); + CommandLine(const char *, sal_Bool bTmpWrite = sal_False); + CommandLine(const CommandLine&, sal_Bool bTmpWrite = sal_False); + virtual ~CommandLine(); + + int nArgc; + + CommandLine& operator=(const CommandLine&); + CommandLine& operator=(const char *); + void BuildCommand(const char *); + char** GetCommand(void) { return ppArgv; } + void Strtokens(const char *); + void Print(); +}; + +/** Declares and spawns a child process. + The spawned programm could be a native executable or a schell script. +*/ +class CCommand +{ +private: + ByteString aCommandLine; + ByteString aCommand; + char *pArgv; + char **ppArgv; + sal_uIntPtr nArgc; + int nError; + +protected: + void ImplInit(); + void Initpp( sal_uIntPtr nCount, ByteString &rStr ); + +public: + /** Creates the process specified without spawning it + @param rString specifies the programm or shell scrip + */ + CCommand( ByteString &rString ); + + /** Creates the process specified without spawning it + @param pChar specifies the programm or shell scrip + */ + CCommand( const char *pChar ); + + /** Try to find the given programm in specified path + @param sEnv specifies the current search path, defaulted by environment + @param sItem specifies the system shell + @return the Location (when programm was found) + */ + static ByteString Search( ByteString sEnv, + ByteString sItem = COMMAND_SHELL ); + + /** Spawns the Process + @return 0 when spawned without errors, otherwise a error code + */ + operator int(); + + ByteString GetCommandLine_() { return aCommandLine; } + ByteString GetCommand() { return aCommand; } + + char** GetCommandStr() { return ppArgv; } +}; + +#define COMMAND_EXECUTE_WINDOW 0x0000001 +#define COMMAND_EXECUTE_CONSOLE 0x0000002 +#define COMMAND_EXECUTE_HIDDEN 0x0000004 +#define COMMAND_EXECUTE_START 0x0000008 +#define COMMAND_EXECUTE_WAIT 0x0000010 +#define COMMAND_EXECUTE_REMOTE 0x1000000 + +typedef sal_uIntPtr CommandBits; + +/** Allowes to spawn programms hidden, waiting etc. + @see CCommand +*/ +class CCommandd : public CCommand +{ + CommandBits nFlag; +public: + CCommandd( ByteString &rString, CommandBits nBits ); + CCommandd( const char *pChar, CommandBits nBits ); + operator int(); +}; + +#endif diff --git a/soldep/inc/soldep/connctr.hxx b/soldep/inc/soldep/connctr.hxx index 85c7c6d96..b0296b019 100644 --- a/soldep/inc/soldep/connctr.hxx +++ b/soldep/inc/soldep/connctr.hxx @@ -30,10 +30,8 @@ #define _FMRWRK_CONNCTR_HXX -#ifndef _SV_WINDOW_HXX #include <vcl/window.hxx> -#endif -#include <bootstrp/listmacr.hxx> +#include <soldep/listmacr.hxx> #include <tools/stream.hxx> class DepWin; diff --git a/soldep/inc/soldep/listmacr.hxx b/soldep/inc/soldep/listmacr.hxx new file mode 100644 index 000000000..f6db92ed1 --- /dev/null +++ b/soldep/inc/soldep/listmacr.hxx @@ -0,0 +1,60 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _LISTMACR_HXX +#define _LISTMACR_HXX + +#define DECL_DEST_LIST( TmpListType, ListType, PointerType ) \ +DECLARE_LIST(TmpListType, PointerType) \ +class ListType : public TmpListType \ +{ \ +public: \ + void ClearAndDelete() \ + { \ + while ( Count()) { \ + PointerType pTmp = GetObject(( sal_uIntPtr ) 0 ); \ + delete pTmp; \ + Remove(( sal_uIntPtr ) 0 ); \ + } \ + } \ + ~ListType() \ + { \ + ClearAndDelete(); \ + } \ +}; \ + +#endif + + + + + + + + + + diff --git a/soldep/inc/soldep/objwin.hxx b/soldep/inc/soldep/objwin.hxx index 4e6b44064..a53762621 100644 --- a/soldep/inc/soldep/objwin.hxx +++ b/soldep/inc/soldep/objwin.hxx @@ -33,7 +33,7 @@ #endif #include <vcl/menu.hxx> #include <vcl/timer.hxx> -#include <bootstrp/listmacr.hxx> +#include <soldep/listmacr.hxx> #include <tools/stream.hxx> #include <soldep/connctr.hxx> diff --git a/soldep/inc/soldep/prj.hxx b/soldep/inc/soldep/prj.hxx index 81a9ada76..57e8f96a4 100644 --- a/soldep/inc/soldep/prj.hxx +++ b/soldep/inc/soldep/prj.hxx @@ -30,9 +30,7 @@ #include <tools/fsys.hxx> #include <tools/stream.hxx> -#ifndef _LISTMACR_HXX -#include <bootstrp/listmacr.hxx> -#endif +#include <soldep/listmacr.hxx> #include <vos/mutex.hxx> #include <tools/string.hxx> @@ -406,8 +404,7 @@ public: Star(); Star( String aFileName, USHORT nMode = STAR_MODE_SINGLE_PARSE ); Star( SolarFileList *pSolarFiles ); - Star( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bLocal = FALSE, - const char *pSourceRoot = NULL ); + Star( GenericInformationList *pStandLst, ByteString &rVersion ); ~Star(); @@ -430,10 +427,8 @@ public: BOOL NeedsUpdate(); SolarFileList* NeedsFilesForUpdate(); void ReplaceFileEntry( StarFileList *pStarFiles, StarFile* pFile ); - void UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE, - BOOL bLocal = FALSE, const char *pSourceRoot = NULL ); - void FullReload( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE, - BOOL bLocal = FALSE, const char *pSourceRoot = NULL ); + void UpdateFileList( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE ); + void FullReload( GenericInformationList *pStandLst, ByteString &rVersion, BOOL bRead = FALSE ); void GenerateFileLoadList( SolarFileList *pSolarFiles ); BOOL CheckFileLoadList(SolarFileList *pSolarFiles); @@ -465,7 +460,7 @@ public: StarWriter( String aFileName, BOOL bReadComments = FALSE, USHORT nMode = STAR_MODE_SINGLE_PARSE ); StarWriter( SolarFileList *pSolarFiles, BOOL bReadComments = FALSE ); StarWriter( GenericInformationList *pStandLst, ByteString &rVersion, ByteString &rMinor, - BOOL bReadComments = FALSE, BOOL bLocal = FALSE, const char *pSourceRoot = NULL ); + BOOL bReadComments = FALSE ); void CleanUp(); diff --git a/soldep/inc/soldep/sstring.hxx b/soldep/inc/soldep/sstring.hxx new file mode 100644 index 000000000..51ca88a24 --- /dev/null +++ b/soldep/inc/soldep/sstring.hxx @@ -0,0 +1,105 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ + +#ifndef _SSTRING_HXX +#define _SSTRING_HXX + +#include <tools/string.hxx> +#include <tools/list.hxx> + +#define NOT_THERE LIST_ENTRY_NOTFOUND + +#define SStringList SUniStringList +#define StringList UniStringList + +DECLARE_LIST( ByteStringList, ByteString* ) +DECLARE_LIST( UniStringList, UniString* ) + +class SvStream; + +// --------------------- +// - class SStringList - +// --------------------- + +class SByteStringList : public ByteStringList +{ +public: + SByteStringList(); + ~SByteStringList(); + + // neuen ByteString in Liste einfuegen + sal_uIntPtr PutString( ByteString* ); + ByteString* RemoveString( const ByteString& rName ); + + // Position des ByteString in Liste, wenn nicht enthalten, dann + // return = NOT_THERE + sal_uIntPtr IsString( ByteString* ); + + // Vorgaenger ermitteln ( auch wenn selbst noch nicht in + // Liste enthalten + sal_uIntPtr GetPrevString( ByteString* ); + void CleanUp(); + + SByteStringList& operator<< ( SvStream& rStream ); + SByteStringList& operator>> ( SvStream& rStream ); +}; + +// --------------------- +// - class SUniStringList - +// --------------------- + +class SUniStringList : public UniStringList +{ +public: + SUniStringList(); + ~SUniStringList(); + + // neuen UniString in Liste einfuegen + sal_uIntPtr PutString( UniString* ); + UniString* RemoveString( const UniString& rName ); + + // Position des UniString in Liste, wenn nicht enthalten, dann + // return = NOT_THERE + sal_uIntPtr IsString( UniString* ); + + // Vorgaenger ermitteln ( auch wenn selbst noch nicht in + // Liste enthalten + sal_uIntPtr GetPrevString( UniString* ); +}; + +class Text +{ +protected: + String aString; + +public: + Text( char* pChar ); + Text( String &rStr ) { aString = rStr; } + void Stderr(); +}; + +#endif diff --git a/soldep/prj/d.lst b/soldep/prj/d.lst index 73301a558..cfd605ed3 100644 --- a/soldep/prj/d.lst +++ b/soldep/prj/d.lst @@ -27,8 +27,11 @@ mkdir: %COMMON_DEST%\res%_EXT%\img\additional ..\inc\soldep\prj.hxx %_DEST%\inc%_EXT%\soldep\prj.hxx ..\inc\dep.hxx %_DEST%\inc%_EXT%\soldep\dep.hxx ..\inc\prodmap.hxx %_DEST%\inc%_EXT%\soldep\prodmap.hxx -..\inc\appdef.hxx %_DEST%\inc%_EXT%\soldep\appdef.hxx +..\inc\soldep\appdef.hxx %_DEST%\inc%_EXT%\soldep\appdef.hxx ..\inc\soldep\soldlg.hrc %_DEST%\inc%_EXT%\soldep\soldlg.hrc +..\inc\soldep\sstring.hxx %_DEST%\inc%_EXT%\soldep\sstring.hxx +..\inc\soldep\command.hxx %_DEST%\inc%_EXT%\soldep\command.hxx +..\inc\soldep\listmacr.hxx %_DEST%\inc%_EXT%\soldep\listmacr.hxx ..\%__SRC%\lib\soldep.lib %_DEST%\lib%_EXT%\soldep.lib ..\%__SRC%\lib\bootstrpdt.lib %_DEST%\lib%_EXT%\bootstrpdt.lib diff --git a/soldep/source/depapp.hxx b/soldep/source/depapp.hxx index 608a59897..1c5f3dd64 100644 --- a/soldep/source/depapp.hxx +++ b/soldep/source/depapp.hxx @@ -34,7 +34,7 @@ #include <svl/solar.hrc> #include <tools/resmgr.hxx> -#include <bootstrp/sstring.hxx> +#include <soldep/sstring.hxx> #include <vcl/event.hxx> #include <vcl/svapp.hxx> #include <vcl/wrkwin.hxx> diff --git a/soldep/source/makefile.mk b/soldep/source/makefile.mk index 5f6b188a5..25cc78ade 100644 --- a/soldep/source/makefile.mk +++ b/soldep/source/makefile.mk @@ -68,7 +68,6 @@ SHL1STDLIBS = $(SVTOOLLIB) \ $(VCLLIB) \ $(UCBHELPERLIB) \ $(SOTLIB) \ - $(BTSTRPLIB) \ $(TOOLSLIB) \ $(VOSLIB) \ $(SALLIB) \ @@ -109,7 +108,6 @@ APP1STDLIBS= \ $(UCBHELPERLIB) \ $(VCLLIB) \ $(SOTLIB) \ - $(BTSTRPLIB) \ $(TOOLSLIB) \ $(VOSLIB) \ $(SALLIB) \ diff --git a/soldep/source/soldep.cxx b/soldep/source/soldep.cxx index 25fc1bf18..3080974d6 100644 --- a/soldep/source/soldep.cxx +++ b/soldep/source/soldep.cxx @@ -29,13 +29,13 @@ #include <osl/file.hxx> #include <rtl/ustring.hxx> #include <tools/debug.hxx> -#include <bootstrp/sstring.hxx> +#include <soldep/sstring.hxx> #include <svtools/filedlg.hxx> #include <tools/iparser.hxx> #include <tools/geninfo.hxx> #include <vcl/gdimtf.hxx> #include <vcl/bitmap.hxx> -#include <appdef.hxx> +#include <soldep/appdef.hxx> #include "time.h" #include <soldep/depper.hxx> #include <soldep/soldep.hxx> |