diff --git a/lyx.1in b/lyx.1in index 6573d9594f..d753374f52 100644 --- a/lyx.1in +++ b/lyx.1in @@ -75,11 +75,13 @@ Note that the order of -e and -x switches matters. where fmt is the import format of choice and file.xxx is the file to be imported. .TP \fB \-f [\-\-force\-overwrite]\fP \fIwhat -where what is is either "\fBall\fR" or "\fBmain\fR". -Using "\fBall\fR", all files are overwritten during a batch export, otherwise -only the main file will be. When this switch is followed by anything else other -than "\fBall\fR" or "\fBmain\fR", the behavior is as if "\fBall\fR" was -specified, but what follows is left on the command line for further processing. +where what is is either "\fBall\fR", "\fBmain\fR" or "\fBnone\fR". +Specify "\fBall\fR" to allow overwriting all files during a batch export, +"\fBmain\fR" to allow overwriting the main file only, or "\fBnone\fR" +to disallow overwriting any file. When this switch is followed by anything +else other than "\fBall\fR", "\fBmain\fR" or "\fBnone\fR", the behavior is as +if "\fBall\fR" was specified, but what follows is left on the command line for +further processing. .TP .BI -batch causes LyX to run the given commands without opening a GUI window. @@ -124,6 +126,17 @@ The user directory is, in order of precedence: .B LYX_LOCALEDIR can be used to tell LyX where to look for the translations of its GUI strings in other languages. + +.TP +.B LYX_FORCE_OVERWRITE +can be used to change the default behavior when exporting from command +line. +.PP +By default, LyX overwrites the main file when exporting from command +line but not the ancillary files. This behavior can be changed by setting +this environment variable, which relieves the need of using the \-f switch. +Allowed values are either "\fBall\fR", "\fBmain\fR" or "\fBnone\fR", with +same meaning as for the \-f switch. .SH FILES .nf .ta \w'\fILIBDIR\fR/lyxrc.in 'u diff --git a/src/LyX.cpp b/src/LyX.cpp index fda6fc3602..15326e09da 100644 --- a/src/LyX.cpp +++ b/src/LyX.cpp @@ -91,9 +91,11 @@ bool use_gui = true; // Tell what files can be silently overwritten during batch export. -// Possible values are: NO_FILES, MAIN_FILE, ALL_FILES. +// Possible values are: NO_FILES, MAIN_FILE, ALL_FILES, UNSPECIFIED. +// Unless specified on command line (through the -f switch) or through the +// environment variable LYX_FORCE_OVERWRITE, the default will be MAIN_FILE. -OverwriteFiles force_overwrite = NO_FILES; +OverwriteFiles force_overwrite = UNSPECIFIED; namespace { @@ -736,9 +738,20 @@ bool LyX::init() if (queryUserLyXDir(package().explicit_user_support())) reconfigureUserLyXDir(); - // no need for a splash when there is no GUI if (!use_gui) { + // No need for a splash when there is no GUI first_start = false; + // Default is to overwrite the main file during export, unless + // the -f switch was specified or LYX_FORCE_OVERWRITE was set + if (force_overwrite == UNSPECIFIED) { + string const what = getEnv("LYX_FORCE_OVERWRITE"); + if (what == "all") + force_overwrite = ALL_FILES; + else if (what == "none") + force_overwrite = NO_FILES; + else + force_overwrite = MAIN_FILE; + } } // This one is generated in user_support directory by lib/configure.py. @@ -1012,9 +1025,9 @@ int parse_help(string const &, string const &, string &) " where fmt is the import format of choice\n" " and file.xxx is the file to be imported.\n" "\t-f [--force-overwrite] what\n" - " where what is either `all' or `main'.\n" - " Using `all', all files are overwritten during\n" - " a batch export, otherwise only the main file will be.\n" + " where what is either `all', `main' or `none',\n" + " specifying whether all files, main file only, or no files,\n" + " respectively, are to be overwritten during a batch export.\n" " Anything else is equivalent to `all', but is not consumed.\n" "\t-batch execute commands without launching GUI and exit.\n" "\t-version summarize version and build info\n" @@ -1126,6 +1139,9 @@ int parse_force(string const & arg, string const &, string &) } else if (arg == "main") { force_overwrite = MAIN_FILE; return 1; + } else if (arg == "none") { + force_overwrite = NO_FILES; + return 1; } force_overwrite = ALL_FILES; return 0; diff --git a/src/LyX.h b/src/LyX.h index 57f5f515fe..0b578590fa 100644 --- a/src/LyX.h +++ b/src/LyX.h @@ -37,7 +37,8 @@ class SpellChecker; enum OverwriteFiles { NO_FILES, MAIN_FILE, - ALL_FILES + ALL_FILES, + UNSPECIFIED }; extern bool use_gui;