Georg Baum [Wed, 21 Jan 2015 21:27:06 +0000 (22:27 +0100)]
Fix pasting insets into math (bug #9302)
The problem was that the conversion to plain text (which is used as an
intermediate step) requires for some insets a valid buffer pointer, but
insets in the cut stack do not have one. Now we use the same temp buffer
business as for copying to the external clipboard.
The former solution with installing all babel packages at once via a list fails if only a single package of the list is already installed. In this case none of the packages in the installation list will be installed. Therefore every package will be installed separately.
(The bug is already reported to MiKTeX and this workaround can be removed for LyX 2.1.4.))
Georg Baum [Thu, 26 Jun 2014 19:05:40 +0000 (21:05 +0200)]
Work around MSVC warning
The statement
if (pos < from + lyxrc.completion_minlength)
triggers a signed vs. unsigned warning. I don't know why this happens, it
could be a MSVC bug, or related to LLP64 (windows) vs. LP64 (unix)
programming model, or the C++ standard might be ambigous in the section
defining the "usual arithmetic conversions". However, using a temporary
variable is safe and works on all compilers.
Uwe Stöhr [Thu, 8 Jan 2015 00:39:10 +0000 (01:39 +0100)]
Win installer: LaTeX package list update
- Packages.txt: add all available babel packages and update to latest list of packages supported by LyX
- chkconfig.ltx: remove an entry that was added only for the Win-installer
Fix bug #9342: LaTeX build get stuck for unconventional path name
The reason being that the TEXINPUTS path list was not quoted on Windows.
This was no problem with spaces but some special characters are
interpreted by the shell and can cause problems. In this particular
case, the '&' character was being interpreted as a command separator.
There are 3 possible actions (in order)
* select current cell
* select all calls of inset
* select the inset from outside (in the containing inset)
C-a is now bound to inset-select-all
C-M-a is bound to the global "select all". The
reason for this change is that selecting an inset
is a more common operation that selecting an entire
document.
Georg Baum [Mon, 5 Jan 2015 20:44:37 +0000 (21:44 +0100)]
Fix multithreading crash (bug #9366)
This minimal fix makes the crash go away on my machine. A much more complete
fix is in master (and will be futher extended), but for 2.1.x we'll do only
minimal changes.
Georg Baum [Sat, 3 Jan 2015 16:56:53 +0000 (17:56 +0100)]
Reduce caption hardcoding
Now we can handle all types of captions defined in layout files or modules.
This does also mean that \captionabove and \captionbelow are only recognized
in KOMA-classes and not always anymore, but this is correct, since these
captions would not work in other document classes anyway.
Georg Baum [Sat, 3 Jan 2015 16:27:22 +0000 (17:27 +0100)]
Fix misparsing of \textgreek without polyglossia
\textgreek was interpreted as the polyglossia version even if polyglossia
was not used. Now the symbols defined in unicodesymbols are detected correctly
and converted to unicode, while others are converted to ERT (bug #8553).
Previously tex2lyx did ignore table columns if the column specifier was
unknown. This can lead to data loss, and now it does not ignore these columns,
but assumes that the column specifiers use only once character. This can still
lead to data loss, but less often.
Georg Baum [Tue, 30 Dec 2014 12:39:52 +0000 (13:39 +0100)]
Fix HTML output of \gg, \ll and \ne (bug #9372)
The fix consists of three parts: The fix for \ll and \gg, the needed
infrastructure to assign HTML entities to global math macros, and the actual
fix for \ne and \neq.
Let the Foot inset have a different Layout when inside a title
This allows to address two main issues
* \thanks does only accept one paragraph, while \footnote allows several (ticket #2666)
* footnotes in titling environments were not numbered on screen.
Moreover, the code reduces hardcoding of features, which is always a good thing.
There are several pieces in this commit:
* new numbering type \fnsymbol for counters
* the Foot inset changes its layoutName() to Foot:InTitle when inside a paragraph with InTitle property. This is set when running updateBuffer.
* Foot:intitle uses the \thanks command, does not allow multiple paragraphs and marks its contents as moving argument.
* The InsetLayouts for Foot now have properLaTeXName/Type, so that InsetFoot::latex can be removed; further code simplification is probably possible.
Georg Baum [Wed, 19 Nov 2014 19:42:04 +0000 (20:42 +0100)]
Fix memory error detected by valgrind
The assignment name = sub.str(1) reads from the first argument given to
regex_match(), but previously this was a temporary object which was already
out of scope. This did probably not matter much in practice, but invoked
undefined behaviour, and as we all know this is allowed ton format your hard
disk or kill to your cat, so better fix this.
Georg Baum [Sun, 16 Nov 2014 08:37:29 +0000 (09:37 +0100)]
Fix recursive math macro crash (bug #9140)
This is different from bug #8999, since in this case a new macro instance is
created. You still get a TeX capacity exceeded error if you try to typeset the
exported document, but this is the same as for bug #8999 and better than a
crash.
Georg Baum [Fri, 14 Nov 2014 18:09:34 +0000 (19:09 +0100)]
Fix bug #7954 (now really)
Thanks to maciejr we know now what the remaining problem was with bug 7954:
My unicode symbol fallback works fine, the problem was that a font named
"Symbol" is available on OS X, but it does not use the font-specific encoding
we expect: Almost all glyphs are at their unicode code point.
Therefore the bug is fixed by re-enabling the unicode workaround and blocking
the Symbol font on OS X.
Georg Baum [Wed, 12 Nov 2014 19:31:32 +0000 (20:31 +0100)]
Fix memory errors found by Alfredo with valgrind
BufferParams::setDocumentClass() deletes the old document class of the buffer
and creates a copy of the new one. Therefore, the stored layout pointers in
the paragraphs (actually only one paragraph exists) are dangling afterwards.
Resetting them before setting the document class helps here.
In the long term we need to get rid of BufferParams::setDocumentClass()
completely, this is very ugly.