Can I make this change ?

Geert Janssens janssens-geert at telenet.be
Wed Jun 2 08:33:29 EDT 2010


I'm in the process of upgrading guile to 1.8.7 on Windows (it's the only 
platform we support that is still stuck on 1.6.x).

Guile 1.8.x under mingw pulls in a number of windows header files that weren't 
pulled in for guile 1.6. In itself no big deal, but this causes some namespace 
conflicts in gnucash that didn't exist before.

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,) \
        _(DATE,) \
        _(NOTES,) \
        _(CHECK_NUMBER,) \
                  \
        _(MEMO,) \
        _(ACTION,) \
        _(AMOUNT_NUMBER,) \
        _(AMOUNT_WORDS,) \
                         \
        _(TEXT,) \
        _(ADDRESS,) \
        _(DATE_FORMAT,) \
        _(SPLITS_AMOUNT,) \
        _(SPLITS_MEMO,) \
        _(SPLITS_ACCOUNT,) \
        _(PICTURE,)

Under mingw with guile 1.8.7, this gives an error that DATE is redeclared as 
different kind of symbol.

I'm tempted to give all of the elements of this enum a prefix, like CHK_DATE, 
CHK_PAYEE and so on.

However I'm not sure what these _() are doing around the parameters. I thought 
it had to do with translations, but none of these terms is in the po files so 
that doesn't seem to be 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 ?

Geert


More information about the gnucash-devel mailing list