The feature-test egg looks nice, I'll give it a try. Thanks, Antony 2012/8/16 Jim Ursetto <[email protected]>
> Hi, > That should be foreign-declare for the whole thing, not foreign-code. > Or use #> ... <# which is shorthand for foreign-declare. > > #> > #include <foo.h> > > #ifndef FOO > #define FOO -1 > #endif > <# > > Another option is the feature-test egg, which is useful for complex cases, > and doesn't require that you redefine anything. > > But for cases where it is safe to #define an undefined macro (in other > words, > when you can guarantee there is an impossible, harmless or safe default > value), > the above is easier. > > On Aug 16, 2012, at 6:37 PM, Antony Lee wrote: > > Hi all, > I am looking for a way to check if a symbol is #defined as a C macro or > not... something like > > (declare (foreign-declare "#include <foo.h>")) > (foreign-code #<<EOF > #ifndef FOO > #define FOO -1 > #endif > EOF > ) > (define-foreign-variable FOO int) > > which doesn't work (because I cannot put C macros in foreign-code?). > > My second try was to use the bind egg: > (bind* #<<EOF > #ifndef FOO > #define FOO -1 > #endif > EOF > ) > > but now FOO is always redefined (i.e. #ifndef FOO always evaluates to > true). > > Any suggestions? (I guess I could always put all that in an actual header > file full of #ifndef's and #include *that* one but I am looking for > something more... elegant if possible.) > Thanks, > Antony > _______________________________________________ > Chicken-users mailing list > [email protected] > https://lists.nongnu.org/mailman/listinfo/chicken-users > > >
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
