[Libreoffice-commits] core.git: Branch 'feature/liblibo' - desktop/source smoketest/libtest.cxx vcl/inc vcl/source vcl/unx

Michael Meeks michael.meeks at suse.com
Thu Mar 7 12:15:40 PST 2013


 desktop/source/lib/init.cxx           |    8 +++++---
 smoketest/libtest.cxx                 |    9 +++++++++
 vcl/inc/vcl/svapp.hxx                 |    5 ++---
 vcl/source/app/svapp.cxx              |    2 +-
 vcl/unx/generic/plugadapt/salplug.cxx |   30 +++++++++++-------------------
 5 files changed, 28 insertions(+), 26 deletions(-)

New commits:
commit 38512f608684b8fc726f056fc10783e9cdd61727
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Thu Mar 7 20:14:37 2013 +0000

    liblibo: more debugging, and make it headless.
    
    Change-Id: If214690bd752a7ffafcfdc3f108130b7782f9bec

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index c26c995..06f5eac 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -132,13 +132,15 @@ LibLibreOffice_Impl::initialize( const char *app_path )
     try {
         initialize_uno( aAppURL );
         force_c_locale();
+
+        // Force headless
+        rtl::Bootstrap::set( "SAL_USE_VCLPLUGIN", "svp" );
         InitVCL();
-        if (Application::IsHeadlessModeRequested())
-            Application::EnableHeadlessMode(true);
+        Application::EnableHeadlessMode(true);
 
         ErrorHandler::RegisterDisplay( aBasicErrorFunc );
 
-        fprintf (stderr, "do nothing yet");
+        fprintf( stderr, "initialized\n" );
         bInitialized = true;
     } catch (css::uno::Exception & e) {
         fprintf( stderr, "bootstrapping exception '%s'\n",
diff --git a/smoketest/libtest.cxx b/smoketest/libtest.cxx
index 86e2abc..f3d207f 100644
--- a/smoketest/libtest.cxx
+++ b/smoketest/libtest.cxx
@@ -7,6 +7,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
  */
 
+#include <stdio.h>
 #include <assert.h>
 #include <liblibreoffice.hxx>
 
@@ -19,10 +20,18 @@ int main (int argc, char **argv)
         return -1;
     // This separate init is lame I think.
     if( !pOffice->initialize( argv[1] ) )
+    {
+        fprintf( stderr, "failed to initialize\n" );
         return -1;
+    }
+    fprintf( stderr, "start to load document '%s'\n", argv[2] );
     LODocument *pDocument = pOffice->documentLoad( argv[2] );
     if( !pDocument )
+    {
+        fprintf( stderr, "failed to load document '%s'\n", argv[2] );
         return -1;
+    }
+    fprintf( stderr, "all tests passed." );
     return 0;
 }
 
diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx
index e3e0779..159ed14 100644
--- a/vcl/inc/vcl/svapp.hxx
+++ b/vcl/inc/vcl/svapp.hxx
@@ -334,9 +334,8 @@ public:
     static const Link&          GetFilterHdl();
 
     static void                 EnableHeadlessMode( bool dialogsAreFatal );
-    static sal_Bool                 IsHeadlessModeEnabled();
-
-    static bool IsHeadlessModeRequested();
+    static sal_Bool             IsHeadlessModeEnabled();
+    static bool                 IsHeadlessModeRequested();
         ///< check command line arguments for --headless
 
     static void                 ShowNativeErrorBox(const String& sTitle  ,
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 90166eb..bcb8774 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -1754,7 +1754,7 @@ bool Application::IsHeadlessModeRequested()
     for (sal_uInt32 i = 0; i < n; ++i) {
         rtl::OUString arg;
         rtl_getAppCommandArg(i, &arg.pData);
-        if ( arg == "--headless" ) {
+        if ( arg == "--headless" || arg == "-headless" ) {
             return true;
         }
     }
diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx
index 87a5c05..a8809e4 100644
--- a/vcl/unx/generic/plugadapt/salplug.cxx
+++ b/vcl/unx/generic/plugadapt/salplug.cxx
@@ -21,6 +21,7 @@
 #include "osl/process.h"
 
 #include "rtl/ustrbuf.hxx"
+#include "rtl/bootstrap.hxx"
 
 #include "salinst.hxx"
 #include "generic/gensys.h"
@@ -199,31 +200,22 @@ static SalInstance* autodetect_plugin()
     return pInst;
 }
 
-static SalInstance* check_headless_plugin()
-{
-    int nParams = osl_getCommandArgCount();
-    OUString aParam;
-    for( int i = 0; i < nParams; i++ )
-    {
-        osl_getCommandArg( i, &aParam.pData );
-        if( aParam == "-headless" || aParam == "--headless" )
-        {
-            return tryInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "svp" ) ) );
-        }
-    }
-    return NULL;
-}
-
 SalInstance *CreateSalInstance()
 {
-    SalInstance*    pInst = NULL;
+    SalInstance *pInst = NULL;
 
+    OUString aUsePlugin;
     static const char* pUsePlugin = getenv( "SAL_USE_VCLPLUGIN" );
+    if( pUsePlugin )
+        aUsePlugin = OUString::createFromAscii( pUsePlugin );
+    else
+        rtl::Bootstrap::get( "SAL_USE_VCLPLUGIN", aUsePlugin );
 
-    pInst = check_headless_plugin();
+    if( Application::IsHeadlessModeRequested() )
+        aUsePlugin = "svp";
 
-    if( !pInst && pUsePlugin && *pUsePlugin )
-        pInst = tryInstance( OUString::createFromAscii( pUsePlugin ), true );
+    if( !aUsePlugin.isEmpty() )
+        pInst = tryInstance( aUsePlugin );
 
     if( ! pInst )
         pInst = autodetect_plugin();


More information about the Libreoffice-commits mailing list