Enlightenment CVS committal Author : leviathan Project : e17 Module : libs/engrave
Dir : e17/libs/engrave/src/lib Modified Files: engrave.y engrave_parse.c engrave_parse.h engrave_spectrum.c engrave_spectrum.h Log Message: A better way to parse spectrums, don't depend on name being first to create the struct =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave.y,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- engrave.y 29 Dec 2006 12:55:14 -0000 1.17 +++ engrave.y 29 Dec 2006 14:12:12 -0000 1.18 @@ -91,7 +91,10 @@ | spectra_statement spectrum ; -spectrum: SPECTRUM OPEN_BRACE { section = SPECTRUM; } spectrum_statement CLOSE_BRACE semicolon_maybe { section = SPECTRA; } +spectrum: SPECTRUM OPEN_BRACE { + section = SPECTRUM; + engrave_parse_spectrum(); + } spectrum_statement CLOSE_BRACE semicolon_maybe { section = SPECTRA; } ; spectrum_statement: /* blank */ =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_parse.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- engrave_parse.c 28 Dec 2006 18:22:56 -0000 1.15 +++ engrave_parse.c 29 Dec 2006 14:12:12 -0000 1.16 @@ -86,12 +86,20 @@ } void -engrave_parse_spectrum_name(char *name) +engrave_parse_spectrum() { Engrave_Spectrum *es; - es = engrave_spectrum_new(name); + es = engrave_spectrum_new(); engrave_file_spectrum_add(engrave_file, es); engrave_spectrum_parent_set(es, engrave_file); +} + +void +engrave_parse_spectrum_name(char *name) +{ + Engrave_Spectrum *es; + es = engrave_file_spectrum_last_get(engrave_file); + engrave_spectrum_name_set(es, name); } void =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_parse.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- engrave_parse.h 28 Dec 2006 18:22:56 -0000 1.7 +++ engrave_parse.h 29 Dec 2006 14:12:12 -0000 1.8 @@ -21,6 +21,7 @@ void engrave_parse_style_base(char * base); void engrave_parse_style_tag(char * key, char * val); +void engrave_parse_spectrum(); void engrave_parse_spectrum_name(char * name); void engrave_parse_spectrum_color(int r, int g, int b, int a, int d); =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_spectrum.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- engrave_spectrum.c 28 Dec 2006 18:22:56 -0000 1.1 +++ engrave_spectrum.c 29 Dec 2006 14:12:12 -0000 1.2 @@ -9,13 +9,13 @@ * @return Returns a pointer to a newly allocated object on success, or NULL */ EAPI Engrave_Spectrum * -engrave_spectrum_new(const char *name) +engrave_spectrum_new() { Engrave_Spectrum *es; es = NEW(Engrave_Spectrum, 1); if (!es) return NULL; - es->name = (name ? strdup(name) : NULL); + es->name = NULL; es->parent = NULL; es->colors = NULL; return es; @@ -123,6 +123,20 @@ { if (!es || !parent) return; es->parent = parent; +} + +/** + * engrave_spectrum_name_set - sets the name of the Engrave_Spectrum object + * @param es: The spectrum object + * @param name: The name to set + * + * @return Returns no value + */ +EAPI void +engrave_spectrum_name_set(Engrave_Spectrum *es, const char * name) +{ + if (!es) return; + if (name) es->name = strdup(name); } /** =================================================================== RCS file: /cvs/e/e17/libs/engrave/src/lib/engrave_spectrum.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- engrave_spectrum.h 28 Dec 2006 18:22:56 -0000 1.1 +++ engrave_spectrum.h 29 Dec 2006 14:12:12 -0000 1.2 @@ -37,7 +37,7 @@ int d; }; -EAPI Engrave_Spectrum *engrave_spectrum_new(const char *name); +EAPI Engrave_Spectrum *engrave_spectrum_new(); EAPI void engrave_spectrum_free(Engrave_Spectrum *es); EAPI Engrave_Spectrum_Color *engrave_spectrum_color_new(int r, int g, int b, int a, int d); @@ -49,6 +49,7 @@ EAPI void engrave_spectrum_color_del(Engrave_Spectrum *spec, Engrave_Spectrum_Color * col); EAPI const char * engrave_spectrum_name_get(Engrave_Spectrum *es); +EAPI void engrave_spectrum_name_set(Engrave_Spectrum *es, const char *name); EAPI int engrave_spectrum_color_count(Engrave_Spectrum *es); EAPI Engrave_Spectrum_Color * engrave_spectrum_color_nth(Engrave_Spectrum *es, int n); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs