summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2014-05-12 18:52:24 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2014-05-12 19:34:07 +0900
commitee7ad21b3bd2eb131a07abbcadd7cd249c175d1d (patch)
tree8524b7989ff14d8ba7bd5c96060500f839ab4249
parent634d309d8592eb85a3b0616f3462c89fd9350a86 (diff)
downloadelementary-ee7ad21b3bd2eb131a07abbcadd7cd249c175d1d.tar.gz
test_dnd: Fix build for windows
There is no strndup (with our compilation flags).
-rw-r--r--src/bin/test_dnd.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/bin/test_dnd.c b/src/bin/test_dnd.c
index 9b5c0fb96..d799a04e6 100644
--- a/src/bin/test_dnd.c
+++ b/src/bin/test_dnd.c
@@ -203,6 +203,21 @@ _grid_item_getcb(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *xposret, int
return item;
}
+static inline char *
+_strndup(const char *str, size_t len)
+{
+ size_t slen = strlen(str);
+ char *ret;
+
+ if (slen > len) slen = len;
+ ret = malloc (slen + 1);
+ if (!ret) return NULL;
+
+ if (slen > 0) memcpy(ret, str, slen);
+ ret[slen] = '\0';
+ return ret;
+}
+
static Eina_Bool
_gl_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it, Elm_Selection_Data *ev, int xposret EINA_UNUSED, int yposret)
{ /* This function is called when data is dropped on the genlist */
@@ -212,7 +227,7 @@ _gl_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it, Elm_Se
if (ev->len <= 0)
return EINA_FALSE;
- char *dd = strndup(ev->data, ev->len);
+ char *dd = _strndup(ev->data, ev->len);
if (!dd) return EINA_FALSE;
char *p = dd;
@@ -267,7 +282,7 @@ _grid_dropcb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Object_Item *it, Elm_
if (ev->len <= 0)
return EINA_FALSE;
- char *dd = strndup(ev->data, ev->len);
+ char *dd = _strndup(ev->data, ev->len);
if (!dd) return EINA_FALSE;
char *p = dd;
char *s = _drag_data_extract(&p);
@@ -962,7 +977,7 @@ static Eina_Bool _drop_box_button_new_cb(void *data, Evas_Object *obj, Elm_Selec
if (ev->len <= 0)
return EINA_FALSE;
- char *dd = strndup(ev->data, ev->len);
+ char *dd = _strndup(ev->data, ev->len);
if (!dd) return EINA_FALSE;
char *p = dd;
char *s = _drag_data_extract(&p);
@@ -996,7 +1011,7 @@ static Eina_Bool _drop_but_icon_change_cb(void *data, Evas_Object *obj, Elm_Sele
if (ev->len <= 0)
return EINA_FALSE;
- char *dd = strndup(ev->data, ev->len);
+ char *dd = _strndup(ev->data, ev->len);
if (!dd) return EINA_FALSE;
char *p = dd;
char *s = _drag_data_extract(&p);
@@ -1024,7 +1039,7 @@ static Eina_Bool _drop_bg_change_cb(void *data EINA_UNUSED, Evas_Object *obj, El
if (ev->len <= 0)
return EINA_FALSE;
- char *dd = strndup(ev->data, ev->len);
+ char *dd = _strndup(ev->data, ev->len);
if (!dd) return EINA_FALSE;
char *p = dd;
char *s = _drag_data_extract(&p);