LCOV - code coverage report
Current view: top level - libreoffice/desktop/source/app - cmdlineargs.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 422 0.0 %
Date: 2012-12-27 Functions: 0 66 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <cmdlineargs.hxx>
      21             : #include <vcl/svapp.hxx>
      22             : #include <rtl/uri.hxx>
      23             : #include <rtl/ustring.hxx>
      24             : #include "rtl/process.h"
      25             : #include <comphelper/processfactory.hxx>
      26             : #include <com/sun/star/uri/ExternalUriReferenceTranslator.hpp>
      27             : #include "tools/getprocessworkingdir.hxx"
      28             : 
      29             : #include <svl/documentlockfile.hxx>
      30             : 
      31             : #include <cstdio>
      32             : 
      33             : using namespace com::sun::star::lang;
      34             : using namespace com::sun::star::uri;
      35             : using namespace com::sun::star::uno;
      36             : 
      37             : using ::rtl::OUString;
      38             : 
      39             : namespace desktop
      40             : {
      41             : 
      42             : namespace {
      43             : 
      44           0 : OUString translateExternalUris(OUString const & input) {
      45             :     OUString t(
      46             :         com::sun::star::uri::ExternalUriReferenceTranslator::create(
      47           0 :             comphelper::getProcessComponentContext())->
      48           0 :         translateToInternal(input));
      49           0 :     return t.isEmpty() ? input : t;
      50             : }
      51             : 
      52           0 : std::vector< OUString > translateExternalUris(
      53             :     std::vector< OUString > const & input)
      54             : {
      55           0 :     std::vector< OUString > t;
      56           0 :     for (std::vector< OUString >::const_iterator i(input.begin());
      57           0 :          i != input.end(); ++i)
      58             :     {
      59           0 :         t.push_back(translateExternalUris(*i));
      60             :     }
      61           0 :     return t;
      62             : }
      63             : 
      64             : class ExtCommandLineSupplier: public CommandLineArgs::Supplier {
      65             : public:
      66           0 :     explicit ExtCommandLineSupplier():
      67           0 :         m_count(rtl_getAppCommandArgCount()),
      68           0 :         m_index(0)
      69             :     {
      70           0 :         rtl::OUString url;
      71           0 :         if (tools::getProcessWorkingDir(url)) {
      72           0 :             m_cwdUrl.reset(url);
      73           0 :         }
      74           0 :     }
      75             : 
      76           0 :     virtual ~ExtCommandLineSupplier() {}
      77             : 
      78           0 :     virtual boost::optional< rtl::OUString > getCwdUrl() { return m_cwdUrl; }
      79             : 
      80           0 :     virtual bool next(rtl::OUString * argument) {
      81             :         OSL_ASSERT(argument != NULL);
      82           0 :         if (m_index < m_count) {
      83           0 :             rtl_getAppCommandArg(m_index++, &argument->pData);
      84           0 :             return true;
      85             :         } else {
      86           0 :             return false;
      87             :         }
      88             :     }
      89             : 
      90             : private:
      91             :     boost::optional< rtl::OUString > m_cwdUrl;
      92             :     sal_uInt32 m_count;
      93             :     sal_uInt32 m_index;
      94             : };
      95             : 
      96             : }
      97             : 
      98           0 : CommandLineArgs::Supplier::Exception::Exception() {}
      99             : 
     100           0 : CommandLineArgs::Supplier::Exception::Exception(Exception const &) {}
     101             : 
     102           0 : CommandLineArgs::Supplier::Exception::~Exception() {}
     103             : 
     104             : CommandLineArgs::Supplier::Exception &
     105           0 : CommandLineArgs::Supplier::Exception::operator =(Exception const &)
     106           0 : { return *this; }
     107             : 
     108           0 : CommandLineArgs::Supplier::~Supplier() {}
     109             : 
     110             : // intialize class with command line parameters from process environment
     111           0 : CommandLineArgs::CommandLineArgs()
     112             : {
     113           0 :     InitParamValues();
     114           0 :     ExtCommandLineSupplier s;
     115           0 :     ParseCommandLine_Impl( s );
     116           0 : }
     117             : 
     118           0 : CommandLineArgs::CommandLineArgs( Supplier& supplier )
     119             : {
     120           0 :     InitParamValues();
     121           0 :     ParseCommandLine_Impl( supplier );
     122           0 : }
     123             : 
     124             : // ----------------------------------------------------------------------------
     125             : 
     126           0 : void CommandLineArgs::ParseCommandLine_Impl( Supplier& supplier )
     127             : {
     128           0 :     m_cwdUrl = supplier.getCwdUrl();
     129             : 
     130             :     // parse command line arguments
     131           0 :     bool bOpenEvent(true);
     132           0 :     bool bPrintEvent(false);
     133           0 :     bool bViewEvent(false);
     134           0 :     bool bStartEvent(false);
     135           0 :     bool bPrintToEvent(false);
     136           0 :     bool bPrinterName(false);
     137           0 :     bool bForceOpenEvent(false);
     138           0 :     bool bForceNewEvent(false);
     139           0 :     bool bDisplaySpec(false);
     140           0 :     bool bOpenDoc(false);
     141           0 :     bool bConversionEvent(false);
     142           0 :     bool bConversionParamsEvent(false);
     143           0 :     bool bBatchPrintEvent(false);
     144           0 :     bool bBatchPrinterNameEvent(false);
     145           0 :     bool bConversionOutEvent(false);
     146             : 
     147           0 :     for (;;)
     148             :     {
     149           0 :         ::rtl::OUString aArg;
     150           0 :         if ( !supplier.next( &aArg ) )
     151             :         {
     152             :             break;
     153             :         }
     154             : 
     155           0 :         if ( !aArg.isEmpty() )
     156             :         {
     157           0 :             m_bEmpty = false;
     158           0 :             ::rtl::OUString oArg;
     159           0 :             if ( !InterpretCommandLineParameter( aArg, oArg ))
     160             :             {
     161           0 :                 if ( aArg.toChar() == '-' )
     162             :                 {
     163             :                     // handle this argument as an option
     164           0 :                     if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("-n")))
     165             :                     {
     166             :                         // force new documents based on the following documents
     167           0 :                         bForceNewEvent  = true;
     168           0 :                         bOpenEvent      = false;
     169           0 :                         bForceOpenEvent = false;
     170           0 :                         bPrintToEvent   = false;
     171           0 :                         bPrintEvent     = false;
     172           0 :                         bViewEvent      = false;
     173           0 :                         bStartEvent     = false;
     174           0 :                         bDisplaySpec    = false;
     175             :                     }
     176           0 :                     else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-o" )))
     177             :                     {
     178             :                         // force open documents regardless if they are templates or not
     179           0 :                         bForceOpenEvent = true;
     180           0 :                         bOpenEvent      = false;
     181           0 :                         bForceNewEvent  = false;
     182           0 :                         bPrintToEvent   = false;
     183           0 :                         bPrintEvent     = false;
     184           0 :                         bViewEvent      = false;
     185           0 :                         bStartEvent     = false;
     186           0 :                         bDisplaySpec    = false;
     187             :                     }
     188           0 :                     else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-pt" )))
     189             :                     {
     190             :                         // Print to special printer
     191           0 :                         bPrintToEvent   = true;
     192           0 :                         bPrinterName    = true;
     193           0 :                         bPrintEvent     = false;
     194           0 :                         bOpenEvent      = false;
     195           0 :                         bForceNewEvent  = false;
     196           0 :                         bViewEvent      = false;
     197           0 :                         bStartEvent     = false;
     198           0 :                         bDisplaySpec    = false;
     199           0 :                         bForceOpenEvent = false;
     200             :                    }
     201           0 :                    else if ( aArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "-p" )))
     202             :                    {
     203             :                         // Print to default printer
     204           0 :                         bPrintEvent     = true;
     205           0 :                         bPrintToEvent   = false;
     206           0 :                         bOpenEvent      = false;
     207           0 :                         bForceNewEvent  = false;
     208           0 :                         bForceOpenEvent = false;
     209           0 :                         bViewEvent      = false;
     210           0 :                         bStartEvent     = false;
     211           0 :                         bDisplaySpec    = false;
     212             :                    }
     213           0 :                    else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "view" )))
     214             :                    {
     215             :                         // open in viewmode
     216           0 :                         bOpenEvent      = false;
     217           0 :                         bPrintEvent     = false;
     218           0 :                         bPrintToEvent   = false;
     219           0 :                         bForceNewEvent  = false;
     220           0 :                         bForceOpenEvent = false;
     221           0 :                         bViewEvent      = true;
     222           0 :                         bStartEvent     = false;
     223           0 :                         bDisplaySpec    = false;
     224             :                    }
     225           0 :                    else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM( "show" )))
     226             :                    {
     227             :                         // open in viewmode
     228           0 :                         bOpenEvent      = false;
     229           0 :                         bViewEvent      = false;
     230           0 :                         bStartEvent     = true;
     231           0 :                         bPrintEvent     = false;
     232           0 :                         bPrintToEvent   = false;
     233           0 :                         bForceNewEvent  = false;
     234           0 :                         bForceOpenEvent = false;
     235           0 :                         bDisplaySpec    = false;
     236             :                     }
     237           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("display")))
     238             :                     {
     239             :                         // set display
     240           0 :                         bOpenEvent      = false;
     241           0 :                         bPrintEvent     = false;
     242           0 :                         bForceOpenEvent = false;
     243           0 :                         bPrintToEvent   = false;
     244           0 :                         bForceNewEvent  = false;
     245           0 :                         bViewEvent      = false;
     246           0 :                         bStartEvent     = false;
     247           0 :                         bDisplaySpec    = true;
     248             :                     }
     249           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("language")))
     250             :                     {
     251           0 :                         bOpenEvent      = false;
     252           0 :                         bPrintEvent     = false;
     253           0 :                         bForceOpenEvent = false;
     254           0 :                         bPrintToEvent   = false;
     255           0 :                         bForceNewEvent  = false;
     256           0 :                         bViewEvent      = false;
     257           0 :                         bStartEvent     = false;
     258           0 :                         bDisplaySpec    = false;
     259             :                     }
     260           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("convert-to")))
     261             :                     {
     262           0 :                         bOpenEvent = false;
     263           0 :                         bConversionEvent = true;
     264           0 :                         bConversionParamsEvent = true;
     265             :                     }
     266           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("print-to-file")))
     267             :                     {
     268           0 :                         bOpenEvent = false;
     269           0 :                         bBatchPrintEvent = true;
     270             :                     }
     271           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("printer-name")) &&
     272             :                               bBatchPrintEvent )
     273             :                     {
     274           0 :                         bBatchPrinterNameEvent = true;
     275             :                     }
     276           0 :                     else if ( oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("outdir")) &&
     277             :                               (bConversionEvent || bBatchPrintEvent) )
     278             :                     {
     279           0 :                         bConversionOutEvent = true;
     280             :                     }
     281             :                     else
     282             :                     // because it's impossible to filter these options that
     283             :                     // are handled in the soffice shell script with the
     284             :                     // primitive tools that /bin/sh offers, ignore them here
     285           0 :                     if (
     286             : #if defined UNX
     287           0 :                         !oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("backtrace")) &&
     288           0 :                         !oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("strace")) &&
     289           0 :                         !oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("valgrind")) &&
     290             :                     // for X Session Management, handled in
     291             :                     // vcl/unx/generic/app/sm.cxx:
     292           0 :                         !oArg.match("session=") &&
     293             : #endif
     294             :                     //ignore additional legacy options that don't do anything anymore
     295           0 :                         !oArg.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("nocrashreport")) &&
     296           0 :                         m_unknown.isEmpty())
     297             :                     {
     298           0 :                         m_unknown = aArg;
     299             :                     }
     300             :                 }
     301             :                 else
     302             :                 {
     303           0 :                     if ( bPrinterName && bPrintToEvent )
     304             :                     {
     305             :                         // first argument after "-pt" this must be the printer name
     306           0 :                         m_printername = aArg;
     307           0 :                         bPrinterName = false;
     308             :                     }
     309           0 :                     else if ( bConversionParamsEvent && bConversionEvent )
     310             :                     {
     311             :                         // first argument must be the the params
     312           0 :                         m_conversionparams = aArg;
     313           0 :                         bConversionParamsEvent = false;
     314             :                     }
     315           0 :                     else if ( bBatchPrinterNameEvent && bBatchPrintEvent )
     316             :                     {
     317             :                         // first argument is the printer name
     318           0 :                         m_printername = aArg;
     319           0 :                         bBatchPrinterNameEvent = false;
     320             :                     }
     321           0 :                     else if ( (bConversionEvent || bBatchPrintEvent) && bConversionOutEvent )
     322             :                     {
     323           0 :                         m_conversionout = aArg;
     324           0 :                         bConversionOutEvent = false;
     325             :                     }
     326             :                     else
     327             :                     {
     328             :                         // handle this argument as a filename
     329           0 :                         if ( bOpenEvent )
     330             :                         {
     331           0 :                             m_openlist.push_back(aArg);
     332           0 :                             bOpenDoc = true;
     333             :                         }
     334           0 :                         else if ( bViewEvent )
     335             :                         {
     336           0 :                             m_viewlist.push_back(aArg);
     337           0 :                             bOpenDoc = true;
     338             :                         }
     339           0 :                         else if ( bStartEvent )
     340             :                         {
     341           0 :                             m_startlist.push_back(aArg);
     342           0 :                             bOpenDoc = true;
     343             :                         }
     344           0 :                         else if ( bPrintEvent )
     345             :                         {
     346           0 :                             m_printlist.push_back(aArg);
     347           0 :                             bOpenDoc = true;
     348             :                         }
     349           0 :                         else if ( bPrintToEvent )
     350             :                         {
     351           0 :                             m_printtolist.push_back(aArg);
     352           0 :                             bOpenDoc = true;
     353             :                         }
     354           0 :                         else if ( bForceNewEvent )
     355             :                         {
     356           0 :                             m_forcenewlist.push_back(aArg);
     357           0 :                             bOpenDoc = true;
     358             :                         }
     359           0 :                         else if ( bForceOpenEvent )
     360             :                         {
     361           0 :                             m_forceopenlist.push_back(aArg);
     362           0 :                             bOpenDoc = true;
     363             :                         }
     364           0 :                         else if ( bDisplaySpec )
     365             :                         {
     366           0 :                             bDisplaySpec = false; // only one display, not a lsit
     367           0 :                             bOpenEvent = true;    // set back to standard
     368             :                         }
     369           0 :                         else if ( bConversionEvent || bBatchPrintEvent )
     370           0 :                             m_conversionlist.push_back(aArg);
     371             :                     }
     372             :                 }
     373           0 :             }
     374             :         }
     375           0 :     }
     376             : 
     377           0 :     if ( bOpenDoc )
     378           0 :         m_bDocumentArgs = true;
     379           0 : }
     380             : 
     381           0 : bool CommandLineArgs::InterpretCommandLineParameter( const ::rtl::OUString& aArg, ::rtl::OUString& oArg )
     382             : {
     383           0 :     bool bDeprecated = false;
     384           0 :     if (aArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("--")))
     385             :     {
     386           0 :         oArg = ::rtl::OUString(aArg.getStr()+2, aArg.getLength()-2);
     387             :     }
     388           0 :     else if (aArg.toChar() == '-')
     389             :     {
     390           0 :         if ( aArg.getLength() > 2 ) // -h, -o, -n, -? are still valid
     391           0 :             bDeprecated = true;
     392           0 :         oArg = ::rtl::OUString(aArg.getStr()+1, aArg.getLength()-1);
     393             :     }
     394             :     else
     395             :     {
     396           0 :         return false;
     397             :     }
     398             : 
     399           0 :     if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "minimized" )) )
     400             :     {
     401           0 :         m_minimized = true;
     402             :     }
     403           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "invisible" )) )
     404             :     {
     405           0 :         m_invisible = true;
     406             :     }
     407           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "norestore" )) )
     408             :     {
     409           0 :         m_norestore = true;
     410             :     }
     411           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nodefault" )) )
     412             :     {
     413           0 :         m_nodefault = true;
     414             :     }
     415           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "headless" )) )
     416             :     {
     417             :         // Headless means also invisibile, so set this parameter to true!
     418           0 :         m_headless = true;
     419           0 :         m_invisible = true;
     420             :     }
     421           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "quickstart" )) )
     422             :     {
     423             : #if defined(ENABLE_QUICKSTART_APPLET)
     424           0 :         m_quickstart = true;
     425             : #endif
     426           0 :         m_noquickstart = false;
     427             :     }
     428           0 :     else if ( oArg == "quickstart=no" )
     429             :     {
     430           0 :         m_noquickstart = true;
     431           0 :         m_quickstart = false;
     432             :     }
     433           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "terminate_after_init" )) )
     434             :     {
     435           0 :         m_terminateafterinit = true;
     436             :     }
     437           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nofirststartwizard" )) )
     438             :     {
     439           0 :         m_nofirststartwizard = true;
     440             :     }
     441           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nologo" )) )
     442             :     {
     443           0 :         m_nologo = true;
     444             :     }
     445           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "nolockcheck" )) )
     446             :     {
     447           0 :         m_nolockcheck = true;
     448             :         // Workaround for automated testing
     449           0 :         ::svt::DocumentLockFile::AllowInteraction( false );
     450             :     }
     451           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "help" ))
     452           0 :         || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-h" ))
     453           0 :         || aArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "-?" )))
     454             :     {
     455           0 :         m_help = true;
     456             :     }
     457           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpwriter" )) )
     458             :     {
     459           0 :         m_helpwriter = true;
     460             :     }
     461           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpcalc" )) )
     462             :     {
     463           0 :         m_helpcalc = true;
     464             :     }
     465           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpdraw" )) )
     466             :     {
     467           0 :         m_helpdraw = true;
     468             :     }
     469           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpimpress" )) )
     470             :     {
     471           0 :         m_helpimpress = true;
     472             :     }
     473           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpbase" )) )
     474             :     {
     475           0 :         m_helpbase = true;
     476             :     }
     477           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpbasic" )) )
     478             :     {
     479           0 :         m_helpbasic = true;
     480             :     }
     481           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "helpmath" )) )
     482             :     {
     483           0 :         m_helpmath = true;
     484             :     }
     485           0 :     else if ( oArg.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "version" )) )
     486             :     {
     487           0 :         m_version = true;
     488             :     }
     489           0 :     else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("splash-pipe=")) )
     490             :     {
     491           0 :         m_splashpipe = true;
     492             :     }
     493             : #ifdef MACOSX
     494             :     /* #i84053# ignore -psn on Mac
     495             :        Platform dependent #ifdef here is ugly, however this is currently
     496             :        the only platform dependent parameter. Should more appear
     497             :        we should find a better solution
     498             :     */
     499             :     else if ( aArg.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("-psn")) )
     500             :     {
     501             :         m_psn = true;
     502             :         return true;
     503             :     }
     504             : #endif
     505           0 :     else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("infilter=")))
     506             :     {
     507           0 :         m_infilter.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("infilter=")));
     508             :     }
     509           0 :     else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("accept=")))
     510             :     {
     511           0 :         m_accept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("accept=")));
     512             :     }
     513           0 :     else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("unaccept=")))
     514             :     {
     515           0 :         m_unaccept.push_back(oArg.copy(RTL_CONSTASCII_LENGTH("unaccept=")));
     516             :     }
     517           0 :     else if ( oArg.matchIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("language=")))
     518             :     {
     519           0 :         m_language = oArg.copy(RTL_CONSTASCII_LENGTH("language="));
     520             :     }
     521           0 :     else if ( oArg == "writer" )
     522             :     {
     523           0 :         m_writer = true;
     524           0 :         m_bDocumentArgs = true;
     525             :     }
     526           0 :     else if ( oArg == "calc" )
     527             :     {
     528           0 :         m_calc = true;
     529           0 :         m_bDocumentArgs = true;
     530             :     }
     531           0 :     else if ( oArg == "draw" )
     532             :     {
     533           0 :         m_draw = true;
     534           0 :         m_bDocumentArgs = true;
     535             :     }
     536           0 :     else if ( oArg == "impress" )
     537             :     {
     538           0 :         m_impress = true;
     539           0 :         m_bDocumentArgs = true;
     540             :     }
     541           0 :     else if ( oArg == "base" )
     542             :     {
     543           0 :         m_base = true;
     544           0 :         m_bDocumentArgs = true;
     545             :     }
     546           0 :     else if ( oArg == "global" )
     547             :     {
     548           0 :         m_global = true;
     549           0 :         m_bDocumentArgs = true;
     550             :     }
     551           0 :     else if ( oArg == "math" )
     552             :     {
     553           0 :         m_math = true;
     554           0 :         m_bDocumentArgs = true;
     555             :     }
     556           0 :     else if ( oArg == "web" )
     557             :     {
     558           0 :         m_web = true;
     559           0 :         m_bDocumentArgs = true;
     560             :     }
     561             :     else
     562           0 :         return false;
     563             : 
     564           0 :     if (bDeprecated)
     565             :     {
     566           0 :         rtl::OString sArg(rtl::OUStringToOString(aArg, osl_getThreadTextEncoding()));
     567           0 :         fprintf(stderr, "Warning: %s is deprecated.  Use -%s instead.\n", sArg.getStr(), sArg.getStr());
     568             :     }
     569           0 :     return true;
     570             : }
     571             : 
     572           0 : void CommandLineArgs::InitParamValues()
     573             : {
     574           0 :     m_minimized = false;
     575           0 :     m_norestore = false;
     576             : #ifdef LIBO_HEADLESS
     577             :     m_invisible = true;
     578             :     m_headless = true;
     579             : #else
     580           0 :     m_invisible = false;
     581           0 :     m_headless = false;
     582             : #endif
     583           0 :     m_quickstart = false;
     584           0 :     m_noquickstart = false;
     585           0 :     m_terminateafterinit = false;
     586           0 :     m_nofirststartwizard = false;
     587           0 :     m_nologo = false;
     588           0 :     m_nolockcheck = false;
     589           0 :     m_nodefault = false;
     590           0 :     m_help = false;
     591           0 :     m_writer = false;
     592           0 :     m_calc = false;
     593           0 :     m_draw = false;
     594           0 :     m_impress = false;
     595           0 :     m_global = false;
     596           0 :     m_math = false;
     597           0 :     m_web = false;
     598           0 :     m_base = false;
     599           0 :     m_helpwriter = false;
     600           0 :     m_helpcalc = false;
     601           0 :     m_helpdraw = false;
     602           0 :     m_helpbasic = false;
     603           0 :     m_helpmath = false;
     604           0 :     m_helpimpress = false;
     605           0 :     m_helpbase = false;
     606           0 :     m_psn = false;
     607           0 :     m_version = false;
     608           0 :     m_splashpipe = false;
     609           0 :     m_bEmpty = true;
     610           0 :     m_bDocumentArgs  = false;
     611           0 : }
     612             : 
     613           0 : bool CommandLineArgs::IsMinimized() const
     614             : {
     615           0 :     return m_minimized;
     616             : }
     617             : 
     618           0 : bool CommandLineArgs::IsInvisible() const
     619             : {
     620           0 :     return m_invisible;
     621             : }
     622             : 
     623           0 : bool CommandLineArgs::IsNoRestore() const
     624             : {
     625           0 :     return m_norestore;
     626             : }
     627             : 
     628           0 : bool CommandLineArgs::IsNoDefault() const
     629             : {
     630           0 :     return m_nodefault;
     631             : }
     632             : 
     633           0 : bool CommandLineArgs::IsHeadless() const
     634             : {
     635           0 :     return m_headless;
     636             : }
     637             : 
     638           0 : bool CommandLineArgs::IsQuickstart() const
     639             : {
     640           0 :     return m_quickstart;
     641             : }
     642             : 
     643           0 : bool CommandLineArgs::IsNoQuickstart() const
     644             : {
     645           0 :     return m_noquickstart;
     646             : }
     647             : 
     648           0 : bool CommandLineArgs::IsTerminateAfterInit() const
     649             : {
     650           0 :     return m_terminateafterinit;
     651             : }
     652             : 
     653           0 : bool CommandLineArgs::IsNoLogo() const
     654             : {
     655           0 :     return m_nologo;
     656             : }
     657             : 
     658           0 : bool CommandLineArgs::IsNoLockcheck() const
     659             : {
     660           0 :     return m_nolockcheck;
     661             : }
     662             : 
     663           0 : bool CommandLineArgs::IsHelp() const
     664             : {
     665           0 :     return m_help;
     666             : }
     667           0 : bool CommandLineArgs::IsHelpWriter() const
     668             : {
     669           0 :     return m_helpwriter;
     670             : }
     671             : 
     672           0 : bool CommandLineArgs::IsHelpCalc() const
     673             : {
     674           0 :     return m_helpcalc;
     675             : }
     676             : 
     677           0 : bool CommandLineArgs::IsHelpDraw() const
     678             : {
     679           0 :     return m_helpdraw;
     680             : }
     681             : 
     682           0 : bool CommandLineArgs::IsHelpImpress() const
     683             : {
     684           0 :     return m_helpimpress;
     685             : }
     686             : 
     687           0 : bool CommandLineArgs::IsHelpBase() const
     688             : {
     689           0 :     return m_helpbase;
     690             : }
     691           0 : bool CommandLineArgs::IsHelpMath() const
     692             : {
     693           0 :     return m_helpmath;
     694             : }
     695           0 : bool CommandLineArgs::IsHelpBasic() const
     696             : {
     697           0 :     return m_helpbasic;
     698             : }
     699             : 
     700           0 : bool CommandLineArgs::IsWriter() const
     701             : {
     702           0 :     return m_writer;
     703             : }
     704             : 
     705           0 : bool CommandLineArgs::IsCalc() const
     706             : {
     707           0 :     return m_calc;
     708             : }
     709             : 
     710           0 : bool CommandLineArgs::IsDraw() const
     711             : {
     712           0 :     return m_draw;
     713             : }
     714             : 
     715           0 : bool CommandLineArgs::IsImpress() const
     716             : {
     717           0 :     return m_impress;
     718             : }
     719             : 
     720           0 : bool CommandLineArgs::IsBase() const
     721             : {
     722           0 :     return m_base;
     723             : }
     724             : 
     725           0 : bool CommandLineArgs::IsGlobal() const
     726             : {
     727           0 :     return m_global;
     728             : }
     729             : 
     730           0 : bool CommandLineArgs::IsMath() const
     731             : {
     732           0 :     return m_math;
     733             : }
     734             : 
     735           0 : bool CommandLineArgs::IsWeb() const
     736             : {
     737           0 :     return m_web;
     738             : }
     739             : 
     740           0 : bool CommandLineArgs::IsVersion() const
     741             : {
     742           0 :     return m_version;
     743             : }
     744             : 
     745           0 : OUString CommandLineArgs::GetUnknown() const
     746             : {
     747           0 :     return m_unknown;
     748             : }
     749             : 
     750           0 : bool CommandLineArgs::HasModuleParam() const
     751             : {
     752             :     return m_writer || m_calc || m_draw || m_impress || m_global || m_math
     753           0 :         || m_web || m_base;
     754             : }
     755             : 
     756           0 : bool CommandLineArgs::HasSplashPipe() const
     757             : {
     758           0 :     return m_splashpipe;
     759             : }
     760             : 
     761           0 : std::vector< rtl::OUString > const & CommandLineArgs::GetAccept() const
     762             : {
     763           0 :     return m_accept;
     764             : }
     765             : 
     766           0 : std::vector< rtl::OUString > const & CommandLineArgs::GetUnaccept() const
     767             : {
     768           0 :     return m_unaccept;
     769             : }
     770             : 
     771           0 : std::vector< rtl::OUString > CommandLineArgs::GetOpenList() const
     772             : {
     773           0 :     return translateExternalUris(m_openlist);
     774             : }
     775             : 
     776           0 : std::vector< rtl::OUString > CommandLineArgs::GetViewList() const
     777             : {
     778           0 :     return translateExternalUris(m_viewlist);
     779             : }
     780             : 
     781           0 : std::vector< rtl::OUString > CommandLineArgs::GetStartList() const
     782             : {
     783           0 :     return translateExternalUris(m_startlist);
     784             : }
     785             : 
     786           0 : std::vector< rtl::OUString > CommandLineArgs::GetForceOpenList() const
     787             : {
     788           0 :     return translateExternalUris(m_forceopenlist);
     789             : }
     790             : 
     791           0 : std::vector< rtl::OUString > CommandLineArgs::GetForceNewList() const
     792             : {
     793           0 :     return translateExternalUris(m_forcenewlist);
     794             : }
     795             : 
     796           0 : std::vector< rtl::OUString > CommandLineArgs::GetPrintList() const
     797             : {
     798           0 :     return translateExternalUris(m_printlist);
     799             : }
     800             : 
     801           0 : std::vector< rtl::OUString > CommandLineArgs::GetPrintToList() const
     802             : {
     803           0 :     return translateExternalUris(m_printtolist);
     804             : }
     805             : 
     806           0 : rtl::OUString CommandLineArgs::GetPrinterName() const
     807             : {
     808           0 :     return m_printername;
     809             : }
     810             : 
     811           0 : rtl::OUString CommandLineArgs::GetLanguage() const
     812             : {
     813           0 :     return m_language;
     814             : }
     815             : 
     816           0 : std::vector< rtl::OUString > const & CommandLineArgs::GetInFilter() const
     817             : {
     818           0 :     return m_infilter;
     819             : }
     820             : 
     821           0 : std::vector< rtl::OUString > CommandLineArgs::GetConversionList() const
     822             : {
     823           0 :     return translateExternalUris(m_conversionlist);
     824             : }
     825             : 
     826           0 : rtl::OUString CommandLineArgs::GetConversionParams() const
     827             : {
     828           0 :     return m_conversionparams;
     829             : }
     830           0 : rtl::OUString CommandLineArgs::GetConversionOut() const
     831             : {
     832           0 :     return translateExternalUris(m_conversionout);
     833             : }
     834             : 
     835           0 : bool CommandLineArgs::IsEmpty() const
     836             : {
     837           0 :     return m_bEmpty;
     838             : }
     839             : 
     840           0 : bool CommandLineArgs::WantsToLoadDocument() const
     841             : {
     842           0 :     return m_bDocumentArgs;
     843             : }
     844             : 
     845             : } // namespace desktop
     846             : 
     847             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10