On Tue, 14 Sep 2010, Brett Nash wrote:

> So I just found this define in Elementary.h.
>
> #ifdef ELM_ETHUMB
>   EAPI Ethumb_Client *elm_thumb_ethumb_client_get(void);
> #else
>   EAPI void           *elm_thumb_ethumb_client_get(void);
> #endif
>
> How are you supposed to use it in an application without an #ifdef?
> Well I suppose you could declare your pointer as a void *, and go from
> there, but then we kill the need for the #ifdef in Elm.h.

it's just plain wrong. A configure-time define should NEVER be used in an 
exported header

Vincent

> Otherwise if you need an ifdef in the application anyway, why not just
> get rid of the API call entirely when ifdefed out?
>
> What is even worse of course is the application needs an ifdef around
> the type decleration _or_ always uses
> a void pointer?
>
> Suggestions:
> - change it to always return NULL
> - change it to always return struct _Ethumb_Client *
> (since opaque structures don't need to be declared?
>
>   Regards,
>  nash
>
> ------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing.
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
>

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to