[Libreoffice-commits] .: desktop/unx

Michael Meeks michael at kemper.freedesktop.org
Tue Nov 8 09:52:40 PST 2011


 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(-)

New commits:
commit 62ebb119cfb42adc5e007fb77f68d56b40de2a85
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Tue Nov 8 17:52:37 2011 +0000

    don't demonize if we are passed an --accept line for UNO remote control

diff --git a/desktop/unx/source/args.c b/desktop/unx/source/args.c
index 367bac2..c889e6c 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 4a0cb55..0f1f114 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 d627131..9d95547 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


More information about the Libreoffice-commits mailing list