Commit Graph

82 Commits

Author SHA1 Message Date
Christian Ridderström
e30f3d76d2 Bulk cleanup/fix incorrect annotation at the end of namespaces.
This commit does a bulk fix of incorrect annotations (comments) at the
end of namespaces.

The commit was generated by initially running clang-format, and then
from the diff of the result extracting the hunks corresponding to
fixes of namespace comments. The changes being applied and all the
results have been manually reviewed. The source code successfully
builds on macOS.

Further details on the steps below, in case they're of interest to
someone else in the future.

1. Checkout a fresh and up to date version of src/

    git pull && git checkout -- src && git status src

2. Ensure there's a suitable .clang-format in place, i.e. with options
   to fix the comment at the end of namespaces, including:

    FixNamespaceComments:                           true
    SpacesBeforeTrailingComments:                   1

and that clang-format is >= 5.0.0, by doing e.g.:

    clang-format -dump-config | grep Comments:
    clang-format --version

3. Apply clang-format to the source:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")

4. Create and filter out hunks related to fixing the namespace

    git diff -U0 src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace.patch

5. Filter out hunks corresponding to simple fixes into to a separate patch:

    pcregrep -M -e '^diff[^\n]+\nindex[^\n]+\n--- [^\n]+\n\+\+\+ [^\n]+\n'  \
        -e '^@@ -[0-9]+ \+[0-9]+ @@[^\n]*\n-\}[^\n]*\n\+\}[^\n]*\n'         \
        fix_namespace.patch > fix_namespace_simple.patch

6. Manually review the simple patch and then apply it, after first
   restoring the source.

    git checkout -- src
    patch -p1 < fix_namespace_simple.path

7. Manually review the (simple) changes and then stage the changes

    git diff src
    git add src

8. Again apply clang-format and filter out hunks related to any
   remaining fixes to the namespace, this time filter with more
   context. There will be fewer hunks as all the simple cases have
   already been handled:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")
    git diff src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace2.patch

9. Manually review/edit the resulting patch file to remove hunks for files
   which need to be dealt with manually, noting the file names and
   line numbers. Then restore files to as before applying clang-format
   and apply the patch:

    git checkout src
    patch -p1 < fix_namespace2.patch

10. Manually fix the files noted in the previous step. Stage files,
    review changes and commit.
2017-07-23 13:11:54 +02:00
Richard Heck
75bfed5507 Fix trailing whitespace in cpp files. 2017-07-03 13:53:14 -04:00
Enrico Forestieri
71f532db4b Do not output a \par inside a local language switch command 2017-06-04 03:14:14 +02:00
Enrico Forestieri
55bbd67cde Fix bugs #10650 and #9598 2017-06-03 17:26:05 +02:00
Enrico Forestieri
2a5bb7ab67 Fix bug #10685
Make sure to properly nest \begin{lang} and \end{lang} tags even
when no language package is selected. In this case, LyX assumes
that babel is being used, so the language names might be wrong
if the user arranged for using polyglossia in the preamble.
Nevertheless, we assure that the produced output is syntactically
correct, so that by adding proper preamble code a correct output
is still possible.
2017-05-30 17:57:37 +02:00
Uwe Stöhr
e575e7eebd Add support to cross out characters
- adds support for the command \xout of the LateX package ulem
- fileformat change
2017-04-05 00:01:19 +02:00
Juergen Spitzmueller
e83e64c447 Do not output bidi direction macros in passthru context
Part of #10434.
2016-10-21 10:40:19 +02:00
Enrico Forestieri
7e3494c293 Also track local language switches
Until now this was not done for essentially two reasons. The first
one is that local switches are used for short text insertions, so that
they are unlikely crossing environment boundaries. The second one
is that if we have to close a language at the end of an environment
we would be missing the right termination command. As this last
issue can be overcome by simply storing in the stack the current
nest level with a sign denoting the kind of switch, there is no
reason anymore not to track also local languages switches.
Also factor out some commonly used constructs in order to improve
readability.
2016-09-27 23:00:29 +02:00
Enrico Forestieri
4508a7f855 No need to clutter runparams... 2016-09-25 08:56:12 +02:00
Enrico Forestieri
8c14d9e041 Correctly track opened polyglossia languages
A language switch may also occur outside of output_latex.cpp, apparently.
2016-09-25 08:20:34 +02:00
Guillaume Munch
670efa8f64 Rationalise includes
Modifying TexRow.h or texstream.h no longer triggers the recompilation of the
complete source tree.
2016-07-04 02:42:17 +02:00
Günter Milde
faadac9f4a Remove wrong FIXME.
Code at this place calls "switchEncoding" which takes care of not-switching
if there is only one inputenc used in the document.
2015-11-21 23:08:54 +01:00
Günter Milde
0eb9477be7 Fix 480937a103708a651/lyxgit, second attempt.
Prevent encoding changes whenever the TeX engine is XeTeX or LuaTeX,
as XeTeX/LuaTeX use only one encoding per document:

* with useNonTeXFonts: "utf8plain",
* with XeTeX and TeX fonts: "ascii" (inputenc fails),
* with LuaTeX and TeX fonts: only one encoding accepted by luainputenc.

+1 no needless encoding switches
+1 runparams.encoding matches the correct encoding at any time
+1 less complicated code.

-1 there may still be problems with CJK (possibly impossible to
   solve for Xe/LuaTeX with TeX fonts).

For LuaTeX & TeX fonts, the complete document uses the encoding
of the global document language.

See also #9740.
2015-11-12 16:55:04 +01:00
Jean-Marc Lasgouttes
67907d2f12 Add missing break in switch
Coverity issue 102058
2015-09-12 22:29:25 +02:00
Uwe Stöhr
e35bb3126a support for all default colors of the package xcolor
fileformat change
2015-05-14 22:23:44 +02:00
Juergen Spitzmueller
9aa0fe91f6 ulem commands can be nested. 2014-04-21 11:51:58 -04:00
Juergen Spitzmueller
969f49c2c5 Fix unbalanced bracket problem with CJK
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).
2013-10-11 12:19:41 +02:00
Juergen Spitzmueller
6e69a61d00 Fix problem with unbalanced braces in XeTeX output (bug #8765) 2013-07-13 22:44:09 +02:00
Juergen Spitzmueller
c2cea31aea Properly nest ulem commands within other font changes
This reverts the wrong fix to #8424 which caused #8733 and fixes both problems properly
2013-07-13 22:43:39 +02:00
Juergen Spitzmueller
b65d5f2012 Handle secondary babel languages when main language is CJK 2013-05-20 11:07:47 +02:00
Richard Heck
1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00
Juergen Spitzmueller
0dd741e4da Load babel with English-only documents (bug 8423) 2012-12-23 11:34:38 +01:00
Georg Baum
f67cf6f4bb Add support for stmaryrd.sty (bug #8434)
The stmaryrd package adds support for lots of math symbols, using a font
designed to accompany the computer modern fonts. The changes in detail:

- Fix generate_symbols_list.py to work with stmaryrd.sty. It loooks like it
  was automatically translated from a perl version and never used.
- Generate the new symbols in lib/symbols using generate_symbols_list.py and
  add some manual adjustments
- Generate stmary10.ttf by a simple ttf export from stmary10.sfd with fontforge
- Add license info for stmary10.ttf
- Create a test file with all symbols from stmaryrd.sty. Actually it would be
  nice to have this for the other fonts as well.
- The mechanics: lyx2lyx, tex2lyx, font machinery etc.
2012-12-15 13:10:31 +01:00
Georg Baum
99ffb47cc3 Replace some hard coded numbers with names
And prevent a crash if LaTeX is accidentally output for a math font.
2012-12-09 13:05:19 +01:00
Uwe Stöhr
63295f9dc5 Font.cpp: fix bug #8424
We must group the content which should be changed in size wit a pair of braces because the LaTeX size commands are otherwise switches. We already do so for many case, but not for the case that a size command is inside another command. This patch adds now always a brace pair around the selected text which is the safest method.
2012-11-19 01:13:37 +01:00
Juergen Spitzmueller
1db9ff9b1a Add a way to surpass special English treatment in useBabel
Normally, we do not load babel when English is the only language. However, if we check if babel is used from Font::validate, we need to surpass this test, else no secondary language is registered if English is the main language.
2012-08-08 17:02:12 +02:00
Juergen Spitzmueller
4c2ae219e1 whitespace 2012-06-24 15:15:31 +02:00
Uwe Stöhr
47f7d44747 fix bug #8215
Font.cpp: CJK parts must not have a closing brace because they are within an environment
2012-06-24 14:42:23 +02:00
Juergen Spitzmueller
f42c9e50df fix bug #8211: \setotherlanguage not set for non-babel languages 2012-06-23 13:50:40 +02:00
Enrico Forestieri
1ef605f625 Introduce a wrapper class for odocstream to help ensuring that no
blank lines may be inadvertently output. This is achieved by using two
special iomanip-like variables (breakln and safebreakln) in the lyx::
namespace. When they are inserted in the stream, a newline is output
only if not already at the beginning of a line. The difference between
breakln and safebreakln is that, if needed, the former outputs '\n'
and the latter "%\n".
In future, the new class will also be used for counting the number of
newlines issued. Even if the infractrure for doing that is already in
place, the counting is essentially still done the old way.
There are still places in the code where the functionality of the
class could be used, most probably. ATM, it is used for InsetTabular,
InsetListings, InsetFloat, and InsetText.
The Comment and GreyedOut insets required a special treatment and a
new InsetLayout parameter (Display) has been introduced. The default
for Display is "true", meaning that the corresponding latex
environment is of "display" type, i.e., it stands on its own, whereas
"false" means that the contents appear inline with the text. The
latter is the case for both Comment and GreyedOut insets.
Mostly, the only visible effects on latex exports should be the
disappearing of some redundant % chars and the appearing/disappearing
of null {} latex groups after a comment or lyxgreyedout environments
(they are related to the presence or absence of a space immediately
after those environments), as well as the fact that math environments
are now started on their own lines.
As a last thing, only the latex code between \begin{document} and
\end{document} goes through the new class, the preamble being directly
output through odocstream, as usual.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37360 a592a061-630c-0410-9148-cb99ea01b6c8
2011-01-29 02:41:13 +00:00
Pavel Sanda
f5ad7f949e Kill leading blankspaces in new strings, its weird to encounter them in .po.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36531 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-27 03:04:53 +00:00
Jürgen Spitzmüller
0cd51c41a8 * Font.cpp: let's compare the lyx name here. Polyglossia name can be ambigouos (cf. "german" [german] vs. "german" [ngerman]).
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36439 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 10:18:46 +00:00
Jürgen Spitzmüller
bd3dcea835 * fix bug #7062. How stupid of me!
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36438 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-23 09:59:31 +00:00
Jürgen Spitzmüller
7cbeed2e40 * Introduce polyglossia support (bug 6576).
Please test this.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36433 a592a061-630c-0410-9148-cb99ea01b6c8
2010-11-22 12:10:16 +00:00
Stephan Witt
dec437fbac add cache of spell checker results to speed up native speller engine on macosx
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35362 a592a061-630c-0410-9148-cb99ea01b6c8
2010-09-14 05:24:04 +00:00
Uwe Stöhr
72292b98a6 support for formal math script
- fileformat change
- fixes #2340

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34941 a592a061-630c-0410-9148-cb99ea01b6c8
2010-07-17 15:51:11 +00:00
Vincent van Ravesteijn
1cf4251488 Fix LyX after r31772 (bug #6294).
The declaration should match the definition.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31806 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-30 14:57:21 +00:00
Jean-Marc Lasgouttes
0c1ff6d89e Move some functions that only required a FontInfo parameter from Font.*
to FontInfo.*

This allows tex2lyx to use the plain FontInfo object (via Layout), and to remove
several '#ifdef TEX2LYX' in the code

Reorder a bit the makefile in tex2lyx


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31772 a592a061-630c-0410-9148-cb99ea01b6c8
2009-10-27 16:16:15 +00:00
Enrico Forestieri
128c2b31d8 Avoid ugly macros in the preamble and protect underlined \cite commands
in a clever way.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29558 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-07 10:57:52 +00:00
Enrico Forestieri
cd62043a1b Solve problem with underlining citations.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29550 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-06 10:20:40 +00:00
Pavel Sanda
04c734f7a7 Move underline text from \underbar to \uline.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150815.htm


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29545 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 11:51:55 +00:00
Pavel Sanda
5416e09ebf Heh, wrong shift ;)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29544 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 09:26:40 +00:00
Pavel Sanda
6fde8f8067 Introduce double underline and wavy underline styles from ulem
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150803.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29542 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-05 09:26:28 +00:00
Pavel Sanda
381b86788d Introduce strikeout text style (strike-through)
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg150743.html

Somewhat related to http://www.lyx.org/trac/ticket/4248 .


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29523 a592a061-630c-0410-9148-cb99ea01b6c8
2009-05-03 22:45:14 +00:00
Abdelrazak Younes
29c40527e5 Put the foundations to support continuous spell checking.
* Font: new misspelled_ member.
* GuiPrefs/PrefSpellchecker: new check box to enable/disable continuous spellcheck.
* LyXRC: new spellcheck_continuously parameter.
* RowPainter: new paintMisspelledMark() method.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28973 a592a061-630c-0410-9148-cb99ea01b6c8
2009-03-29 19:57:30 +00:00
André Pönitz
20d5148dca move ColorSet to a header of its own to reduce #include dependencies
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28426 a592a061-630c-0410-9148-cb99ea01b6c8
2009-02-09 23:30:24 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
Abdelrazak Younes
63897c2959 Fix part of bug 4836
http://bugzilla.lyx.org/show_bug.cgi?id=4836

reset_language was not correctly handled.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24674 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-07 23:33:56 +00:00
Jean-Marc Lasgouttes
9b4a26a252 rename assert.h to lassert.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24559 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-30 08:26:40 +00:00
André Pönitz
7f461f4392 infrastructure for 'graceful asserts'
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24216 a592a061-630c-0410-9148-cb99ea01b6c8
2008-04-10 21:49:34 +00:00