summaryrefslogtreecommitdiff
path: root/desktop/unx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2011-09-21 11:52:26 +0200
committerStephan Bergmann <sbergman@redhat.com>2011-09-21 18:16:42 +0200
commit6560e48afa53a0ca1ab9417ac2637f8d64332375 (patch)
tree77e6eefd67c7133ffc611f9c617af7100ea52708 /desktop/unx
parent149deaca814f21247497b9f7830567044682ecfa (diff)
Simplify code by letting get_app_path always include a final slash.
Diffstat (limited to 'desktop/unx')
-rwxr-xr-xdesktop/unx/source/start.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
index 58692c4cd82b..37b407b66240 100755
--- a/desktop/unx/source/start.c
+++ b/desktop/unx/source/start.c
@@ -138,7 +138,7 @@ child_spawn ( Args *args, sal_Bool bAllArgs, sal_Bool bWithStatus )
/* application name */
rtl_uString_newFromAscii( &pApp, "file://" );
rtl_uString_newConcat( &pApp, pApp, args->pAppPath );
- rtl_uString_newFromAscii( &pTmp, "/soffice.bin" );
+ rtl_uString_newFromAscii( &pTmp, "soffice.bin" );
rtl_uString_newConcat( &pApp, pApp, pTmp );
rtl_uString_release( pTmp );
pTmp = NULL;
@@ -210,12 +210,13 @@ child_get_exit_code (ChildInfo *info)
typedef enum { ProgressContinue, ProgressRestart, ProgressExit } ProgressStatus;
-/* Path of the application. */
+/* Path of the application, with trailing slash. */
static rtl_uString *
get_app_path( const char *pAppExec )
{
char pRealPath[PATH_MAX];
rtl_uString *pResult;
+ sal_Int32 len;
char *pOrigPath = strdup( pAppExec );
char *pPath = dirname( pOrigPath );
@@ -224,6 +225,15 @@ get_app_path( const char *pAppExec )
pResult = charp_to_ustr( pRealPath );
free( pOrigPath );
+ len = rtl_uString_getLength(pResult);
+ if (len > 0 && rtl_uString_getStr(pResult)[len - 1] != '/')
+ {
+ rtl_uString *pSlash = NULL;
+ rtl_uString_newFromAscii(&pSlash, "/");
+ rtl_uString_newConcat(&pResult, pResult, pSlash);
+ rtl_uString_release(pSlash);
+ }
+
return pResult;
}
@@ -289,7 +299,6 @@ get_pipe_path( rtl_uString *pAppPath )
/* setup bootstrap filename */
rtl_uString_newFromAscii( &pPath, "file://" );
rtl_uString_newConcat( &pPath, pPath, pAppPath );
- rtl_uString_newFromAscii( &pTmp, "/" );
rtl_uString_newConcat( &pPath, pPath, pTmp );
rtl_uString_newFromAscii( &pTmp, SAL_CONFIGFILE( "bootstrap" ) );
rtl_uString_newConcat( &pPath, pPath, pTmp );
@@ -557,23 +566,23 @@ load_splash_image( rtl_uString *pUAppPath )
pSuffix = pBuffer + pAppPath->length;
rtl_string_release( pAppPath );
- strcpy (pSuffix, "/edition/intro");
+ strcpy (pSuffix, "edition/intro");
strcat (pSuffix, pLocale);
strcat (pSuffix, IMG_SUFFIX);
if ( splash_load_bmp( pBuffer ) )
goto cleanup;
- strcpy (pSuffix, "/edition/intro" IMG_SUFFIX);
+ strcpy (pSuffix, "edition/intro" IMG_SUFFIX);
if ( splash_load_bmp( pBuffer ) )
goto cleanup;
- strcpy (pSuffix, "/intro");
+ strcpy (pSuffix, "intro");
strcat (pSuffix, pLocale);
strcat (pSuffix, IMG_SUFFIX);
if ( splash_load_bmp( pBuffer ) )
goto cleanup;
- strcpy (pSuffix, "/intro" IMG_SUFFIX);
+ strcpy (pSuffix, "intro" IMG_SUFFIX);
if ( splash_load_bmp( pBuffer ) )
goto cleanup;
@@ -625,7 +634,6 @@ load_splash_defaults( rtl_uString *pAppPath, sal_Bool *bNoDefaults )
/* costruct the sofficerc file location */
rtl_uString_newFromAscii( &pSettings, "file://" );
rtl_uString_newConcat( &pSettings, pSettings, pAppPath );
- rtl_uString_newFromAscii( &pTmp, "/" );
rtl_uString_newConcat( &pSettings, pSettings, pTmp );
rtl_uString_newFromAscii( &pTmp, SAL_CONFIGFILE( "soffice" ) );
rtl_uString_newConcat( &pSettings, pSettings, pTmp );
@@ -735,7 +743,7 @@ system_checks( void )
extern int pagein_execute (int argc, char **argv);
#ifndef MACOSX
-#define REL_PATH "/../basis-link/program/"
+#define REL_PATH "../basis-link/program/"
static char *build_pagein_path (Args *args, const char *pagein_name)
{
char *path;
@@ -832,7 +840,7 @@ exec_javaldx (Args *args)
rtl_uString_newFromAscii( &pTmp, "-env:INIFILENAME=vnd.sun.star.pathname:" );
rtl_uString_newConcat( &pTmp, pTmp, args->pAppPath );
pTmp2 = NULL;
- rtl_uString_newFromAscii( &pTmp2, "/redirectrc" );
+ rtl_uString_newFromAscii( &pTmp2, "redirectrc" );
rtl_uString_newConcat( &pTmp, pTmp, pTmp2 );
ppArgs[nArgs] = pTmp;
rtl_uString_release (pTmp2);
@@ -847,7 +855,7 @@ exec_javaldx (Args *args)
rtl_uString_newFromAscii( &pApp, "file://" );
rtl_uString_newConcat( &pApp, pApp, args->pAppPath );
pTmp = NULL;
- rtl_uString_newFromAscii( &pTmp, "/../basis-link/ure-link/bin/javaldx" );
+ rtl_uString_newFromAscii( &pTmp, "../basis-link/ure-link/bin/javaldx" );
rtl_uString_newConcat( &pApp, pApp, pTmp );
rtl_uString_release( pTmp );