> From: "Peter Feigl" <cra...@gmx.net> > Date: Tue, 11 Dec 2012 21:40:26 +0100 > > Hello! > > [...] As you mention in the manual, there's no support for struct > parameters or return values. Is there any easy way to fix this? > Unfortunately quite a lot of C APIs use structs as parameters or > return values :(
Quick and dirty: use less_sad instead. extern struct sad sad_func (struct sad s); struct sad * less_sad (int member1, char *member2) { struct sad i, o, *p; p = malloc_or_signal (sizeof struct sad); i.member1 = member1; i.member2 = member2; o = sad_func (i) p->member1 = o.member1; p->member2 = o.member2; return (p); } No doubt an immodest extension could generate something like that. I was happy to wait until I had actually encountered such a sad API. Luckily, the Gtks are mostly less sad already. Yes, I know this is the same solution I suggested last time (March 2011) when you were bumming you could not access `extern variables'. extern struct sad global_sadness; struct sad * get_global_sadness (void) { struct sad *p = malloc_or_signal (sizeof struct sad); *p = global_sadness; return (p); } No happy happy? _______________________________________________ MIT-Scheme-devel mailing list MIT-Scheme-devel@gnu.org https://lists.gnu.org/mailman/listinfo/mit-scheme-devel