Zitat von Geert Janssens <janssens-ge...@telenet.be>:
Most of these are easily solved. But I hit this one now and I'm not sure how
to proceed.

src/gnome/dialog-print-check.c contains this construct:
#define ENUM_CHECK_ITEM_TYPE(_) \
        _(NONE,) \
        _(PAYEE,) \

This is a real brainf'kd construct. Something like simulating templates but in C but with macros, even though macros are evil. It is defined in src/libqof/qof/qofutils.h and might seem so insanely smart at first sight, but due to the inherent evil of macros it won't work on a larger scale, as you have just encountered. (Note to self: Gosh, I really hate C today.)

No, the _() is not the usual gettext macro here but instead it's the local name of the macro's argument. It

Can anyone explain to me how to interpret this construct ? And even more
importantly, if I can add the CHK_ prefix without unintended side-effects ?

Unfortunately no because the identifiers are used both as enum values and as their string representations and e.g. dialog-print-check.c line 942 relies on this conversion from the string representation to the enum value.

But couldn't the compiler error be fixed by #undef'ing DATE *before* these lines in dialog-print-check.c?

Regards,

Christian

_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to