I think it's best to start off showing what I'm doing with an example
test that fails:
test Dhcpd.lns get "class \"ugly quotes\" {}" =
{ "class" = "ugly quotes" }
Test
failure:/home/rdrake/code/augeas/lenses/tests/test_dhcpd.aug:518.0-519.29:
Expected:
{
{ "class" = "ugly quotes" }
}
Actual:
{
{ "class" = ""ugly quotes"" }
}
The reason it's doing this is because rather than processing the quotes
the code just stores anything leading up to a space:
let stmt_block_arg (body:lens)
= [ indent . key stmt_block_arg_re . sep_spc .
sto_to_spc . sep_obr . body* . sep_cbr ]
sto_to_spc actually matches on quoted values, but doesn't delete the quotes:
let sto_to_spc = store /[^\\#,;\{\}" \t\n]+|"[^\\#"\n]+"/
Now, this isn't bad to fix but so far I've been trying to leave the
output alone so everyone's existing scripts would work. Changing this
to match quotes would mean that anyone counting on the current way would
be broken next time they upgraded. Is that okay or should I just leave
it alone? I could always make a new dhcpd4.aug that people could use if
they needed the new stuff.
_______________________________________________
augeas-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/augeas-devel