Enlightenment CVS committal Author : raster Project : e17 Module : libs/edje
Dir : e17/libs/edje/src/lib Modified Files: edje_cache.c edje_calc.c edje_load.c edje_private.h edje_text.c edje_textblock_styles.c Log Message: revert cedrics patch for font stuff - it breaks textblocks =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_cache.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- edje_cache.c 2 Jul 2006 06:18:18 -0000 1.7 +++ edje_cache.c 3 Jul 2006 06:15:05 -0000 1.8 @@ -63,32 +63,6 @@ return edc; } -static int -_edje_font_hash (Edje_File *edf) -{ - int count = 0; - - if (edf->font_dir) - { - Evas_List *l; - for (l = edf->font_dir->entries; l; l = evas_list_next (l)) - { - Edje_Font_Directory_Entry *fnt = l->data; - int length = strlen (fnt->entry) + 7; - char *tmp = alloca (length); - - snprintf (tmp, length, "fonts/%s", fnt->entry); - fnt->path = evas_stringshare_add (tmp); - evas_stringshare_del (fnt->entry); - fnt->entry = fnt->path + 6; - edf->font_hash = evas_hash_direct_add (edf->font_hash, fnt->entry, fnt); - - count++; - } - } - return count; -} - static Edje_File * _edje_file_open(const char *file, const char *coll, int *error_ret, Edje_Part_Collection **edc_ret) { @@ -129,19 +103,18 @@ _edje_textblock_style_parse_and_fix(edf); - if (coll) + if (!coll) { - edc = _edje_file_coll_open(edf, ef, coll); - if (!edc) - { - *error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION; - } - if (edc_ret) *edc_ret = edc; + eet_close(ef); + return edf; } - - edf->font_hash = NULL; - _edje_font_hash (edf); + edc = _edje_file_coll_open(edf, ef, coll); + if (!edc) + { + *error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION; + } + if (edc_ret) *edc_ret = edc; eet_close(ef); return edf; =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_calc.c,v retrieving revision 1.79 retrieving revision 1.80 diff -u -3 -r1.79 -r1.80 --- edje_calc.c 2 Jul 2006 06:18:18 -0000 1.79 +++ edje_calc.c 3 Jul 2006 06:15:05 -0000 1.80 @@ -592,14 +592,24 @@ if (!text) text = ""; /* check if the font is embedded in the .eet */ - if (ed->file->font_hash) + /* FIXME: we should cache this result */ + if (ed->file->font_dir) { - Edje_Font_Directory_Entry *fnt = evas_hash_find (ed->file->font_hash, font); - - if (fnt) + Evas_List *l; + + for (l = ed->file->font_dir->entries; l; l = l->next) { - font = fnt->path; - inlined_font = 1; + Edje_Font_Directory_Entry *fnt = l->data; + + if ((fnt->entry) && (!strcmp(fnt->entry, font))) + { + strcpy(buf, "fonts/"); + strncpy(buf + 6, font, sizeof(buf) - 7); + buf[sizeof(buf) - 1] = 0; + font = buf; + inlined_font = 1; + break; + } } } if (inlined_font) evas_object_text_font_source_set(ep->object, ed->path); =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_load.c,v retrieving revision 1.85 retrieving revision 1.86 diff -u -3 -r1.85 -r1.86 --- edje_load.c 2 Jul 2006 06:18:18 -0000 1.85 +++ edje_load.c 3 Jul 2006 06:15:05 -0000 1.86 @@ -612,8 +612,7 @@ fe = edf->font_dir->entries->data; edf->font_dir->entries = evas_list_remove(edf->font_dir->entries, fe); - edf->font_hash = evas_hash_del (edf->font_hash, fe->entry, NULL); - if (fe->path) evas_stringshare_del(fe->path); + if (fe->entry) evas_stringshare_del(fe->entry); free(fe); } free(edf->font_dir); =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v retrieving revision 1.109 retrieving revision 1.110 diff -u -3 -r1.109 -r1.110 --- edje_private.h 2 Jul 2006 06:18:18 -0000 1.109 +++ edje_private.h 3 Jul 2006 06:15:05 -0000 1.110 @@ -222,7 +222,6 @@ int feature_ver; Evas_Hash *collection_hash; - Evas_Hash *font_hash; Evas_List *collection_cache; }; @@ -260,7 +259,6 @@ struct _Edje_Font_Directory_Entry { char *entry; /* the name of the font */ - char *path; }; =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_text.c,v retrieving revision 1.55 retrieving revision 1.56 diff -u -3 -r1.55 -r1.56 --- edje_text.c 2 Jul 2006 06:18:18 -0000 1.55 +++ edje_text.c 3 Jul 2006 06:15:05 -0000 1.56 @@ -284,14 +284,24 @@ if (!font) font = ""; /* check if the font is embedded in the .eet */ - if (ed->file->font_hash) + /* FIXME: we should cache this result */ + if (ed->file->font_dir) { - Edje_Font_Directory_Entry *fnt = evas_hash_find (ed->file->font_hash, font); - - if (fnt) + Evas_List *l; + + for (l = ed->file->font_dir->entries; l; l = l->next) { - font = fnt->path; - inlined_font = 1; + Edje_Font_Directory_Entry *fnt = l->data; + + if ((fnt->entry) && (!strcmp(fnt->entry, font))) + { + strcpy(font_buf, "fonts/"); + strncpy(font_buf + 6, font, sizeof(font_buf) - 7); + font_buf[sizeof(font_buf) - 1] = 0; + font = font_buf; + inlined_font = 1; + break; + } } } =================================================================== RCS file: /cvs/e/e17/libs/edje/src/lib/edje_textblock_styles.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- edje_textblock_styles.c 2 Jul 2006 06:18:18 -0000 1.8 +++ edje_textblock_styles.c 3 Jul 2006 06:15:05 -0000 1.9 @@ -8,14 +8,17 @@ static int _edje_font_is_embedded(Edje_File *edf, char *font) { - if (!edf->font_hash) return 0; - - Edje_Font_Directory_Entry *fnt = evas_hash_find (edf->font_hash, font); + Evas_List *l; - if (fnt) - return 1; - - return 0; + if (!edf->font_dir) return 0; + for (l = edf->font_dir->entries; l; l = l->next) + { + Edje_Font_Directory_Entry *fnt = l->data; + + if ((fnt->entry) && (!strcmp(fnt->entry, font))) + return 1; + } + return 1; } #if 0 Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs