summaryrefslogtreecommitdiff
path: root/css
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-07-22 14:06:45 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2012-07-22 14:06:45 +0100
commit1e65737c8cad643ed9591b306364a1844458fd13 (patch)
tree685f78b4c77fc4375dd607677fc237f7595a7782 /css
parent41abc08cbb616b4c8408969ad491f78c753e40b7 (diff)
downloadnetsurf-1e65737c8cad643ed9591b306364a1844458fd13.tar.gz
netsurf-1e65737c8cad643ed9591b306364a1844458fd13.tar.bz2
Interned string cleanup, phase 1: Use lwc_string where possible in CSS handler.
Diffstat (limited to 'css')
-rw-r--r--css/css.c286
-rw-r--r--css/internal.h85
-rw-r--r--css/select.c396
3 files changed, 414 insertions, 353 deletions
diff --git a/css/css.c b/css/css.c
index 98760f560..549e79fae 100644
--- a/css/css.c
+++ b/css/css.c
@@ -83,68 +83,72 @@ static css_error nscss_register_import(struct content_css_data *c,
static lwc_string *css_charset;
static css_stylesheet *blank_import;
-dom_string *nscss_dom_string_a;
-dom_string *nscss_dom_string_abscenter;
-dom_string *nscss_dom_string_absmiddle;
+lwc_string *nscss_lwc_string_a;
+lwc_string *nscss_lwc_string_abscenter;
+lwc_string *nscss_lwc_string_absmiddle;
+lwc_string *nscss_lwc_string_align;
+lwc_string *nscss_lwc_string_applet;
+lwc_string *nscss_lwc_string_baseline;
+lwc_string *nscss_lwc_string_body;
+lwc_string *nscss_lwc_string_bottom;
+lwc_string *nscss_lwc_string_caption;
+lwc_string *nscss_lwc_string_center;
+lwc_string *nscss_lwc_string_col;
+lwc_string *nscss_lwc_string_div;
+lwc_string *nscss_lwc_string_embed;
+lwc_string *nscss_lwc_string_font;
+lwc_string *nscss_lwc_string_h1;
+lwc_string *nscss_lwc_string_h2;
+lwc_string *nscss_lwc_string_h3;
+lwc_string *nscss_lwc_string_h4;
+lwc_string *nscss_lwc_string_h5;
+lwc_string *nscss_lwc_string_h6;
+lwc_string *nscss_lwc_string_hr;
+lwc_string *nscss_lwc_string_iframe;
+lwc_string *nscss_lwc_string_img;
+lwc_string *nscss_lwc_string_input;
+lwc_string *nscss_lwc_string_justify;
+lwc_string *nscss_lwc_string_left;
+lwc_string *nscss_lwc_string_middle;
+lwc_string *nscss_lwc_string_object;
+lwc_string *nscss_lwc_string_p;
+lwc_string *nscss_lwc_string_password;
+lwc_string *nscss_lwc_string_right;
+lwc_string *nscss_lwc_string_table;
+lwc_string *nscss_lwc_string_tbody;
+lwc_string *nscss_lwc_string_td;
+lwc_string *nscss_lwc_string_text;
+lwc_string *nscss_lwc_string_textarea;
+lwc_string *nscss_lwc_string_texttop;
+lwc_string *nscss_lwc_string_tfoot;
+lwc_string *nscss_lwc_string_th;
+lwc_string *nscss_lwc_string_thead;
+lwc_string *nscss_lwc_string_top;
+lwc_string *nscss_lwc_string_tr;
+
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_border;
dom_string *nscss_dom_string_bordercolor;
-dom_string *nscss_dom_string_bottom;
-dom_string *nscss_dom_string_caption;
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;
-dom_string *nscss_dom_string_embed;
-dom_string *nscss_dom_string_font;
-dom_string *nscss_dom_string_h1;
-dom_string *nscss_dom_string_h2;
-dom_string *nscss_dom_string_h3;
-dom_string *nscss_dom_string_h4;
-dom_string *nscss_dom_string_h5;
-dom_string *nscss_dom_string_h6;
dom_string *nscss_dom_string_height;
-dom_string *nscss_dom_string_hr;
dom_string *nscss_dom_string_href;
dom_string *nscss_dom_string_hspace;
-dom_string *nscss_dom_string_iframe;
-dom_string *nscss_dom_string_img;
-dom_string *nscss_dom_string_input;
-dom_string *nscss_dom_string_justify;
-dom_string *nscss_dom_string_left;
dom_string *nscss_dom_string_link;
-dom_string *nscss_dom_string_middle;
-dom_string *nscss_dom_string_object;
-dom_string *nscss_dom_string_p;
-dom_string *nscss_dom_string_password;
-dom_string *nscss_dom_string_right;
dom_string *nscss_dom_string_rows;
dom_string *nscss_dom_string_size;
-dom_string *nscss_dom_string_table;
-dom_string *nscss_dom_string_tbody;
-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;
dom_string *nscss_dom_string_vlink;
dom_string *nscss_dom_string_vspace;
dom_string *nscss_dom_string_width;
+
/**
* Initialise a CSS content
*
@@ -830,76 +834,88 @@ css_error nscss_register_import(struct content_css_data *c,
*/
static void nscss_fini(void)
{
+#define CSS_LWC_STRING_UNREF(NAME) \
+ do { \
+ if (nscss_lwc_string_##NAME != NULL) { \
+ lwc_string_unref(nscss_lwc_string_##NAME); \
+ nscss_lwc_string_##NAME = NULL; \
+ } \
+ } while (0)
+
+ CSS_LWC_STRING_UNREF(a);
+ CSS_LWC_STRING_UNREF(abscenter);
+ CSS_LWC_STRING_UNREF(absmiddle);
+ CSS_LWC_STRING_UNREF(align);
+ CSS_LWC_STRING_UNREF(applet);
+ CSS_LWC_STRING_UNREF(baseline);
+ CSS_LWC_STRING_UNREF(body);
+ CSS_LWC_STRING_UNREF(bottom);
+ CSS_LWC_STRING_UNREF(caption);
+ CSS_LWC_STRING_UNREF(center);
+ CSS_LWC_STRING_UNREF(col);
+ CSS_LWC_STRING_UNREF(div);
+ CSS_LWC_STRING_UNREF(embed);
+ CSS_LWC_STRING_UNREF(font);
+ CSS_LWC_STRING_UNREF(h1);
+ CSS_LWC_STRING_UNREF(h2);
+ CSS_LWC_STRING_UNREF(h3);
+ CSS_LWC_STRING_UNREF(h4);
+ CSS_LWC_STRING_UNREF(h5);
+ CSS_LWC_STRING_UNREF(h6);
+ CSS_LWC_STRING_UNREF(hr);
+ CSS_LWC_STRING_UNREF(iframe);
+ CSS_LWC_STRING_UNREF(img);
+ CSS_LWC_STRING_UNREF(input);
+ CSS_LWC_STRING_UNREF(justify);
+ CSS_LWC_STRING_UNREF(left);
+ CSS_LWC_STRING_UNREF(middle);
+ CSS_LWC_STRING_UNREF(object);
+ CSS_LWC_STRING_UNREF(p);
+ CSS_LWC_STRING_UNREF(password);
+ CSS_LWC_STRING_UNREF(right);
+ CSS_LWC_STRING_UNREF(table);
+ CSS_LWC_STRING_UNREF(tbody);
+ CSS_LWC_STRING_UNREF(td);
+ CSS_LWC_STRING_UNREF(text);
+ CSS_LWC_STRING_UNREF(textarea);
+ CSS_LWC_STRING_UNREF(texttop);
+ CSS_LWC_STRING_UNREF(tfoot);
+ CSS_LWC_STRING_UNREF(th);
+ CSS_LWC_STRING_UNREF(thead);
+ CSS_LWC_STRING_UNREF(top);
+ CSS_LWC_STRING_UNREF(tr);
+#undef CSS_LWC_STRING_UNREF
+
+
#define CSS_DOM_STRING_UNREF(NAME) \
do { \
if (nscss_dom_string_##NAME != NULL) { \
dom_string_unref(nscss_dom_string_##NAME); \
nscss_dom_string_##NAME = NULL; \
} \
- } while (0) \
+ } 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(baseline);
CSS_DOM_STRING_UNREF(bgcolor);
- CSS_DOM_STRING_UNREF(body);
CSS_DOM_STRING_UNREF(border);
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
@@ -942,11 +958,70 @@ nserror nscss_init(void)
}
+#define CSS_LWC_STRING_INTERN(NAME) \
+ do { \
+ lerror = lwc_intern_string( \
+ (const char *)#NAME, \
+ sizeof(#NAME) - 1, \
+ &nscss_lwc_string_##NAME ); \
+ if ((lerror != lwc_error_ok) || \
+ (nscss_lwc_string_##NAME == NULL)) { \
+ error = NSERROR_NOMEM; \
+ goto error; \
+ } \
+ } while(0)
+
+ CSS_LWC_STRING_INTERN(a);
+ CSS_LWC_STRING_INTERN(abscenter);
+ CSS_LWC_STRING_INTERN(absmiddle);
+ CSS_LWC_STRING_INTERN(align);
+ CSS_LWC_STRING_INTERN(applet);
+ CSS_LWC_STRING_INTERN(baseline);
+ CSS_LWC_STRING_INTERN(body);
+ CSS_LWC_STRING_INTERN(bottom);
+ CSS_LWC_STRING_INTERN(caption);
+ CSS_LWC_STRING_INTERN(center);
+ CSS_LWC_STRING_INTERN(col);
+ CSS_LWC_STRING_INTERN(div);
+ CSS_LWC_STRING_INTERN(embed);
+ CSS_LWC_STRING_INTERN(font);
+ CSS_LWC_STRING_INTERN(h1);
+ CSS_LWC_STRING_INTERN(h2);
+ CSS_LWC_STRING_INTERN(h3);
+ CSS_LWC_STRING_INTERN(h4);
+ CSS_LWC_STRING_INTERN(h5);
+ CSS_LWC_STRING_INTERN(h6);
+ CSS_LWC_STRING_INTERN(hr);
+ CSS_LWC_STRING_INTERN(iframe);
+ CSS_LWC_STRING_INTERN(img);
+ CSS_LWC_STRING_INTERN(input);
+ CSS_LWC_STRING_INTERN(justify);
+ CSS_LWC_STRING_INTERN(left);
+ CSS_LWC_STRING_INTERN(middle);
+ CSS_LWC_STRING_INTERN(object);
+ CSS_LWC_STRING_INTERN(p);
+ CSS_LWC_STRING_INTERN(password);
+ CSS_LWC_STRING_INTERN(right);
+ CSS_LWC_STRING_INTERN(table);
+ CSS_LWC_STRING_INTERN(tbody);
+ CSS_LWC_STRING_INTERN(td);
+ CSS_LWC_STRING_INTERN(text);
+ CSS_LWC_STRING_INTERN(textarea);
+ CSS_LWC_STRING_INTERN(texttop);
+ CSS_LWC_STRING_INTERN(tfoot);
+ CSS_LWC_STRING_INTERN(th);
+ CSS_LWC_STRING_INTERN(thead);
+ CSS_LWC_STRING_INTERN(top);
+ CSS_LWC_STRING_INTERN(tr);
+#undef CSS_LWC_STRING_INTERN
+
+
#define CSS_DOM_STRING_INTERN(NAME) \
do { \
- exc = dom_string_create_interned((const uint8_t *)#NAME,\
- sizeof(#NAME) - 1, \
- &nscss_dom_string_##NAME ); \
+ exc = dom_string_create_interned( \
+ (const uint8_t *)#NAME, \
+ sizeof(#NAME) - 1, \
+ &nscss_dom_string_##NAME ); \
if ((exc != DOM_NO_ERR) || \
(nscss_dom_string_##NAME == NULL)) { \
error = NSERROR_NOMEM; \
@@ -954,68 +1029,27 @@ nserror nscss_init(void)
} \
} while(0)
- 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(border);
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
error = content_factory_register_handler("text/css",
diff --git a/css/internal.h b/css/internal.h
index 9f6907d15..a5a3e3210 100644
--- a/css/internal.h
+++ b/css/internal.h
@@ -24,62 +24,67 @@
css_error nscss_resolve_url(void *pw, const char *base,
lwc_string *rel, lwc_string **abs);
-extern struct dom_string *nscss_dom_string_a;
-extern struct dom_string *nscss_dom_string_abscenter;
-extern struct dom_string *nscss_dom_string_absmiddle;
+/* lwc_string strings */
+extern lwc_string *nscss_lwc_string_a;
+extern lwc_string *nscss_lwc_string_abscenter;
+extern lwc_string *nscss_lwc_string_absmiddle;
+extern lwc_string *nscss_lwc_string_align;
+extern lwc_string *nscss_lwc_string_applet;
+extern lwc_string *nscss_lwc_string_baseline;
+extern lwc_string *nscss_lwc_string_body;
+extern lwc_string *nscss_lwc_string_bottom;
+extern lwc_string *nscss_lwc_string_caption;
+extern lwc_string *nscss_lwc_string_center;
+extern lwc_string *nscss_lwc_string_col;
+extern lwc_string *nscss_lwc_string_div;
+extern lwc_string *nscss_lwc_string_embed;
+extern lwc_string *nscss_lwc_string_font;
+extern lwc_string *nscss_lwc_string_h1;
+extern lwc_string *nscss_lwc_string_h2;
+extern lwc_string *nscss_lwc_string_h3;
+extern lwc_string *nscss_lwc_string_h4;
+extern lwc_string *nscss_lwc_string_h5;
+extern lwc_string *nscss_lwc_string_h6;
+extern lwc_string *nscss_lwc_string_hr;
+extern lwc_string *nscss_lwc_string_iframe;
+extern lwc_string *nscss_lwc_string_img;
+extern lwc_string *nscss_lwc_string_input;
+extern lwc_string *nscss_lwc_string_justify;
+extern lwc_string *nscss_lwc_string_left;
+extern lwc_string *nscss_lwc_string_middle;
+extern lwc_string *nscss_lwc_string_object;
+extern lwc_string *nscss_lwc_string_p;
+extern lwc_string *nscss_lwc_string_password;
+extern lwc_string *nscss_lwc_string_right;
+extern lwc_string *nscss_lwc_string_table;
+extern lwc_string *nscss_lwc_string_tbody;
+extern lwc_string *nscss_lwc_string_td;
+extern lwc_string *nscss_lwc_string_text;
+extern lwc_string *nscss_lwc_string_textarea;
+extern lwc_string *nscss_lwc_string_texttop;
+extern lwc_string *nscss_lwc_string_tfoot;
+extern lwc_string *nscss_lwc_string_th;
+extern lwc_string *nscss_lwc_string_thead;
+extern lwc_string *nscss_lwc_string_top;
+extern lwc_string *nscss_lwc_string_tr;
+
+/* dom_string strings */
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_border;
extern struct dom_string *nscss_dom_string_bordercolor;
-extern struct dom_string *nscss_dom_string_bottom;
-extern struct dom_string *nscss_dom_string_caption;
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;
-extern struct dom_string *nscss_dom_string_embed;
-extern struct dom_string *nscss_dom_string_font;
-extern struct dom_string *nscss_dom_string_h1;
-extern struct dom_string *nscss_dom_string_h2;
-extern struct dom_string *nscss_dom_string_h3;
-extern struct dom_string *nscss_dom_string_h4;
-extern struct dom_string *nscss_dom_string_h5;
-extern struct dom_string *nscss_dom_string_h6;
extern struct dom_string *nscss_dom_string_height;
-extern struct dom_string *nscss_dom_string_hr;
extern struct dom_string *nscss_dom_string_href;
extern struct dom_string *nscss_dom_string_hspace;
-extern struct dom_string *nscss_dom_string_iframe;
-extern struct dom_string *nscss_dom_string_img;
-extern struct dom_string *nscss_dom_string_input;
-extern struct dom_string *nscss_dom_string_justify;
-extern struct dom_string *nscss_dom_string_left;
extern struct dom_string *nscss_dom_string_link;
-extern struct dom_string *nscss_dom_string_middle;
-extern struct dom_string *nscss_dom_string_object;
-extern struct dom_string *nscss_dom_string_p;
-extern struct dom_string *nscss_dom_string_password;
-extern struct dom_string *nscss_dom_string_right;
extern struct dom_string *nscss_dom_string_rows;
extern struct dom_string *nscss_dom_string_size;
-extern struct dom_string *nscss_dom_string_table;
-extern struct dom_string *nscss_dom_string_tbody;
-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;
extern struct dom_string *nscss_dom_string_vlink;
diff --git a/css/select.c b/css/select.c
index 5f8f537f5..a92c47601 100644
--- a/css/select.c
+++ b/css/select.c
@@ -1515,7 +1515,7 @@ css_error node_is_link(void *pw, void *n, bool *match)
return CSS_NOMEM;
}
- if (dom_string_caseless_isequal(node_name, nscss_dom_string_a)) {
+ if (dom_string_caseless_lwc_isequal(node_name, nscss_lwc_string_a)) {
bool has_href;
exc = dom_element_has_attribute(node, nscss_dom_string_href, &has_href);
if ((exc == DOM_NO_ERR) && (has_href)) {
@@ -1751,13 +1751,13 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(name, nscss_dom_string_col) ||
- dom_string_caseless_isequal(name, nscss_dom_string_thead) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tbody) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tfoot) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tr) ||
- dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_col) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_thead) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_tbody) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_tfoot) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_tr) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
err = dom_element_get_attribute(node,
nscss_dom_string_valign, &valign);
if (err != DOM_NO_ERR || valign == NULL) {
@@ -1765,16 +1765,17 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_isequal(valign, nscss_dom_string_top)) {
+ if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_top)) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_middle)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_middle)) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_bottom)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_bottom)) {
hint->status = CSS_VERTICAL_ALIGN_BOTTOM;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_baseline)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_baseline)) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
} else {
dom_string_unref(valign);
@@ -1786,11 +1787,16 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
dom_string_unref(name);
return CSS_OK;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_applet) ||
- dom_string_caseless_isequal(name, nscss_dom_string_embed) ||
- dom_string_caseless_isequal(name, nscss_dom_string_iframe) ||
- dom_string_caseless_isequal(name, nscss_dom_string_img) ||
- dom_string_caseless_isequal(name, nscss_dom_string_object)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_applet) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_embed) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_iframe) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_img) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_object)) {
/** \todo input[type=image][align=*] - $11.3.3 */
err = dom_element_get_attribute(node,
nscss_dom_string_align, &valign);
@@ -1799,20 +1805,21 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_isequal(valign, nscss_dom_string_top)) {
+ if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_top)) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_bottom) ||
- dom_string_caseless_isequal(valign,
- nscss_dom_string_baseline)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_bottom) ||
+ dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_baseline)) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_texttop)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_texttop)) {
hint->status = CSS_VERTICAL_ALIGN_TEXT_TOP;
- } else if (dom_string_caseless_isequal(valign,
- nscss_dom_string_absmiddle) ||
- dom_string_caseless_isequal(valign,
- nscss_dom_string_abscenter)) {
+ } else if (dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_absmiddle) ||
+ dom_string_caseless_lwc_isequal(valign,
+ nscss_lwc_string_abscenter)) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
} else {
dom_string_unref(valign);
@@ -1843,13 +1850,13 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(name, nscss_dom_string_p) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h1) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h2) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h3) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h4) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h5) ||
- dom_string_caseless_isequal(name, nscss_dom_string_h6)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_p) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h1) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h2) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h3) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h4) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h5) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_h6)) {
err = dom_element_get_attribute(node,
nscss_dom_string_align, &align);
if (err != DOM_NO_ERR || align == NULL) {
@@ -1857,16 +1864,17 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_isequal(align, nscss_dom_string_left)) {
+ if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_left)) {
hint->status = CSS_TEXT_ALIGN_LEFT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_center)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_center)) {
hint->status = CSS_TEXT_ALIGN_CENTER;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_right)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_right)) {
hint->status = CSS_TEXT_ALIGN_RIGHT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_justify)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1878,13 +1886,15 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
dom_string_unref(name);
return CSS_OK;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_center)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
dom_string_unref(name);
return CSS_OK;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_caption)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_caption)) {
err = dom_element_get_attribute(node,
nscss_dom_string_align, &align);
if (err != DOM_NO_ERR) {
@@ -1892,17 +1902,17 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (align == NULL || dom_string_caseless_isequal(align,
- nscss_dom_string_center)) {
+ if (align == NULL || dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_left)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_left)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_right)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_right)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_justify)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1915,13 +1925,20 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
dom_string_unref(name);
return CSS_OK;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_div) ||
- dom_string_caseless_isequal(name, nscss_dom_string_thead) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tbody) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tfoot) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tr) ||
- dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_div) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_thead) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_tbody) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_tfoot) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_tr) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_th)) {
err = dom_element_get_attribute(node,
nscss_dom_string_align, &align);
if (err != DOM_NO_ERR || align == NULL) {
@@ -1929,17 +1946,17 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_isequal(align,
- nscss_dom_string_center)) {
+ if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_left)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_left)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_right)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_right)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
- } else if (dom_string_caseless_isequal(align,
- nscss_dom_string_justify)) {
+ } else if (dom_string_caseless_lwc_isequal(align,
+ nscss_lwc_string_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1951,7 +1968,8 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
dom_string_unref(name);
return CSS_OK;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_table)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_table)) {
/* Tables usually reset alignment */
hint->status = CSS_TEXT_ALIGN_INHERIT_IF_NON_MAGIC;
@@ -1979,20 +1997,15 @@ node_presentational_hint_padding_trbl(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- exc = dom_string_intern(nscss_dom_string_table, &qs.name);
- if (exc != DOM_NO_ERR) {
- dom_string_unref(name);
- return CSS_BADPARM;
- }
+ qs.name = lwc_string_ref(nscss_lwc_string_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
/* Didn't find, or had error */
- lwc_string_unref(qs.name);
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
@@ -2001,8 +2014,8 @@ node_presentational_hint_padding_trbl(nscss_select_ctx *ctx,
if (tablenode != NULL) {
exc = dom_element_get_attribute(tablenode,
- nscss_dom_string_cellpadding,
- &cellpadding);
+ nscss_dom_string_cellpadding,
+ &cellpadding);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
return CSS_BADPARM;
@@ -2043,11 +2056,11 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_isequal(n, nscss_dom_string_img) ||
- dom_string_caseless_isequal(n, nscss_dom_string_applet)) {
+ if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_img) ||
+ dom_string_caseless_lwc_isequal(n, nscss_lwc_string_applet)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_hspace, &n);
+ nscss_dom_string_hspace, &n);
if (exc != DOM_NO_ERR) {
return CSS_BADPARM;
}
@@ -2065,11 +2078,11 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
}
dom_string_unref(n);
return CSS_OK;
- } else if (dom_string_caseless_isequal(n, nscss_dom_string_table) ||
- dom_string_caseless_isequal(n, nscss_dom_string_align)) {
+ } else if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_table) ||
+ dom_string_caseless_lwc_isequal(n, nscss_lwc_string_align)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_align, &n);
+ nscss_dom_string_align, &n);
if (exc != DOM_NO_ERR) {
return CSS_BADPARM;
}
@@ -2077,10 +2090,14 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
if (n == NULL)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(n, nscss_dom_string_center) ||
- dom_string_caseless_isequal(n, nscss_dom_string_abscenter) ||
- dom_string_caseless_isequal(n, nscss_dom_string_middle) ||
- dom_string_caseless_isequal(n, nscss_dom_string_absmiddle)) {
+ if (dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_center) ||
+ dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_abscenter) ||
+ dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_middle) ||
+ dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_absmiddle)) {
hint->status = CSS_MARGIN_AUTO;
} else {
dom_string_unref(n);
@@ -2089,17 +2106,18 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
dom_string_unref(n);
return CSS_OK;
- } else if (dom_string_caseless_isequal(n, nscss_dom_string_hr)) {
+ } else if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_hr)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_align, &n);
+ nscss_dom_string_align, &n);
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
if (n == NULL)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(n, nscss_dom_string_left)) {
+ if (dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_left)) {
if (property == CSS_PROP_MARGIN_LEFT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -2107,9 +2125,11 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
} else {
hint->status = CSS_MARGIN_AUTO;
}
- } else if (dom_string_caseless_isequal(n, nscss_dom_string_center)) {
+ } else if (dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_center)) {
hint->status = CSS_MARGIN_AUTO;
- } else if (dom_string_caseless_isequal(n, nscss_dom_string_right)) {
+ } else if (dom_string_caseless_lwc_isequal(n,
+ nscss_lwc_string_right)) {
if (property == CSS_PROP_MARGIN_RIGHT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -2143,10 +2163,10 @@ node_presentational_hint_margin_tb(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_isequal(name, nscss_dom_string_img) ||
- dom_string_caseless_isequal(name, nscss_dom_string_applet)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_img) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_applet)) {
exc = dom_element_get_attribute(node, nscss_dom_string_vspace,
- &vspace);
+ &vspace);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
return CSS_BADPARM;
@@ -2186,16 +2206,12 @@ node_presentational_hint_border_trbl_width(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- exc = dom_string_intern(nscss_dom_string_table, &qs.name);
- if (exc != DOM_NO_ERR) {
- dom_string_unref(name);
- return CSS_BADPARM;
- }
+ qs.name = lwc_string_ref(nscss_lwc_string_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
/* Didn't find, or had error */
@@ -2217,7 +2233,8 @@ node_presentational_hint_border_trbl_width(nscss_select_ctx *ctx,
* return a reffed node to the CSS
*/
is_table_cell = true;
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_table)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_table)) {
exc = dom_element_get_attribute(node, nscss_dom_string_border,
&width);
if (exc != DOM_NO_ERR) {
@@ -2263,17 +2280,12 @@ node_presentational_hint_border_trbl_style(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
-
- exc = dom_string_intern(nscss_dom_string_table, &qs.name);
- if (exc != DOM_NO_ERR) {
- dom_string_unref(name);
- return CSS_BADPARM;
- }
+ qs.name = lwc_string_ref(nscss_lwc_string_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
@@ -2305,7 +2317,8 @@ node_presentational_hint_border_trbl_style(nscss_select_ctx *ctx,
/* No need to unref tablenode, named_ancestor_node does not
* return a reffed node to the CSS
*/
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_table)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_table)) {
bool has_border = false;
exc = dom_element_has_attribute(node,
@@ -2341,17 +2354,12 @@ node_presentational_hint_border_trbl_color(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
-
- err = dom_string_intern(nscss_dom_string_table, &qs.name);
- if (err != DOM_NO_ERR) {
- dom_string_unref(name);
- return CSS_BADPARM;
- }
+ qs.name = lwc_string_ref(nscss_lwc_string_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
@@ -2365,17 +2373,18 @@ node_presentational_hint_border_trbl_color(nscss_select_ctx *ctx,
if (tablenode != NULL) {
err = dom_element_get_attribute(node,
- nscss_dom_string_bordercolor,
- &bordercolor);
+ nscss_dom_string_bordercolor,
+ &bordercolor);
}
/* No need to unref tablenode, named_ancestor_node does not
* return a reffed node to the CSS
*/
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_table)) {
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_table)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_bordercolor,
- &bordercolor);
+ nscss_dom_string_bordercolor,
+ &bordercolor);
}
dom_string_unref(name);
@@ -2409,14 +2418,16 @@ node_presentational_hint_border_spacing(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (!dom_string_caseless_isequal(node_name, nscss_dom_string_table)) {
+ if (!dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_table)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
dom_string_unref(node_name);
- err = dom_element_get_attribute(node, nscss_dom_string_cellspacing, &cellspacing);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_cellspacing, &cellspacing);
if ((err != DOM_NO_ERR) || (cellspacing == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
@@ -2453,27 +2464,26 @@ node_presentational_hint_width(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(name, nscss_dom_string_hr) ||
- dom_string_caseless_isequal(name, nscss_dom_string_iframe) ||
- dom_string_caseless_isequal(name, nscss_dom_string_img) ||
- dom_string_caseless_isequal(name, nscss_dom_string_object) ||
- dom_string_caseless_isequal(name, nscss_dom_string_table) ||
- dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th) ||
- dom_string_caseless_isequal(name, nscss_dom_string_applet)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_hr) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_iframe) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_img) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_object) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_table) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_applet)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_width,
- &width);
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_textarea)) {
+ nscss_dom_string_width, &width);
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_textarea)) {
textarea = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_cols,
- &width);
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_input)) {
+ nscss_dom_string_cols, &width);
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_input)) {
input = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_size,
- &width);
+ nscss_dom_string_size, &width);
}
dom_string_unref(name);
@@ -2500,9 +2510,10 @@ node_presentational_hint_width(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_isequal(width, nscss_dom_string_text) ||
- dom_string_isequal(width,
- nscss_dom_string_password)) {
+ if (dom_string_lwc_isequal(width,
+ nscss_lwc_string_text) ||
+ dom_string_lwc_isequal(width,
+ nscss_lwc_string_password)) {
hint->data.length.unit = CSS_UNIT_EX;
}
@@ -2533,21 +2544,20 @@ node_presentational_hint_height(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- if (dom_string_caseless_isequal(name, nscss_dom_string_iframe) ||
- dom_string_caseless_isequal(name, nscss_dom_string_td) ||
- dom_string_caseless_isequal(name, nscss_dom_string_th) ||
- dom_string_caseless_isequal(name, nscss_dom_string_tr) ||
- dom_string_caseless_isequal(name, nscss_dom_string_img) ||
- dom_string_caseless_isequal(name, nscss_dom_string_object) ||
- dom_string_caseless_isequal(name, nscss_dom_string_applet)) {
+ if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_iframe) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_tr) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_img) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_object) ||
+ dom_string_caseless_lwc_isequal(name, nscss_lwc_string_applet)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_height,
- &height);
- } else if (dom_string_caseless_isequal(name, nscss_dom_string_textarea)) {
+ nscss_dom_string_height, &height);
+ } else if (dom_string_caseless_lwc_isequal(name,
+ nscss_lwc_string_textarea)) {
textarea = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_rows,
- &height);
+ nscss_dom_string_rows, &height);
}
dom_string_unref(name);
@@ -2588,7 +2598,8 @@ node_presentational_hint_font_size(nscss_select_ctx *ctx,
return CSS_NOMEM;
}
- if (!dom_string_caseless_isequal(node_name, nscss_dom_string_font)) {
+ if (!dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_font)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
@@ -2627,11 +2638,16 @@ node_presentational_hint_float(nscss_select_ctx *ctx,
}
/** \todo input[type=image][align=*] - $11.3.3 */
- if (!dom_string_caseless_isequal(node_name, nscss_dom_string_applet) &&
- !dom_string_caseless_isequal(node_name, nscss_dom_string_embed) &&
- !dom_string_caseless_isequal(node_name, nscss_dom_string_iframe) &&
- !dom_string_caseless_isequal(node_name, nscss_dom_string_img) &&
- !dom_string_caseless_isequal(node_name, nscss_dom_string_object)) {
+ if (!dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_applet) &&
+ !dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_embed) &&
+ !dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_iframe) &&
+ !dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_img) &&
+ !dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_object)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
@@ -2643,11 +2659,11 @@ node_presentational_hint_float(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_isequal(align, nscss_dom_string_left)) {
+ if (dom_string_lwc_isequal(align, nscss_lwc_string_left)) {
hint->status = CSS_FLOAT_LEFT;
dom_string_unref(align);
return CSS_OK;
- } else if (dom_string_isequal(align, nscss_dom_string_right)) {
+ } else if (dom_string_lwc_isequal(align, nscss_lwc_string_right)) {
hint->status = CSS_FLOAT_RIGHT;
dom_string_unref(align);
return CSS_OK;
@@ -2673,18 +2689,14 @@ node_presentational_hint_color(nscss_select_ctx *ctx,
return CSS_NOMEM;
}
- if (dom_string_caseless_isequal(node_name, nscss_dom_string_a)) {
+ if (dom_string_caseless_lwc_isequal(node_name, nscss_lwc_string_a)) {
/* find body node */
css_qname qs;
dom_node *bodynode = NULL;
bool is_visited;
qs.ns = NULL;
- err = dom_string_intern(nscss_dom_string_body, &qs.name);
- if (err != DOM_NO_ERR) {
- dom_string_unref(node_name);
- return CSS_BADPARM;
- }
+ qs.name = lwc_string_ref(nscss_lwc_string_body);
if (named_ancestor_node(ctx, node, &qs,
(void *)&bodynode) != CSS_OK) {
/* Didn't find, or had error */
@@ -2706,26 +2718,31 @@ node_presentational_hint_color(nscss_select_ctx *ctx,
return error;
if (is_visited) {
- err = dom_element_get_attribute(node, nscss_dom_string_vlink, &color);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_vlink, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
} else {
- err = dom_element_get_attribute(node, nscss_dom_string_link, &color);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_link, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
}
- } else if (dom_string_caseless_isequal(node_name, nscss_dom_string_body)) {
- err = dom_element_get_attribute(node, nscss_dom_string_text, &color);
+ } else if (dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_body)) {
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_text, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
} else {
- err = dom_element_get_attribute(node, nscss_dom_string_color, &color);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_color, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
@@ -2759,7 +2776,8 @@ node_presentational_hint_caption_side(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (!dom_string_caseless_isequal(node_name, nscss_dom_string_caption)) {
+ if (!dom_string_caseless_lwc_isequal(node_name,
+ nscss_lwc_string_caption)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
@@ -2771,7 +2789,7 @@ node_presentational_hint_caption_side(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_isequal(align, nscss_dom_string_bottom)) {
+ if (dom_string_caseless_lwc_isequal(align, nscss_lwc_string_bottom)) {
hint->status = CSS_CAPTION_SIDE_BOTTOM;
dom_string_unref(align);
return CSS_OK;
@@ -2790,7 +2808,8 @@ node_presentational_hint_background_color(nscss_select_ctx *ctx,
dom_exception err;
dom_string *bgcolor;
- err = dom_element_get_attribute(node, nscss_dom_string_bgcolor, &bgcolor);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_bgcolor, &bgcolor);
if ((err != DOM_NO_ERR) || (bgcolor == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
@@ -2819,12 +2838,14 @@ node_presentational_hint_background_image(nscss_select_ctx *ctx,
lwc_string *iurl;
lwc_error lerror;
- err = dom_element_get_attribute(node, nscss_dom_string_background, &atr_val);
+ err = dom_element_get_attribute(node,
+ nscss_dom_string_background, &atr_val);
if ((err != DOM_NO_ERR) || (atr_val == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
- error = nsurl_join(ctx->base_url, (const char *)dom_string_data(atr_val), &url);
+ error = nsurl_join(ctx->base_url,
+ (const char *)dom_string_data(atr_val), &url);
dom_string_unref(atr_val);
@@ -2832,7 +2853,8 @@ node_presentational_hint_background_image(nscss_select_ctx *ctx,
return CSS_NOMEM;
}
- lerror = lwc_intern_string(nsurl_access(url), nsurl_length(url), &iurl);
+ lerror = lwc_intern_string(nsurl_access(url),
+ nsurl_length(url), &iurl);
nsurl_unref(url);