diff --git a/build_linux64/libamsstring4.linux64.a b/build_linux64/libamsstring4.linux64.a index 5c9e1d8..afea311 100644 Binary files a/build_linux64/libamsstring4.linux64.a and b/build_linux64/libamsstring4.linux64.a differ diff --git a/build_linux64/objstore/amsstring4_class.o b/build_linux64/objstore/amsstring4_class.o index 5b485c7..f8c3ab4 100644 Binary files a/build_linux64/objstore/amsstring4_class.o and b/build_linux64/objstore/amsstring4_class.o differ diff --git a/build_linux64/objstore/amsstring4_convenience1.o b/build_linux64/objstore/amsstring4_convenience1.o index 838ff70..cc885bb 100644 Binary files a/build_linux64/objstore/amsstring4_convenience1.o and b/build_linux64/objstore/amsstring4_convenience1.o differ diff --git a/src/amsstring4/amsstring4_class.cpp b/src/amsstring4/amsstring4_class.cpp index c38044b..f8fa68a 100644 --- a/src/amsstring4/amsstring4_class.cpp +++ b/src/amsstring4/amsstring4_class.cpp @@ -721,7 +721,7 @@ namespace ams bool beq; bool b1,b2; - I = 0; + I = indstart; J = 0; while(I=0;I--) + { + b1 = casesens&&(cstring[I]==c); + b2 = (!casesens)&&(ams::tolower(cstring[I])==ams::tolower(c)); + if(b1 || b2) + { + ret = I; + break; + } + } + + return ret; + } + void amsstring::tolower() { std::locale loc; diff --git a/src/amsstring4/amsstring4_convenience1.cpp b/src/amsstring4/amsstring4_convenience1.cpp index 632a82a..e33d584 100644 --- a/src/amsstring4/amsstring4_convenience1.cpp +++ b/src/amsstring4/amsstring4_convenience1.cpp @@ -285,6 +285,40 @@ amsstring stripwhitespace(const amsstring &s) { amsstring ret; + int I; + int ind1; + int ind2; + ams_chartype c; + + ind1 = 0; + ind2 = 0; + for(I=0;I=0;I--) + { + c = s.cstring[I]; + if(!(isspace(c)||c==' '||c=='\t')) + { + ind2 = I+1; + break; + } + } + + ind1 = min(ind1,s.size()); + ind1 = max(ind1,0); + ind2 = min(ind2,s.size()); + ind2 = max(ind2,0); + ind2 = max(ind1,ind2); + + ret = s.substring(ind1,ind2); + return ret; } @@ -292,6 +326,24 @@ amsstring stripallwhitespace(const amsstring &s) { amsstring ret; + ret.resize(s.length); + //int count; + int I; + int J; + J = 0; + ams_chartype c; + for(I=0;I splitext(const amsstring &s) { amsarray ret; + //todo + return ret; } @@ -310,6 +364,8 @@ amsarray splitpath(const amsstring &s) { amsarray ret; + //todo + return ret; } @@ -318,6 +374,8 @@ amsstring select_between(const amsstring &s, const ams_chartype delimitleft, con { amsstring ret; + //todo + return ret; } @@ -325,6 +383,13 @@ amsstring concatenate(const amsarray &slist) { amsstring ret; + int I; + ret.resize(0); + for(I=0;I