aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2010-11-15 07:07:29 +1000
committerSteve Bennett <steveb@workware.net.au>2010-11-17 07:57:40 +1000
commit07f782492c1bffa922115ebb92dfdb59662a6b4b (patch)
tree0c020eff1591f7486664a29d527ab77a81d9f69a
parent0c8cc0722c0a5eb13ea39aa6ef5c7a80ff16a1bd (diff)
downloadjimtcl-07f782492c1bffa922115ebb92dfdb59662a6b4b.zip
jimtcl-07f782492c1bffa922115ebb92dfdb59662a6b4b.tar.gz
jimtcl-07f782492c1bffa922115ebb92dfdb59662a6b4b.tar.bz2
Bug fix: [split] string with leading null
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r--jim.c6
-rw-r--r--tests/misc.test4
2 files changed, 8 insertions, 2 deletions
diff --git a/jim.c b/jim.c
index 7583ecd..8bf708b 100644
--- a/jim.c
+++ b/jim.c
@@ -12915,15 +12915,17 @@ static int Jim_SplitCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *ar
int splitLen, strLen;
Jim_Obj *resObjPtr;
int c;
+ int len;
if (argc != 2 && argc != 3) {
Jim_WrongNumArgs(interp, 1, argv, "string ?splitChars?");
return JIM_ERR;
}
- str = Jim_GetString(argv[1], NULL);
- if (!*str)
+ str = Jim_GetString(argv[1], &len);
+ if (len == 0) {
return JIM_OK;
+ }
strLen = Jim_Utf8Length(interp, argv[1]);
/* Init */
diff --git a/tests/misc.test b/tests/misc.test
index bca04ee..e4b086a 100644
--- a/tests/misc.test
+++ b/tests/misc.test
@@ -333,4 +333,8 @@ test stringreverse-1.1 "Containing nulls" {
string reverse abc\0def
} "fed\0cba"
+test split-1.1 "Split with leading null" {
+ split "\0abc\0def\0" \0
+} {{} abc def {}}
+
testreport