diff options
author | Steve Bennett <steveb@workware.net.au> | 2010-09-28 07:34:52 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2010-10-15 11:02:55 +1000 |
commit | 2f5f6f266e2393a8351790c61de57b7d42f710ab (patch) | |
tree | 27c0111f7673a1ab1598a0fcd82030b8bcbdb96d /jim-array.c | |
parent | 73b6640e994c4c954d54894a16acd5a151899c3a (diff) | |
download | jimtcl-2f5f6f266e2393a8351790c61de57b7d42f710ab.zip jimtcl-2f5f6f266e2393a8351790c61de57b7d42f710ab.tar.gz jimtcl-2f5f6f266e2393a8351790c61de57b7d42f710ab.tar.bz2 |
Minor cleanups and fixes
array get for odd length list now returns an error
comment fixes and small code rearrangement
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-array.c')
-rw-r--r-- | jim-array.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/jim-array.c b/jim-array.c index d077cc8..26febb3 100644 --- a/jim-array.c +++ b/jim-array.c @@ -81,11 +81,12 @@ static int array_cmd_get(Jim_Interp *interp, int argc, Jim_Obj *const *argv) all = 1; } - /* If it is a dictionary or list, nothing else to do */ - if (all && (Jim_IsDict(objPtr) || Jim_IsList(objPtr))) { - /* XXX If it is a odd-length list no error will be returned */ - Jim_SetResult(interp, objPtr); - return JIM_OK; + /* If it is a dictionary or list with an even number of elements, nothing else to do */ + if (all) { + if (Jim_IsDict(objPtr) || (Jim_IsList(objPtr) && Jim_ListLength(interp, objPtr) % 2 == 0)) { + Jim_SetResult(interp, objPtr); + return JIM_OK; + } } if (Jim_DictKeysVector(interp, objPtr, NULL, 0, &dictObj, JIM_ERRMSG) != JIM_OK) { |