while at that, some ifdef I can't imagine why they exist:

   #ifdef STDC_HEADERS
   # include <stdlib.h>
   # include <stddef.h>
   #else
   # ifdef HAVE_STDLIB_H
   #  include <stdlib.h>
   # endif
   #endif

do we support systems where stdlib.h or similar are not supported?! O.o


On Thu, Jan 3, 2013 at 12:34 PM, Gustavo Sverzut Barbieri <
[email protected]> wrote:

> Hi people,
>
> I'm reviewing the checks in efl/configure.ac and some are quite weird,
> which I want to remove if there is no valid reason for their existence.
>
> IMO the way Evil, Escape and Exotic are done are a bit cumbersome for the
> libraries to use. For instance, evil_libgen.h matches libgen.h, however the
> user code must have the following:
>
>    #ifdef HAVE_LIBGEN_H
>    #include <libgen.h>
>    #endif
>    ...
>    #ifdef HAVE_EVIL
>    #include <Evil.h> /* includes evil_libgen.h */
>    #endif
>
> why not call evil_libgen.h just libgen.h and let the user include it
> normally? We just -I$(top_srcdir)/src/lib/evil if building for Evil, then
> it makes life simpler.
>
> In my mind Evil.h and Exotic. doesn't even need to exist... they could
> exist in some cases where the system file exists but lacks something.
>     Say libgen.h in PS3 lacked basename, then we could have:
>          * escape_libgen.h: basename() definition
>          * Escape.h: includes escape_libgen.h to match complete libgen.h
> from posix, "fixing" the previous include.
>
> Find below the suggested header and functions to change. I may get to this
> next week and apply the changes.
>
> == Headers ==
>
>  * strings.h: is very useful, very old and very standard. The only place
> that checks for that is simple_xml_parser and I have no idea why :-P
>       PROPOSAL: remove checks and rely on strings.h. Portability layers
> (escape, evil, exotic should provide it if missing).
>
>  * unistd.h: same as strings.h, portability layers already provide what we
> use.
>       PROPOSAL: remove checks and rely on unistd.h. Portability layers
> (escape, evil, exotic should provide it if missing).
>
>  * signal.h: very very old and supported on UNIX.
>       PROPOSAL: remove checks and rely on signal.h. Portability layers
> (escape, evil, exotic should provide it if missing). Many times the
> platform ports need to provide a completely new way to deal with signals
> and this is done in a different file.
>
>  * siginfo.h and siginfo_t: checked by eina, used without check for years
> in ecore_signal.c as it's not used in Windows, there we use another file.
>       PROPOSAL: remove checks and rely on siginfo.h and siginfo_t.
> Portability layers (escape, evil, exotic should provide it if missing), as
> the signals won't be emitted, it should cause no problems. Or it is done in
> another file as said for signal.h
>
>  * inttypes.h and stdint.h (also included by inttypes): is very useful and
> is posix. Many users in our efl do not check for HAVE_INTTYPES_H or
> HAVE_STDINT_H, some check for _WIN32 or similar.
>       PROPOSAL: remove checks and rely on inttypes.h and stdint.h.
> Portability layers (escape, evil, exotic should provide these if missing).
>
>  * errno.h: except from some parts of ecore_con (that does it wrong), it's
> basically used in windows/evil. Evil does it right and wraps every errno
> access in #ifdef, which is a pain.
>       PROPOSAL: remove checks and rely on errno.h. Portability layers
> (escape, evil, exotic should provide it if missing).
>
>  * libgen.h: provides basename/dirname, but is only checked in
> eio_private.h and eina_module.c, although it's used in many more places.
>       PROPOSAL: remove checks and rely on libgen.h. Portability layers
> (escape, evil, exotic should provide it if missing). Evil/Escape already
> provide it, but call the file PREFIX_libgen.h and is included by their
> headers.
>
>  * langinfo.h and locale.h: posix 2001, just constants.
>       PROPOSAL: remove checks and rely on langinfo.h and locale.h.
> Portability layers (escape, evil, exotic should provide it if missing).
>
>  * sys/time.h, sys/select.h and sys/resource.h: posix 2001.
>       PROPOSAL: remove checks and rely files. Portability layers (escape,
> evil, exotic should provide it if missing).
>
>  * sys/socket.h, net/if.h, net/un.h, arpa/inet.h, arpa/nameser.h,
> netinet/in.h: posix 2001. Does BSD/Solaris support them at the same
> location??
>       PROPOSAL: remove checks and rely files. Portability layers (escape,
> evil, exotic should provide it if missing) or provide native version of the
> networking functions for ecore.
>
> == Functions ==
>
>  * execvp: posix 2001
>  * fpathconf: posix 2001
>  * clearenv: rejected posix 2001, we should stop using it (just efreet
> tests use it)
>  * lround: posix 2001
>  * sigaction: posix 2001
>  * siglongjmp: posix 2001
>  * isfinite: posix 2001
>  * clock_gettime: posix 2001
>
>
> --
> Gustavo Sverzut Barbieri
> http://profusion.mobi embedded systems
> --------------------------------------
> MSN: [email protected]
> Skype: gsbarbieri
> Mobile: +55 (19) 9225-2202
>



-- 
Gustavo Sverzut Barbieri
http://profusion.mobi embedded systems
--------------------------------------
MSN: [email protected]
Skype: gsbarbieri
Mobile: +55 (19) 9225-2202
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to