From: <ra...@ra...> - 2001-03-20 23:27:23
|
On 20 Mar, enl...@li... scribbled: > Enlightenment CVS committal > > Author : cpk > Project : e17 > Module : libs/edb > > Dir : e17/libs/edb/tools > > > Modified Files: > edb_ed.c > > > Log Message: > I've added two new calls to the Edb convencience calls: e_db_bytestr_set > and e_db_bytestr_get. The purpose is to be able to handle strings that > contain all kinds of values, just like plain data, but still of datatype > "str". I needed this because many magic definitions are basically > normal strings, with a few escaped values. > > I could have stored escaped strings of course, but then efsd would need > to unescape them each time, whereas now a simple memcmp works fine. why? edb accepts all stirngs as "C" strings - ie NULL terminated - ti doesnt parse them or do anything funky... the only thing u can thave is a NULL character.... thats the limitation.. ? > =================================================================== > RCS file: /cvsroot/enlightenment/e17/libs/edb/tools/edb_ed.c,v > retrieving revision 1.9 > retrieving revision 1.10 > diff -u -3 -r1.9 -r1.10 > --- edb_ed.c 2001/03/20 22:24:45 1.9 > +++ edb_ed.c 2001/03/20 23:17:14 1.10 > @@ -12,10 +12,10 @@ > return strcmp(*(char **)v1, *(char **)v2); > } > > -static void > +static int > unescape_string(char *str) > { > - int i; > + int i, len = 0; > unsigned char val = 0; > char c; > char *s; > @@ -23,6 +23,7 @@ > for (s = str ; *str != '\0'; str++, s++) > { > val = 0; > + len++; > > if (*str == '\\') > { > @@ -133,6 +134,7 @@ > } > > *s = '\0'; > + return len; > } > > > @@ -221,8 +223,10 @@ > } > else if (!strcmp(type, "str")) > { > - unescape_string(data); > - e_db_str_set(db, key, data); > + int len; > + > + len = unescape_string(data); > + e_db_bytestr_set(db, key, data, len); > } > else if (!strcmp(type, "float")) > { > > > > _______________________________________________ > Enlightenment-cvs mailing list > Enl...@li... > http://lists.sourceforge.net/lists/listinfo/enlightenment-cvs -- --------------- Codito, ergo sum - "I code, therefore I am" -------------------- The Rasterman (Carsten Haitzler) ra...@ra... ra...@va... VA Linux Systems Mobile Phone: +1 408 887 3163 Work Phone: +1 510 687 7069 |