diff options
Diffstat (limited to 'src/builtin.jq')
-rw-r--r-- | src/builtin.jq | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/builtin.jq b/src/builtin.jq index f9e5f1ea..bb7da93f 100644 --- a/src/builtin.jq +++ b/src/builtin.jq @@ -12,24 +12,24 @@ def add: reduce .[] as $x (null; . + $x); def del(f): delpaths([path(f)]); def _assign(paths; $value): reduce path(paths) as $p (.; setpath($p; $value)); def _modify(paths; update): - reduce path(paths) as $p (.; + reduce path(paths) as $p ([., []]; . as $dot | null | label $out - | ($dot | getpath($p)) as $v + | ($dot[0] | getpath($p)) as $v | ( ( $$$$v | update | (., break $out) as $v | $$$$dot - | setpath($p; $v) + | setpath([0] + $p; $v) ), ( $$$$dot - | delpaths([$p]) + | setpath([1]; .[1] + [$p]) ) ) - ); + ) | . as $dot | $dot[0] | delpaths($dot[1]); def map_values(f): .[] |= f; # recurse |