forked from enlightenment/efl
Merge branch 'master' into devs/hermet/lottie
This commit is contained in:
commit
3be39cef25
|
@ -298,6 +298,7 @@ if test "x${have_win32}" = "xyes" ; then
|
|||
# autotools macro and CXX is always set to g++ even if
|
||||
# it's not found. So we are using an internal variable
|
||||
# that does the work for now, may get broken in the future.
|
||||
AC_DEFINE([_POSIX_C_SOURCE], [200809L], [Define the POSIX version])
|
||||
if test "x${ac_ct_CXX}" = "x" -a "x${CXX}" = "xg++"; then
|
||||
AC_MSG_ERROR([efl requires a C++ compiler got ${ac_ct_CXX} and ${CXX}.])
|
||||
fi
|
||||
|
|
|
@ -21,6 +21,7 @@ group { "efl/navigation_layout";
|
|||
relative: 0.0 1.0;
|
||||
}
|
||||
rel2.to_x: "base";
|
||||
align: 0.5 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,6 +102,7 @@ foreach lang : ['c', 'objc', 'cpp']
|
|||
add_global_arguments('-DEFL_BUILD=1', language: lang)
|
||||
add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: lang)
|
||||
if sys_windows == true
|
||||
add_global_arguments('-D_POSIX_C_SOURCE=200809L', language: lang)
|
||||
if (get_option('windows-version') == 'vista')
|
||||
add_global_arguments('-DWINVER=0x060', language: lang)
|
||||
add_global_arguments('-D_WIN32_WINNT=0x0600', language: lang)
|
||||
|
|
|
@ -140,15 +140,7 @@ lib/evas/canvas/evas_canvas3d_node.eo.cs \
|
|||
lib/evas/canvas/evas_canvas3d_object.eo.cs \
|
||||
lib/evas/canvas/evas_canvas3d_primitive.eo.cs \
|
||||
lib/evas/canvas/evas_canvas3d_scene.eo.cs \
|
||||
lib/evas/canvas/evas_canvas3d_texture.eo.cs \
|
||||
lib/evas/canvas/efl_canvas_vg_object.eo.cs \
|
||||
lib/evas/canvas/efl_vg.eo.cs \
|
||||
lib/evas/canvas/efl_vg_container.eo.cs \
|
||||
lib/evas/canvas/efl_vg_gradient.eo.cs \
|
||||
lib/evas/canvas/efl_vg_gradient_radial.eo.cs \
|
||||
lib/evas/canvas/efl_vg_gradient_linear.eo.cs \
|
||||
lib/evas/canvas/efl_vg_root_node.eo.cs \
|
||||
lib/evas/canvas/efl_vg_shape.eo.cs
|
||||
lib/evas/canvas/evas_canvas3d_texture.eo.cs
|
||||
|
||||
efl_eolian_blacklisted_files = \
|
||||
lib/efl/interfaces/efl_io_buffer.eo.cs \
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
# include <alloca.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ENVIRON
|
||||
extern char **environ;
|
||||
#endif
|
||||
|
|
|
@ -282,7 +282,7 @@ inline std::string property_managed_name(attributes::property_def const& propert
|
|||
inline std::string managed_part_name(attributes::part_def const& part)
|
||||
{
|
||||
std::vector<std::string> names = utils::split(part.name, '_');
|
||||
return utils::to_pascal_case(names);
|
||||
return utils::to_pascal_case(names) + "Part";
|
||||
}
|
||||
|
||||
// Class name translation (interface/concrete/inherit/etc)
|
||||
|
|
|
@ -145,9 +145,11 @@ _blend_mask_add(int count, const SW_FT_Span *spans, void *user_data)
|
|||
RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, color);
|
||||
uint32_t *mbuffer = mask->pixels.u32;
|
||||
|
||||
int tsize = sd->raster_buffer->generic->w;
|
||||
uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
|
||||
|
||||
while (count--)
|
||||
{
|
||||
uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
|
||||
memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
|
||||
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
|
||||
comp_func(ttarget, spans->len, color, spans->coverage);
|
||||
|
@ -234,9 +236,11 @@ _blend_mask_diff(int count, const SW_FT_Span *spans, void *user_data)
|
|||
RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, color);
|
||||
uint32_t *mbuffer = mask->pixels.u32;
|
||||
|
||||
int tsize = sd->raster_buffer->generic->w;
|
||||
uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
|
||||
|
||||
while (count--)
|
||||
{
|
||||
uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
|
||||
memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
|
||||
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
|
||||
comp_func(ttarget, spans->len, color, spans->coverage);
|
||||
|
@ -293,6 +297,120 @@ _blend_gradient(int count, const SW_FT_Span *spans, void *user_data)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_blend_gradient_alpha(int count, const SW_FT_Span *spans, void *user_data)
|
||||
{
|
||||
RGBA_Comp_Func comp_func;
|
||||
Span_Data *data = (Span_Data *)(user_data);
|
||||
src_fetch fetchfunc = NULL;
|
||||
uint32_t *buffer;
|
||||
const int pix_stride = data->raster_buffer->stride / 4;
|
||||
uint32_t gradientbuffer[BLEND_GRADIENT_BUFFER_SIZE];
|
||||
|
||||
// FIXME: Get the proper composition function using ,color, ECTOR_OP etc.
|
||||
if (data->type == LinearGradient) fetchfunc = &fetch_linear_gradient;
|
||||
if (data->type == RadialGradient) fetchfunc = &fetch_radial_gradient;
|
||||
|
||||
if (!fetchfunc)
|
||||
return;
|
||||
|
||||
Ector_Software_Buffer_Base_Data *mask = data->mask;
|
||||
uint32_t *mbuffer = mask->pixels.u32;
|
||||
|
||||
//Temp buffer for intermediate processing
|
||||
uint32_t *tbuffer = malloc(sizeof(uint32_t) * data->raster_buffer->generic->w);
|
||||
|
||||
comp_func = efl_draw_func_span_get(data->op, data->mul_col, data->gradient->alpha);
|
||||
|
||||
// move to the offset location
|
||||
buffer = data->raster_buffer->pixels.u32 + ((pix_stride * data->offy) + data->offx);
|
||||
|
||||
while (count--)
|
||||
{
|
||||
uint32_t *target = buffer + ((data->raster_buffer->generic->w * spans->y) + spans->x);
|
||||
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
|
||||
uint32_t *temp = tbuffer;
|
||||
int length = spans->len;
|
||||
memset(temp, 0x00, sizeof(uint32_t) * spans->len);
|
||||
while (length)
|
||||
{
|
||||
int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE);
|
||||
fetchfunc(gradientbuffer, data, spans->y, spans->x, l);
|
||||
comp_func(temp, gradientbuffer, l, data->mul_col, spans->coverage);
|
||||
|
||||
for (int i = 0; i < l; i++)
|
||||
{
|
||||
*temp = draw_mul_256(((*mtarget)>>24), *temp);
|
||||
int alpha = 255 - ((*temp) >> 24);
|
||||
*target = *temp + draw_mul_256(alpha, *target);
|
||||
++temp;
|
||||
++mtarget;
|
||||
++target;
|
||||
}
|
||||
length -= l;
|
||||
}
|
||||
++spans;
|
||||
}
|
||||
free(tbuffer);
|
||||
}
|
||||
|
||||
static void
|
||||
_blend_gradient_alpha_inv(int count, const SW_FT_Span *spans, void *user_data)
|
||||
{
|
||||
RGBA_Comp_Func comp_func;
|
||||
Span_Data *data = (Span_Data *)(user_data);
|
||||
src_fetch fetchfunc = NULL;
|
||||
uint32_t *buffer;
|
||||
const int pix_stride = data->raster_buffer->stride / 4;
|
||||
uint32_t gradientbuffer[BLEND_GRADIENT_BUFFER_SIZE];
|
||||
|
||||
// FIXME: Get the proper composition function using ,color, ECTOR_OP etc.
|
||||
if (data->type == LinearGradient) fetchfunc = &fetch_linear_gradient;
|
||||
if (data->type == RadialGradient) fetchfunc = &fetch_radial_gradient;
|
||||
|
||||
if (!fetchfunc)
|
||||
return;
|
||||
|
||||
Ector_Software_Buffer_Base_Data *mask = data->mask;
|
||||
uint32_t *mbuffer = mask->pixels.u32;
|
||||
|
||||
//Temp buffer for intermediate processing
|
||||
uint32_t *tbuffer = malloc(sizeof(uint32_t) * data->raster_buffer->generic->w);
|
||||
|
||||
comp_func = efl_draw_func_span_get(data->op, data->mul_col, data->gradient->alpha);
|
||||
|
||||
// move to the offset location
|
||||
buffer = data->raster_buffer->pixels.u32 + ((pix_stride * data->offy) + data->offx);
|
||||
|
||||
while (count--)
|
||||
{
|
||||
uint32_t *target = buffer + ((data->raster_buffer->generic->w * spans->y) + spans->x);
|
||||
uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + spans->x);
|
||||
uint32_t *temp = tbuffer;
|
||||
int length = spans->len;
|
||||
memset(temp, 0x00, sizeof(uint32_t) * spans->len);
|
||||
while (length)
|
||||
{
|
||||
int l = MIN(length, BLEND_GRADIENT_BUFFER_SIZE);
|
||||
fetchfunc(gradientbuffer, data, spans->y, spans->x, l);
|
||||
comp_func(temp, gradientbuffer, l, data->mul_col, spans->coverage);
|
||||
|
||||
for (int i = 0; i < l; i++)
|
||||
{
|
||||
if (*mtarget)
|
||||
*temp = draw_mul_256((255 - ((*mtarget)>>24)), *temp);
|
||||
int alpha = 255 - ((*temp) >> 24);
|
||||
*target = *temp + draw_mul_256(alpha, *target);
|
||||
++temp;
|
||||
++mtarget;
|
||||
++target;
|
||||
}
|
||||
length -= l;
|
||||
}
|
||||
++spans;
|
||||
}
|
||||
free(tbuffer);
|
||||
}
|
||||
/*!
|
||||
\internal
|
||||
spans must be sorted on y
|
||||
|
@ -485,46 +603,49 @@ static void
|
|||
_adjust_span_fill_methods(Span_Data *spdata)
|
||||
{
|
||||
//Blending Function
|
||||
switch(spdata->type)
|
||||
if (spdata->mask)
|
||||
{
|
||||
case None:
|
||||
spdata->unclipped_blend = NULL;
|
||||
break;
|
||||
case Solid:
|
||||
switch (spdata->mask_op)
|
||||
{
|
||||
if (spdata->mask)
|
||||
{
|
||||
switch (spdata->mask_op)
|
||||
{
|
||||
default:
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA:
|
||||
spdata->unclipped_blend = &_blend_alpha;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA_INV:
|
||||
spdata->unclipped_blend = &_blend_alpha_inv;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_ADD:
|
||||
spdata->unclipped_blend = &_blend_mask_add;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_SUBSTRACT:
|
||||
spdata->unclipped_blend = &_blend_mask_sub;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_INTERSECT:
|
||||
spdata->unclipped_blend = &_blend_mask_ins;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_DIFFERENCE:
|
||||
spdata->unclipped_blend = &_blend_mask_diff;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
spdata->unclipped_blend = &_blend_argb;
|
||||
}
|
||||
break;
|
||||
case LinearGradient:
|
||||
case RadialGradient:
|
||||
default:
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA:
|
||||
if (spdata->type == Solid)
|
||||
spdata->unclipped_blend = &_blend_alpha;
|
||||
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
|
||||
spdata->unclipped_blend = &_blend_gradient_alpha;
|
||||
else //None
|
||||
spdata->unclipped_blend = NULL;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_ALPHA_INV:
|
||||
if (spdata->type == Solid)
|
||||
spdata->unclipped_blend = &_blend_alpha_inv;
|
||||
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
|
||||
spdata->unclipped_blend = &_blend_gradient_alpha_inv;
|
||||
else //None
|
||||
spdata->unclipped_blend = NULL;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_ADD:
|
||||
spdata->unclipped_blend = &_blend_mask_add;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_SUBSTRACT:
|
||||
spdata->unclipped_blend = &_blend_mask_sub;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_INTERSECT:
|
||||
spdata->unclipped_blend = &_blend_mask_ins;
|
||||
break;
|
||||
case EFL_CANVAS_VG_NODE_BLEND_TYPE_MASK_DIFFERENCE:
|
||||
spdata->unclipped_blend = &_blend_mask_diff;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (spdata->type == Solid)
|
||||
spdata->unclipped_blend = &_blend_argb;
|
||||
else if (spdata->type == LinearGradient || spdata->type == RadialGradient)
|
||||
spdata->unclipped_blend = &_blend_gradient;
|
||||
break;
|
||||
else //None
|
||||
spdata->unclipped_blend = NULL;
|
||||
}
|
||||
|
||||
//FIXME: Mask and mask case is not use clipping.
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <ctype.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
# include <winsock2.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -117,39 +117,32 @@ _eina_file_win32_is_dir(const char *dir)
|
|||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static char *
|
||||
_eina_file_win32_dir_new(const char *dir)
|
||||
{
|
||||
char *new_dir;
|
||||
size_t length;
|
||||
|
||||
length = strlen(dir);
|
||||
|
||||
new_dir = (char *)malloc(sizeof(char) * length + 5);
|
||||
if (!new_dir)
|
||||
return NULL;
|
||||
|
||||
memcpy(new_dir, dir, length);
|
||||
memcpy(new_dir + length, "\\*.*", 5);
|
||||
|
||||
return new_dir;
|
||||
}
|
||||
|
||||
static HANDLE
|
||||
_eina_file_win32_first_file(const char *dir, WIN32_FIND_DATA *fd)
|
||||
{
|
||||
HANDLE h;
|
||||
char buf[4096];
|
||||
HANDLE h;
|
||||
size_t l = strlen(dir);
|
||||
#ifdef UNICODE
|
||||
wchar_t *wdir = NULL;
|
||||
#endif
|
||||
|
||||
wdir = evil_char_to_wchar(dir);
|
||||
l = strlen(dir);
|
||||
if ((l + 5) > sizeof(buf))
|
||||
return INVALID_HANDLE_VALUE;
|
||||
|
||||
memcpy(buf, dir, l);
|
||||
memcpy(buf + l, "\\*.*", 5);
|
||||
|
||||
#ifdef UNICODE
|
||||
wdir = evil_char_to_wchar(buf);
|
||||
if (!wdir)
|
||||
return INVALID_HANDLE_VALUE;
|
||||
|
||||
h = FindFirstFile(wdir, fd);
|
||||
h = FindFirstFileEx(wdir, FindExInfoBasic, fd, FindExSearchNameMatch, NULL, 0);
|
||||
free(wdir);
|
||||
#else
|
||||
h = FindFirstFile(dir, fd);
|
||||
h = FindFirstFileEx(buf, FindExInfoBasic, fd, FindExSearchNameMatch, NULL, 0);
|
||||
#endif
|
||||
|
||||
if (!h)
|
||||
|
@ -469,7 +462,6 @@ eina_file_dir_list(const char *dir,
|
|||
{
|
||||
WIN32_FIND_DATA file;
|
||||
HANDLE h;
|
||||
char *new_dir;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(cb, EINA_FALSE);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, EINA_FALSE);
|
||||
|
@ -478,11 +470,7 @@ eina_file_dir_list(const char *dir,
|
|||
if (!_eina_file_win32_is_dir(dir))
|
||||
return EINA_FALSE;
|
||||
|
||||
new_dir = _eina_file_win32_dir_new(dir);
|
||||
if (!new_dir)
|
||||
return EINA_FALSE;
|
||||
|
||||
h = _eina_file_win32_first_file(new_dir, &file);
|
||||
h = _eina_file_win32_first_file(dir, &file);
|
||||
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
return EINA_FALSE;
|
||||
|
@ -496,7 +484,9 @@ eina_file_dir_list(const char *dir,
|
|||
# else
|
||||
filename = file.cFileName;
|
||||
# endif /* ! UNICODE */
|
||||
if (!strcmp(filename, ".") || !strcmp(filename, ".."))
|
||||
if ((filename[0] == '.') &&
|
||||
((filename[1] == '\0') ||
|
||||
((filename[1] == '.') && (filename[2] == '\0'))))
|
||||
continue;
|
||||
|
||||
cb(filename, dir, data);
|
||||
|
@ -563,7 +553,6 @@ EAPI Eina_Iterator *
|
|||
eina_file_ls(const char *dir)
|
||||
{
|
||||
Eina_File_Iterator *it;
|
||||
char *new_dir;
|
||||
size_t length;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
|
||||
|
@ -582,12 +571,7 @@ eina_file_ls(const char *dir)
|
|||
|
||||
EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
|
||||
|
||||
new_dir = _eina_file_win32_dir_new(dir);
|
||||
if (!new_dir)
|
||||
goto free_it;
|
||||
|
||||
it->handle = _eina_file_win32_first_file(new_dir, &it->data);
|
||||
free(new_dir);
|
||||
it->handle = _eina_file_win32_first_file(dir, &it->data);
|
||||
if ((it->handle == INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_NO_MORE_FILES))
|
||||
goto free_it;
|
||||
|
||||
|
@ -614,7 +598,6 @@ EAPI Eina_Iterator *
|
|||
eina_file_direct_ls(const char *dir)
|
||||
{
|
||||
Eina_File_Direct_Iterator *it;
|
||||
char *new_dir;
|
||||
size_t length;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
|
||||
|
@ -633,12 +616,7 @@ eina_file_direct_ls(const char *dir)
|
|||
|
||||
EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
|
||||
|
||||
new_dir = _eina_file_win32_dir_new(dir);
|
||||
if (!new_dir)
|
||||
goto free_it;
|
||||
|
||||
it->handle = _eina_file_win32_first_file(new_dir, &it->data);
|
||||
free(new_dir);
|
||||
it->handle = _eina_file_win32_first_file(dir, &it->data);
|
||||
if ((it->handle == INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_NO_MORE_FILES))
|
||||
goto free_it;
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
# include <Evil.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1231,6 +1231,7 @@ _cut_cb(Eo *obj)
|
|||
_selection_store(EFL_UI_SELECTION_TYPE_CLIPBOARD, obj);
|
||||
efl_text_interactive_selection_cursors_get(obj, &start, &end);
|
||||
efl_canvas_text_range_delete(obj, start, end);
|
||||
_efl_ui_text_select_none(obj, sd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -690,10 +690,7 @@ _efl_ui_textpath_circle_set(Eo *obj, Efl_Ui_Textpath_Data *pd, double x, double
|
|||
pd->circle.start_angle == start_angle &&
|
||||
pd->direction == direction &&
|
||||
_map_point_calc(pd) > 0)
|
||||
{
|
||||
ERR("Same circle");
|
||||
return;
|
||||
}
|
||||
pd->circle.x = x;
|
||||
pd->circle.y = y;
|
||||
pd->circle.radius = radius;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
# include <Evil.h>
|
||||
#endif
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ int fcntl(int fd, int cmd, ...)
|
|||
HANDLE h;
|
||||
DWORD flag;
|
||||
|
||||
h = _is_socket(fd) ? (HANDLE)fd : (HANDLE)_get_osfhandle(fd);
|
||||
h = _is_socket(fd) ? (HANDLE)(uintptr_t)fd : (HANDLE)_get_osfhandle(fd);
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
return -1;
|
||||
|
||||
|
@ -64,7 +64,7 @@ int fcntl(int fd, int cmd, ...)
|
|||
HANDLE h;
|
||||
long flag;
|
||||
|
||||
h = _is_socket(fd) ? (HANDLE)fd : (HANDLE)_get_osfhandle(fd);
|
||||
h = _is_socket(fd) ? (HANDLE)(uintptr_t)fd : (HANDLE)_get_osfhandle(fd);
|
||||
if (h == INVALID_HANDLE_VALUE)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -45,34 +45,10 @@
|
|||
#endif
|
||||
#define mkdir(dirname, mode) evil_mkdir(dirname, mode)
|
||||
|
||||
/*
|
||||
* evil_time.h
|
||||
*/
|
||||
|
||||
/**
|
||||
* @def localtime_r(t, r)
|
||||
*
|
||||
* Wrapper around evil_localtime_r().
|
||||
*/
|
||||
#ifdef localtime_r
|
||||
# undef localtime_r
|
||||
#endif
|
||||
#define localtime_r(t, r) evil_localtime_r(t, r)
|
||||
|
||||
/*
|
||||
* evil_unistd.h
|
||||
*/
|
||||
|
||||
/**
|
||||
* @def getcwd(b,s)
|
||||
*
|
||||
* Wrapper around evil_getcwd().
|
||||
*/
|
||||
#ifdef getcwd
|
||||
# undef getcwd
|
||||
#endif
|
||||
#define getcwd(b,s) evil_getcwd((b),(s))
|
||||
|
||||
/**
|
||||
* @def pipe(fds)
|
||||
*
|
||||
|
|
|
@ -12,16 +12,6 @@
|
|||
#include "evil_macro_wrapper.h"
|
||||
#include "evil_private.h"
|
||||
|
||||
struct tm *
|
||||
evil_localtime_r(const time_t *timep, struct tm *result)
|
||||
{
|
||||
__time64_t t = *timep;
|
||||
|
||||
_localtime64_s(result, &t);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* strptime
|
||||
* based on http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/time/strptime.c?rev=HEAD
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
#define __EVIL_TIME_H__
|
||||
|
||||
|
||||
#include <time.h>
|
||||
|
||||
|
||||
/**
|
||||
* @file evil_time.h
|
||||
* @brief The file that provides functions ported from Unix in time.h.
|
||||
|
@ -14,26 +17,6 @@
|
|||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @brief Convert the calendar time to broken-time representation in a
|
||||
* user supplied data.
|
||||
*
|
||||
* @param timep The calender time.
|
||||
* @param result The broken-down time representation.
|
||||
* @return The broken-down time representation.
|
||||
*
|
||||
* This function converts the calendar time @p timep to a broken-time
|
||||
* representation. The result is stored in the buffer @p result
|
||||
* supplied by the user. If @p timep or @p result are @c NULL, or if
|
||||
* an error occurred, this function returns @c NULL and the values in
|
||||
* @p result might be undefined. Otherwise it returns @p result.
|
||||
*
|
||||
* Conformity: Non applicable.
|
||||
*
|
||||
* Supported OS: Windows XP.
|
||||
*/
|
||||
EAPI struct tm *evil_localtime_r(const time_t *timep, struct tm *result);
|
||||
|
||||
/**
|
||||
* @brief Convert a string representation of time to a time tm structure .
|
||||
*
|
||||
|
|
|
@ -62,17 +62,6 @@ evil_time_get(void)
|
|||
return (double)_evil_time_second + (double)(count.QuadPart - _evil_time_count)/ (double)_evil_time_freq;
|
||||
}
|
||||
|
||||
/*
|
||||
* File related functions
|
||||
*
|
||||
*/
|
||||
|
||||
char *
|
||||
evil_getcwd(char *buffer, size_t size)
|
||||
{
|
||||
return _getcwd(buffer, (int)size);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Sockets and pipe related functions
|
||||
|
|
|
@ -36,27 +36,6 @@
|
|||
*/
|
||||
EAPI double evil_time_get(void);
|
||||
|
||||
|
||||
/*
|
||||
* file related functions
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Get the current directory.
|
||||
*
|
||||
* @param buffer Buffer to store the current directory.
|
||||
* @param size Size of the buffer.
|
||||
* @return The current directory.
|
||||
*
|
||||
* Use the _getcwd function in MSVCRT.
|
||||
*
|
||||
* Conformity: Almost POSIX.1 (no errno set)
|
||||
*
|
||||
* Supported OS: Windows XP.
|
||||
*/
|
||||
EAPI char *evil_getcwd(char *buffer, size_t size);
|
||||
|
||||
/*
|
||||
* Sockets and pipe related functions
|
||||
*
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
engine_src = files(['ecore_evas_win32.c'])
|
||||
|
||||
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_DDRAW', '1');
|
||||
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_GDI', '1');
|
||||
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_DDRAW', '1')
|
||||
config_h.set('BUILD_ECORE_EVAS_SOFTWARE_GDI', '1')
|
||||
|
||||
engine_deps = [engine_software_ddraw, engine_software_gdi]
|
||||
|
||||
|
|
|
@ -5,6 +5,10 @@
|
|||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
#endif
|
||||
|
||||
#include <Eina.h>
|
||||
#include <Evas.h>
|
||||
#include <Ecore.h>
|
||||
|
|
|
@ -30,8 +30,8 @@ public static class TestParts
|
|||
|
||||
private static void do_part_test(Dummy.PartHolder t)
|
||||
{
|
||||
var p1 = t.PartOne;
|
||||
var p2 = t.PartTwo;
|
||||
var p1 = t.OnePart;
|
||||
var p2 = t.TwoPart;
|
||||
Test.Assert(p1 is Dummy.TestObject);
|
||||
Test.AssertEquals("part_one", p1.GetName());
|
||||
Test.Assert(p2 is Dummy.TestObject);
|
||||
|
|
|
@ -3,8 +3,8 @@ import eina_types;
|
|||
class @beta Dummy.Part_Holder extends Dummy.Test_Object implements Efl.Part {
|
||||
|
||||
parts {
|
||||
part_one: Dummy.Test_Object; [[ Part number one. ]]
|
||||
part_two: Dummy.Test_Object; [[ Part number two. ]]
|
||||
one: Dummy.Test_Object; [[ Part number one. ]]
|
||||
two: Dummy.Test_Object; [[ Part number two. ]]
|
||||
}
|
||||
implements {
|
||||
Efl.Part.part_get;
|
||||
|
|
|
@ -92,8 +92,8 @@ typedef struct Dummy_Child_Data
|
|||
|
||||
typedef struct Dummy_Part_Holder_Data
|
||||
{
|
||||
Eo *part_one;
|
||||
Eo *part_two;
|
||||
Eo *one;
|
||||
Eo *two;
|
||||
} Dummy_Part_Holder_Data;
|
||||
|
||||
typedef struct Dummy_Inherit_Helper_Data
|
||||
|
@ -4057,8 +4057,8 @@ _dummy_part_holder_efl_object_constructor(Eo *obj, Dummy_Part_Holder_Data *pd)
|
|||
// To avoid an infinite loop calling the same constructor
|
||||
if (!efl_parent_get(obj))
|
||||
{
|
||||
pd->part_one = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_one"));
|
||||
pd->part_two = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_two"));
|
||||
pd->one = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_one"));
|
||||
pd->two = efl_add(DUMMY_TEST_OBJECT_CLASS, obj, efl_name_set(efl_added, "part_two"));
|
||||
}
|
||||
|
||||
return obj;
|
||||
|
@ -4066,10 +4066,10 @@ _dummy_part_holder_efl_object_constructor(Eo *obj, Dummy_Part_Holder_Data *pd)
|
|||
|
||||
Efl_Object *_dummy_part_holder_efl_part_part_get(EINA_UNUSED const Eo *obj, Dummy_Part_Holder_Data *pd, const char *name)
|
||||
{
|
||||
if (!strcmp(name, "part_one"))
|
||||
return pd->part_one;
|
||||
else if (!strcmp(name, "part_two"))
|
||||
return pd->part_two;
|
||||
if (!strcmp(name, "one"))
|
||||
return pd->one;
|
||||
else if (!strcmp(name, "two"))
|
||||
return pd->two;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,10 @@
|
|||
#include <unistd.h>
|
||||
#include <limits.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
# include <direct.h> /* getcwd */
|
||||
#endif
|
||||
|
||||
#include <Efreet.h>
|
||||
|
||||
#include "ef_test.h"
|
||||
|
|
|
@ -1455,7 +1455,6 @@ EFL_START_TEST(utc_eldbus_message_iter_del_p)
|
|||
eldbus_message_iter_del(iter);
|
||||
}
|
||||
|
||||
eldbus_message_unref(msg);
|
||||
eldbus_connection_unref(conn_client);
|
||||
eldbus_service_interface_unregister(iface);
|
||||
eldbus_connection_unref(conn_server);
|
||||
|
|
|
@ -19,10 +19,15 @@ eldbus_suite_src = [
|
|||
'eldbus_suite.h'
|
||||
]
|
||||
|
||||
executable('eldbus_suite',
|
||||
eldbus_suite = executable('eldbus_suite',
|
||||
eldbus_suite_src,
|
||||
dependencies: [eldbus, ecore, check],
|
||||
c_args : [
|
||||
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
|
||||
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
|
||||
)
|
||||
|
||||
test('eldbus-suite', eldbus_suite,
|
||||
env : test_env,
|
||||
timeout : 60
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue