projects
/
project
/
libubox.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug of GC in fd and timeout objects for lua binding.
[project/libubox.git]
/
sh
/
jshn.sh
diff --git
a/sh/jshn.sh
b/sh/jshn.sh
index
70b7976
..
06ba965
100644
(file)
--- a/
sh/jshn.sh
+++ b/
sh/jshn.sh
@@
-103,7
+103,7
@@
json_set_namespace() {
}
json_cleanup() {
}
json_cleanup() {
- local unset
+ local unset
tmp
_json_get_var unset JSON_UNSET
for tmp in $unset JSON_VAR; do
_json_get_var unset JSON_UNSET
for tmp in $unset JSON_VAR; do
@@
-206,6
+206,7
@@
json_get_keys() {
json_get_values() {
local _v_dest="$1"
local _v_keys _v_val _select=
json_get_values() {
local _v_dest="$1"
local _v_keys _v_val _select=
+ local _json_no_warning=1
unset "$_v_dest"
[ -n "$2" ] && {
unset "$_v_dest"
[ -n "$2" ] && {
@@
-231,13
+232,17
@@
json_get_var() {
_json_get_var __cur JSON_CUR
local __var="${JSON_PREFIX}${__cur}_${2//[^a-zA-Z0-9_]/_}"
_json_get_var __cur JSON_CUR
local __var="${JSON_PREFIX}${__cur}_${2//[^a-zA-Z0-9_]/_}"
- eval "export -- \"$__dest=\${$__var
}\"; [ -n \"\${$__var
+x}\" ]"
+ eval "export -- \"$__dest=\${$__var
:-$3}\"; [ -n \"\${$__var+x}\${3
+x}\" ]"
}
json_get_vars() {
while [ "$#" -gt 0 ]; do
local _var="$1"; shift
}
json_get_vars() {
while [ "$#" -gt 0 ]; do
local _var="$1"; shift
- json_get_var "$_var" "$_var"
+ if [ "$_var" != "${_var#*:}" ]; then
+ json_get_var "${_var%%:*}" "${_var%%:*}" "${_var#*:}"
+ else
+ json_get_var "$_var" "$_var"
+ fi
done
}
done
}
@@
-263,7
+268,8
@@
json_select() {
_json_set_var JSON_CUR "$cur"
;;
*)
_json_set_var JSON_CUR "$cur"
;;
*)
- echo "WARNING: Variable '$target' does not exist or is not an array/object"
+ [ -n "$_json_no_warning" ] || \
+ echo "WARNING: Variable '$target' does not exist or is not an array/object"
return 1
;;
esac
return 1
;;
esac