Uwe Stöhr [Sun, 18 Feb 2018 05:11:11 +0000 (06:11 +0100)]
Win installer: MiKTeX has a new maintenance program
- therefore the command line parameters changed
- all babel packages must be required
- use another default mirror that is hopefully not down 2hours every day
As of v. 1.7.7, chktex has four exit values. Only consider the program
failed with EXIT_FAILURE (1). This is backwards compatible to chktex
up to v. 1.7.5 and later patched versions included in TeXLive, where
there was the distinction EXIT_FAILURE (program failed) and EXIT_SUCCESS
(program successfully run, with or without something to report).
Note that ChkTeX v. 1.7.5 and 1.7.6 vanilla (as included in MikTeX) also
returned EXITE_FAILURE if ChkTeX found something to report.
In cursorY, it is dangerous to access par_petrics_[0], since one does
not know whether metrics have been computed for this paragraph (which
may be off-screen).
It is safer to use parMetrics(0), that will compute the paragraph
metrics as needed.
jpc [Mon, 12 Feb 2018 10:30:18 +0000 (11:30 +0100)]
Remove sections 6.7 and 6.4 from Additional manual (obsolete classes egs and aguplus)
Edit LaTeXConfig.lyx accordingly
Move teaplates/AGUTeX.lyx to teaplates/obsolete
Disable BUFFER_EXPORT and BUFFER_EXPORT_AS while buffer is processed
I am rather irritated we didn't do this already, since synchronous runs
with BUFFER_VIEW or BUFFER_UPDATE leads to all sorts of problems,
including crashes.
Fixes the crash in #8338 (but not the bug itself).
The issue here was that the element was only removed from the queue
after the func request was processed, but within that process, other
function could access the queue, so the queue could even be empty
when this function finally wanted to remove the item.
Kornel Benko [Sat, 10 Feb 2018 10:21:08 +0000 (11:21 +0100)]
Cmake build: Allow cross-compiling with mingw again
1.) The check for "QT_USES_X11" expects the created application
to run, but the '.exe' file does not run on linux.
2.) Don't use megered build anymore, it is not faster
on multi-processor machines anyway
When pasting "\big" without any following delimiter, avoid
processing the same token again and again. For unknown reasons,
the delim docstring turns out to always be not empty: even when
it simply contains a '0' (no delimiter follows), its length is 1.
Several problems:
* The regex failed at names such as 1_text_2_text.tex
(returned "2_text.tex)
* The regex failed at names such as 12_text.tex
(returned "2_text.tex)
* Masters with digits in the name (2018_text.tex) were
tracked as their own children
Re-add method to get a temporary file name without persistent QTemporaryFile object
This is needed for cases where the temp file has to be manually removed
at some point (e.g., if temp files are used as conversion target, and
the initial file only serves as a placeholder), since QTemporaryFile
objects cannot be manually removed at least on Windows (they are always
kept open internally even after close()). See
http://lists.qt-project.org/pipermail/interest/2013-August/008352.html
In order to avoid race conditions due to duplicate names (the issue why
the old method was removed), we record all used temp file names.
Günter Milde [Sun, 4 Feb 2018 09:08:07 +0000 (10:08 +0100)]
Use re.match to find regexp at begin of string/line.
Consistently use the re.match() or the match() method of a
regexp object to find a match at the begin of a line.
This is faster than re.find('^...').
Cf. https://stackoverflow.com/questions/180986/what-is-the-difference-between-re-search-and-re-match
(The subtle difference for multi-line strings is irrelevant for
configure.py, as we match line-wise.)
Richard Heck [Fri, 2 Feb 2018 02:58:29 +0000 (21:58 -0500)]
Double escape binary regex in lyx2lyx and fix line-ending problem.
When we switched from r'...' to b'...', this required strings used
as input to re.compile to be double-escaped. It's not an issue with
"\s", because "\s" has no special meaning in a string.
Also, printing in binary mode did not output a line ending.
Günter Milde [Wed, 31 Jan 2018 14:09:32 +0000 (15:09 +0100)]
lyx2lyx refactoring.
* use unicode.transform() instead of loop over replacements
* telling variable names
* remove trailing whitespace
* documentation update
* don't set use_ligature_dashes if both dash types are found
* remove spurious warning, normalize indentation, and use
Python idioms in revert_baselineskip()
Make CursorData::checkNewWordPosition() more robust
Before accessing things like new_word_.lastpos(), it is better to make
sure that new_word_ points to something that exists. Therefore, the
call to fixIfBroken() is moved in first position.
Other changes: inTexted() is replaced by a more general test that
current inset has not changed; test idx() in addition to pit().
Günter Milde [Tue, 30 Jan 2018 20:58:12 +0000 (21:58 +0100)]
Use LaTeX macros instead of Latin transcription for Greek characters.
Use the LaTeX internal character representation (LICR) macros
provided by lgrenc.def (since version 0.8 from 2013-05-13)
in lib/unicodesymbols. This fixes the PDF bookmarks (except for the
legacy input encoding iso-8859-7) and solves the problem of a missing
"v" character in Libertine LGR fonts (see lyx-users from 2018-01-29).
The ctest unicodesymbols/008-greek-and-coptic_iso8859-7_pdf2" now fails
(due to #9681). This is not a regression, as it is already
"unreliable" (wrong output, Latin character instead of Greek).
Drop compatibility definition of \~ as perispomeni accent
(that was required with lgrenc.def < 0.8).
Günter Milde [Tue, 30 Jan 2018 20:43:38 +0000 (21:43 +0100)]
Do not use "ligature dashes" with French documents.
In Spanish and French, dashes around parenthetical statements
are treated similar to brackets: line breaks are not allowed
on the inner side. Use of "breakable" dashes risks accidential
line breaks after the "opening" dash.
(Ligature dashes allow line breaks even if a no-break space follows.)
As of enchant 2.x, it is required to create a Broker instance instead
of relying on a static one provided by the library.
Add autoconf and cmake (courtesy of Kornel) tests that check whether
one can indeed instantiate a Broker object, and act on the result in a
new broker() helper function.
Actually, the possible exception path is from replaceEnvironmentPath.
It would be better if coverity was able to asses that our hardcoded
regexp:s are correct.