diff options
Diffstat (limited to 'desktop/os2/source')
-rw-r--r-- | desktop/os2/source/applauncher/launcher.cxx | 122 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/launcher.hxx | 9 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/makefile.mk | 121 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/officeloader.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/quickstart.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/sbase.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/scalc.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/sdraw.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/simpress.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/smath.cxx | 3 | ||||
-rw-r--r-- | desktop/os2/source/applauncher/swriter.cxx | 3 |
11 files changed, 276 insertions, 0 deletions
diff --git a/desktop/os2/source/applauncher/launcher.cxx b/desktop/os2/source/applauncher/launcher.cxx new file mode 100644 index 000000000000..36c23e1eb4e0 --- /dev/null +++ b/desktop/os2/source/applauncher/launcher.cxx @@ -0,0 +1,122 @@ +/************************************************************************* + * + * 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 "launcher.hxx" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <malloc.h> +#include <process.h> + +int main( int argc, char* argv[]) +{ + PPIB pib; + APIRET rc; + RESULTCODES result = {0}; + char szFail[ _MAX_PATH]; + + HAB hab = WinInitialize( 0); + HMQ hmq = WinCreateMsgQueue( hab, 0); + ERRORID erridErrorCode = 0; + erridErrorCode = WinGetLastError(hab); + + // Calculate application name + CHAR szLibpath[_MAX_PATH*2]; + CHAR szApplicationName[_MAX_PATH]; + CHAR szDrive[_MAX_PATH]; + CHAR szDir[_MAX_PATH]; + CHAR szFileName[_MAX_PATH]; + CHAR szExt[_MAX_PATH]; + + // get executable fullpath + DosGetInfoBlocks(NULL, &pib); + DosQueryModuleName(pib->pib_hmte, sizeof(szApplicationName), szApplicationName); + + // adjust libpath + _splitpath( szApplicationName, szDrive, szDir, szFileName, szExt ); + char* basedir = strstr( szDir, "\\PROGRAM\\"); + if (basedir) *basedir = 0; + sprintf( szLibpath, "\"%s%s\\URE\\BIN\";\"%s%s\\BASIS\\PROGRAM\";%BeginLIBPATH%", + szDrive, szDir, szDrive, szDir); + DosSetExtLIBPATH( (PCSZ)szLibpath, BEGIN_LIBPATH); + // make sure we load DLL from our path only, so multiple instances/versions + // can be loaded. +#if 0 + // YD this feature is not compatible with innowin b20, + // java cannot load with this flag enabled + DosSetExtLIBPATH( (PCSZ)"T", LIBPATHSTRICT); +#endif + + // adjust exe name + _splitpath( szApplicationName, szDrive, szDir, szFileName, szExt ); + _makepath( szApplicationName, szDrive, szDir, OFFICE_IMAGE_NAME, (".bin") ); + + // copy command line parameters + int i, len; + len = strlen(szApplicationName) + 1 + strlen( APPLICATION_SWITCH) + 1 + 1; + for( i=1; i<argc; i++) + len += strlen( argv[i]) + 1; + + char* pszCommandLine, *pszArgs; + pszCommandLine = (char*) calloc( 1, len); + strcpy( pszCommandLine, szApplicationName); + pszArgs = pszCommandLine + strlen(szApplicationName) + 1; + strcat( pszArgs, APPLICATION_SWITCH); + strcat( pszArgs, " "); + for( i=1; i<argc; i++) { + // add quotes if argument has spaces! + if (strchr( argv[i], ' ')) + strcat( pszArgs, "\""); + strcat( pszArgs, argv[i]); + if (strchr( argv[i], ' ')) + strcat( pszArgs, "\""); + strcat( pszArgs, " "); + } + pszArgs[ strlen( pszArgs) + 0] = 0; + + // execute + rc = DosExecPgm(szFail, sizeof(szFail), + EXEC_SYNC, (PCSZ)pszCommandLine, (PCSZ)NULL, &result, + (PCSZ)szApplicationName); + if (rc) { + char szMessage[ _MAX_PATH*2]; + sprintf( szMessage, "Execution failed! Contact technical support.\n\nReturn code: %d\nFailing module:%s\n", rc, szFail); + rc = WinMessageBox( HWND_DESKTOP, HWND_DESKTOP, + (PSZ)szMessage, + (PSZ)"Unable to start OpenOffice.org!", + 0, MB_ERROR | MB_OK); + WinDestroyMsgQueue( hmq); + WinTerminate( hab); + exit(1); + } + + WinDestroyMsgQueue( hmq); + WinTerminate( hab); + + exit( result.codeResult); +} diff --git a/desktop/os2/source/applauncher/launcher.hxx b/desktop/os2/source/applauncher/launcher.hxx new file mode 100644 index 000000000000..181289275dea --- /dev/null +++ b/desktop/os2/source/applauncher/launcher.hxx @@ -0,0 +1,9 @@ + +#define INCL_DOS +#define INCL_PM +#include <os2.h> + +#define OFFICE_IMAGE_NAME ("soffice") + +extern CHAR APPLICATION_SWITCH[]; + diff --git a/desktop/os2/source/applauncher/makefile.mk b/desktop/os2/source/applauncher/makefile.mk new file mode 100644 index 000000000000..bf71b57c2fdf --- /dev/null +++ b/desktop/os2/source/applauncher/makefile.mk @@ -0,0 +1,121 @@ +#************************************************************************* +# +# 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=desktop +TARGET=applauncher +LIBTARGET=NO +TARGETTYPE=GUI + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +# --- Files -------------------------------------------------------- + +OBJFILES= \ + $(OBJ)$/launcher.obj \ + $(OBJ)$/swriter.obj \ + $(OBJ)$/scalc.obj \ + $(OBJ)$/sdraw.obj \ + $(OBJ)$/simpress.obj \ + $(OBJ)$/sbase.obj \ + $(OBJ)$/smath.obj \ + $(OBJ)$/officeloader.obj \ + $(OBJ)$/quickstart.obj + +APP1TARGET=swriter +APP1NOSAL=TRUE +APP1LINKRES=$(MISC)$/$(TARGET)1.res +APP1ICON=$(SOLARRESDIR)$/icons$/ooo-writer-app.ico +APP1OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/swriter.obj + + +APP2TARGET=scalc +APP2NOSAL=TRUE +APP2LINKRES=$(MISC)$/$(TARGET)2.res +APP2ICON=$(SOLARRESDIR)$/icons$/ooo-calc-app.ico +APP2OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/scalc.obj + +APP3TARGET=sdraw +APP3NOSAL=TRUE +APP3LINKRES=$(MISC)$/$(TARGET)3.res +APP3ICON=$(SOLARRESDIR)$/icons$/ooo-draw-app.ico +APP3OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/sdraw.obj + +APP4TARGET=simpress +APP4NOSAL=TRUE +APP4LINKRES=$(MISC)$/$(TARGET)4.res +APP4ICON=$(SOLARRESDIR)$/icons$/ooo-impress-app.ico +APP4OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/simpress.obj + +APP5TARGET=sbase +APP5NOSAL=TRUE +APP5LINKRES=$(MISC)$/$(TARGET)5.res +APP5ICON=$(SOLARRESDIR)$/icons$/ooo-base-app.ico +APP5OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/sbase.obj + +APP6TARGET=smath +APP6NOSAL=TRUE +APP6LINKRES=$(MISC)$/$(TARGET)6.res +APP6ICON=$(SOLARRESDIR)$/icons$/ooo-math-app.ico +APP6OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/smath.obj + +APP7TARGET=officeloader +APP7NOSAL=TRUE +APP7LINKRES=$(MISC)$/$(TARGET)7.res +APP7ICON=$(SOLARRESDIR)$/icons$/ooo-main-app.ico +APP7OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/officeloader.obj + +APP8TARGET=quickstart +APP8NOSAL=TRUE +APP8LINKRES=$(MISC)$/$(TARGET)8.res +APP8ICON=$(SOLARRESDIR)$/icons$/ooo-main-app.ico +APP8OBJS = \ + $(OBJ)$/launcher.obj\ + $(OBJ)$/quickstart.obj + +# --- Targets ------------------------------------------------------ + + +.INCLUDE : target.mk + diff --git a/desktop/os2/source/applauncher/officeloader.cxx b/desktop/os2/source/applauncher/officeloader.cxx new file mode 100644 index 000000000000..9a664ab68d43 --- /dev/null +++ b/desktop/os2/source/applauncher/officeloader.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "" ); diff --git a/desktop/os2/source/applauncher/quickstart.cxx b/desktop/os2/source/applauncher/quickstart.cxx new file mode 100644 index 000000000000..63585434bb50 --- /dev/null +++ b/desktop/os2/source/applauncher/quickstart.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-quickstart" ); diff --git a/desktop/os2/source/applauncher/sbase.cxx b/desktop/os2/source/applauncher/sbase.cxx new file mode 100644 index 000000000000..a60a46be4cf4 --- /dev/null +++ b/desktop/os2/source/applauncher/sbase.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-base" ); diff --git a/desktop/os2/source/applauncher/scalc.cxx b/desktop/os2/source/applauncher/scalc.cxx new file mode 100644 index 000000000000..dc4470ca08d3 --- /dev/null +++ b/desktop/os2/source/applauncher/scalc.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-calc" ); diff --git a/desktop/os2/source/applauncher/sdraw.cxx b/desktop/os2/source/applauncher/sdraw.cxx new file mode 100644 index 000000000000..76893e1f4f87 --- /dev/null +++ b/desktop/os2/source/applauncher/sdraw.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-draw" ); diff --git a/desktop/os2/source/applauncher/simpress.cxx b/desktop/os2/source/applauncher/simpress.cxx new file mode 100644 index 000000000000..15f03ab7afa3 --- /dev/null +++ b/desktop/os2/source/applauncher/simpress.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-impress" ); diff --git a/desktop/os2/source/applauncher/smath.cxx b/desktop/os2/source/applauncher/smath.cxx new file mode 100644 index 000000000000..cad0b8631e23 --- /dev/null +++ b/desktop/os2/source/applauncher/smath.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-math" ); diff --git a/desktop/os2/source/applauncher/swriter.cxx b/desktop/os2/source/applauncher/swriter.cxx new file mode 100644 index 000000000000..ded9cf089da8 --- /dev/null +++ b/desktop/os2/source/applauncher/swriter.cxx @@ -0,0 +1,3 @@ +#include "launcher.hxx" + +CHAR APPLICATION_SWITCH[] = ( "-writer" ); |