update changelog :D
Vincent
On Tue, 2 Jun 2009, Enlightenment SVN wrote:
> Log:
> * eet_node: Fix API.
>
> Author: cedric
> Date: 2009-06-02 09:24:28 -0700 (Tue, 02 Jun 2009)
> New Revision: 40873
>
> Modified:
> trunk/eet/src/lib/Eet.h trunk/eet/src/lib/eet_data.c trunk/eet/src/lib/eet_node.c
>
> Modified: trunk/eet/src/lib/Eet.h
> ===================================================================
> --- trunk/eet/src/lib/Eet.h 2009-06-01 15:07:12 UTC (rev 40872)
> +++ trunk/eet/src/lib/Eet.h 2009-06-02 16:24:28 UTC (rev 40873)
> @@ -1367,13 +1367,14 @@
> EAPI Eet_Node *eet_node_unsigned_char_new(const char *name, unsigned char uc);
> EAPI Eet_Node *eet_node_unsigned_short_new(const char *name, unsigned short us);
> EAPI Eet_Node *eet_node_unsigned_int_new(const char *name, unsigned int ui);
> + EAPI Eet_Node *eet_node_unsigned_long_long_new(const char *name, unsigned long long l);
> EAPI Eet_Node *eet_node_string_new(const char *name, const char *str);
> EAPI Eet_Node *eet_node_inlined_string_new(const char *name, const char *str);
> EAPI Eet_Node *eet_node_null_new(const char *name);
> EAPI Eet_Node *eet_node_list_new(const char *name, Eina_List *nodes);
> EAPI Eet_Node *eet_node_array_new(const char *name, int count, Eina_List *nodes);
> - EAPI Eet_Node *eet_node_var_array_new(const char *name, int count, Eina_List *nodes);
> - EAPI Eet_Node *eet_node_hash_new(const char *name, const char *key, Eina_List *nodes);
> + EAPI Eet_Node *eet_node_var_array_new(const char *name, Eina_List *nodes);
> + EAPI Eet_Node *eet_node_hash_new(const char *name, const char *key, Eet_Node *node);
> EAPI Eet_Node *eet_node_struct_new(const char *name, Eina_List *nodes);
> EAPI void eet_node_del(Eet_Node *n);
>
>
> Modified: trunk/eet/src/lib/eet_data.c
> ===================================================================
> --- trunk/eet/src/lib/eet_data.c 2009-06-01 15:07:12 UTC (rev 40872)
> +++ trunk/eet/src/lib/eet_data.c 2009-06-02 16:24:28 UTC (rev 40873)
> @@ -2297,6 +2297,7 @@
> /* advance to next chunk */
> NEXT_CHUNK(p, size, echnk, ed);
> }
> +
> _eet_freelist_all_unref(context);
> if (dumpfunc)
> {
>
> Modified: trunk/eet/src/lib/eet_node.c
> ===================================================================
> --- trunk/eet/src/lib/eet_node.c 2009-06-01 15:07:12 UTC (rev 40872)
> +++ trunk/eet/src/lib/eet_node.c 2009-06-02 16:24:28 UTC (rev 40873)
> @@ -68,6 +68,7 @@
> EET_NODE_NEW(EET_T_UCHAR, unsigned_char, uc, unsigned char);
> EET_NODE_NEW(EET_T_USHORT, unsigned_short, us, unsigned short);
> EET_NODE_NEW(EET_T_UINT, unsigned_int, ui, unsigned int);
> +EET_NODE_NEW(EET_T_ULONG_LONG, unsigned_long_long, ul, unsigned long long);
> EET_NODE_STR_NEW(EET_T_STRING, string, str, const char *);
> EET_NODE_STR_NEW(EET_T_INLINED_STRING, inlined_string, str, const char *);
>
> @@ -113,14 +114,14 @@
> }
>
> Eet_Node *
> -eet_node_var_array_new(const char *name, int count, Eina_List *nodes)
> +eet_node_var_array_new(const char *name, Eina_List *nodes)
> {
> Eet_Node *n;
>
> n = _eet_node_new(name, EET_G_VAR_ARRAY);
> if (!n) return NULL;
>
> - n->count = count;
> + n->count = eina_list_count(nodes);
>
> _eet_node_append(n, nodes);
>
> @@ -128,14 +129,18 @@
> }
>
> Eet_Node *
> -eet_node_hash_new(const char *name, const char *key, Eina_List *nodes)
> +eet_node_hash_new(const char *name, const char *key, Eet_Node *node)
> {
> + Eina_List *nodes;
> Eet_Node *n;
>
> + if (!node) return NULL;
> +
> n = _eet_node_new(name, EET_G_HASH);
> if (!n) return NULL;
>
> n->key = eina_stringshare_add(key);
> + nodes = eina_list_append(NULL, node);
>
> _eet_node_append(n, nodes);
>
> @@ -195,3 +200,161 @@
> eina_stringshare_del(n->name);
> free(n);
> }
> +
> +
> +static const char *eet_node_dump_g_name[6] = {
> + "struct",
> + "array",
> + "var_array",
> + "list",
> + "hash",
> + "???"
> +};
> +
> +static const char *eet_node_dump_t_name[14][2] = {
> + { "???: ", "???" },
> + { "char: ", "%hhi" },
> + { "short: ", "%hi" },
> + { "int: ", "%i" },
> + { "long_long: ", "%lli" },
> + { "float: ", "%1.25f" },
> + { "double: ", "%1.25f" },
> + { "uchar: ", "%hhu" },
> + { "ushort: ", "%i" },
> + { "uint: ", "%u" },
> + { "ulong_long: ", "%llu" },
> + { "null", "" }
> +};
> +
> +static void
> +eet_node_dump_level(int level, void (*dumpfunc) (void *data, const char *str), void *dumpdata)
> +{
> + int i;
> +
> + for (i = 0; i < level; i++) dumpfunc(dumpdata, " ");
> +}
> +
> +static char *
> +eet_node_string_escape(const char *str)
> +{
> + char *s, *sp;
> + const char *strp;
> + int sz = 0;
> +
> + for (strp = str; *strp; strp++)
> + {
> + if (*strp == '\"') sz += 2;
> + else if (*strp == '\\') sz += 2;
> + else sz += 1;
> + }
> + s = malloc(sz + 1);
> + if (!s) return NULL;
> + for (strp = str, sp = s; *strp; strp++, sp++)
> + {
> + if (*strp == '\"')
> + {
> + *sp = '\\';
> + sp++;
> + }
> + else if (*strp == '\\')
> + {
> + *sp = '\\';
> + sp++;
> + }
> + *sp = *strp;
> + }
> + *sp = 0;
> + return s;
> +}
> +
> +static void
> +eet_node_dump_string_escape(void *dumpdata, void dumpfunc(void *data, const char *str), const char *str)
> +{
> + char *s;
> +
> + s = eet_node_string_escape(str);
> + if (!s) return ;
> +
> + dumpfunc(dumpdata, s);
> + free(s);
> +}
> +
> +static void
> +eet_node_dump_simple_type(Eet_Node *n, int level,
> + void (*dumpfunc) (void *data, const char *str), void *dumpdata)
> +{
> + const char *type_name = NULL;
> + char tbuf[256];
> +
> + eet_node_dump_level(level, dumpfunc, dumpdata);
> + dumpfunc(dumpdata, " value \"");
> + eet_node_dump_string_escape(dumpdata, dumpfunc, n->name);
> + dumpfunc(dumpdata, "\" ");
> +
> +#define EET_T_TYPE(Eet_Type, Type) \
> + case Eet_Type: \
> + { \
> + dumpfunc(dumpdata, eet_node_dump_t_name[Eet_Type][0]); \
> + snprintf(tbuf, sizeof (tbuf), eet_node_dump_t_name[Eet_Type][1], n->data.Type); \
> + dumpfunc(dumpdata, tbuf); \
> + break; \
> + }
> +
> + switch (n->type)
> + {
> + EET_T_TYPE(EET_T_CHAR, c);
> + EET_T_TYPE(EET_T_SHORT, s);
> + EET_T_TYPE(EET_T_INT, i);
> + EET_T_TYPE(EET_T_LONG_LONG, l);
> + EET_T_TYPE(EET_T_FLOAT, f);
> + EET_T_TYPE(EET_T_DOUBLE, d);
> + EET_T_TYPE(EET_T_UCHAR, uc);
> + EET_T_TYPE(EET_T_USHORT, us);
> + EET_T_TYPE(EET_T_UINT, ui);
> + EET_T_TYPE(EET_T_ULONG_LONG, ul);
> + case EET_T_INLINED_STRING:
> + type_name = "inlined: \"";
> + case EET_T_STRING:
> + if (!type_name) type_name = "string: \"";
> +
> + dumpfunc(dumpdata, type_name);
> + eet_node_dump_string_escape(dumpdata, dumpfunc, n->data.str);
> + dumpfunc(dumpdata, "\"");
> + break;
> + case EET_T_NULL:
> + dumpfunc(dumpdata, "null");
> + break;
> + default:
> + dumpfunc(dumpdata, "???: ???");
> + break;
> + }
> +
> + dumpfunc(dumpdata, ";\n");
> +}
> +
> +void
> +eet_node_dump(Eet_Node *n, int dumplevel, void (*dumpfunc) (void *data, const char *str), void *dumpdata)
> +{
> + switch (n->type)
> + {
> + case EET_G_HASH:
> + case EET_G_UNKNOWN:
> + case EET_G_VAR_ARRAY:
> + case EET_G_ARRAY:
> + case EET_G_LIST:
> + break;
> + case EET_T_STRING:
> + case EET_T_INLINED_STRING:
> + case EET_T_CHAR:
> + case EET_T_SHORT:
> + case EET_T_INT:
> + case EET_T_LONG_LONG:
> + case EET_T_FLOAT:
> + case EET_T_DOUBLE:
> + case EET_T_UCHAR:
> + case EET_T_USHORT:
> + case EET_T_UINT:
> + eet_node_dump_simple_type(n, dumplevel, dumpfunc, dumpdata);
> + break;
> + }
> +}
>
>
> ------------------------------------------------------------------------------
> OpenSolaris 2009.06 is a cutting edge operating system for enterprises
> looking to deploy the next generation of Solaris that includes the latest
> innovations from Sun and the OpenSource community. Download a copy and
> enjoy capabilities such as Networking, Storage and Virtualization.
> Go to: http://p.sf.net/sfu/opensolaris-get
> _______________________________________________
> enlightenment-svn mailing list
> enlightenment-svn@...
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
>
> --
> Ce message a été vérifié par MailScanner
> pour des virus ou des polluriels et rien de
> suspect n'a été trouvé.
> Message délivré par le serveur de messagerie de l'Université d'Evry.
>
>
|