The problems the comments in the build systems refer to seem to have been
fixed for years. [1] says the checks in libstdc++ have been improved, and
all supported FreeBSD versions enable wchar_t support unconditionally in
libstdc++. Additionally, this needlessly impacts FreeBSD when libc++ is used
instead of libstdc++.
When we export the file to latex, we use the redefinition_ variable to check whether we should output newcommand or renewcommand. This variable was set by the MathMacroTemplate::metrics() function, and this caused problem when the export is running in a different thread as the GUI.
In general, the metrics() functions should not change the Buffer; we have updateBuffer/updateMacros for that purpose.
Georg Baum [Fri, 11 Oct 2013 18:38:05 +0000 (20:38 +0200)]
Fix missing updates for lazy MacroData
Not all accessors did update the data previously. Therefore it could happen
that document export from the command line would output \newcommand, and from
GUI it would output \renewcommand for the same macro, simply because in the
GUI case the data was updated as a side effect of the GUI thread reading some
other member.
I also removed the mutable flag for requires_, since this member is always
set on construction and does not need any lazy update.
The bug was introduced with commit [47f7d447/lyxgit], where the unnecessary trailing bracket in CJK environments was suppresed, but not the preceding bracket (which is only output if CJK is a secondary language).
Georg Baum [Thu, 10 Oct 2013 19:20:44 +0000 (21:20 +0200)]
Make encoding conversions thread safe
This is the result of the discussion on the list "2.1.0 Blocker". Thanks to
all contributors!
The main idea is to use thread-local storage for all static variables.
This solution does not need any mutex. For more details, see the comment in
unicode.h.
Georg Baum [Tue, 8 Oct 2013 20:06:55 +0000 (22:06 +0200)]
Remove questionable Mutex copy code
It is no longer needed, and it had a comment that it needed review...
Now anybody who tries to make a copy again is forced to think about it,
instead of trying and using possibly wrong semantics by accident.
Scott Kostyshak [Sun, 6 Oct 2013 20:39:52 +0000 (16:39 -0400)]
Remove obsolete code in Math.lyx
These workarounds are no longer necessary because of unicodesymbols
and further they break compilation with XeTeX as well as pdfTeX
with TeX input encoding set to ascii or utf8.
The reason for adding this option is to kill a warning with automake 1.14. However, the "make distclean" target does not work with the subdir-objects options for older versions of automake. To still allow older versions of automake, we remove this option and live with the warning when using automake 1.14.
The autogenerated icons are in most cases ugly, do not conform to the
style of the other icons, and do not respect relative dimensions and
positions. The math icons have a vertical dimension of 19 pixel, defining
a grid that has to be respected for obtaining correct alignment.
The only autogenerated icons that remain are those of the Misc (extra)
toolbar. I plan to also replace them in the near future.
Merge: Remove tex2lyx defines to allow for newer automake
Automake version 1.14 warns that subdir-objects needs to be
enabled to avoid future incompatibilities. However, this causes problems
for objects that are compiled twice (for LyX and tex2lyx) with different
defines (e.g., TEX2LYX and NO_LAYOUT_CSS). Therefore, we need to properly
fix the code without using these defines.
See also:
- commit 16cdf70d (Jul 26, 2013),
- commit 3698fde0 (Aug 19, 2013), and
- http://marc.info/?l=lyx-devel&m=137673178123427&w=2.
Scott Kostyshak [Sat, 28 Sep 2013 03:49:49 +0000 (23:49 -0400)]
Move AGU_article.lyx to the attic
Exporting this outdated document currently hangs on some systems.
Further, there is no natural link between AGU and DocBook
and this could be confusing to a user who is looking for
the AGU template.
Modified the revision selection while comparing po-files$
If revision-parameter is set to e.g. '-3', now we search for the previous
3-rd change of the relevant po-file instead of the previous 3-rd commit.
We now also pass options through the environment, though it is not needed for git.
This way we overcome the deficiency of "hg" and "svn", which do not allow
to pass self-defined options to underlying diff-command.
It is always a bad idea to compare a localized string. I think the whole method Formats::getFormatFromPrettyName (which is now unused) should be ditched. This is bound to fail.
Given erroneous <lang>.po file, this yields to error on first call
to make. Nonetheless a new <lang>.gmo file is created. The following
calls to make do not get an error.
This patch prevents the <lang>.gmo creation on error.
The Messages::gui_lang_ variable is instantiated in the '#ifdef ENABLE_NLS' block. To prevent compile problems, we should also instantiate it when NLS is disabled.
The tests are now more robust if ctest uses '-j' (number of threads) parameter.
a.) keytests are running in sequence and in one thread only, no other thread running
b.) tex2lyx tests are locking in respect to each other
c.) Test gets one or more labels, so that we can select
ctest -L url
to run tests labeled url
d.) New macro settestlabel() to add labels to a test