X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxlex_pimpl.C;h=b0587400dfccc9e78bf1c88752cf22c41d0d0001;hb=53c5edb99e5566fd7c0a1192a697b7b7796919d8;hp=94a268f1713fbe0868ecaac0c4e02f00b9b2d29b;hpb=1a3ed565d95e3d500b26f0e929f4df3d56813421;p=lyx.git diff --git a/src/lyxlex_pimpl.C b/src/lyxlex_pimpl.C index 94a268f171..b0587400df 100644 --- a/src/lyxlex_pimpl.C +++ b/src/lyxlex_pimpl.C @@ -9,6 +9,9 @@ #include "support/lyxalgo.h" #include "support/filetools.h" #include "debug.h" +#if 1 // to get NEW_INSETS +#include "lyxparagraph.h" +#endif using std::sort; using std::ostream; @@ -65,7 +68,7 @@ void LyXLex::Pimpl::verifyTable() { // Check if the table is sorted and if not, sort it. if (table - && !sorted(table, table + no_items, compare_tags())) { + && !lyx::sorted(table, table + no_items, compare_tags())) { lyxerr << "The table passed to LyXLex is not sorted!\n" << "Tell the developers to fix it!" << endl; // We sort it anyway to avoid problems. @@ -139,10 +142,28 @@ void LyXLex::Pimpl::setCommentChar(char c) bool LyXLex::Pimpl::next(bool esc /* = false */) { if (!pushTok.empty()) { +#ifndef NEW_INSETS pushTok.copy(buff, string::npos); buff[pushTok.length()] = '\0'; pushTok.erase(); return true; +#else + // There can have been a whole line pushed so + // we extract the first word and leaves the rest + // in pushTok. (Lgb) + if (pushTok.find(' ') != string::npos) { + string tmp; + pushTok = split(pushTok, tmp, ' '); + tmp.copy(buff, string::npos); + buff[tmp.length()] = '\0'; + return true; + } else { + pushTok.copy(buff, string::npos); + buff[pushTok.length()] = '\0'; + pushTok.erase(); + return true; + } +#endif } if (!esc) { unsigned char c = 0; // getc() returns an int @@ -380,6 +401,15 @@ int LyXLex::Pimpl::lex() bool LyXLex::Pimpl::EatLine() { +#ifndef NEW_INSETS + // This is not handling the pushed token + if (!pushTok.empty()) { + pushTok.copy(buff, string::npos); + buff[pushTok.length()] = '\0'; + pushTok.erase(); + return true; + } +#endif int i = 0; unsigned char c = '\0'; char cc = 0; @@ -412,10 +442,28 @@ bool LyXLex::Pimpl::EatLine() bool LyXLex::Pimpl::nextToken() { if (!pushTok.empty()) { +#ifndef NEW_INSETS pushTok.copy(buff, string::npos); buff[pushTok.length()] = '\0'; pushTok.erase(); return true; +#else + // There can have been a whole line pushed so + // we extract the first word and leaves the rest + // in pushTok. (Lgb) + if (pushTok.find(' ') != string::npos) { + string tmp; + pushTok = split(pushTok, tmp, ' '); + tmp.copy(buff, string::npos); + buff[tmp.length()] = '\0'; + return true; + } else { + pushTok.copy(buff, string::npos); + buff[pushTok.length()] = '\0'; + pushTok.erase(); + return true; + } +#endif } status = 0;