X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fstrfnd.h;h=3142cc10d180d6a9a919adb31ea8bbee0770764c;hb=dec8c43de3afdbd2e257a031f5e053e7f1e74aa0;hp=dcd65f6cdd1c258ad64216f167d77dd579889909;hpb=497ff1ecd64c8908f988e15ca879824f2781e3fd;p=oweals%2Fminetest.git diff --git a/src/strfnd.h b/src/strfnd.h index dcd65f6cd..3142cc10d 100644 --- a/src/strfnd.h +++ b/src/strfnd.h @@ -1,6 +1,6 @@ /* Minetest -Copyright (C) 2010 celeron55, Perttu Ahola +Copyright (C) 2013 celeron55, Perttu Ahola 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 @@ -22,8 +22,6 @@ with this program; if not, write to the Free Software Foundation, Inc., #include -std::string trim(const std::string &str); - class Strfnd{ std::string tek; unsigned int p; @@ -65,6 +63,25 @@ public: //std::cout<<"palautus=\""<= 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; @@ -128,6 +145,24 @@ public: //std::cout<<"palautus=\""<= 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; @@ -137,43 +172,5 @@ public: } }; -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