Prevent LyX from freezing in additional common cases where it would
try to show dialogs or ask for user input while doing advanced find
and replace. In many of these cases we should simply find a way for
avoiding lyx to show a dialog, however an extra info/warning dialog
is better than the GUI freezing and having to kill the process.
Georg Baum [Sun, 9 Mar 2014 09:30:20 +0000 (10:30 +0100)]
Prevent the most important case of bug #9012
Currently you can easily create an uncompilable document if you insert
non-ASCII characters in a pass-through paragraph (e.g. ERT inset or verbatim
style). This commit prevents entering these characters directly, but of
course they can still be inserted via tricks, e.g. changing a standard
paragraph to verbatim. A complete fix would handle this case as well,
and also change the fixed latin1 encoding of latex_language to a dynamic one,
so that a verbatim paragraph can contain any character that is encodable in
the encoding of its environment.
Georg Baum [Sat, 8 Mar 2014 10:13:39 +0000 (11:13 +0100)]
Work around broken math symbol display (bug 7954)
This extends the already existing math symbol fallback mechanism in two ways:
1) When considering the availability of the math font, also take broken
code points into account. These are currently 0x0009 and 0x00ad, depending
on the platform.
2) If the fallback symbol in the standard "Symbol" font is not given, or if
the "Symbol" font is not available, or the fallback symbol is one of the
broken ones, try to use a generic unicode symbol as second fallback instead.
If this is available, we rely on Qt to find a font which has it. Only if
this is not available, display the symbol as ERT.
This ensures that we do never get a symbol which is not displayed: Either
it can be displayed, with or without fallback, or it will be shown as ERT.
Georg Baum [Fri, 7 Mar 2014 20:32:01 +0000 (21:32 +0100)]
Update layouttranslations from current po files
I only left out the following:
1) chinese translation - we have no GPL statement yet, if we don't get it the
big update would need to be removed unfortunately.
2) I kept the dutch translation for "Chart", although this is ambigous, since
nl.po does not contain a translation
3) I kept the danish translation for "Note", since da.po does not contain a
translation
The review file is updated as well to contain all translations without a
documented review.
Scott Kostyshak [Wed, 5 Mar 2014 20:51:40 +0000 (15:51 -0500)]
Fix compilation of ja/Math.lyx (see #9027)
The Japanese math manual was not compiling because of some
complications with foreign language switching. This would
have been fixed after the translation from English to Japanese
is done but I want to make sure the document is compilable
for 2.1.
Georg Baum [Thu, 6 Mar 2014 22:03:57 +0000 (23:03 +0100)]
Transfer layout translations to nl.po
These translations were only in lib/layouttranslations. I don't know if they
were reviewed, but I understand enough dutch to be sure that they are not
completely wrong, so they are good enough for the GUI.
Georg Baum [Thu, 6 Mar 2014 21:40:38 +0000 (22:40 +0100)]
Add new layout translations to be reviewed
Now lib/layouttranslations.review contains all translations which have been
changed since the 2.0.0 release except for the ones where the commit log
mentioned that they were reviewed.
Georg Baum [Thu, 6 Mar 2014 21:00:12 +0000 (22:00 +0100)]
Remove context also for translated strings
This is consistent with the treatment in LyX itself (cleanTranslation() is
also called on the translated strings), and some translators leave the context
in the translated msgstr (e.g. [[List of Listings]]), although that is not
recommended. Without this, lib/layouttranslations would contain wrong
translations.
Georg Baum [Thu, 6 Mar 2014 20:42:51 +0000 (21:42 +0100)]
Fix logic error in layout translation extraction
lyx_pot.py treats the combination IsPredefined == true and UsesFloatPkg == true
incorrectly: In this case it does not extract the float name, although it needs
to be extracted. This was no problem for LyX 2.0.0, because no layout contained
this combination fo flags. However, the current version of achemso.layout uses
it for several styles, e.g. "List of Schemes".
You only see the bug if you remove lib/layouttranslations before updating it,
otherwise it would be covered by the old translations which are kept. The fix
make use of the fact that IsPredefined == false and UsesFloatPkg == false is
not supported by LyX to simplify the logic.
Georg Baum [Tue, 4 Mar 2014 22:04:27 +0000 (23:04 +0100)]
Fix compilation with libc++
libc++ (http://libcxx.llvm.org/) is used on OS X with newer XCode.
The patch is from Benjamin Piwowarski <benjamin.piwowarski@lip6.fr>, I only
added more comments.
The changes regarding implicit conversion to bool of std::iostream work
because both the C++98 and C++11 standards guarantee that boolean evaluation
of streams returns !fail(). See e.g.
http://stackoverflow.com/questions/1334858/why-dont-iostream-objects-overload-operator-bool
for details.
Scott Kostyshak [Mon, 3 Mar 2014 19:47:50 +0000 (14:47 -0500)]
instant_preview.lyx: load 'etex' package
The pgf package 3.0.0 update lead to an error being given with
this document. Loading the 'etex' package fixes the problem.
For more information, see:
https://sourceforge.net/p/pgf/bugs/296/
Uwe Stöhr [Sat, 1 Mar 2014 23:37:32 +0000 (00:37 +0100)]
chkconfig.ltx: add package filehook
filehook.sty is required when you use non-TeX fonts and also the non-TeX math default font
In the same context LyX requires the font "latinmodern-math.otf", but we can currently not check for it, see my post to the list
Georg Baum [Fri, 28 Feb 2014 21:42:38 +0000 (22:42 +0100)]
Fix crash if magic_file() returns an error
Thanks to Benjamin Piwowarski who reported the problem and provided a fix.
magic_file() returns a NULL pointer if an error occurs, and due to a bug
this happens frequently on OS X: https://trac.macports.org/ticket/38771
I did not use the original patch, since I did not want to put a platform
specific workaround in (this needs further discussion), but the crash can
occur on all platforms and needs to be fixed.
Georg Baum [Thu, 27 Feb 2014 20:25:19 +0000 (21:25 +0100)]
Fix dataloss for align env inside math
The math parser aborts with an error message on \begin{align} and
\begin{align*} if this is not the hull inset. This is now fixed, however
this is not complete support for these two environments (the GUI does not
respect the numbering). It is only the minimal fix that ensures that no data
loss occurs for documents imported by tex2lyx.
Georg Baum [Wed, 26 Feb 2014 20:54:09 +0000 (21:54 +0100)]
Fix misparsing of alternative simple formulas
This comes from trying to run tex2lyx on the AMS math test document
testmath.tex. Both \(...\) and \begin{math}...\end{math} are defined as
inline math formulas in standard LaTeX. tex2lyx recognizes this, but the
math parser in LyX did not handle "\begin_inset Formula \(" and
"\begin_inset Formula \begin{math}" correctly.
The fix is simple and safe: If we are in undecided mode (this is only true
for the first token of a math inset), create a hull inset of the respective
kind. Otherwise, handle the commands as before.
Georg Baum [Wed, 26 Feb 2014 20:18:31 +0000 (21:18 +0100)]
Add missing math delim decorations
This avoids a message "Deco was not found. Programming error?" on stderr.
The added decorations are defined by amsmath, and equivalent to \vert (single
vertical bar) and \Vert (double vertical bar), respectively. They are used to
distinguish the single and paired versions (for use with \left and \right).
These symbols should cause amsmath to be loaded, but this would be too
dangerous to implement now.
Georg Baum [Wed, 26 Feb 2014 19:43:04 +0000 (20:43 +0100)]
Load listings after babel (bug #8995)
Babel makes the character ':' active in french documents, and the listings
package cannot cope with that if it is loaded before babel. If it is loaded
after babel it works. This makes the french EmbeddedObjects manual compilable.
Richard Heck [Mon, 24 Feb 2014 19:36:13 +0000 (14:36 -0500)]
Table cells are insets, but not from the point of view of DocIterators
and Cursors. So just calling InsetText::addToToc for the cells causes
problems, because InsetText::addToToc then adds the cell inset itself
as part of the DocIterator. This then leads to assertions, such as bug
The solution is to refactor InsetText::addToToc so that we can call the
iterating part without adding the inset.
Scott Kostyshak [Mon, 24 Feb 2014 12:57:02 +0000 (07:57 -0500)]
Fix a broken autotest
This test was broken after wrap-around search was implemented. From
what I understand, the point of the test is that search should _not_
match in this case because "ignore format" is checked by default.
Thus, a new way of testing that there was no match is to check whether
the wrap around message shows up, because the cursor is initially at
the beginning so that would mean that the entire buffer was checked.
I confirmed that the test now works by checking that it passes and
checking that it fails if "ignore format" is unchecked. Although this
test is still fragile, it is fragile in a conservative way (i.e. it
will give false failures rather than false passes). It will fail if
the Italian translation changes, if "ignore format" is unchecked by
default, or if the wrap-around mechanism changes (e.g. does not ask if
the cursor started at the beginning of the buffer).
Richard Heck [Sun, 23 Feb 2014 17:04:56 +0000 (12:04 -0500)]
Forgot in previous commit to deal with case. As I'm doing it now,
it's easy to use the existing docstring routine, so I've commented
out the string version of lowercase I had introduced. I've left the
code in case someone else needs it later.