This is the rersult of a discussion on the list. Now all special characters
have meaningful names, and it is clear that the LyX file syntax is not LaTeX.
According to fix#9432, Scott found a new crash
1. start a new LyX document, english GUI
2. alt+m f to create a fraction
3. alt+m r to insert a root
4. undo
Recent versions of the cygwin X11 server come with a startup script
that explicitly uses '-nolisten tcp' for improved security. This means
that mentioning a host part in the DISPLAY variable precludes correct
operation. So, leave blank the host part such that only local connections
are attempted. Even if a user can override this setting in the own
~/.lyxprofile, novice users (and even experienced ones, at first) would be
probably confused by the "Error: Can't open display: localhost:0" message
and thus it is better to make this work out of the box.
Previously, LyX did replace some words with typeset logos, and there was no
way to prvent this except putting them, in ERT (bug #4752). Now we have
special insets for these words, and standard text is left alone.
Previously, consecutive dashes in .lyx files were combined to endash and emdash
in some cases, and in other cases they were output as is. This made the code
complicated, and resulted in inconsitencies ((bug #3647).
Now, a dash in a .lyx file is always a dash in the output, for all flavours.
The special handling is moved to the input side, so that you still get an
endash if you type two hyphens. If needed, this can be changed or made
customizable without the need to update the file format again. Many thanks
for the fruitful mailing list dicsussion, which contributed significantly to
the final version.
- the installer now re-synchronize MiKTeX's package database before installing or updating LaTeX-packages. This assures that new packages and renamed packages can automatically be installed when they are missing (fixes bug #9370)
- update the list of LaTeX packages that have to be installed when LyX is installed via the bundle installer for the first time on a PC
- add support for Turkish spell-checking
As discussed on the list. We don't need it anymore, either we have a modern
compiler that supports C++11, or we fall back to boost. I kept and adjusted
the regex #define, since we cannot use std regex completely yet.
The old detection did only work if CFLAGS contained -std=c++11, since ciso646
was only included for __cplusplus > 199711.
Thanks to Koernel for the cmake part.
This makes the script usable on windows and speeds it up by an order of
magnitude, since no new process needs to be forked for each layout file.
It also does not conevrt .old files again.
1.) The only file which needs this define is src/version.cpp. Our use in config.h
resulted in recompiling most of our sources.
With this change, only version.cpp needs to be recompiled.
2.) Without reconfiguring, the old commit hash was still valid. Now the
detection of commit hash is done at compile time.
This should prevent possible errors for tests running in parallel.
We now also check for created export file.
complainer/feature requester: Scott Kostyshak
If the LyX window does not appear after a certain (conservative)
time, the keytest now fails. One reason that caused the LyX window
to never show up was when DISPLAY was not set. This particular case
has been fixed in <commit1hash>. This commit is meant for the more general
scenario.
(Collaboration with Scott Kostyshak)
Before, the keytests would run infinitely if the
tests were run, e.g. through SSH without X forwarding.
To reproduce that problem, run
DISPLAY='' ctest -R hello
This commit causes the test to correctly fail in such situations.
(Collaboration with Scott Kostyshak)
The option --enable-qt5 allows configuring for Qt5. The default is Qt4.
Nothing special is done with respect to Qt4, apart from pulling in the
correct libraries. Indeed, other than the core and gui libraries, now
also the concurrent and widgets libraries are needed.
Forthcoming versions of cygwin will use a different mechanism for
obtaining passwd/group information based on /etc/nsswitch.conf.
Thus, it will not be guaranteed that the files /etc/passwd and
/etc/group even exist. The recommended way for obtaining those
info is by using the getent command, which already works in
current versions.
The configuration time suffers mostly on checking, which of the export tests
is to be reverted.
1.) There is a new configuration flag now, "LYX_ENABLE_EXOPRT_TESTS.
If not set (default) no export tests are created.
2.) If set, then the optimization halves the time needed for creation of tests.
The effect on my side:
a.) Until now the time was: ~ 26 seconds
b.) The optimized time is now: ~ 16 seconds
c.) With not enabled export tests: ~ 5 seconds
This is a follow-up of bug #8967. The implementation is self-explaining, the
only part which needs a comment is lyx2lyx: Since a 100% correct solution is
not possible, it has been decided not to switch amsmath off in the forward
conversion if no other ams command than \smash[t] and \smash[b] is used, but
to consider it a bug that older versions do not load amsmath automatically for
these commands. In the backward direction it is easy to keep the document
compilable, so just do that.
In collaboration with Scott Kostyshak:
With Qt 4 we could use Q_WS_X11, defined by FindQt4.cmake. In Qt 5,
there is no FindQt5.cmake. Instead we now define our own variable,
QT_USES_X11 by using class QX11Info available only on X11.
(http://qt-project.org/doc/qt-5/QX11Info.html)
The main consequence of this improved support is that now the keytests
can be run (ctest -R "keytest") when LyX is compiled with Qt 5.
Before, with Qt 5 we did not know if X11 was available, which is
needed by xvkbd, so the tests were not enabled. Note, however, that
many tests fail with Qt version 5.2.1 because there was a change in
the event handling mechanism in Qt that causes xvkbd to be unable to
pass capital letters (so case sensitive greps in the tests fail). This
needs to be investigated and reported.
The algorithm used for breaking a paragraph in LaTeX export is changed
for avoiding spurious blank lines causing too much vertical space.
This change is tied to the introduction of a new inset (with two
different specializations) helping in either outputing LaTeX paragraph
breaks or separating environments in LyX. Both of the above goals were
previously achieved by the ---Separator--- layout and can now be
accomplished by the new inset in a more natural way. As an example,
after leaving an environment by hitting the Return key for two times,
a third return automatically inserts a parbreak inset, which is
equivalent to the old separator layout, i.e., it also introduces a
blank line in the output. If this blank line is not wanted, the
parbreak separator can be changed to a plain separator by a right
click of the mouse. Of course, an environment can still be separated
by the following one by using the Alt+P+Return shortcut (or the
corresponding menu key), but now the plain separator inset is used
instead of the old separator layout, such that no blank line occurs in
the LaTeX output.
Old documents are converted such that the LaTeX output remains unchanged.
As a result of this conversion, the old separator layout is replaced by
the new parbreak inset, which may also appear in places where the old
algorithm was introducing blank lines while the new one is not.
Note that not all blank lines were actually affecting the LaTeX output,
because a blank line is simply ignored by the TeX engine when it occurs
in the so called "vertical mode" (e.g., after an alignment environment).
The old ---Separator--- layout is now gone and old layout files using it
are also automatically converted.
Round trip conversions between old and new format should leave a document
unchanged. This means that the new behavior about paragraph breaking is
not "carried back" to the old format. Indeed, this would need introducing
special LaTeX commands in ERT that would accumulate in roundtrip
conversions, horribly cluttering the document. So, when converting a
modified document to old formats, the LaTeX output may slightly differ in
vertical spacing if the document is processed by an old version of LyX.
In other words, forward compatibility is guaranteed, but not backwards.
This patch improves the cmake bundling process:
- reworked bundle handling for OS X: only when installing resources are copied, otherwise
only the smallest bundle is built
- on OS X, the utility programs (tex2lyx) are now installed in the right location
- it removes some unneeded BUNDLE DESTINATION
- it provides a basic support for QT plugins inclusion
- it properly builds a disk image on OS X (only the background image is missing)
- it fixes the library paths for all executables (not only LyX)
- Use the COPYING file for cmake install license
These started failing after we implemented tests for formats
that are in the complement set to the default format (7ecbb068).
It might be worth it in the future to take a look at each individually
and see whether they are supposed to fail or if there is something LyX
can do to add support for exporting them.
As discussed with Vincent I added 3 new features:
* LyX can now also be installed over an existing installation of the same LyX version if the users really wants this.
(A message box appears recommending not to do so for test releases and when there are problems with an existing installation of the same release.)
* LyX can now also be installed if the uninstaller executable of a former LyX was accidentally deleted.
(That this case was not handled was more a bug. Thanks Vicent for the pointer.)
* If a user set MiKTeX's automatic package installation to "No" the installer will.
(As discussed with Vincent, if a user has disabled this MiKTeX feature he most probably know the consequences. So respect his decision.)
respect that and not re-enable it.
I would be happy if anybody can spend a translation of the changed installer message.
- known problem: if LyX 2.0.x is installed and you install 2.1rc1, the .lyx file associations will not be updated but if LyX 2.1 is installed on a new PC the file associations work (work is in progress)
Define new policy of what export formats to check.
Depending on default_output_format
default or unset xhtml, dvi*, pdf*
xhtml xhtml
any of pfd variants xhtml, pdf*
any of dvi variants xhtml, dvi*
each other (like eps3) as specified
- it turned out that the hack to install a stripped-down Perl directly to MiKTEX is not only error-prone, requires admin permission but that it is also not safe because MiKTeX changes the folder structure from time to time. With the new solution Perl is installed directly for LyX like we do for ImageMagick, Python etc.
- for pdfcrop support there is a bug in pdfcriop that the requirement is hardcoded to Ghostscript 32bit - I contacted the pdfcrop author to fix this
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).
The tqrget now works properly when out of source directory qnd uses the $(PYTHON) variable. Also, the use of the error() function has been fixed in the gen_lfun.py script.
This target will update the gmo files if and only if the associated
po-file is modified. To determine whether a file is modified, 'git
status --porcelain' is used.
This follows up on commit 06782542.
This patch changes the user agent and results in the openoffice.org
tests correctly passing. Before, they would give the following error:
Failed, caught error: Status read failed: Connection reset by peer
All the other tests work as before.
Kornel and I are not sure why this change works.
If a perl-submodule exits with 'die()', the process would stop
and the following urls would not be tested.
The bug detection and idea how to solve it: Scott Kostyshak.