> > #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.
> >
> > 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
> >
> 
> Hi
> 
> You can compile elementary without EThumb library support, so in this
> case you maybe have not Ethumb.h present and  Ethumb_Client is
> unknown.

Yeah I got that bit.  Please read my email again: Do you see the issue?

To use this API in an application I need to either use an #ifdef thereby
defeating the purpose of the #ifdef/#else combo in elm.h
Or I need t to use only a void * as my type.

The issue needs to be fixed.  It's wrong.

There is a small error in my 2 suggestions: the first should be:
 - Change it to always return void *

  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

Reply via email to