Patch Eina if Visual Studio 2005 is used. I fear that
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 15 Apr 2010 07:01:29 +0000 (07:01 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 15 Apr 2010 07:01:29 +0000 (07:01 +0000)
it will be a pain to support...

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@48017 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

win32/patch/eina.diff [new file with mode: 0644]
win32/start.bat

diff --git a/win32/patch/eina.diff b/win32/patch/eina.diff
new file mode 100644 (file)
index 0000000..b68fbf4
--- /dev/null
@@ -0,0 +1,952 @@
+--- ../../src/lib/eina_array.c 2010-04-15 06:29:24 +0000
++++ ../../src/lib/eina_array_new.c     2010-04-15 06:32:11 +0000
+@@ -144,21 +144,39 @@
+        EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY);          \\r
+   } while (0)\r
\r
+-#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d, ...)                       \\r
++#define EINA_MAGIC_CHECK_ARRAY_ITERATOR(d)                    \\r
+   do {                                                                \\r
+      if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ITERATOR))     \\r
+        {                                                      \\r
+           EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR);      \\r
+-          return __VA_ARGS__;                                 \\r
++          return;                                             \\r
+        }                                                      \\r
+   } while (0)\r
\r
+-#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d, ...)                       \\r
++#define EINA_MAGIC_CHECK_ARRAY_ITERATOR_RETURN(d,ret)         \\r
++  do {                                                                \\r
++     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ITERATOR))     \\r
++       {                                                      \\r
++          EINA_MAGIC_FAIL(d, EINA_MAGIC_ARRAY_ITERATOR);      \\r
++          return ret;                                 \\r
++       }                                                      \\r
++  } while (0)\r
++\r
++#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR(d)                    \\r
++  do {                                                                \\r
++     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ACCESSOR))     \\r
++       {                                                      \\r
++          EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR);            \\r
++          return;                                             \\r
++       }                                                      \\r
++  } while (0)\r
++\r
++#define EINA_MAGIC_CHECK_ARRAY_ACCESSOR_RETURN(d,ret)                 \\r
+   do {                                                                \\r
+      if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_ARRAY_ACCESSOR))     \\r
+        {                                                      \\r
+           EINA_MAGIC_FAIL(d, EINA_MAGIC_ACCESSOR);            \\r
+-          return __VA_ARGS__;                                 \\r
++          return ret;                                         \\r
+        }                                                      \\r
+   } while (0)\r
\r
+@@ -205,7 +223,7 @@
+ static Eina_Bool\r
+ eina_array_iterator_next(Eina_Iterator_Array *it, void **data)\r
+ {\r
+-   EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, EINA_FALSE);\r
++   EINA_MAGIC_CHECK_ARRAY_ITERATOR_RETURN(it, EINA_FALSE);\r
\r
+    if (!(it->index < eina_array_count_get(it->array)))\r
+      return EINA_FALSE;\r
+@@ -218,7 +236,7 @@
+ static Eina_Array *\r
+ eina_array_iterator_get_container(Eina_Iterator_Array *it)\r
+ {\r
+-   EINA_MAGIC_CHECK_ARRAY_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_ARRAY_ITERATOR_RETURN(it, NULL);\r
+    return (Eina_Array *) it->array;\r
+ }\r
\r
+@@ -232,7 +250,7 @@
+ static Eina_Bool\r
+ eina_array_accessor_get_at(Eina_Accessor_Array *it, unsigned int idx, void **data)\r
+ {\r
+-   EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, EINA_FALSE);\r
++   EINA_MAGIC_CHECK_ARRAY_ACCESSOR_RETURN(it, EINA_FALSE);\r
\r
+    if (!(idx < eina_array_count_get(it->array)))\r
+      return EINA_FALSE;\r
+@@ -244,7 +262,7 @@
+ static Eina_Array *\r
+ eina_array_accessor_get_container(Eina_Accessor_Array *it)\r
+ {\r
+-   EINA_MAGIC_CHECK_ARRAY_ACCESSOR(it, NULL);\r
++   EINA_MAGIC_CHECK_ARRAY_ACCESSOR_RETURN(it, NULL);\r
+    return (Eina_Array *) it->array;\r
+ }\r
\r
+--- ../../src/lib/eina_hash.c  2010-04-15 06:11:15 +0000
++++ ../../src/lib/eina_hash_new.c      2010-04-14 16:59:57 +0000
+@@ -53,12 +53,21 @@
+        EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH);                           \\r
+   } while(0)\r
\r
+-#define EINA_MAGIC_CHECK_HASH_ITERATOR(d, ...)                                \\r
++#define EINA_MAGIC_CHECK_HASH_ITERATOR(d)                             \\r
+   do {                                                                        \\r
+      if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH_ITERATOR))              \\r
+      {                                                                        \\r
+           EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR);                       \\r
+-          return __VA_ARGS__;                                                 \\r
++          return;                                                     \\r
++     }                                                                        \\r
++  } while(0)\r
++\r
++#define EINA_MAGIC_CHECK_HASH_ITERATOR_RET(d, ret)                    \\r
++  do {                                                                        \\r
++     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_HASH_ITERATOR))              \\r
++     {                                                                        \\r
++          EINA_MAGIC_FAIL(d, EINA_MAGIC_HASH_ITERATOR);                       \\r
++          return ret;                                                 \\r
+      }                                                                        \\r
+   } while(0)\r
\r
+@@ -484,7 +493,7 @@
+ {\r
+    Eina_Hash_El *stuff;\r
\r
+-   EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_HASH_ITERATOR_RET(it, NULL);\r
\r
+    stuff = it->el;\r
\r
+@@ -497,7 +506,7 @@
+ {\r
+    Eina_Hash_El *stuff;\r
\r
+-   EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_HASH_ITERATOR_RET(it, NULL);\r
\r
+    stuff = it->el;\r
\r
+@@ -510,7 +519,7 @@
+ {\r
+    Eina_Hash_El *stuff;\r
\r
+-   EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_HASH_ITERATOR_RET(it, NULL);\r
\r
+    stuff = it->el;\r
\r
+@@ -588,7 +597,7 @@
+ static void *\r
+ _eina_hash_iterator_get_container(Eina_Iterator_Hash *it)\r
+ {\r
+-   EINA_MAGIC_CHECK_HASH_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_HASH_ITERATOR_RET(it, NULL);\r
+    return (void *) it->hash;\r
+ }\r
\r
+--- ../../src/lib/eina_list.c  2010-04-15 06:29:24 +0000
++++ ../../src/lib/eina_list_new.c      2010-04-15 06:33:11 +0000
+@@ -98,30 +98,57 @@
+ static const char EINA_MAGIC_LIST_ACCOUNTING_STR[] = "Eina List Accounting";\r
\r
\r
+-#define EINA_MAGIC_CHECK_LIST(d, ...)                         \\r
++#define EINA_MAGIC_CHECK_LIST(d)                              \\r
+   do {                                                                \\r
+     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST))                        \\r
+     {                                                         \\r
+         EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST);                  \\r
+-        return __VA_ARGS__;                                   \\r
++        return;                                                       \\r
++    }                                                         \\r
++  } while(0)\r
++\r
++#define EINA_MAGIC_CHECK_LIST_RETURN(d,ret)                   \\r
++  do {                                                                \\r
++    if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST))                        \\r
++    {                                                         \\r
++        EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST);                  \\r
++        return ret;                                           \\r
++    }                                                         \\r
++  } while(0)\r
++\r
++#define EINA_MAGIC_CHECK_LIST_ITERATOR(d)                     \\r
++  do {                                                                \\r
++    if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ITERATOR))               \\r
++    {                                                         \\r
++        EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ITERATOR);         \\r
++        return;                                                       \\r
+     }                                                         \\r
+   } while(0)\r
\r
+-#define EINA_MAGIC_CHECK_LIST_ITERATOR(d, ...)                        \\r
++#define EINA_MAGIC_CHECK_LIST_ITERATOR_RETURN(d,ret)          \\r
+   do {                                                                \\r
+     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ITERATOR))               \\r
+     {                                                         \\r
+         EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ITERATOR);         \\r
+-        return __VA_ARGS__;                                   \\r
++        return ret;                                           \\r
++    }                                                         \\r
++  } while(0)\r
++\r
++#define EINA_MAGIC_CHECK_LIST_ACCESSOR(d)                     \\r
++  do {                                                                \\r
++    if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCESSOR))               \\r
++    {                                                         \\r
++        EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCESSOR);         \\r
++        return;                                                       \\r
+     }                                                         \\r
+   } while(0)\r
\r
+-#define EINA_MAGIC_CHECK_LIST_ACCESSOR(d, ...)                        \\r
++#define EINA_MAGIC_CHECK_LIST_ACCESSOR_RETURN(d,ret)          \\r
+   do {                                                                \\r
+     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_LIST_ACCESSOR))               \\r
+     {                                                         \\r
+         EINA_MAGIC_FAIL(d, EINA_MAGIC_LIST_ACCESSOR);         \\r
+-        return __VA_ARGS__;                                   \\r
++        return ret;                                           \\r
+     }                                                         \\r
+   } while(0)\r
\r
+@@ -224,7 +251,7 @@
+ static Eina_List *\r
+ _eina_list_setup_accounting(Eina_List *list)\r
+ {\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    list->accounting = _eina_list_mempool_accounting_new(list);\r
+    if (!list->accounting) goto on_error;\r
+@@ -267,7 +294,7 @@
+ static Eina_Bool\r
+ eina_list_iterator_next(Eina_Iterator_List *it, void **data)\r
+ {\r
+-   EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE);\r
++   EINA_MAGIC_CHECK_LIST_ITERATOR_RETURN(it, EINA_FALSE);\r
\r
+    if (it->current == NULL) return EINA_FALSE;\r
+    *data = eina_list_data_get(it->current);\r
+@@ -280,7 +307,7 @@
+ static Eina_Bool\r
+ eina_list_iterator_prev(Eina_Iterator_List *it, void **data)\r
+ {\r
+-   EINA_MAGIC_CHECK_LIST_ITERATOR(it, EINA_FALSE);\r
++   EINA_MAGIC_CHECK_LIST_ITERATOR_RETURN(it, EINA_FALSE);\r
\r
+    if (it->current == NULL) return EINA_FALSE;\r
+    *data = eina_list_data_get(it->current);\r
+@@ -293,7 +320,7 @@
+ static Eina_List *\r
+ eina_list_iterator_get_container(Eina_Iterator_List *it)\r
+ {\r
+-   EINA_MAGIC_CHECK_LIST_ITERATOR(it, NULL);\r
++   EINA_MAGIC_CHECK_LIST_ITERATOR_RETURN(it, NULL);\r
\r
+    return (Eina_List *) it->head;\r
+ }\r
+@@ -313,7 +340,7 @@
+    unsigned int middle;\r
+    unsigned int i;\r
\r
+-   EINA_MAGIC_CHECK_LIST_ACCESSOR(it, EINA_FALSE);\r
++   EINA_MAGIC_CHECK_LIST_ACCESSOR_RETURN(it, EINA_FALSE);\r
\r
+    if (idx >= eina_list_count(it->head)) return EINA_FALSE;\r
\r
+@@ -378,7 +405,7 @@
+ static Eina_List *\r
+ eina_list_accessor_get_container(Eina_Accessor_List *it)\r
+ {\r
+-   EINA_MAGIC_CHECK_LIST_ACCESSOR(it, NULL);\r
++   EINA_MAGIC_CHECK_LIST_ACCESSOR_RETURN(it, NULL);\r
\r
+    return (Eina_List *) it->head;\r
+ }\r
+@@ -396,7 +423,7 @@
+ {\r
+    Eina_List *prev = NULL;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    for (; list; list = list->next)\r
+      {\r
+@@ -582,7 +609,7 @@
+       return _eina_list_setup_accounting(new_l);\r
+      }\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    l = list->accounting->last;\r
+    list->accounting->last = new_l;\r
+@@ -637,7 +664,7 @@
\r
+    if (!list) return _eina_list_setup_accounting(new_l);\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    list->prev = new_l;\r
\r
+@@ -690,7 +717,7 @@
+    Eina_List *l;\r
+    void *list_data;\r
\r
+-   if (list) EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   if (list) EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    EINA_LIST_FOREACH(list, l, list_data)\r
+      {\r
+@@ -728,7 +755,7 @@
+    new_l = _eina_list_mempool_list_new(list);\r
+    if (!new_l) return list;\r
\r
+-   EINA_MAGIC_CHECK_LIST(relative, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(relative, NULL);\r
+    new_l->next = relative->next;\r
+    new_l->data = (void *)data;\r
\r
+@@ -790,7 +817,7 @@
+    Eina_List *l;\r
+    void *list_data;\r
\r
+-   if (list) EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   if (list) EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    EINA_LIST_FOREACH(list, l, list_data)\r
+      {\r
+@@ -827,7 +854,7 @@
+    new_l = _eina_list_mempool_list_new(list);\r
+    if (!new_l) return list;\r
\r
+-   EINA_MAGIC_CHECK_LIST(relative, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(relative, NULL);\r
\r
+    new_l->prev = relative->prev;\r
+    new_l->next = relative;\r
+@@ -899,7 +926,7 @@
+ {\r
+    Eina_List *l;\r
\r
+-   if (list) EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   if (list) EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    l = eina_list_data_find_list(list, data);\r
+    return eina_list_remove_list(list, l);\r
+@@ -946,7 +973,7 @@
+    if (!list) return NULL;\r
+    if (!remove_list) return list;\r
\r
+-   EINA_MAGIC_CHECK_LIST(remove_list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(remove_list, NULL);\r
\r
+    if (remove_list->next) remove_list->next->prev = remove_list->prev;\r
+    if (remove_list->prev)\r
+@@ -958,7 +985,7 @@
+      return_l = remove_list->next;\r
+    if (remove_list == remove_list->accounting->last)\r
+      {\r
+-       EINA_MAGIC_CHECK_LIST(list, NULL);\r
++       EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
+        list->accounting->last = remove_list->prev;\r
+      }\r
+    _eina_list_mempool_list_free(remove_list);\r
+@@ -981,7 +1008,7 @@
\r
+    if (!list) return NULL;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    for (l = list; l;)\r
+      {\r
+@@ -1032,8 +1059,8 @@
+    if (move_list == list) return list;\r
+    if (move_list->next == list) return move_list;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
+-   EINA_MAGIC_CHECK_LIST(move_list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(move_list, NULL);\r
\r
+    /* Remove the promoted item from the list. */\r
+    if (!move_list->prev)\r
+@@ -1094,8 +1121,8 @@
+    /* Demoting tail to be tail. */\r
+    if (move_list == list->accounting->last) return list;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
+-   EINA_MAGIC_CHECK_LIST(move_list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(move_list, NULL);\r
\r
+    /* Update pointer list if necessary. */\r
+    if (list == move_list)\r
+@@ -1160,7 +1187,7 @@
+    const Eina_List *l;\r
+    void *list_data;\r
\r
+-   if (list) EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   if (list) EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    EINA_LIST_FOREACH(list, l, list_data)\r
+      {\r
+@@ -1211,7 +1238,7 @@
+    const Eina_List *l;\r
+    unsigned int i;\r
\r
+-   if (list) EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   if (list) EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    /* check for non-existing nodes */\r
+    if ((!list) || (n > (list->accounting->count - 1)))\r
+@@ -1328,7 +1355,7 @@
\r
+    if (!list) return NULL;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    l1 = list;\r
+    l2 = list->accounting->last;\r
+@@ -1372,7 +1399,7 @@
\r
+    if (!list) return NULL;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    lclone = NULL;\r
+    EINA_LIST_FOREACH(list, l, data)\r
+@@ -1405,7 +1432,7 @@
\r
+    if (!list) return NULL;\r
\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    lclone = NULL;\r
+    EINA_LIST_FOREACH(list, l, data)\r
+@@ -1466,7 +1493,7 @@
\r
+    EINA_SAFETY_ON_NULL_RETURN_VAL(func, list);\r
+    if (!list) return NULL;\r
+-   EINA_MAGIC_CHECK_LIST(list, NULL);\r
++   EINA_MAGIC_CHECK_LIST_RETURN(list, NULL);\r
\r
+    /* if the caller specified an invalid size, sort the whole list */\r
+    if ((size == 0) ||\r
+--- ../../src/lib/eina_matrixsparse.c  2010-04-15 06:29:24 +0000
++++ ../../src/lib/eina_matrixsparse_new.c      2010-04-15 06:33:48 +0000
+@@ -66,12 +66,21 @@
+ static const char EINA_MAGIC_MATRIXSPARSE_CELL_ITERATOR_STR[] = "Eina Matrixsparse Cell Iterator";
+-#define EINA_MAGIC_CHECK_MATRIXSPARSE(d, ...)         \
++#define EINA_MAGIC_CHECK_MATRIXSPARSE(d)              \
+   do {                                                        \
+      if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE))       \
+        {                                              \
+         EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE);  \
+-        return __VA_ARGS__;                           \
++        return;                                       \
++       }                                              \
++  } while(0)
++
++#define EINA_MAGIC_CHECK_MATRIXSPARSE_RET(d, ret)     \
++  do {                                                        \
++     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE))       \
++       {                                              \
++        EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE);  \
++        return ret;                                   \
+        }                                              \
+   } while(0)
+@@ -93,12 +102,21 @@
+        }                                                      \
+   } while(0)
+-#define EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(d, ...)                        \
++#define EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(d)                     \
++  do {                                                                        \
++     if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR))      \
++       {                                                              \
++        EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR);         \
++        return;                                                       \
++       }                                                              \
++  } while(0)
++
++#define EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR_RET(d, ret)            \
+   do {                                                                        \
+      if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR))      \
+        {                                                              \
+         EINA_MAGIC_FAIL(d, EINA_MAGIC_MATRIXSPARSE_ITERATOR);         \
+-        return __VA_ARGS__;                                           \
++        return ret;                                                   \
+        }                                                              \
+   } while(0)
+@@ -663,7 +681,7 @@
+ static Eina_Bool
+ _eina_matrixsparse_iterator_next(Eina_Matrixsparse_Iterator *it, void **data)
+ {
+-   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, EINA_FALSE);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR_RET(it, EINA_FALSE);
+    /* do not touch it->idx */
+@@ -683,7 +701,7 @@
+ static Eina_Matrixsparse *
+ _eina_matrixsparse_iterator_get_container(Eina_Matrixsparse_Iterator *it)
+ {
+-   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, NULL);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR_RET(it, NULL);
+    return (Eina_Matrixsparse *)it->m;
+ }
+@@ -699,7 +717,7 @@
+ static Eina_Bool
+ _eina_matrixsparse_iterator_complete_next(Eina_Matrixsparse_Iterator_Complete *it, void **data)
+ {
+-   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, EINA_FALSE);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR_RET(it, EINA_FALSE);
+    if (it->idx.row >= it->m->size.rows)
+      return 0;
+@@ -740,7 +758,7 @@
+ static Eina_Matrixsparse *
+ _eina_matrixsparse_iterator_complete_get_container(Eina_Matrixsparse_Iterator_Complete *it)
+ {
+-   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR(it, NULL);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_ITERATOR_RET(it, NULL);
+    return (Eina_Matrixsparse *)it->m;
+ }
+@@ -993,7 +1011,7 @@
+    void (*free_func)(void *, void *);
+    void *user_data;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(rows > 0, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(cols > 0, 0);
+@@ -1100,7 +1118,7 @@
+ EAPI Eina_Bool
+ eina_matrixsparse_cell_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col, Eina_Matrixsparse_Cell **cell)
+ {
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(cell, 0);
+    *cell = NULL;
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0);
+@@ -1142,7 +1160,7 @@
+ eina_matrixsparse_data_idx_get(const Eina_Matrixsparse *m, unsigned long row, unsigned long col)
+ {
+    Eina_Matrixsparse_Cell *c;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, NULL);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, NULL);
+    c = _eina_matrixsparse_cell_idx_get(m, row, col);
+    if (c) return c->data;
+    else   return NULL;
+@@ -1213,7 +1231,7 @@
+    EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0);
+    EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(cell->parent, 0);
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(cell->parent->parent, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(cell->parent->parent, 0);
+    m = cell->parent->parent;
+@@ -1245,7 +1263,7 @@
+    Eina_Matrixsparse_Cell *cell;
+    if (p_old) *p_old = NULL;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0);
+@@ -1281,7 +1299,7 @@
+ {
+    Eina_Matrixsparse_Cell *cell;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0);
+@@ -1319,7 +1337,7 @@
+ {
+    Eina_Matrixsparse_Row *r;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0);
+    r = _eina_matrixsparse_row_idx_get(m, row);
+@@ -1355,7 +1373,7 @@
+    void (*free_func)(void *, void *);
+    void *user_data;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0);
+    free_func = m->free.func;
+@@ -1410,7 +1428,7 @@
+ {
+    Eina_Matrixsparse_Cell *c;
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(m, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(m, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(row < m->size.rows, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(col < m->size.cols, 0);
+@@ -1442,7 +1460,7 @@
+    EINA_MAGIC_CHECK_MATRIXSPARSE_CELL(cell, 0);
+    EINA_MAGIC_CHECK_MATRIXSPARSE_ROW(cell->parent, 0);
+-   EINA_MAGIC_CHECK_MATRIXSPARSE(cell->parent->parent, 0);
++   EINA_MAGIC_CHECK_MATRIXSPARSE_RET(cell->parent->parent, 0);
+    m = cell->parent->parent;
+--- ../../src/lib/eina_strbuf.c        2010-04-15 06:17:34 +0000
++++ ../../src/lib/eina_strbuf_new.c    2010-04-15 06:47:16 +0000
+@@ -33,12 +33,21 @@
+ static const char EINA_MAGIC_STRBUF_STR[] = "Eina Strbuf";
+-#define EINA_MAGIC_CHECK_STRBUF(d, ...)                               \
++#define EINA_MAGIC_CHECK_STRBUF(d)                            \
+    do {                                                               \
+       if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_STRBUF))          \
+         {                                                     \
+            EINA_MAGIC_FAIL((d), EINA_MAGIC_STRBUF);           \
+-           return __VA_ARGS__;                                \
++           return;                                            \
++        }                                                     \
++   } while (0)
++
++#define EINA_MAGIC_CHECK_STRBUF_RET(d, ret)                   \
++   do {                                                               \
++      if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_STRBUF))          \
++        {                                                     \
++           EINA_MAGIC_FAIL((d), EINA_MAGIC_STRBUF);           \
++           return ret;                                        \
+         }                                                     \
+    } while (0)
+@@ -344,7 +353,7 @@
+    size_t len;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    len = strlen(str);
+    if (EINA_UNLIKELY(!_eina_strbuf_grow(buf, buf->len + len)))
+@@ -372,7 +381,7 @@
+    char *esc;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    esc = eina_str_escape(str);
+    if (EINA_UNLIKELY(!esc))
+@@ -416,7 +425,7 @@
+    size_t len;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    len = strlen(str);
+    if (len > maxlen) len = maxlen;
+@@ -452,7 +461,7 @@
+ eina_strbuf_append_length(Eina_Strbuf *buf, const char *str, size_t length)
+ {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (EINA_UNLIKELY(!_eina_strbuf_grow(buf, buf->len + length)))
+      return EINA_FALSE;
+@@ -481,7 +490,7 @@
+    Eina_Bool ret;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(fmt, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    va_start(args, fmt);
+    len = vasprintf(&str, fmt, args);
+@@ -512,7 +521,7 @@
+    Eina_Bool ret;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(fmt, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    len = vasprintf(&str, fmt, args);
+@@ -544,7 +553,7 @@
+    size_t len;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (pos >= buf->len)
+      return eina_strbuf_append(buf, str);
+@@ -574,7 +583,7 @@
+    char *esc;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    esc = eina_str_escape(str);
+    if (EINA_UNLIKELY(!esc))
+@@ -609,7 +618,7 @@
+    size_t len;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (pos >= buf->len)
+      return eina_strbuf_append_n(buf, str, maxlen);
+@@ -643,7 +652,7 @@
+ eina_strbuf_insert_length(Eina_Strbuf *buf, const char *str, size_t length, size_t pos)
+ {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (pos >= buf->len)
+      return eina_strbuf_append_length(buf, str, length);
+@@ -665,7 +674,7 @@
+ EAPI Eina_Bool
+ eina_strbuf_append_char(Eina_Strbuf *buf, char c)
+ {
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (EINA_UNLIKELY(!_eina_strbuf_grow(buf, buf->len + 1)))
+      return EINA_FALSE;
+@@ -690,7 +699,7 @@
+ EAPI Eina_Bool
+ eina_strbuf_insert_char(Eina_Strbuf *buf, char c, size_t pos)
+ {
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (pos >= buf->len)
+      return eina_strbuf_append_char(buf, c);
+@@ -715,7 +724,7 @@
+    Eina_Bool ret;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(fmt, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    va_start(args, pos);
+    len = vasprintf(&str, fmt, args);
+@@ -745,7 +754,7 @@
+    Eina_Bool ret;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(fmt, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    len = vasprintf(&str, fmt, args);
+@@ -776,7 +785,7 @@
+ {
+    size_t remove_len, tail_len;
+-   EINA_MAGIC_CHECK_STRBUF(buf, EINA_FALSE);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, EINA_FALSE);
+    if (end >= buf->len)
+      end = buf->len;
+@@ -813,7 +822,7 @@
+ EAPI const char *
+ eina_strbuf_string_get(const Eina_Strbuf *buf)
+ {
+-   EINA_MAGIC_CHECK_STRBUF(buf, NULL);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, NULL);
+    return buf->buf;
+ }
+@@ -836,7 +845,7 @@
+ {
+    char *ret;
+-   EINA_MAGIC_CHECK_STRBUF(buf, NULL);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, NULL);
+    ret = buf->buf;
+    // TODO: Check return value and do something clever
+@@ -855,7 +864,7 @@
+ EAPI size_t
+ eina_strbuf_length_get(const Eina_Strbuf *buf)
+ {
+-   EINA_MAGIC_CHECK_STRBUF(buf, 0);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, 0);
+    return buf->len;
+ }
+@@ -881,7 +890,7 @@
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, EINA_FALSE);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(with, EINA_FALSE);
+-   EINA_MAGIC_CHECK_STRBUF(buf, 0);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, 0);
+    if (n == 0)
+      return EINA_FALSE;
+@@ -939,7 +948,7 @@
+    EINA_SAFETY_ON_NULL_RETURN_VAL(str, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(with, 0);
+-   EINA_MAGIC_CHECK_STRBUF(buf, 0);
++   EINA_MAGIC_CHECK_STRBUF_RET(buf, 0);
+    spos = strstr(buf->buf, str);
+    if (!spos || *spos == '\0')
+--- ../../src/lib/eina_stringshare.c   2010-04-15 06:53:51 +0000
++++ ../../src/lib/eina_stringshare_new.c       2010-04-15 06:35:44 +0000
+@@ -104,13 +104,23 @@
+ static const char EINA_MAGIC_STRINGSHARE_NODE_STR[] = "Eina Stringshare Node";\r
\r
\r
+-#define EINA_MAGIC_CHECK_STRINGSHARE_HEAD(d, unlock, ...)     \\r
++#define EINA_MAGIC_CHECK_STRINGSHARE_HEAD(d, unlock)  \\r
+   do {                                                                \\r
+     if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_STRINGSHARE_HEAD))  \\r
+     {                                                         \\r
+         EINA_MAGIC_FAIL((d), EINA_MAGIC_STRINGSHARE_HEAD);    \\r
+         unlock;                                                       \\r
+-        return __VA_ARGS__;                                   \\r
++        return;                                                       \\r
++    }                                                         \\r
++  } while (0)\r
++\r
++#define EINA_MAGIC_CHECK_STRINGSHARE_HEAD_RET(d, unlock, ret) \\r
++  do {                                                                \\r
++    if (!EINA_MAGIC_CHECK((d), EINA_MAGIC_STRINGSHARE_HEAD))  \\r
++    {                                                         \\r
++        EINA_MAGIC_FAIL((d), EINA_MAGIC_STRINGSHARE_HEAD);    \\r
++        unlock;                                                       \\r
++        return ret;                                           \\r
+     }                                                         \\r
+   } while (0)\r
\r
+@@ -371,7 +381,7 @@
+ static int\r
+ _eina_stringshare_cmp(const Eina_Stringshare_Head *ed, const int *hash, __UNUSED__ int length, __UNUSED__ void *data)\r
+ {\r
+-   EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed, , 0);\r
++   EINA_MAGIC_CHECK_STRINGSHARE_HEAD_RET(ed, , 0);\r
\r
+    return ed->hash - *hash;\r
+ }\r
+@@ -379,8 +389,8 @@
+ static Eina_Rbtree_Direction\r
+ _eina_stringshare_node(const Eina_Stringshare_Head *left, const Eina_Stringshare_Head *right, __UNUSED__ void *data)\r
+ {\r
+-   EINA_MAGIC_CHECK_STRINGSHARE_HEAD(left, , 0);\r
+-   EINA_MAGIC_CHECK_STRINGSHARE_HEAD(right, , 0);\r
++   EINA_MAGIC_CHECK_STRINGSHARE_HEAD_RET(left, , 0);\r
++   EINA_MAGIC_CHECK_STRINGSHARE_HEAD_RET(right, , 0);\r
\r
+    if (left->hash - right->hash < 0)\r
+      return EINA_RBTREE_LEFT;\r
+@@ -1138,7 +1148,7 @@
+       return s;\r
+      }\r
\r
+-   EINA_MAGIC_CHECK_STRINGSHARE_HEAD(ed, STRINGSHARE_UNLOCK_BIG(), NULL);\r
++   EINA_MAGIC_CHECK_STRINGSHARE_HEAD_RET(ed, STRINGSHARE_UNLOCK_BIG(), NULL);\r
\r
+    el = _eina_stringshare_head_find(ed, str, slen);\r
+    if (el)\r
+--- ../../src/lib/eina_tiler.c 2010-04-15 06:11:15 +0000
++++ ../../src/lib/eina_tiler_new.c     2010-04-14 16:50:29 +0000
+@@ -110,22 +110,40 @@
+       splitter_t splitter;
+ };
+-#define EINA_MAGIC_CHECK_TILER(d, ...)                                        \
++#define EINA_MAGIC_CHECK_TILER(d)                                     \
+       do {                                                            \
+               if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER))             \
+               {                                                       \
+                       EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER);           \
+-                      return __VA_ARGS__;                             \
++                      return;                                         \
+               }                                                       \
+       } while(0)
++#define EINA_MAGIC_CHECK_TILER_RETURN(d,ret)                          \
++      do {                                                            \
++              if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER))             \
++              {                                                       \
++                      EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER);           \
++                      return ret;                                     \
++              }                                                       \
++      } while(0)
++
++
++#define EINA_MAGIC_CHECK_TILER_ITERATOR(d)                            \
++      do {                                                            \
++              if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER_ITERATOR))    \
++              {                                                       \
++                      EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER_ITERATOR);  \
++                      return;                                         \
++              }                                                       \
++      } while(0)
+-#define EINA_MAGIC_CHECK_TILER_ITERATOR(d, ...)                               \
++#define EINA_MAGIC_CHECK_TILER_ITERATOR_RETURN(d,ret)                 \
+       do {                                                            \
+               if (!EINA_MAGIC_CHECK(d, EINA_MAGIC_TILER_ITERATOR))    \
+               {                                                       \
+                       EINA_MAGIC_FAIL(d, EINA_MAGIC_TILER_ITERATOR);  \
+-                      return __VA_ARGS__;                             \
++                      return ret;                                     \
+               }                                                       \
+       } while(0)
+@@ -1081,7 +1099,7 @@
+ static void * _iterator_get_container(Eina_Iterator_Tiler *it)
+ {
+-      EINA_MAGIC_CHECK_TILER_ITERATOR(it, NULL);
++      EINA_MAGIC_CHECK_TILER_ITERATOR_RETURN(it, NULL);
+       return (void *)it->tiler;
+ }
+@@ -1134,7 +1152,7 @@
+ {
+       Eina_Rectangle tmp;
+-      EINA_MAGIC_CHECK_TILER(t, EINA_FALSE);
++      EINA_MAGIC_CHECK_TILER_RETURN(t, EINA_FALSE);
+       if ((r->w <= 0) || (r->h <= 0))
+               return EINA_FALSE;
+       tmp = *r;
+@@ -1171,7 +1189,7 @@
+ {
+       Eina_Iterator_Tiler *it;
+-      EINA_MAGIC_CHECK_TILER(t, NULL);
++      EINA_MAGIC_CHECK_TILER_RETURN(t, NULL);
+       it = calloc(1, sizeof (Eina_Iterator_Tiler));
+       if (!it) return NULL;
index f4044e9..6a01093 100644 (file)
@@ -13,6 +13,7 @@ if not exist %EXT_DIR% (
 rem Check for basic requirements for Visual Studio 2008\r
 if "%VS90COMNTOOLS%" == "" (\r
        echo ERROR: Microsoft Visual Studio 2008 is not installed.\r
+       echo ERROR: Try to launch Microsoft Visual Studio 2005.\r
        pause\r
        goto NOVS9\r
 )\r
@@ -34,6 +35,12 @@ if "%VS80COMNTOOLS%" == "" (
 set PROJECT_TYPE=vs8\r
 set VSCOMMONTOOLS=%VS80COMNTOOLS%vsvars32.bat\r
 \r
+rem Patching Eina\r
+patch.exe --binary -p1 < %cd%\patch\eina.diff\r
+echo INFO: Eina patched.\r
+\r
+pause\r
+\r
 :STARTVS\r
 \r
 rem Setup common Win32 environment variables\r