Feature KVPs
John Ralls
jralls at ceridwen.us
Wed Jul 22 12:21:12 EDT 2015
> On Jul 21, 2015, at 12:09 PM, Alex Aycinena <alex.aycinena at gmail.com> wrote:
>
> John,
>
> I was wondering if you could help me figure out a problem I've noted in saving Feature KVPs.
>
> In the work I'm doing, I'm setting a feature related to the use of book-currency. This is the way it is currently saved (along with another feature) in the xml file:
>
> <book:slots>
> <slot>
> <slot:key></slot:key>
> <slot:value type="frame">
> <slot>
> <slot:key>features</slot:key>
> <slot:value type="frame">
> <slot>
> <slot:key></slot:key>
> <slot:value type="frame">
> <slot>
> <slot:key>Number Field Source</slot:key>
> <slot:value type="string">User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)</slot:value>
> </slot>
> <slot>
> <slot:key>Use a Book-Currency</slot:key>
> <slot:value type="string">User specifies a 'book-currency'; costs of other currencies/commodities tracked in terms of book-currency (requires at least GnuCash 2.7.0)</slot:value>
> </slot>
> </slot:value>
> </slot>
> </slot:value>
> </slot>
> </slot:value>
> </slot>
> <slot>
> <slot:key>options</slot:key>
> etc.
>
> There seems to be some unnecessary frames and slots inserted in there for some reason. It should look like this:
>
> <book:slots>
> <slot>
> <slot:key>features</slot:key>
> <slot:value type="frame">
> <slot>
> <slot:key>Number Field Source</slot:key>
> <slot:value type="string">User specifies source of 'num' field'; either transaction number or split action (requires at least GnuCash 2.5.0)</slot:value>
> </slot>
> <slot>
> <slot:key>Use a Book-Currency</slot:key>
> <slot:value type="string">User specifies a 'book-currency'; costs of other currencies/commodities tracked in terms of book-currency (requires at least GnuCash 2.7.0)</slot:value>
> </slot>
> </slot:value>
> </slot>
> <slot>
> <slot:key>options</slot:key>
> etc.
>
> I've looked at the code for qof_book_set_feature in qofbook.cpp and for set_path in kvp_frame.cpp but it is not clear to me what it's doing wrong.
>
> Do you agree that there is something wrong here? If so, any ideas for a fix? By the way, the code for qof_book_set_option generates xml output that looks correct.
>
> I noticed in another e-mail that you said you are out of town this week. This issue isn't affecting my work so no hurry in responding.
>
> Have a good trip.
Alex,
Good catch.
The problem was the definition of GNC_FEATURES: “/features/“. The slashes created the extra frames. I pushed a change removing them, which should fix the problem for features. I’m also working up a change to ignore leading and trailing slashes in keys. I should have recognized that problem earlier, as it made a difference in some of the existing test error messages, but I ascribed those to reordering without noticing the extra frames. I’ll get that fixed up and pushed as soon as I can.
Regards,
John Ralls
More information about the gnucash-devel
mailing list