By default, overwrite the main file on export, but allow changing default

behavior through the environment variable LYX_FORCE_OVERWRITE.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X@34989 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Enrico Forestieri 2010-07-20 15:53:04 +00:00
parent 539b77fec3
commit 9b41f2da52
4 changed files with 48 additions and 12 deletions

23
lyx.1in
View File

@ -74,11 +74,13 @@ Look on Tools->Preferences->File formats->Format to get an idea which parameters
where fmt is the import format of choice and file.xxx is the file to be imported. where fmt is the import format of choice and file.xxx is the file to be imported.
.TP .TP
\fB \-f [\-\-force\-overwrite]\fP \fIwhat \fB \-f [\-\-force\-overwrite]\fP \fIwhat
where what is is either "\fBall\fR" or "\fBmain\fR". where what is is either "\fBall\fR", "\fBmain\fR" or "\fBnone\fR".
Using "\fBall\fR", all files are overwritten during a batch export, otherwise Specify "\fBall\fR" to allow overwriting all files during a batch export,
only the main file will be. When this switch is followed by anything else other "\fBmain\fR" to allow overwriting the main file only, or "\fBnone\fR"
than "\fBall\fR" or "\fBmain\fR", the behavior is as if "\fBall\fR" was to disallow overwriting any file. When this switch is followed by anything
specified, but what follows is left on the command line for further processing. 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.
.SH ENVIRONMENT .SH ENVIRONMENT
.TP .TP
@ -113,6 +115,17 @@ The user directory is, in order of precedence:
.B LYX_LOCALEDIR .B LYX_LOCALEDIR
can be used to tell LyX where to look for the translations of its GUI can be used to tell LyX where to look for the translations of its GUI
strings in other languages. 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 .SH FILES
.nf .nf
.ta \w'\fILIBDIR\fR/lyxrc.in 'u .ta \w'\fILIBDIR\fR/lyxrc.in 'u

View File

@ -87,9 +87,11 @@ bool use_gui = true;
// Tell what files can be silently overwritten during batch export. // 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 { namespace {
@ -701,9 +703,20 @@ bool LyX::init()
if (queryUserLyXDir(package().explicit_user_support())) if (queryUserLyXDir(package().explicit_user_support()))
reconfigureUserLyXDir(); reconfigureUserLyXDir();
// no need for a splash when there is no GUI
if (!use_gui) { if (!use_gui) {
// No need for a splash when there is no GUI
first_start = false; 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. // This one is generated in user_support directory by lib/configure.py.
@ -979,9 +992,9 @@ int parse_help(string const &, string const &, string &)
" where fmt is the import format of choice\n" " where fmt is the import format of choice\n"
" and file.xxx is the file to be imported.\n" " and file.xxx is the file to be imported.\n"
"\t-f [--force-overwrite] what\n" "\t-f [--force-overwrite] what\n"
" where what is either `all' or `main'.\n" " where what is either `all', `main' or `none',\n"
" Using `all', all files are overwritten during\n" " specifying whether all files, main file only, or no files,\n"
" a batch export, otherwise only the main file will be.\n" " respectively, are to be overwritten during a batch export.\n"
" Anything else is equivalent to `all', but is not consumed.\n" " Anything else is equivalent to `all', but is not consumed.\n"
"\t-version summarize version and build info\n" "\t-version summarize version and build info\n"
"Check the LyX man page for more details.")) << endl; "Check the LyX man page for more details.")) << endl;
@ -1085,6 +1098,9 @@ int parse_force(string const & arg, string const &, string &)
} else if (arg == "main") { } else if (arg == "main") {
force_overwrite = MAIN_FILE; force_overwrite = MAIN_FILE;
return 1; return 1;
} else if (arg == "none") {
force_overwrite = NO_FILES;
return 1;
} }
force_overwrite = ALL_FILES; force_overwrite = ALL_FILES;
return 0; return 0;

View File

@ -36,7 +36,8 @@ class Session;
enum OverwriteFiles { enum OverwriteFiles {
NO_FILES, NO_FILES,
MAIN_FILE, MAIN_FILE,
ALL_FILES ALL_FILES,
UNSPECIFIED
}; };
extern bool use_gui; extern bool use_gui;

View File

@ -27,6 +27,12 @@ What's new
- Add support for pBibTeX (formerly known as jBibTeX), a specific Japanese - Add support for pBibTeX (formerly known as jBibTeX), a specific Japanese
BibTeX variant (bug 6808). BibTeX variant (bug 6808).
- New environment variable LYX_FORCE_OVERWRITE allows changing default
behavior when exporting from command line. Now LyX overwrites the main
main file by default, but not the ancillary files. Set this variable to
"all" for letting LyX behave as in 1.6.6 and previous versions; set it
to "none" for mimicking the 1.6.7 behavior of not overwriting any file.
* USER INTERFACE * USER INTERFACE