diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-11-15 07:07:29 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-11-17 07:57:40 +1000 |
commit | 07f782492c1bffa922115ebb92dfdb59662a6b4b (patch) | |
tree | 0c020eff1591f7486664a29d527ab77a81d9f69a | |
parent | 0c8cc0722c0a5eb13ea39aa6ef5c7a80ff16a1bd (diff) | |
download | jimtcl-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.c | 6 | ||||
-rw-r--r-- | tests/misc.test | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -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 |