]> git.lyx.org Git - lyx.git/blobdiff - src/tex2lyx/tex2lyx.cpp
forgot that
[lyx.git] / src / tex2lyx / tex2lyx.cpp
index e29c35002394dd1cfa49d1a6e61e41acd5d0821f..4c1366d85bee49791371f7a0a0f02db8e004f983 100644 (file)
@@ -3,7 +3,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
 #include <config.h>
 
 #include "tex2lyx.h"
-#include "Context.h"
 
-#include "debug.h"
+#include "Context.h"
 #include "TextClass.h"
 #include "Layout.h"
 
+#include "support/lassert.h"
 #include "support/convert.h"
+#include "support/debug.h"
+#include "support/ExceptionMessage.h"
 #include "support/filetools.h"
 #include "support/lstrings.h"
-#include "support/lyxlib.h"
-#include "support/ExceptionMessage.h"
 #include "support/os.h"
 #include "support/Package.h"
-#include "support/unicode.h"
-
-#include <boost/function.hpp>
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/path.hpp>
 
+#include <cstdlib>
 #include <fstream>
 #include <iostream>
 #include <string>
 #include <vector>
 #include <map>
 
+using namespace std;
+using namespace lyx::support;
+using namespace lyx::support::os;
 
 namespace lyx {
 
-using std::endl;
-using std::cout;
-using std::cerr;
-using std::getline;
-
-using std::ifstream;
-using std::ofstream;
-using std::istringstream;
-using std::ostringstream;
-using std::stringstream;
-using std::string;
-using std::vector;
-using std::map;
-
-using support::changeExtension;
-using support::FileName;
-using support::isStrUnsignedInt;
-using support::ltrim;
-using support::makeAbsPath;
-using support::onlyPath;
-using support::os::internal_path;
-using support::rtrim;
-
-namespace fs = boost::filesystem;
-
-LayoutPtr captionlayout;
-
-// Hacks to allow the thing to link in the lyxlayout stuff
-LyXErr lyxerr(std::cerr.rdbuf());
-
-
 string const trim(string const & a, char const * p)
 {
-       // BOOST_ASSERT(p);
+       // LASSERT(p, /**/);
 
        if (a.empty() || !*p)
                return a;
 
-       string::size_type r = a.find_last_not_of(p);
-       string::size_type l = a.find_first_not_of(p);
+       size_t r = a.find_last_not_of(p);
+       size_t l = a.find_first_not_of(p);
 
        // Is this the minimal test? (lgb)
        if (r == string::npos && l == string::npos)
@@ -92,7 +60,7 @@ string const trim(string const & a, char const * p)
 
 
 void split(string const & s, vector<string> & result, char delim)
-:{
+{
        //cerr << "split 1: '" << s << "'\n";
        istringstream is(s);
        string t;
@@ -105,7 +73,7 @@ void split(string const & s, vector<string> & result, char delim)
 string join(vector<string> const & input, char const * delim)
 {
        ostringstream os;
-       for (size_t i = 0; i < input.size(); ++i) {
+       for (size_t i = 0; i != input.size(); ++i) {
                if (i)
                        os << delim;
                os << input[i];
@@ -176,7 +144,8 @@ namespace {
 /*!
  * Read one command definition from the syntax file
  */
-void read_command(Parser & p, string command, CommandMap & commands) {
+void read_command(Parser & p, string command, CommandMap & commands)
+{
        if (p.next_token().asInput() == "*") {
                p.get_token();
                command += '*';
@@ -272,7 +241,7 @@ bool overwrite_files = false;
 
 
 /// return the number of arguments consumed
-typedef boost::function<int(string const &, string const &)> cmd_helper;
+typedef int (*cmd_helper)(string const &, string const &);
 
 
 int parse_help(string const &, string const &)
@@ -368,7 +337,7 @@ void easyParse(int & argc, char * argv[])
        cmdmap["-userdir"] = parse_userdir;
 
        for (int i = 1; i < argc; ++i) {
-               std::map<string, cmd_helper>::const_iterator it
+               map<string, cmd_helper>::const_iterator it
                        = cmdmap.find(argv[i]);
 
                // don't complain if not found - may be parsed later
@@ -420,14 +389,14 @@ namespace {
  *  You must ensure that \p parentFilePath is properly set before calling
  *  this function!
  */
-void tex2lyx(std::istream & is, std::ostream & os)
+void tex2lyx(istream & is, ostream & os)
 {
        Parser p(is);
        //p.dump();
 
        stringstream ss;
-       TextClass textclass = parse_preamble(p, ss, documentclass);
-       captionlayout = LayoutPtr(Layout::forCaption());
+       TeX2LyXDocClass textclass;
+       parse_preamble(p, ss, documentclass, textclass);
 
        active_environments.push_back("document");
        Context context(true, textclass);
@@ -451,7 +420,7 @@ void tex2lyx(std::istream & is, std::ostream & os)
 
 
 /// convert TeX from \p infilename to LyX and write it to \p os
-bool tex2lyx(FileName const & infilename, std::ostream & os)
+bool tex2lyx(FileName const & infilename, ostream & os)
 {
        ifstream is(infilename.toFilesystemEncoding().c_str());
        if (!is.good()) {
@@ -502,7 +471,10 @@ bool tex2lyx(string const & infilename, FileName const & outfilename)
 int main(int argc, char * argv[])
 {
        using namespace lyx;
-       fs::path::default_name_check(fs::no_check);
+
+       //setlocale(LC_CTYPE, "");
+
+       lyxerr.setStream(cerr);
 
        easyParse(argc, argv);
 
@@ -512,23 +484,24 @@ int main(int argc, char * argv[])
                return 2;
        }
 
-       lyx::support::os::init(argc, argv);
+       os::init(argc, argv);
 
-       try { support::init_package(internal_path(to_utf8(from_local8bit(argv[0]))),
+       try {
+               init_package(internal_path(to_utf8(from_local8bit(argv[0]))),
                cl_system_support, cl_user_support,
-               support::top_build_dir_is_two_levels_up);
-       } catch (support::ExceptionMessage const & message) {
+               top_build_dir_is_two_levels_up);
+       } catch (ExceptionMessage const & message) {
                cerr << to_utf8(message.title_) << ":\n"
                        << to_utf8(message.details_) << endl;
-               if (message.type_ == support::ErrorException)
+               if (message.type_ == ErrorException)
                        exit(1);
        }
-       
+
        // Now every known option is parsed. Look for input and output
        // file name (the latter is optional).
        string infilename = internal_path(to_utf8(from_local8bit(argv[1])));
        infilename = makeAbsPath(infilename).absFilename();
-       
+
        string outfilename;
        if (argc > 2) {
                outfilename = internal_path(to_utf8(from_local8bit(argv[2])));
@@ -537,7 +510,7 @@ int main(int argc, char * argv[])
        } else
                outfilename = changeExtension(infilename, ".lyx");
 
-       FileName const system_syntaxfile = lyx::support::libFileSearch("", "syntax.default");
+       FileName const system_syntaxfile = libFileSearch("", "syntax.default");
        if (system_syntaxfile.empty()) {
                cerr << "Error: Could not find syntax file \"syntax.default\"." << endl;
                exit(1);