From 2f5f6f266e2393a8351790c61de57b7d42f710ab Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Tue, 28 Sep 2010 07:34:52 +1000 Subject: 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 --- jim-array.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'jim-array.c') 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) { -- cgit v1.1