likle / cwalk

Path library for C/C++. Cross-Platform for Linux, FreeBSD, Windows and MacOS. Supports UNIX and Windows path styles on those platforms.
https://likle.github.io/cwalk/
MIT License
250 stars 39 forks source link

make cwk_path_change_extension more like std::filesystem::path #31

Open ilobilo opened 2 years ago

ilobilo commented 2 years ago

std::filesystem::path::replace_extension vs cwalk_path_change_extension

"/foo/bar.jpg" + ".png"
expected: "/foo/bar.png", result: "/foo/bar.png"
Result: Success!

"/foo/bar.jpg" + "png"
expected: "/foo/bar.png", result: "/foo/bar.png"
Result: Success!

"/foo/bar.jpg" + "."
expected: "/foo/bar.", result: "/foo/bar."
Result: Success!

"/foo/bar.jpg" + ""
expected: "/foo/bar", result: "/foo/bar."
Result: Error!

"/foo/bar." + "png"
expected: "/foo/bar.png", result: "/foo/bar.png"
Result: Success!

"/foo/bar" + ".png"
expected: "/foo/bar.png", result: "/foo/bar.png"
Result: Success!

"/foo/bar" + "png"
expected: "/foo/bar.png", result: "/foo/bar.png"
Result: Success!

"/foo/bar" + "."
expected: "/foo/bar.", result: "/foo/bar."
Result: Success!

"/foo/bar" + ""
expected: "/foo/bar", result: "/foo/bar."
Result: Error!

"/foo/." + ".png"
expected: "/foo/..png", result: "/foo/.png"
Result: Error!

"/foo/." + "png"
expected: "/foo/..png", result: "/foo/.png"
Result: Error!

"/foo/." + "."
expected: "/foo/..", result: "/foo/."
Result: Error!

"/foo/." + ""
expected: "/foo/.", result: "/foo/."
Result: Success!

"/foo/" + ".png"
expected: "/foo/.png", result: "/foo.png/"
Result: Error!

"/foo/" + "png"
expected: "/foo/.png", result: "/foo.png/"
Result: Error!