/*
-Minetest-c55
-Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
+Minetest
+Copyright (C) 2013 celeron55, Perttu Ahola <celeron55@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
#include <string>
-std::string trim(const std::string &str);
-
class Strfnd{
std::string tek;
unsigned int p;
//std::cout<<"palautus=\""<<palautus<<"\""<<std::endl;
return palautus;
}
+
+ // Returns substr of tek up to the next occurence of plop that isn't escaped with '\'
+ std::string next_esc(std::string plop) {
+ size_t n, realp;
+
+ if (p >= tek.size())
+ return "";
+
+ realp = p;
+ do {
+ n = tek.find(plop, p);
+ if (n == std::string::npos || plop == "")
+ n = tek.length();
+ p = n + plop.length();
+ } while (n > 0 && tek[n - 1] == '\\');
+
+ return tek.substr(realp, n - realp);
+ }
+
void skip_over(std::string chars){
while(p < tek.size()){
bool is = false;
//std::cout<<"palautus=\""<<palautus<<"\""<<std::endl;
return palautus;
}
+
+ std::wstring next_esc(std::wstring plop) {
+ size_t n, realp;
+
+ if (p >= tek.size())
+ return L"";
+
+ realp = p;
+ do {
+ n = tek.find(plop, p);
+ if (n == std::wstring::npos || plop == L"")
+ n = tek.length();
+ p = n + plop.length();
+ } while (n > 0 && tek[n - 1] == '\\');
+
+ return tek.substr(realp, n - realp);
+ }
+
bool atend(){
if(p>=tek.size()) return true;
return false;
}
};
-inline std::string trim(const std::string &s)
-{
- std::string str = s;
- while(
- str.length()>0
- &&
- (
- str.substr(0, 1)==" " ||
- str.substr(0, 1)=="\t" ||
- str.substr(0, 1)=="\r" ||
- str.substr(0, 1)=="\n" ||
- str.substr(str.length()-1, 1)==" " ||
- str.substr(str.length()-1, 1)=="\t" ||
- str.substr(str.length()-1, 1)=="\r" ||
- str.substr(str.length()-1, 1)=="\n"
- )
- )
- {
- if (str.substr(0, 1)==" ")
- str = str.substr(1,str.length()-1);
- else if (str.substr(0, 1)=="\t")
- str = str.substr(1,str.length()-1);
- else if (str.substr(0, 1)=="\r")
- str = str.substr(1,str.length()-1);
- else if (str.substr(0, 1)=="\n")
- str = str.substr(1,str.length()-1);
- else if (str.substr(str.length()-1, 1)==" ")
- str = str.substr(0,str.length()-1);
- else if (str.substr(str.length()-1, 1)=="\t")
- str = str.substr(0,str.length()-1);
- else if (str.substr(str.length()-1, 1)=="\r")
- str = str.substr(0,str.length()-1);
- else if (str.substr(str.length()-1, 1)=="\n")
- str = str.substr(0,str.length()-1);
- }
- return str;
-}
-
#endif