From 2a371bb4b3235462ea6632d31d50ee447933bef8 Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Wed, 17 Aug 2016 22:32:14 +0200 Subject: [PATCH] Add verbose option Using the option -v (--verbose) all spawned commands are print on the terminal. Note that this was done by default on previous versions. --- lyx.1in | 3 +++ src/LyX.cpp | 17 +++++++++++++++++ src/LyX.h | 1 + src/client/client.cpp | 3 +++ src/frontends/qt4/GuiProgressView.cpp | 4 ++++ src/support/Systemcall.cpp | 6 +++++- src/support/filetools.cpp | 6 ++++++ src/tex2lyx/dummy_impl.cpp | 7 +++++++ 8 files changed, 46 insertions(+), 1 deletion(-) diff --git a/lyx.1in b/lyx.1in index 8f81660020..ed1be04b18 100644 --- a/lyx.1in +++ b/lyx.1in @@ -94,6 +94,9 @@ by using the lyxpipe, ask an already running instance of LyX to open the documents passed as arguments and then exit. If the lyxpipe is not set up or is not working, a new instance is created and execution continues normally. .TP +\fB \-v [\-\-verbose]\fP +print on terminal all spawned external commands. +.TP .BI \-batch causes LyX to run the given commands without opening a GUI window. Thus, something like: diff --git a/src/LyX.cpp b/src/LyX.cpp index a732c7ee80..fec82818b6 100644 --- a/src/LyX.cpp +++ b/src/LyX.cpp @@ -92,6 +92,12 @@ namespace os = support::os; bool use_gui = true; +// Report on the terminal about spawned commands. The default is false +// and can be changed with the option -v (--verbose). + +bool verbose = false; + + // We default to open documents in an already running instance, provided that // the lyxpipe has been setup. This can be overridden either on the command // line or through preference settings. @@ -1161,6 +1167,8 @@ int parse_help(string const &, string const &, string &) "\t-r [--remote]\n" " open documents in an already running instance\n" " (a working lyxpipe is needed)\n" + "\t-v [--verbose]\n" + " report on terminal about spawned commands.\n" "\t-batch execute commands without launching GUI and exit.\n" "\t-version summarize version and build info\n" "Check the LyX man page for more details.")) << endl; @@ -1295,6 +1303,13 @@ int parse_remote(string const &, string const &, string &) } +int parse_verbose(string const &, string const &, string &) +{ + verbose = true; + return 0; +} + + int parse_force(string const & arg, string const &, string &) { if (arg == "all") { @@ -1342,6 +1357,8 @@ void LyX::easyParse(int & argc, char * argv[]) cmdmap["--no-remote"] = parse_noremote; cmdmap["-r"] = parse_remote; cmdmap["--remote"] = parse_remote; + cmdmap["-v"] = parse_verbose; + cmdmap["--verbose"] = parse_verbose; for (int i = 1; i < argc; ++i) { map::const_iterator it diff --git a/src/LyX.h b/src/LyX.h index a19b523459..4b9c201e25 100644 --- a/src/LyX.h +++ b/src/LyX.h @@ -51,6 +51,7 @@ enum OverwriteFiles { }; extern bool use_gui; +extern bool verbose; extern RunMode run_mode; extern OverwriteFiles force_overwrite; diff --git a/src/client/client.cpp b/src/client/client.cpp index a950f8303b..023e73e96b 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -66,6 +66,9 @@ using namespace lyx::support; namespace lyx { +// Dummy verbose support +bool verbose = false; + // Dummy LyXRC support struct LyXRC { string icon_set; diff --git a/src/frontends/qt4/GuiProgressView.cpp b/src/frontends/qt4/GuiProgressView.cpp index 3a8f0754d9..166eed752c 100644 --- a/src/frontends/qt4/GuiProgressView.cpp +++ b/src/frontends/qt4/GuiProgressView.cpp @@ -195,6 +195,10 @@ void GuiProgressView::clearText() void GuiProgressView::appendLyXErrText(QString const & text) { + // Skip verbose messages meant for the terminal + if (text.startsWith("\nRunning:")) + return; + widget_->outTE->moveCursor(QTextCursor::End); widget_->outTE->insertPlainText(text); widget_->outTE->ensureCursorVisible(); diff --git a/src/support/Systemcall.cpp b/src/support/Systemcall.cpp index 5dd4a94e16..cc2c3814ab 100644 --- a/src/support/Systemcall.cpp +++ b/src/support/Systemcall.cpp @@ -23,6 +23,7 @@ #include "support/os.h" #include "support/ProgressInterface.h" +#include "LyX.h" #include "LyXRC.h" #include @@ -239,7 +240,10 @@ int Systemcall::startscript(Starttype how, string const & what, bool process_events) { string const what_ss = commandPrep(what); - LYXERR(Debug::INFO,"Running: " << what_ss); + if (verbose) + lyxerr << "\nRunning: " << what_ss << endl; + else + LYXERR(Debug::INFO,"Running: " << what_ss); string infile; string outfile; diff --git a/src/support/filetools.cpp b/src/support/filetools.cpp index b28d81210c..fcb95faca0 100644 --- a/src/support/filetools.cpp +++ b/src/support/filetools.cpp @@ -21,6 +21,7 @@ #include +#include "LyX.h" #include "LyXRC.h" #include "support/filetools.h" @@ -995,6 +996,11 @@ cmd_ret const runCommand(string const & cmd) // pstream (process stream), with the // variants ipstream, opstream + if (verbose) + lyxerr << "\nRunning: " << cmd << endl; + else + LYXERR(Debug::INFO,"Running: " << cmd); + #if defined (_WIN32) STARTUPINFO startup; PROCESS_INFORMATION process; diff --git a/src/tex2lyx/dummy_impl.cpp b/src/tex2lyx/dummy_impl.cpp index 7709663914..8ad5b79859 100644 --- a/src/tex2lyx/dummy_impl.cpp +++ b/src/tex2lyx/dummy_impl.cpp @@ -47,6 +47,13 @@ namespace Alert { } +// +// Dummy verbose support +// + +bool verbose = false; + + // // Dummy LyXRC support // -- 2.39.5