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: */
|