Commit Graph

86 Commits

Author SHA1 Message Date
Jean-Marc Lasgouttes
664fca5566 Initialize correctly SystemcallPrivate in constructor
It seems that Error is the best possibility when nothing has been done yet.

Found by Coverity
2016-06-09 17:34:14 +02:00
Scott Kostyshak
20addbbf36 Qt 5.6 renames signal QProcesss::error()
QProcesss::error() was renamed to QProcesss::errorOccurred().

The renaming was done to avoid confusion from overloading (see the
documentation for the signal before the renaming [1]).

For more details, see this Qt bug report [2].

[1] http://doc.qt.io/qt-5/qprocess.html#error-1
[2] https://codereview.qt-project.org/#/c/114451/
2016-01-24 12:07:52 -05:00
Enrico Forestieri
306b136cc0 Fix bug #4812 (Layout in local directory lost on Save As, Copying)
The "save-as" part of the bug is fixed by extending the \textclass tag
such that, if a local layout file is used, its path relative to the
document directory is now stored together with the name. If a relative
path cannot be used, an absolute one is used but, in this case, the
document is not usable on a different platform.

The "copy" part is fixed by introducing a new \origin tag, which is
written when the file is saved. This tag stores the absolute path of
the document directory. If the document is manually copied to a
different location, the local layout file is retrivied by using
\origin (which is only updated on save).
This new tag may prove useful also for locating other files when the
document is manually moved to a different directory.

As in the original implementation the files needed for the layout
(for example, a latex class) had to be in the same directory as the
layout file, this directory has also to be added to TEXINPUTS.
2015-05-13 22:02:13 +02:00
Scott Kostyshak
90772a01e7 Simplify code 2015-04-04 14:56:29 -04:00
Scott Kostyshak
7032b03748 Detect when an external command crashes
This fixes a situation where LyX did not detect that something went
wrong (that an external comman crashed) and reported that export was
successful. To reproduce, use the following version of LuaTeX (the
bug in LuaTeX causing the crash has since been fixed):
LuaTeX, Version beta-0.79.1 (TeX Live 2014) (rev 4971)
Then open FeynmanDiagrams.lyx and export with PDF (LuaTeX).

In the documentation [1] for QProcess::exitCode() it states:
"This value is not valid unless exitStatus() returns NormalExit."

For more information, see:
https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg185317.html

[1] http://doc.qt.io/qt-5/qprocess.html#exitCode
2015-04-04 13:45:19 -04:00
Scott Kostyshak
36c3495a3a Correct the spelling of "occured" to "occurred" 2015-02-09 18:44:02 -05:00
Peter Kümmel
2f17858115 On Linux show in crash message box the backtrace 2014-06-14 11:25:25 +02:00
Scott Kostyshak
1821c6d8a3 Centralize substitution of python commands
The code for detecting python commands and substituting in the
correct prefix is now merged with what used to be libScriptSearch()
and is now renamed to commandPrep(). This commit does not change
any functionality and just improves organization to reduce the
chance of bugs in the future.
2014-05-14 15:45:20 -04:00
Scott Kostyshak
8b66f9cedf Centralize replacement of "$$s"
Now the replacement is done in startScript(). In addition to making
the code cleaner and more consistent, this commit fixes a bug where
"$$s" was not replaced when "latex=" was specified in the extra flags
of a converter.

Note that the temporary fix at 731b8610 is reverted with this commit.
2014-05-14 15:45:20 -04:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
	// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.

I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
2014-04-21 11:51:57 -04:00
Vincent van Ravesteijn
3c67d6f77c Add a comment for the special code on Windows 2014-03-19 21:07:43 +01:00
Vincent van Ravesteijn
d44b465efa Do not use QProcess::startDetached on Windows
QProcess::startDetached cannot provide environment variables. When the
environment variables are set using the latexEnvCmdPrefix, a console
window is shown every time a viewer is started.

On Windows, this reverts commit 5225821242.

Fixes: #9035.
2014-03-19 08:29:38 +01:00
Scott Kostyshak
5225821242 Prevent zombie processes (#8774)
Using Systemcall::startscript() with Starttype::DontWait used to create
zombie processes, as nobody would collect them. This patch starts those
processes as detached, hence preventing them from becoming zombies.

In addition to #8774, this bug was also reported here:
https://bugs.launchpad.net/ubuntu/+source/lyx/+bug/1096666

Patch from Guy Rutenberg. For reference, see this email thread:
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg180034.html
2013-07-16 01:02:28 -04:00
Jean-Marc Lasgouttes
30cbe535c3 Make annoying debug message optional 2013-02-19 13:48:48 +01:00
Scott Kostyshak
51c380440b Constify some catches and others 2012-09-17 04:05:34 -04:00
Scott Kostyshak
80c126b092 Typos
Clean up some comments, LFUN documentation, an error message,
and lyx --help output.
2012-09-12 19:38:26 -04:00
Richard Heck
9e678569ad Typo. 2012-06-06 18:20:02 -04:00
Enrico Forestieri
1eb41a88f2 Fix bug #8032 (timeout when using the Sweave module)
After the timeout elapses, the user is notified that a command is taking
a long time to complete and is given the choice to stop it. If the user
decides to let the command run, the timeout is increased, otherwise the
command is killed. One is prompted a first time after 3 mins, a second
time after 9 mins, a third time after 27 mins, and so on, i.e., the n-th
prompt occurs after 3^n minutes.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40775 a592a061-630c-0410-9148-cb99ea01b6c8
2012-02-18 14:16:25 +00:00
Georg Baum
29627f1680 Fix converters with input redirection, such as the second htlatex one.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40647 a592a061-630c-0410-9148-cb99ea01b6c8
2012-01-22 12:35:07 +00:00
Enrico Forestieri
c58f009c9b Properly account for output redirection with QProcess.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40110 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-31 02:02:27 +00:00
Enrico Forestieri
775466100f Detect the correct version of python at runtime and store the result
for later calls. The check is only performed on the major version
number, such as to avoid using python 3.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40049 a592a061-630c-0410-9148-cb99ea01b6c8
2011-10-28 11:51:48 +00:00
Enrico Forestieri
a749b73d95 The second argument of Systemcall::startscript is supposed to be encoded
in the filesystem encoding, i.e., the local 8 bit encoding.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39760 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-25 16:38:51 +00:00
Enrico Forestieri
e5cc5ac2e8 Manage the setting of the latex environment for Systemcall and ForkedCall
in a central place.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39758 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-25 13:35:42 +00:00
Enrico Forestieri
7a15d8b232 Do not change, even if temporarily, the environment of the main process
but only that of the launched QProcess.
This will help changing the code in order to manage in a central place
the LaTeX environment, thus avoiding the current code duplication in
Systemcall and ForkedCalls.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39754 a592a061-630c-0410-9148-cb99ea01b6c8
2011-09-24 20:53:28 +00:00
Enrico Forestieri
d3c96214f3 Allow batch files with QProcess.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39548 a592a061-630c-0410-9148-cb99ea01b6c8
2011-08-28 16:45:46 +00:00
Enrico Forestieri
0eedbdee03 Don't rely on Qt for setting an environment variable.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39049 a592a061-630c-0410-9148-cb99ea01b6c8
2011-06-14 18:06:57 +00:00
Enrico Forestieri
1717ef203c Introduce the possibility of setting a prefix for the TEXINPUTS environment
variable. This is done in the preferences, much like as the PATH prefix.
A single '.' in the paths will get replaced with the current document dir
and also non-absolute paths will be prefixed with that dir.

The default semantics of TEXINPUTS apply, such that, for example, if a
path is terminated with a double slash, all subdirectories will be also
searched by both the TeX engine and ancillary programs such as dvi
previewers or dvips. As an example, if the prefix is set to ".:figs", the
TEXINPUTS variable will be set as ".:<docdir>:<docdir>/figs:$ORIGTEXINPUTS",
where <docdir> is the document directory.

The initial '.' is necessary to address the actual current dir (this will
be the temp dir at preview time), while if TEXINPUTS was initially unset,
such that $ORIGTEXINPUTS is empty, a colon (or semicolon on Windows) will
end the path list. This is very important, because we don't want to replace
the system directories but to complement them and, in order to do that, an
empty element has to be present in the list. Indeed, according to the
TEXINPUTS semantics, an empty element means the standard search path.
This works whether TEXINPUTS is originally set or not, because if the
original TEXINPUTS starts with a colon (meaning that the standard search
path is wanted there) we will have an empty element at that point,
otherwise the final colon will simply serve as a path separator.

Of course, on Windows a ';' has to be used as a path separator. LyX will
take care of transforming the platform path list into one understandable
by the TeX engine. For example, this will be the case for a Cygwin version
of LyX using a native Windows TeX engine or viceversa. I tested all of
this and it works for me.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38681 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-09 23:25:51 +00:00
Enrico Forestieri
3efc6385d7 See r37176. Let's keep this a Windows only "feature".
Something went wrong with a script while previewing a document and now
I have to wait for 30 minutes for quitting LyX without killing it.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@38578 a592a061-630c-0410-9148-cb99ea01b6c8
2011-05-04 00:17:07 +00:00
Peter Kümmel
826298831d When getting packages via miktex 3 minutes is to short for
the timeout. 30 minutes should be enough, also for very big documents.
#7228

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37176 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-11 18:46:41 +00:00
Pavel Sanda
5075f0f25f typo
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35973 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-01 20:24:29 +00:00
Enrico Forestieri
952a31a43e Fix output to terminal when LyX is launched from a GUI on *nix
aka
Surrender to Windowsisms
aka
Resistance is futile, you will be assimilated


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34918 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 14:30:46 +00:00
Peter Kümmel
2467a88cde no output to stdout when redirecting, cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34915 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 09:57:46 +00:00
Peter Kümmel
146b1083a1 fix stupid renaming error
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34914 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 08:14:00 +00:00
Peter Kümmel
7c4122cc4b lyx sytle
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34912 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 08:09:38 +00:00
Peter Kümmel
52e58a3700 CamelCase
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34911 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 06:08:12 +00:00
Peter Kümmel
48dca70f9e only guard terminal output.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34910 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-16 05:55:31 +00:00
Peter Kümmel
12efe108db Add Pavel's lyxerr extension, add ui for debug levels.
Still needs some fiddling with line endings.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32670 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-29 15:05:37 +00:00
Peter Kümmel
e479ed5b45 remove debug code
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32657 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-27 13:43:42 +00:00
Peter Kümmel
99116c8d64 cleanup process output
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32656 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-27 10:53:28 +00:00
Peter Kümmel
74d47d843e add some debug info
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32655 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-27 10:11:50 +00:00
Peter Kümmel
3c5fe7a93b fix formatting
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32648 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-26 17:14:53 +00:00
Peter Kümmel
0f8003c25a be sure processFinished() is only called once.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32647 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-26 16:53:29 +00:00
Peter Kümmel
94ab8c8f74 workaround for Qt (4.5.2) bug: QProcess::started() is emitted twice
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32646 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-26 16:07:16 +00:00
Peter Kümmel
dd4cbb3591 - Show progress information in status bar.
- Remove progress view because ATM we don't have to show anything usefull.
- move Alert:: void functions into GUI thread


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32604 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-21 11:48:19 +00:00
Peter Kümmel
0c19763f60 add progress widget
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32599 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-20 14:27:19 +00:00
Peter Kümmel
aa613aaf01 add progress widget
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32598 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-20 14:26:55 +00:00
Peter Kümmel
ea6d20295a Don't process gui events by default it's too dangerous because we have no synchronization ATM.
And not needed any more because we export buffers in a thread.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32597 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-19 20:33:30 +00:00
Enrico Forestieri
04580d2122 Improve the command-line parser meant to be used for QProcess.
Now, both single- and double-quotes posix-like quoting styles are implemented,
such that a command-line meant for the shell can also be used for QProcess.
However, only redirecting the output to a file is supported. Supporting piping
would require a (major?) rewrite of the Systemcall class.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32590 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-19 17:26:09 +00:00
Peter Kümmel
21686c0bbf UNDO: single quotes in filenames are possible
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32582 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-18 19:35:32 +00:00
Peter Kümmel
4d5c24e80d Ticket 6266 Quoting Problem with QProcess: don't think we need any quotes (at least on Linux)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32579 a592a061-630c-0410-9148-cb99ea01b6c8
2009-12-18 12:20:22 +00:00