Hi,
With Augeas's path expressions, is it possible to distinguish a node whose
value is an empty string from one that has no value? At the moment, nodes
with no value appear to be treated the same as those with an empty string:
augtool> set /test/a ''
augtool> clear /test/b
augtool> match /test/*
/test/a =
/test/b = (none)
augtool> match /test/* ''
/test/a =
/test/b = (none)
augtool> match /test/*[.='']
/test/a =
/test/b = (none)
augtool> match /test/*[.=~regexp('')]
/test/a =
/test/b = (none)
There are some lenses that treat these kinds of nodes differently. For
instance, in grub.aug we have:
(* Parse the file name and args on a kernel or module line. *)
let kernel_args =
let arg = /[A-Za-z0-9_.\$-]+/ - /type|no-mem-option/ in
store /(\([a-z0-9,]+\))?\/[^ \t\n]*/ .
(spc . multiboot_arg)? .
(spc . [ key arg . (eq. store /([^ \t\n])*/)?])* . eol
so the kernel arguments "key" and "key=" yield different trees.
- Michael
_______________________________________________
augeas-devel mailing list
augeas-devel@redhat.com
https://www.redhat.com/mailman/listinfo/augeas-devel