summaryrefslogtreecommitdiff
path: root/desktop/unx/source
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2011-11-08 17:52:37 +0000
committerMichael Meeks <michael.meeks@suse.com>2011-11-08 17:52:37 +0000
commit62ebb119cfb42adc5e007fb77f68d56b40de2a85 (patch)
tree01544b8059f3bc9189fb8dc6808980f749843f40 /desktop/unx/source
parentd3d8998a2ccc9d4105ebb7f137aed06bdde7abfc (diff)
don't demonize if we are passed an --accept line for UNO remote control
Diffstat (limited to 'desktop/unx/source')
-rw-r--r--desktop/unx/source/args.c33
-rw-r--r--desktop/unx/source/args.h1
-rw-r--r--desktop/unx/source/start.c9
3 files changed, 26 insertions, 17 deletions
diff --git a/desktop/unx/source/args.c b/desktop/unx/source/args.c
index 367bac2c7e90..c889e6c3d430 100644
--- a/desktop/unx/source/args.c
+++ b/desktop/unx/source/args.c
@@ -48,29 +48,33 @@ static struct {
unsigned int bInhibitSplash : 1;
unsigned int bInhibitPagein : 1;
unsigned int bInhibitJavaLdx : 1;
+ unsigned int bInhibitDemon : 1;
const char *pPageinType;
} pArgDescr[] = {
/* have a trailing argument */
- { "pt", 1, 0, 0, 0, NULL },
- { "display", 1, 0, 0, 0, NULL },
+ { "pt", 1, 0, 0, 0, 0, NULL },
+ { "display", 1, 0, 0, 0, 0, NULL },
/* no splash */
- { "nologo", 0, 1, 0, 0, NULL },
- { "headless", 0, 1, 0, 0, NULL },
- { "invisible", 0, 1, 0, 0, NULL },
- { "minimized", 0, 1, 0, 0, NULL },
+ { "nologo", 0, 1, 0, 0, 0, NULL },
+ { "headless", 0, 1, 0, 0, 0, NULL },
+ { "invisible", 0, 1, 0, 0, 0, NULL },
+ { "minimized", 0, 1, 0, 0, 0, NULL },
/* pagein bits */
- { "writer", 0, 0, 0, 0, "pagein-writer" },
- { "calc", 0, 0, 0, 0, "pagein-calc" },
- { "draw", 0, 0, 0, 0, "pagein-draw" },
- { "impress", 0, 0, 0, 0, "pagein-impress" },
+ { "writer", 0, 0, 0, 0, 0, "pagein-writer" },
+ { "calc", 0, 0, 0, 0, 0, "pagein-calc" },
+ { "draw", 0, 0, 0, 0, 0, "pagein-draw" },
+ { "impress", 0, 0, 0, 0, 0, "pagein-impress" },
/* nothing much */
- { "version", 0, 1, 1, 1, NULL },
- { "help", 0, 1, 1, 1, NULL },
- { "h", 0, 1, 1, 1, NULL },
- { "?", 0, 1, 1, 1, NULL },
+ { "version", 0, 1, 1, 1, 0, NULL },
+ { "help", 0, 1, 1, 1, 0, NULL },
+ { "h", 0, 1, 1, 1, 0, NULL },
+ { "?", 0, 1, 1, 1, 0, NULL },
+
+ /* UNO remote controlled process */
+ { "accept", 0, 0, 0, 0, 1, NULL },
};
Args *args_parse (void)
@@ -131,6 +135,7 @@ Args *args_parse (void)
args->bInhibitSplash |= pArgDescr[j].bInhibitSplash;
args->bInhibitPagein |= pArgDescr[j].bInhibitPagein;
args->bInhibitJavaLdx |= pArgDescr[j].bInhibitJavaLdx;
+ args->bInhibitDemon |= pArgDescr[j].bInhibitDemon;
if (pArgDescr[j].pPageinType)
args->pPageinType = pArgDescr[j].pPageinType;
}
diff --git a/desktop/unx/source/args.h b/desktop/unx/source/args.h
index 4a0cb55ffcde..0f1f114447f5 100644
--- a/desktop/unx/source/args.h
+++ b/desktop/unx/source/args.h
@@ -38,6 +38,7 @@ typedef struct {
sal_Bool bInhibitSplash; // should we show a splash screen
sal_Bool bInhibitPagein; // should we run pagein ?
sal_Bool bInhibitJavaLdx; // should we run javaldx ?
+ sal_Bool bInhibitDemon; // we want to match the lifecycle of soffice.bin
sal_uInt32 nArgsEnv; // number of -env: style args
sal_uInt32 nArgsTotal; // number of -env: as well as -writer style args
diff --git a/desktop/unx/source/start.c b/desktop/unx/source/start.c
index d62713129284..9d95547856b4 100644
--- a/desktop/unx/source/start.c
+++ b/desktop/unx/source/start.c
@@ -882,9 +882,12 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS( argc, argv )
splash = NULL;
bShortWait = sal_False;
- /* Since a client can't distinguish between a first-start and
- a factory re-use, we return control to them here. */
- daemon( 1 /* don't chdir */, 1 /* don't re-direct output */ );
+ if (!args->bInhibitDemon)
+ {
+ /* Since a client can't distinguish between a first-start and
+ a factory re-use, we return control to them here. */
+ daemon( 1 /* don't chdir */, 1 /* don't re-direct output */ );
+ }
}
#if OSL_DEBUG_LEVEL > 1