ecore_evas: use strbuf instead of PATH_MAX.

This commit is contained in:
Cedric BAIL 2017-06-05 13:53:28 -07:00
parent cab2516257
commit a784e4ac42
1 changed files with 58 additions and 58 deletions

View File

@ -234,116 +234,116 @@ _ecore_evas_available_engines_get(void)
Eina_File_Direct_Info *info; Eina_File_Direct_Info *info;
Eina_Iterator *it; Eina_Iterator *it;
Eina_List *l = NULL, *result = NULL; Eina_List *l = NULL, *result = NULL;
Eina_Strbuf *buf;
const char *path; const char *path;
if (_engines_available) return _engines_available; if (_engines_available) return _engines_available;
buf = eina_strbuf_new();
EINA_LIST_FOREACH(_engines_paths, l, path) EINA_LIST_FOREACH(_engines_paths, l, path)
{ {
it = eina_file_direct_ls(path); it = eina_file_direct_ls(path);
if (it) EINA_ITERATOR_FOREACH(it, info)
{ {
EINA_ITERATOR_FOREACH(it, info) eina_strbuf_append_printf(buf, "%s/%s/" ECORE_EVAS_ENGINE_NAME,
{ info->path, MODULE_ARCH);
char tmp[PATH_MAX];
snprintf(tmp, sizeof (tmp), "%s/%s/" ECORE_EVAS_ENGINE_NAME,
info->path, MODULE_ARCH);
if (_file_exists(tmp)) if (_file_exists(eina_strbuf_string_get(buf)))
{ {
const char *name; const char *name;
#ifdef _WIN32 #ifdef _WIN32
EVIL_PATH_SEP_WIN32_TO_UNIX(info->path); EVIL_PATH_SEP_WIN32_TO_UNIX(info->path);
#endif #endif
name = strrchr(info->path, '/'); name = strrchr(info->path, '/');
if (name) name++; if (name) name++;
else name = info->path; else name = info->path;
#define ADDENG(x) result = eina_list_append(result, eina_stringshare_add(x)) #define ADDENG(x) result = eina_list_append(result, eina_stringshare_add(x))
if (!strcmp(name, "fb")) if (!strcmp(name, "fb"))
{ {
#ifdef BUILD_ECORE_EVAS_FB #ifdef BUILD_ECORE_EVAS_FB
ADDENG("fb"); ADDENG("fb");
#endif #endif
} }
else if (!strcmp(name, "x")) else if (!strcmp(name, "x"))
{ {
#ifdef BUILD_ECORE_EVAS_OPENGL_X11 #ifdef BUILD_ECORE_EVAS_OPENGL_X11
ADDENG("opengl_x11"); ADDENG("opengl_x11");
#endif #endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_XLIB #ifdef BUILD_ECORE_EVAS_SOFTWARE_XLIB
ADDENG("software_x11"); ADDENG("software_x11");
#endif #endif
} }
else if (!strcmp(name, "buffer")) else if (!strcmp(name, "buffer"))
{ {
#ifdef BUILD_ECORE_EVAS_BUFFER #ifdef BUILD_ECORE_EVAS_BUFFER
ADDENG("buffer"); ADDENG("buffer");
#endif #endif
#ifdef BUILD_ECORE_EVAS_EWS #ifdef BUILD_ECORE_EVAS_EWS
ADDENG("ews"); ADDENG("ews");
#endif #endif
} }
else if (!strcmp(name, "cocoa")) else if (!strcmp(name, "cocoa"))
{ {
#ifdef BUILD_ECORE_EVAS_OPENGL_COCOA #ifdef BUILD_ECORE_EVAS_OPENGL_COCOA
ADDENG("opengl_cocoa"); ADDENG("opengl_cocoa");
#endif #endif
} }
else if (!strcmp(name, "psl1ght")) else if (!strcmp(name, "psl1ght"))
{ {
#ifdef BUILD_ECORE_EVAS_PSL1GHT #ifdef BUILD_ECORE_EVAS_PSL1GHT
ADDENG("psl1ght"); ADDENG("psl1ght");
#endif #endif
} }
else if (!strcmp(name, "sdl")) else if (!strcmp(name, "sdl"))
{ {
#ifdef BUILD_ECORE_EVAS_OPENGL_SDL #ifdef BUILD_ECORE_EVAS_OPENGL_SDL
ADDENG("opengl_sdl"); ADDENG("opengl_sdl");
#endif #endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL #ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL
ADDENG("sdl"); ADDENG("sdl");
#endif #endif
} }
else if (!strcmp(name, "wayland")) else if (!strcmp(name, "wayland"))
{ {
#ifdef BUILD_ECORE_EVAS_WAYLAND_SHM #ifdef BUILD_ECORE_EVAS_WAYLAND_SHM
ADDENG("wayland_shm"); ADDENG("wayland_shm");
#endif #endif
#ifdef BUILD_ECORE_EVAS_WAYLAND_EGL #ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
ADDENG("wayland_egl"); ADDENG("wayland_egl");
#endif #endif
} }
else if (!strcmp(name, "win32")) else if (!strcmp(name, "win32"))
{ {
#ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI #ifdef BUILD_ECORE_EVAS_SOFTWARE_GDI
ADDENG("software_gdi"); ADDENG("software_gdi");
#endif #endif
#ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW #ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
ADDENG("software_ddraw"); ADDENG("software_ddraw");
#endif #endif
#ifdef BUILD_ECORE_EVAS_DIRECT3D #ifdef BUILD_ECORE_EVAS_DIRECT3D
ADDENG("direct3d"); ADDENG("direct3d");
#endif #endif
#ifdef BUILD_ECORE_EVAS_OPENGL_GLEW #ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
ADDENG("opengl_glew"); ADDENG("opengl_glew");
#endif #endif
} }
else if (!strcmp(name, "drm")) else if (!strcmp(name, "drm"))
{ {
#ifdef BUILD_ECORE_EVAS_DRM #ifdef BUILD_ECORE_EVAS_DRM
ADDENG("drm"); ADDENG("drm");
#endif #endif
#ifdef BUILD_ECORE_EVAS_GL_DRM #ifdef BUILD_ECORE_EVAS_GL_DRM
ADDENG("gl_drm"); ADDENG("gl_drm");
#endif #endif
}
} }
} }
eina_iterator_free(it); eina_strbuf_reset(buf);
} }
eina_iterator_free(it);
} }
eina_strbuf_free(buf);
_engines_available = result; _engines_available = result;
return result; return result;