r13707 jmb - in /trunk/netsurf/css: css.c internal.h select.c

netsurf at semichrome.net netsurf at semichrome.net
Sun Mar 25 20:17:51 BST 2012


Author: jmb
Date: Sun Mar 25 14:17:51 2012
New Revision: 13707

URL: http://source.netsurf-browser.org?rev=13707&view=rev
Log:
Make vertical align hint less braindead

Modified:
    trunk/netsurf/css/css.c
    trunk/netsurf/css/internal.h
    trunk/netsurf/css/select.c

Modified: trunk/netsurf/css/css.c
URL: http://source.netsurf-browser.org/trunk/netsurf/css/css.c?rev=13707&r1=13706&r2=13707&view=diff
==============================================================================
--- trunk/netsurf/css/css.c (original)
+++ trunk/netsurf/css/css.c Sun Mar 25 14:17:51 2012
@@ -89,6 +89,7 @@
 dom_string *nscss_dom_string_align;
 dom_string *nscss_dom_string_applet;
 dom_string *nscss_dom_string_background;
+dom_string *nscss_dom_string_baseline;
 dom_string *nscss_dom_string_bgcolor;
 dom_string *nscss_dom_string_body;
 dom_string *nscss_dom_string_bordercolor;
@@ -97,6 +98,7 @@
 dom_string *nscss_dom_string_cellpadding;
 dom_string *nscss_dom_string_cellspacing;
 dom_string *nscss_dom_string_center;
+dom_string *nscss_dom_string_col;
 dom_string *nscss_dom_string_color;
 dom_string *nscss_dom_string_cols;
 dom_string *nscss_dom_string_div;
@@ -130,9 +132,11 @@
 dom_string *nscss_dom_string_td;
 dom_string *nscss_dom_string_text;
 dom_string *nscss_dom_string_textarea;
+dom_string *nscss_dom_string_texttop;
 dom_string *nscss_dom_string_tfoot;
 dom_string *nscss_dom_string_th;
 dom_string *nscss_dom_string_thead;
+dom_string *nscss_dom_string_top;
 dom_string *nscss_dom_string_tr;
 dom_string *nscss_dom_string_type;
 dom_string *nscss_dom_string_valign;
@@ -316,7 +320,7 @@
 /**
  * Convert CSS data ready for use
  *
- * \param c         CSS data to convert
+ * \param c  CSS data to convert
  * \return CSS error
  */
 css_error nscss_convert_css_data(struct content_css_data *c)
@@ -833,62 +837,66 @@
 		}							\
 	} while (0)							\
 
-        CSS_DOM_STRING_UNREF(a);
-        CSS_DOM_STRING_UNREF(abscenter);
-        CSS_DOM_STRING_UNREF(absmiddle);
-        CSS_DOM_STRING_UNREF(align);
-        CSS_DOM_STRING_UNREF(applet);
-        CSS_DOM_STRING_UNREF(background);
-        CSS_DOM_STRING_UNREF(bgcolor);
-        CSS_DOM_STRING_UNREF(body);
-        CSS_DOM_STRING_UNREF(bordercolor);
-        CSS_DOM_STRING_UNREF(bottom);
-        CSS_DOM_STRING_UNREF(caption);
-        CSS_DOM_STRING_UNREF(cellpadding);
-        CSS_DOM_STRING_UNREF(cellspacing);
-        CSS_DOM_STRING_UNREF(center);
-        CSS_DOM_STRING_UNREF(color);
-        CSS_DOM_STRING_UNREF(cols);
-        CSS_DOM_STRING_UNREF(div);
-        CSS_DOM_STRING_UNREF(embed);
-        CSS_DOM_STRING_UNREF(font);
-        CSS_DOM_STRING_UNREF(h1);
-        CSS_DOM_STRING_UNREF(h2);
-        CSS_DOM_STRING_UNREF(h3);
-        CSS_DOM_STRING_UNREF(h4);
-        CSS_DOM_STRING_UNREF(h5);
-        CSS_DOM_STRING_UNREF(h6);
-        CSS_DOM_STRING_UNREF(height);
-        CSS_DOM_STRING_UNREF(hr);
-        CSS_DOM_STRING_UNREF(href);
-        CSS_DOM_STRING_UNREF(hspace);
-        CSS_DOM_STRING_UNREF(iframe);
-        CSS_DOM_STRING_UNREF(img);
-        CSS_DOM_STRING_UNREF(input);
-        CSS_DOM_STRING_UNREF(justify);
-        CSS_DOM_STRING_UNREF(left);
-        CSS_DOM_STRING_UNREF(link);
-        CSS_DOM_STRING_UNREF(middle);
-        CSS_DOM_STRING_UNREF(object);
-        CSS_DOM_STRING_UNREF(p);
-        CSS_DOM_STRING_UNREF(password);
-        CSS_DOM_STRING_UNREF(right);
-        CSS_DOM_STRING_UNREF(rows);
-        CSS_DOM_STRING_UNREF(size);
-        CSS_DOM_STRING_UNREF(table);
-        CSS_DOM_STRING_UNREF(tbody);
-        CSS_DOM_STRING_UNREF(td);
-        CSS_DOM_STRING_UNREF(text);
-        CSS_DOM_STRING_UNREF(textarea);
-        CSS_DOM_STRING_UNREF(tfoot);
-        CSS_DOM_STRING_UNREF(th);
-        CSS_DOM_STRING_UNREF(thead);
-        CSS_DOM_STRING_UNREF(tr);
-        CSS_DOM_STRING_UNREF(type);
-        CSS_DOM_STRING_UNREF(valign);
-        CSS_DOM_STRING_UNREF(vlink);
-        CSS_DOM_STRING_UNREF(vspace);
-        CSS_DOM_STRING_UNREF(width);
+	CSS_DOM_STRING_UNREF(a);
+	CSS_DOM_STRING_UNREF(abscenter);
+	CSS_DOM_STRING_UNREF(absmiddle);
+	CSS_DOM_STRING_UNREF(align);
+	CSS_DOM_STRING_UNREF(applet);
+	CSS_DOM_STRING_UNREF(background);
+	CSS_DOM_STRING_UNREF(baseline);
+	CSS_DOM_STRING_UNREF(bgcolor);
+	CSS_DOM_STRING_UNREF(body);
+	CSS_DOM_STRING_UNREF(bordercolor);
+	CSS_DOM_STRING_UNREF(bottom);
+	CSS_DOM_STRING_UNREF(caption);
+	CSS_DOM_STRING_UNREF(cellpadding);
+	CSS_DOM_STRING_UNREF(cellspacing);
+	CSS_DOM_STRING_UNREF(center);
+	CSS_DOM_STRING_UNREF(col);
+	CSS_DOM_STRING_UNREF(color);
+	CSS_DOM_STRING_UNREF(cols);
+	CSS_DOM_STRING_UNREF(div);
+	CSS_DOM_STRING_UNREF(embed);
+	CSS_DOM_STRING_UNREF(font);
+	CSS_DOM_STRING_UNREF(h1);
+	CSS_DOM_STRING_UNREF(h2);
+	CSS_DOM_STRING_UNREF(h3);
+	CSS_DOM_STRING_UNREF(h4);
+	CSS_DOM_STRING_UNREF(h5);
+	CSS_DOM_STRING_UNREF(h6);
+	CSS_DOM_STRING_UNREF(height);
+	CSS_DOM_STRING_UNREF(hr);
+	CSS_DOM_STRING_UNREF(href);
+	CSS_DOM_STRING_UNREF(hspace);
+	CSS_DOM_STRING_UNREF(iframe);
+	CSS_DOM_STRING_UNREF(img);
+	CSS_DOM_STRING_UNREF(input);
+	CSS_DOM_STRING_UNREF(justify);
+	CSS_DOM_STRING_UNREF(left);
+	CSS_DOM_STRING_UNREF(link);
+	CSS_DOM_STRING_UNREF(middle);
+	CSS_DOM_STRING_UNREF(object);
+	CSS_DOM_STRING_UNREF(p);
+	CSS_DOM_STRING_UNREF(password);
+	CSS_DOM_STRING_UNREF(right);
+	CSS_DOM_STRING_UNREF(rows);
+	CSS_DOM_STRING_UNREF(size);
+	CSS_DOM_STRING_UNREF(table);
+	CSS_DOM_STRING_UNREF(tbody);
+	CSS_DOM_STRING_UNREF(td);
+	CSS_DOM_STRING_UNREF(text);
+	CSS_DOM_STRING_UNREF(textarea);
+	CSS_DOM_STRING_UNREF(texttop);
+	CSS_DOM_STRING_UNREF(tfoot);
+	CSS_DOM_STRING_UNREF(th);
+	CSS_DOM_STRING_UNREF(thead);
+	CSS_DOM_STRING_UNREF(top);
+	CSS_DOM_STRING_UNREF(tr);
+	CSS_DOM_STRING_UNREF(type);
+	CSS_DOM_STRING_UNREF(valign);
+	CSS_DOM_STRING_UNREF(vlink);
+	CSS_DOM_STRING_UNREF(vspace);
+	CSS_DOM_STRING_UNREF(width);
 
 #undef CSS_DOM_STRING_UNREF
 
@@ -939,62 +947,66 @@
 	if ((exc != DOM_NO_ERR) || (nscss_dom_string_##NAME == NULL))	\
 		goto error						
 
-        CSS_DOM_STRING_INTERN(a);
-        CSS_DOM_STRING_INTERN(abscenter);
-        CSS_DOM_STRING_INTERN(absmiddle);
-        CSS_DOM_STRING_INTERN(align);
-        CSS_DOM_STRING_INTERN(applet);
-        CSS_DOM_STRING_INTERN(background);
-        CSS_DOM_STRING_INTERN(bgcolor);
-        CSS_DOM_STRING_INTERN(body);
-        CSS_DOM_STRING_INTERN(bordercolor);
-        CSS_DOM_STRING_INTERN(bottom);
-        CSS_DOM_STRING_INTERN(caption);
-        CSS_DOM_STRING_INTERN(cellpadding);
-        CSS_DOM_STRING_INTERN(cellspacing);
-        CSS_DOM_STRING_INTERN(center);
-        CSS_DOM_STRING_INTERN(color);
-        CSS_DOM_STRING_INTERN(cols);
-        CSS_DOM_STRING_INTERN(div);
-        CSS_DOM_STRING_INTERN(embed);
-        CSS_DOM_STRING_INTERN(font);
-        CSS_DOM_STRING_INTERN(h1);
-        CSS_DOM_STRING_INTERN(h2);
-        CSS_DOM_STRING_INTERN(h3);
-        CSS_DOM_STRING_INTERN(h4);
-        CSS_DOM_STRING_INTERN(h5);
-        CSS_DOM_STRING_INTERN(h6);
-        CSS_DOM_STRING_INTERN(height);
-        CSS_DOM_STRING_INTERN(hr);
-        CSS_DOM_STRING_INTERN(href);
-        CSS_DOM_STRING_INTERN(hspace);
-        CSS_DOM_STRING_INTERN(iframe);
-        CSS_DOM_STRING_INTERN(img);
-        CSS_DOM_STRING_INTERN(input);
-        CSS_DOM_STRING_INTERN(justify);
-        CSS_DOM_STRING_INTERN(left);
-        CSS_DOM_STRING_INTERN(link);
-        CSS_DOM_STRING_INTERN(middle);
-        CSS_DOM_STRING_INTERN(object);
-        CSS_DOM_STRING_INTERN(p);
-        CSS_DOM_STRING_INTERN(password);
-        CSS_DOM_STRING_INTERN(right);
-        CSS_DOM_STRING_INTERN(rows);
-        CSS_DOM_STRING_INTERN(size);
-        CSS_DOM_STRING_INTERN(table);
-        CSS_DOM_STRING_INTERN(tbody);
-        CSS_DOM_STRING_INTERN(td);
-        CSS_DOM_STRING_INTERN(text);
-        CSS_DOM_STRING_INTERN(textarea);
-        CSS_DOM_STRING_INTERN(tfoot);
-        CSS_DOM_STRING_INTERN(th);
-        CSS_DOM_STRING_INTERN(thead);
-        CSS_DOM_STRING_INTERN(tr);
-        CSS_DOM_STRING_INTERN(type);
-        CSS_DOM_STRING_INTERN(valign);
-        CSS_DOM_STRING_INTERN(vlink);
-        CSS_DOM_STRING_INTERN(vspace);
-        CSS_DOM_STRING_INTERN(width);
+	CSS_DOM_STRING_INTERN(a);
+	CSS_DOM_STRING_INTERN(abscenter);
+	CSS_DOM_STRING_INTERN(absmiddle);
+	CSS_DOM_STRING_INTERN(align);
+	CSS_DOM_STRING_INTERN(applet);
+	CSS_DOM_STRING_INTERN(background);
+	CSS_DOM_STRING_INTERN(baseline);
+	CSS_DOM_STRING_INTERN(bgcolor);
+	CSS_DOM_STRING_INTERN(body);
+	CSS_DOM_STRING_INTERN(bordercolor);
+	CSS_DOM_STRING_INTERN(bottom);
+	CSS_DOM_STRING_INTERN(caption);
+	CSS_DOM_STRING_INTERN(cellpadding);
+	CSS_DOM_STRING_INTERN(cellspacing);
+	CSS_DOM_STRING_INTERN(center);
+	CSS_DOM_STRING_INTERN(col);
+	CSS_DOM_STRING_INTERN(color);
+	CSS_DOM_STRING_INTERN(cols);
+	CSS_DOM_STRING_INTERN(div);
+	CSS_DOM_STRING_INTERN(embed);
+	CSS_DOM_STRING_INTERN(font);
+	CSS_DOM_STRING_INTERN(h1);
+	CSS_DOM_STRING_INTERN(h2);
+	CSS_DOM_STRING_INTERN(h3);
+	CSS_DOM_STRING_INTERN(h4);
+	CSS_DOM_STRING_INTERN(h5);
+	CSS_DOM_STRING_INTERN(h6);
+	CSS_DOM_STRING_INTERN(height);
+	CSS_DOM_STRING_INTERN(hr);
+	CSS_DOM_STRING_INTERN(href);
+	CSS_DOM_STRING_INTERN(hspace);
+	CSS_DOM_STRING_INTERN(iframe);
+	CSS_DOM_STRING_INTERN(img);
+	CSS_DOM_STRING_INTERN(input);
+	CSS_DOM_STRING_INTERN(justify);
+	CSS_DOM_STRING_INTERN(left);
+	CSS_DOM_STRING_INTERN(link);
+	CSS_DOM_STRING_INTERN(middle);
+	CSS_DOM_STRING_INTERN(object);
+	CSS_DOM_STRING_INTERN(p);
+	CSS_DOM_STRING_INTERN(password);
+	CSS_DOM_STRING_INTERN(right);
+	CSS_DOM_STRING_INTERN(rows);
+	CSS_DOM_STRING_INTERN(size);
+	CSS_DOM_STRING_INTERN(table);
+	CSS_DOM_STRING_INTERN(tbody);
+	CSS_DOM_STRING_INTERN(td);
+	CSS_DOM_STRING_INTERN(text);
+	CSS_DOM_STRING_INTERN(textarea);
+	CSS_DOM_STRING_INTERN(texttop);
+	CSS_DOM_STRING_INTERN(tfoot);
+	CSS_DOM_STRING_INTERN(th);
+	CSS_DOM_STRING_INTERN(thead);
+	CSS_DOM_STRING_INTERN(top);
+	CSS_DOM_STRING_INTERN(tr);
+	CSS_DOM_STRING_INTERN(type);
+	CSS_DOM_STRING_INTERN(valign);
+	CSS_DOM_STRING_INTERN(vlink);
+	CSS_DOM_STRING_INTERN(vspace);
+	CSS_DOM_STRING_INTERN(width);
 
 #undef CSS_DOM_STRING_INTERN
 

Modified: trunk/netsurf/css/internal.h
URL: http://source.netsurf-browser.org/trunk/netsurf/css/internal.h?rev=13707&r1=13706&r2=13707&view=diff
==============================================================================
--- trunk/netsurf/css/internal.h (original)
+++ trunk/netsurf/css/internal.h Sun Mar 25 14:17:51 2012
@@ -30,6 +30,7 @@
 extern struct dom_string *nscss_dom_string_align;
 extern struct dom_string *nscss_dom_string_applet;
 extern struct dom_string *nscss_dom_string_background;
+extern struct dom_string *nscss_dom_string_baseline;
 extern struct dom_string *nscss_dom_string_bgcolor;
 extern struct dom_string *nscss_dom_string_body;
 extern struct dom_string *nscss_dom_string_bordercolor;
@@ -38,6 +39,7 @@
 extern struct dom_string *nscss_dom_string_cellpadding;
 extern struct dom_string *nscss_dom_string_cellspacing;
 extern struct dom_string *nscss_dom_string_center;
+extern struct dom_string *nscss_dom_string_col;
 extern struct dom_string *nscss_dom_string_color;
 extern struct dom_string *nscss_dom_string_cols;
 extern struct dom_string *nscss_dom_string_div;
@@ -71,9 +73,11 @@
 extern struct dom_string *nscss_dom_string_td;
 extern struct dom_string *nscss_dom_string_text;
 extern struct dom_string *nscss_dom_string_textarea;
+extern struct dom_string *nscss_dom_string_texttop;
 extern struct dom_string *nscss_dom_string_tfoot;
 extern struct dom_string *nscss_dom_string_th;
 extern struct dom_string *nscss_dom_string_thead;
+extern struct dom_string *nscss_dom_string_top;
 extern struct dom_string *nscss_dom_string_tr;
 extern struct dom_string *nscss_dom_string_type;
 extern struct dom_string *nscss_dom_string_valign;

Modified: trunk/netsurf/css/select.c
URL: http://source.netsurf-browser.org/trunk/netsurf/css/select.c?rev=13707&r1=13706&r2=13707&view=diff
==============================================================================
--- trunk/netsurf/css/select.c (original)
+++ trunk/netsurf/css/select.c Sun Mar 25 14:17:51 2012
@@ -1880,13 +1880,13 @@
 	if (err != DOM_NO_ERR)
 		return CSS_PROPERTY_NOT_SET;
 
-	if (strcmp(dom_string_data(name), "col") == 0 ||
-	    strcmp(dom_string_data(name), "thead") == 0 ||
-	    strcmp(dom_string_data(name), "tbody") == 0 ||
-	    strcmp(dom_string_data(name), "tfoot") == 0 ||
-	    strcmp(dom_string_data(name), "tr") == 0 ||
-	    strcmp(dom_string_data(name), "td") == 0 ||
-	    strcmp(dom_string_data(name), "th") == 0) {
+	if (dom_string_isequal(name, nscss_dom_string_col) ||
+	    dom_string_isequal(name, nscss_dom_string_thead) ||
+	    dom_string_isequal(name, nscss_dom_string_tbody) ||
+	    dom_string_isequal(name, nscss_dom_string_tfoot) ||
+	    dom_string_isequal(name, nscss_dom_string_tr) ||
+	    dom_string_isequal(name, nscss_dom_string_td) ||
+	    dom_string_isequal(name, nscss_dom_string_th)) {
 		err = dom_element_get_attribute(node, 
 				nscss_dom_string_valign, &valign);
 		if (err != DOM_NO_ERR || valign == NULL) {
@@ -1894,16 +1894,16 @@
 			return CSS_PROPERTY_NOT_SET;
 		}
 
-		if (strcasecmp(dom_string_data(valign), "top") == 0) {
+		if (dom_string_caseless_isequal(valign, nscss_dom_string_top)) {
 			hint->status = CSS_VERTICAL_ALIGN_TOP;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "middle") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_middle)) {
 			hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "bottom") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_bottom)) {
 			hint->status = CSS_VERTICAL_ALIGN_BOTTOM;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "baseline") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_baseline)) {
 			hint->status = CSS_VERTICAL_ALIGN_BASELINE;
 		} else {
 			dom_string_unref(valign);
@@ -1915,11 +1915,11 @@
 		dom_string_unref(name);
 
 		return CSS_OK;
-	} else if (strcmp(dom_string_data(name), "applet") == 0 ||
-		   strcmp(dom_string_data(name), "embed") == 0 ||
-		   strcmp(dom_string_data(name), "iframe") == 0 ||
-		   strcmp(dom_string_data(name), "img") == 0 ||
-		   strcmp(dom_string_data(name), "object") == 0) {
+	} else if (dom_string_isequal(name, nscss_dom_string_applet) ||
+		   dom_string_isequal(name, nscss_dom_string_embed) ||
+		   dom_string_isequal(name, nscss_dom_string_iframe) ||
+		   dom_string_isequal(name, nscss_dom_string_img) ||
+		   dom_string_isequal(name, nscss_dom_string_object)) {
 		/** \todo input[type=image][align=*] - $11.3.3 */
 		err = dom_element_get_attribute(node, 
 				nscss_dom_string_align, &valign);
@@ -1928,20 +1928,20 @@
 			return CSS_PROPERTY_NOT_SET;
 		}
 
-		if (strcasecmp(dom_string_data(valign), "top") == 0) {
+		if (dom_string_caseless_isequal(valign, nscss_dom_string_top)) {
 			hint->status = CSS_VERTICAL_ALIGN_TOP;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "bottom") == 0 ||
-			   strcasecmp(dom_string_data(valign),
-				      "baseline") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_bottom) ||
+			   dom_string_caseless_isequal(valign,
+					nscss_dom_string_baseline)) {
 			hint->status = CSS_VERTICAL_ALIGN_BASELINE;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "texttop") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_texttop)) {
 			hint->status = CSS_VERTICAL_ALIGN_TEXT_TOP;
-		} else if (strcasecmp(dom_string_data(valign),
-				      "absmiddle") == 0 ||
-			   strcasecmp(dom_string_data(valign),
-				      "abscenter") == 0) {
+		} else if (dom_string_caseless_isequal(valign,
+					nscss_dom_string_absmiddle) ||
+			   dom_string_caseless_isequal(valign,
+					nscss_dom_string_abscenter)) {
 			hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
 		} else {
 			dom_string_unref(valign);




More information about the netsurf-commits mailing list