From fa5519d4f06b6d7c6e560d7a60f13bd9a26d9f5b Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Wed, 21 Aug 2013 12:20:20 +0200 Subject: [PATCH] Move tex2lyx dummy implementations in their own file. Also try to document their use. --- src/tex2lyx/Makefile.am | 1 + src/tex2lyx/dummy_impl.cpp | 125 +++++++++++++++++++++++++++++++++++++ src/tex2lyx/tex2lyx.cpp | 66 -------------------- 3 files changed, 126 insertions(+), 66 deletions(-) create mode 100644 src/tex2lyx/dummy_impl.cpp diff --git a/src/tex2lyx/Makefile.am b/src/tex2lyx/Makefile.am index 2cbe658082..5b933a8d2f 100644 --- a/src/tex2lyx/Makefile.am +++ b/src/tex2lyx/Makefile.am @@ -97,6 +97,7 @@ tex2lyx_SOURCES = \ boost.cpp \ Context.cpp \ Context.h \ + dummy_impl.cpp \ math.cpp \ Parser.cpp \ Parser.h \ diff --git a/src/tex2lyx/dummy_impl.cpp b/src/tex2lyx/dummy_impl.cpp new file mode 100644 index 0000000000..b20db6d9d6 --- /dev/null +++ b/src/tex2lyx/dummy_impl.cpp @@ -0,0 +1,125 @@ +/** + * \file dummy_impl.cpp + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ + +/** + * This file contains dummy implementation of some methods that are + * needed byclasses used by tex2lyx. This allows to reduce the number + * of classes we have to link against. +*/ + +// {[( + +#include + +#include "Format.h" +#include "LaTeXFeatures.h" +#include "LyXRC.h" + +#include "support/Messages.h" + +#include + +using namespace std; + +namespace lyx { + +// +// Dummy Alert support (needed by TextClass) +// + + +namespace frontend { +namespace Alert { + void warning(docstring const & title, docstring const & message, + bool const &) + { + cerr << to_utf8(title) << "\n" << to_utf8(message) << endl; + } +} +} + + +// +// Dummy TexRow support (needed by docstream) +// + + +void TexRow::newline() +{} + + +void TexRow::newlines(int) +{} + + +// +// Dummy LyXRC support +// + +LyXRC lyxrc; + +/** Note that some variables are not initialized correctly. Hopefully + * they are not used in our code (currently valgrind does not complain). + * Linking against the full LyXRC.cpp forces us to pull too much + * stuff. + */ +LyXRC::LyXRC() +{} + + +// +// Dummy translation support (needed at many places) +// + + +Messages messages_; +Messages const & getMessages(string const &) +{ + return messages_; +} + + +Messages const & getGuiMessages() +{ + return messages_; +} + + +// +// Dummy formats support (needed by Lexer) +// + +Formats formats; + +bool Formats::isZippedFile(support::FileName const&) const +{ + return false; +} + + +// +// Dummy features support (needed by ModuleList) +// + + +bool LaTeXFeatures::isAvailable(string const &) +{ + return true; +} + + +// +// Keep the linker happy on Windows +// + +void lyx_exit(int) +{} + +} diff --git a/src/tex2lyx/tex2lyx.cpp b/src/tex2lyx/tex2lyx.cpp index f750f424c2..8772d6bea7 100644 --- a/src/tex2lyx/tex2lyx.cpp +++ b/src/tex2lyx/tex2lyx.cpp @@ -17,8 +17,6 @@ #include "Context.h" #include "Encoding.h" -#include "Format.h" -#include "LaTeXFeatures.h" #include "Layout.h" #include "LayoutFile.h" #include "LayoutModuleList.h" @@ -31,7 +29,6 @@ #include "support/filetools.h" #include "support/lassert.h" #include "support/lstrings.h" -#include "support/Messages.h" #include "support/os.h" #include "support/Package.h" #include "support/Systemcall.h" @@ -50,69 +47,6 @@ using namespace lyx::support::os; namespace lyx { -namespace frontend { -namespace Alert { - void warning(docstring const & title, docstring const & message, - bool const &) - { - cerr << to_utf8(title) << "\n" << to_utf8(message) << endl; - } -} -} - - -// Dummy texrow support -void TexRow::newline() -{} - - -void TexRow::newlines(int) -{} - - -// Dummy LyXRC support -class LyXRC { -public: - string icon_set; -} lyxrc; - - -// Dummy translation support -Messages messages_; -Messages const & getMessages(string const &) -{ - return messages_; -} - - -Messages const & getGuiMessages() -{ - return messages_; -} - - -// tex2lyx does not read lyxrc and therefore can't really check for -// zipped formats (Used by lexer) - -Formats formats; - -bool Formats::isZippedFile(FileName const&) const -{ - return false; -} - - -bool LaTeXFeatures::isAvailable(string const &) -{ - return true; -} - - -// Keep the linker happy on Windows -void lyx_exit(int) -{} - - string const trimSpaceAndEol(string const & a) { return trim(a, " \t\n\r");