diff --git a/amsstring4.code-workspace b/amsstring4.code-workspace index 0adcda1..97796d0 100644 --- a/amsstring4.code-workspace +++ b/amsstring4.code-workspace @@ -3,8 +3,8 @@ { "path": "." }, - { - "path": "../../sourceprojs23/amsstring3" - } + // { + // "path": "../../sourceprojs23/amsstring3" + // } ] } \ No newline at end of file diff --git a/build_linux64/libamsstring4.linux64.a b/build_linux64/libamsstring4.linux64.a index 025bd53..16c3b01 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 0916c57..2dc679c 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 089b9fb..3b9cbbe 100644 Binary files a/build_linux64/objstore/amsstring4_convenience1.o and b/build_linux64/objstore/amsstring4_convenience1.o differ diff --git a/build_linux64/tests b/build_linux64/tests index 2574ac9..9bf1ec9 100644 Binary files a/build_linux64/tests and b/build_linux64/tests differ diff --git a/include/amsstring4/amsstring4.hpp b/include/amsstring4/amsstring4.hpp index cd0d9c8..a1fdb74 100644 --- a/include/amsstring4/amsstring4.hpp +++ b/include/amsstring4/amsstring4.hpp @@ -181,16 +181,16 @@ amsstring stripwhitespace(const amsstring &s); amsstring stripallwhitespace(const amsstring &s); //splits a string into contiguous sets of alphanumeric characters ignoring non-alphanums -amsarray splitalphanum(const amsstring &s); // +amsarray splitalphanum(const amsstring &s); //splits into two guaranteed pieces //if an extension separator . is not encountered, the first piece will contain the entire string, the second "" -amsarray splitext(const amsstring &s); +amsarray path_splitext(const amsstring &s); //splits into two guaranteed pieces //if a path separator is not encountered, the second piece will contain the entire string, and the first "" -amsarray splitpath(const amsstring &s); +amsarray path_split(const amsstring &s); //selects between the outermost set of delimitleft and delimitright chars amsstring select_between(const amsstring &s, const ams_chartype delimitleft, const ams_chartype delimitright); diff --git a/src.o b/src.o new file mode 100644 index 0000000..35dff53 Binary files /dev/null and b/src.o differ diff --git a/src/amsstring4/amsstring4_class.cpp b/src/amsstring4/amsstring4_class.cpp index 1cb2ef8..d0772ef 100644 --- a/src/amsstring4/amsstring4_class.cpp +++ b/src/amsstring4/amsstring4_class.cpp @@ -52,7 +52,7 @@ namespace ams { ams_chartype cl = ams::tolower(c); bool ret = 0; - ret = ret || ( ((int)cl>=48) && ((int)cl<=57) ) || cl=='.' || cl=='e' || '-'; + ret = ret || ( ((int)cl>=48) && ((int)cl<=57)) || cl=='.' || cl=='e' || cl=='-'; return ret; } diff --git a/src/amsstring4/amsstring4_convenience1.cpp b/src/amsstring4/amsstring4_convenience1.cpp index 05ca3ab..a8f706c 100644 --- a/src/amsstring4/amsstring4_convenience1.cpp +++ b/src/amsstring4/amsstring4_convenience1.cpp @@ -354,7 +354,7 @@ amsstring stripallwhitespace(const amsstring &s) //splits into two guaranteed pieces //if an extension separator . is not encountered, the first piece will contain the entire string, the second "" -amsarray splitext(const amsstring &s) +amsarray path_splitext(const amsstring &s) { amsarray ret; ret.resize(2); @@ -378,7 +378,7 @@ amsarray splitext(const amsstring &s) //splits into two guaranteed pieces //if a path separator is not encountered, the second piece will contain the entire string, and the first "" -amsarray splitpath(const amsstring &s) +amsarray path_split(const amsstring &s) { amsarray ret; ret.resize(2); @@ -509,7 +509,7 @@ amsarray splitalphanum(const amsstring &s) I0 = I; } - if(mode==1 && (!amsstring_ischarnumeric(c) || I==length-1) + if(mode==1 && (!amsstring_ischarnumeric(c) || I>=(s.length-1))) { I1 = I; s2 = s.substring(I0,I1); @@ -641,50 +641,76 @@ void amsstring4_test_convenience1a() printf("'%s' split: '%s' '%s'\n",s1.cstring,splitfirst(s1,"::")[0].cstring, splitfirst(s1,"::")[1].cstring); s1 = "somefilewithoutextension"; - sa = splitext(s1); - printf("splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_splitext(s1); + printf("path_splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "somefilewithalittleext."; - sa = splitext(s1); - printf("splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_splitext(s1); + printf("path_splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "somefilewith.anextension"; - sa = splitext(s1); - printf("splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_splitext(s1); + printf("path_splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "somefilewith.many.extensions"; - sa = splitext(s1); - printf("splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_splitext(s1); + printf("path_splitext('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "somepathnoseparators"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "\\someotherpath"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "/someotherpath"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "C:\\someotherpath"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "C:\\some\\other\\path"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); s1 = "/some/other/path"; - sa = splitpath(s1); - printf("splitpath('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); + sa = path_split(s1); + printf("path_split('%s') = ['%s','%s']\n",s1.cstring,sa[0].cstring,sa[1].cstring); } void amsstring4_test_convenience1b() { + amsstring s1,s2; + amsarray sa; + int I; + s1 = "1e2e3,45, 6.7E8,-9.13E24 "; + sa = splitalphanum(s1); + for(I=0;I