From 62ebb119cfb42adc5e007fb77f68d56b40de2a85 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Tue, 8 Nov 2011 17:52:37 +0000 Subject: don't demonize if we are passed an --accept line for UNO remote control --- desktop/unx/source/args.c | 33 +++++++++++++++++++-------------- desktop/unx/source/args.h | 1 + desktop/unx/source/start.c | 9 ++++++--- 3 files changed, 26 insertions(+), 17 deletions(-) (limited to 'desktop') 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 -- cgit