summaryrefslogtreecommitdiff
path: root/soldep
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-06-15 22:40:19 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-06-16 09:13:54 +0100
commit1ea46226297d51cebd56b17bca36fc58bd258901 (patch)
treefadbed51444f2194fdc6df923d875fb08e600d9a /soldep
parent2e581960e517947661cc2010faa71e478910335f (diff)
remove soldep
Diffstat (limited to 'soldep')
-rw-r--r--soldep/bootstrp/command.cxx681
-rw-r--r--soldep/inc/soldep/command.hxx160
2 files changed, 0 insertions, 841 deletions
diff --git a/soldep/bootstrp/command.cxx b/soldep/bootstrp/command.cxx
deleted file mode 100644
index ed5ff4c0be14..000000000000
--- a/soldep/bootstrp/command.cxx
+++ /dev/null
@@ -1,681 +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.
- *
- ************************************************************************/
-
-#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)
-#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 <windows.h>
-#endif
-
-#if defined(WNT)
-#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 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/inc/soldep/command.hxx b/soldep/inc/soldep/command.hxx
deleted file mode 100644
index 93c01616e593..000000000000
--- a/soldep/inc/soldep/command.hxx
+++ /dev/null
@@ -1,160 +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.
- *
- ************************************************************************/
-
-#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 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