#include "lyxlex_pimpl.h"
#include "support/lyxalgo.h"
#include "support/filetools.h"
+#include "support/lstrings.h"
#include "debug.h"
-#if 1 // to get NEW_INSETS
-#include "lyxparagraph.h"
-#endif
using std::sort;
using std::ostream;
// used by lower_bound, sort and sorted
inline
int operator()(keyword_item const & a, keyword_item const & b) const {
- return compare_no_case(a.tag, b.tag) < 0;
+ // we use the ascii version, because in turkish, 'i'
+ // is not the lowercase version of 'I', and thus
+ // turkish locale breaks parsing of tags.
+ return compare_ascii_no_case(a.tag, b.tag) < 0;
}
};
// } // end of anon namespace
}
-string const LyXLex::Pimpl::GetString() const
+string const LyXLex::Pimpl::getString() const
{
return string(buff);
}
void LyXLex::Pimpl::printError(string const & message) const
{
- string tmpmsg = subst(message, "$$Token", GetString());
+ string const tmpmsg = subst(message, "$$Token", getString());
lyxerr << "LyX: " << tmpmsg << " [around line " << lineno
<< " of file " << MakeDisplayPath(name) << ']' << endl;
}
{
// 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.
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)
pushTok.erase();
return true;
}
-#endif
}
if (!esc) {
unsigned char c = 0; // getc() returns an int
lyxerr[Debug::LYXLEX] << "Comment read: `" << c
<< buff << "'" << endl;
#else
- // unfortunately is ignore buggy (Lgb)
+ // unfortunately ignore is buggy (Lgb)
is.ignore(100, '\n');
#endif
++lineno;
}
-bool LyXLex::Pimpl::EatLine()
+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;
while(is && c != '\n' && i != (LEX_MAX_BUFF - 1)) {
is.get(cc);
c = cc;
- lyxerr[Debug::LYXLEX] << "LyXLex::EatLine read char: `"
- << c << "'" << endl;
+ //lyxerr[Debug::LYXLEX] << "LyXLex::EatLine read char: `"
+ // << c << "'" << endl;
if (c != '\r')
buff[i++] = c;
}
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)
pushTok.erase();
return true;
}
-#endif
}
status = 0;