summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.sources9
-rw-r--r--css/css.c246
-rw-r--r--css/internal.h67
-rw-r--r--css/select.c298
-rw-r--r--desktop/netsurf.c7
-rw-r--r--utils/corestrings.c293
-rw-r--r--utils/corestrings.h101
7 files changed, 556 insertions, 465 deletions
diff --git a/Makefile.sources b/Makefile.sources
index 608381934..95695f786 100644
--- a/Makefile.sources
+++ b/Makefile.sources
@@ -13,12 +13,13 @@ S_CSS := css.c dump.c internal.c select.c utils.c
S_RENDER := box.c box_construct.c box_normalise.c \
font.c form.c \
- html.c html_script.c html_interaction.c html_redraw.c html_forms.c \
- imagemap.c layout.c list.c search.c table.c \
+ html.c html_script.c html_interaction.c html_redraw.c \
+ html_forms.c imagemap.c layout.c list.c search.c table.c \
textinput.c textplain.c
-S_UTILS := base64.c filename.c hashtable.c locale.c messages.c nsurl.c \
- talloc.c url.c utf8.c utils.c useragent.c filepath.c log.c
+S_UTILS := base64.c corestrings.c filename.c hashtable.c locale.c \
+ messages.c nsurl.c talloc.c url.c utf8.c utils.c useragent.c \
+ filepath.c log.c
S_HTTP := challenge.c generics.c primitives.c parameter.c \
content-disposition.c content-type.c www-authenticate.c
diff --git a/css/css.c b/css/css.c
index 549e79fae..3f660097f 100644
--- a/css/css.c
+++ b/css/css.c
@@ -83,71 +83,6 @@ static css_error nscss_register_import(struct content_css_data *c,
static lwc_string *css_charset;
static css_stylesheet *blank_import;
-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_background;
-dom_string *nscss_dom_string_bgcolor;
-dom_string *nscss_dom_string_border;
-dom_string *nscss_dom_string_bordercolor;
-dom_string *nscss_dom_string_cellpadding;
-dom_string *nscss_dom_string_cellspacing;
-dom_string *nscss_dom_string_color;
-dom_string *nscss_dom_string_cols;
-dom_string *nscss_dom_string_height;
-dom_string *nscss_dom_string_href;
-dom_string *nscss_dom_string_hspace;
-dom_string *nscss_dom_string_link;
-dom_string *nscss_dom_string_rows;
-dom_string *nscss_dom_string_size;
-dom_string *nscss_dom_string_text;
-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
@@ -834,91 +769,6 @@ 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)
-
- CSS_DOM_STRING_UNREF(align);
- CSS_DOM_STRING_UNREF(background);
- CSS_DOM_STRING_UNREF(bgcolor);
- CSS_DOM_STRING_UNREF(border);
- CSS_DOM_STRING_UNREF(bordercolor);
- CSS_DOM_STRING_UNREF(cellpadding);
- CSS_DOM_STRING_UNREF(cellspacing);
- CSS_DOM_STRING_UNREF(color);
- CSS_DOM_STRING_UNREF(cols);
- CSS_DOM_STRING_UNREF(height);
- CSS_DOM_STRING_UNREF(href);
- CSS_DOM_STRING_UNREF(hspace);
- CSS_DOM_STRING_UNREF(link);
- CSS_DOM_STRING_UNREF(rows);
- CSS_DOM_STRING_UNREF(size);
- CSS_DOM_STRING_UNREF(text);
- 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
-
-
if (css_charset != NULL) {
lwc_string_unref(css_charset);
css_charset = NULL;
@@ -949,7 +799,6 @@ nserror nscss_init(void)
{
lwc_error lerror;
nserror error;
- dom_exception exc;
lerror = lwc_intern_string("charset", SLEN("charset"), &css_charset);
if (lerror != lwc_error_ok) {
@@ -957,101 +806,6 @@ nserror nscss_init(void)
goto error;
}
-
-#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 ); \
- if ((exc != DOM_NO_ERR) || \
- (nscss_dom_string_##NAME == NULL)) { \
- error = NSERROR_NOMEM; \
- goto error; \
- } \
- } while(0)
-
- CSS_DOM_STRING_INTERN(align);
- CSS_DOM_STRING_INTERN(background);
- CSS_DOM_STRING_INTERN(bgcolor);
- CSS_DOM_STRING_INTERN(border);
- CSS_DOM_STRING_INTERN(bordercolor);
- CSS_DOM_STRING_INTERN(cellpadding);
- CSS_DOM_STRING_INTERN(cellspacing);
- CSS_DOM_STRING_INTERN(color);
- CSS_DOM_STRING_INTERN(cols);
- CSS_DOM_STRING_INTERN(height);
- CSS_DOM_STRING_INTERN(href);
- CSS_DOM_STRING_INTERN(hspace);
- CSS_DOM_STRING_INTERN(link);
- CSS_DOM_STRING_INTERN(rows);
- CSS_DOM_STRING_INTERN(size);
- CSS_DOM_STRING_INTERN(text);
- 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",
&css_content_handler);
if (error != NSERROR_OK)
diff --git a/css/internal.h b/css/internal.h
index a5a3e3210..0344d6b32 100644
--- a/css/internal.h
+++ b/css/internal.h
@@ -24,71 +24,4 @@
css_error nscss_resolve_url(void *pw, const char *base,
lwc_string *rel, lwc_string **abs);
-/* 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_background;
-extern struct dom_string *nscss_dom_string_bgcolor;
-extern struct dom_string *nscss_dom_string_border;
-extern struct dom_string *nscss_dom_string_bordercolor;
-extern struct dom_string *nscss_dom_string_cellpadding;
-extern struct dom_string *nscss_dom_string_cellspacing;
-extern struct dom_string *nscss_dom_string_color;
-extern struct dom_string *nscss_dom_string_cols;
-extern struct dom_string *nscss_dom_string_height;
-extern struct dom_string *nscss_dom_string_href;
-extern struct dom_string *nscss_dom_string_hspace;
-extern struct dom_string *nscss_dom_string_link;
-extern struct dom_string *nscss_dom_string_rows;
-extern struct dom_string *nscss_dom_string_size;
-extern struct dom_string *nscss_dom_string_text;
-extern struct dom_string *nscss_dom_string_type;
-extern struct dom_string *nscss_dom_string_valign;
-extern struct dom_string *nscss_dom_string_vlink;
-extern struct dom_string *nscss_dom_string_vspace;
-extern struct dom_string *nscss_dom_string_width;
-
#endif
diff --git a/css/select.c b/css/select.c
index a92c47601..5c620b1ed 100644
--- a/css/select.c
+++ b/css/select.c
@@ -28,6 +28,7 @@
#include "css/utils.h"
#include "desktop/gui.h"
#include "desktop/options.h"
+#include "utils/corestrings.h"
#include "utils/log.h"
#include "utils/url.h"
#include "utils/utils.h"
@@ -1515,9 +1516,10 @@ css_error node_is_link(void *pw, void *n, bool *match)
return CSS_NOMEM;
}
- if (dom_string_caseless_lwc_isequal(node_name, nscss_lwc_string_a)) {
+ if (dom_string_caseless_lwc_isequal(node_name, corestring_lwc_a)) {
bool has_href;
- exc = dom_element_has_attribute(node, nscss_dom_string_href, &has_href);
+ exc = dom_element_has_attribute(node, corestring_dom_href,
+ &has_href);
if ((exc == DOM_NO_ERR) && (has_href)) {
*match = true;
} else {
@@ -1751,31 +1753,31 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- 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)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_col) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_thead) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_tbody) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_tfoot) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_tr) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_valign, &valign);
+ corestring_dom_valign, &valign);
if (err != DOM_NO_ERR || valign == NULL) {
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_top)) {
+ corestring_lwc_top)) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_middle)) {
+ corestring_lwc_middle)) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_bottom)) {
+ corestring_lwc_bottom)) {
hint->status = CSS_VERTICAL_ALIGN_BOTTOM;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_baseline)) {
+ corestring_lwc_baseline)) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
} else {
dom_string_unref(valign);
@@ -1788,38 +1790,38 @@ node_presentational_hint_vertical_align(nscss_select_ctx *ctx,
return CSS_OK;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_applet) ||
+ corestring_lwc_applet) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_embed) ||
+ corestring_lwc_embed) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_iframe) ||
+ corestring_lwc_iframe) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_img) ||
+ corestring_lwc_img) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_object)) {
+ corestring_lwc_object)) {
/** \todo input[type=image][align=*] - $11.3.3 */
err = dom_element_get_attribute(node,
- nscss_dom_string_align, &valign);
+ corestring_dom_align, &valign);
if (err != DOM_NO_ERR || valign == NULL) {
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_top)) {
+ corestring_lwc_top)) {
hint->status = CSS_VERTICAL_ALIGN_TOP;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_bottom) ||
+ corestring_lwc_bottom) ||
dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_baseline)) {
+ corestring_lwc_baseline)) {
hint->status = CSS_VERTICAL_ALIGN_BASELINE;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_texttop)) {
+ corestring_lwc_texttop)) {
hint->status = CSS_VERTICAL_ALIGN_TEXT_TOP;
} else if (dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_absmiddle) ||
+ corestring_lwc_absmiddle) ||
dom_string_caseless_lwc_isequal(valign,
- nscss_lwc_string_abscenter)) {
+ corestring_lwc_abscenter)) {
hint->status = CSS_VERTICAL_ALIGN_MIDDLE;
} else {
dom_string_unref(valign);
@@ -1850,31 +1852,31 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- 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)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_p) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h1) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h2) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h3) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h4) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h5) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_h6)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_align, &align);
+ corestring_dom_align, &align);
if (err != DOM_NO_ERR || align == NULL) {
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_left)) {
+ corestring_lwc_left)) {
hint->status = CSS_TEXT_ALIGN_LEFT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_center)) {
+ corestring_lwc_center)) {
hint->status = CSS_TEXT_ALIGN_CENTER;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_right)) {
+ corestring_lwc_right)) {
hint->status = CSS_TEXT_ALIGN_RIGHT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_justify)) {
+ corestring_lwc_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1887,32 +1889,32 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_OK;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_center)) {
+ corestring_lwc_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
dom_string_unref(name);
return CSS_OK;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_caption)) {
+ corestring_lwc_caption)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_align, &align);
+ corestring_dom_align, &align);
if (err != DOM_NO_ERR) {
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
if (align == NULL || dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_center)) {
+ corestring_lwc_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_left)) {
+ corestring_lwc_left)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_right)) {
+ corestring_lwc_right)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_justify)) {
+ corestring_lwc_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1926,37 +1928,37 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_OK;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_div) ||
+ corestring_lwc_div) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_thead) ||
+ corestring_lwc_thead) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_tbody) ||
+ corestring_lwc_tbody) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_tfoot) ||
+ corestring_lwc_tfoot) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_tr) ||
+ corestring_lwc_tr) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_td) ||
+ corestring_lwc_td) ||
dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_th)) {
+ corestring_lwc_th)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_align, &align);
+ corestring_dom_align, &align);
if (err != DOM_NO_ERR || align == NULL) {
dom_string_unref(name);
return CSS_PROPERTY_NOT_SET;
}
if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_center)) {
+ corestring_lwc_center)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_CENTER;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_left)) {
+ corestring_lwc_left)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_LEFT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_right)) {
+ corestring_lwc_right)) {
hint->status = CSS_TEXT_ALIGN_LIBCSS_RIGHT;
} else if (dom_string_caseless_lwc_isequal(align,
- nscss_lwc_string_justify)) {
+ corestring_lwc_justify)) {
hint->status = CSS_TEXT_ALIGN_JUSTIFY;
} else {
dom_string_unref(align);
@@ -1969,7 +1971,7 @@ node_presentational_hint_text_align(nscss_select_ctx *ctx,
return CSS_OK;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_table)) {
+ corestring_lwc_table)) {
/* Tables usually reset alignment */
hint->status = CSS_TEXT_ALIGN_INHERIT_IF_NON_MAGIC;
@@ -1997,12 +1999,12 @@ node_presentational_hint_padding_trbl(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
- dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- qs.name = lwc_string_ref(nscss_lwc_string_table);
+ qs.name = lwc_string_ref(corestring_lwc_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
/* Didn't find, or had error */
@@ -2014,7 +2016,7 @@ node_presentational_hint_padding_trbl(nscss_select_ctx *ctx,
if (tablenode != NULL) {
exc = dom_element_get_attribute(tablenode,
- nscss_dom_string_cellpadding,
+ corestring_dom_cellpadding,
&cellpadding);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
@@ -2056,11 +2058,11 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_img) ||
- dom_string_caseless_lwc_isequal(n, nscss_lwc_string_applet)) {
+ if (dom_string_caseless_lwc_isequal(n, corestring_lwc_img) ||
+ dom_string_caseless_lwc_isequal(n, corestring_lwc_applet)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_hspace, &n);
+ corestring_dom_hspace, &n);
if (exc != DOM_NO_ERR) {
return CSS_BADPARM;
}
@@ -2078,11 +2080,11 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
}
dom_string_unref(n);
return CSS_OK;
- } else if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_table) ||
- dom_string_caseless_lwc_isequal(n, nscss_lwc_string_align)) {
+ } else if (dom_string_caseless_lwc_isequal(n, corestring_lwc_table) ||
+ dom_string_caseless_lwc_isequal(n, corestring_lwc_align)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_align, &n);
+ corestring_dom_align, &n);
if (exc != DOM_NO_ERR) {
return CSS_BADPARM;
}
@@ -2091,13 +2093,13 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
if (dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_center) ||
+ corestring_lwc_center) ||
dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_abscenter) ||
+ corestring_lwc_abscenter) ||
dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_middle) ||
+ corestring_lwc_middle) ||
dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_absmiddle)) {
+ corestring_lwc_absmiddle)) {
hint->status = CSS_MARGIN_AUTO;
} else {
dom_string_unref(n);
@@ -2106,10 +2108,10 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
dom_string_unref(n);
return CSS_OK;
- } else if (dom_string_caseless_lwc_isequal(n, nscss_lwc_string_hr)) {
+ } else if (dom_string_caseless_lwc_isequal(n, corestring_lwc_hr)) {
dom_string_unref(n);
exc = dom_element_get_attribute(node,
- nscss_dom_string_align, &n);
+ corestring_dom_align, &n);
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
@@ -2117,7 +2119,7 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
return CSS_PROPERTY_NOT_SET;
if (dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_left)) {
+ corestring_lwc_left)) {
if (property == CSS_PROP_MARGIN_LEFT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -2126,10 +2128,10 @@ node_presentational_hint_margin_rl(nscss_select_ctx *ctx,
hint->status = CSS_MARGIN_AUTO;
}
} else if (dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_center)) {
+ corestring_lwc_center)) {
hint->status = CSS_MARGIN_AUTO;
} else if (dom_string_caseless_lwc_isequal(n,
- nscss_lwc_string_right)) {
+ corestring_lwc_right)) {
if (property == CSS_PROP_MARGIN_RIGHT) {
hint->data.length.value = 0;
hint->data.length.unit = CSS_UNIT_PX;
@@ -2163,9 +2165,9 @@ node_presentational_hint_margin_tb(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- 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,
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_img) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_applet)) {
+ exc = dom_element_get_attribute(node, corestring_dom_vspace,
&vspace);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
@@ -2206,12 +2208,12 @@ node_presentational_hint_border_trbl_width(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
- dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- qs.name = lwc_string_ref(nscss_lwc_string_table);
+ qs.name = lwc_string_ref(corestring_lwc_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
/* Didn't find, or had error */
@@ -2223,7 +2225,7 @@ node_presentational_hint_border_trbl_width(nscss_select_ctx *ctx,
lwc_string_unref(qs.name);
if (tablenode != NULL) {
exc = dom_element_get_attribute(tablenode,
- nscss_dom_string_border, &width);
+ corestring_dom_border, &width);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
return CSS_BADPARM;
@@ -2234,8 +2236,8 @@ node_presentational_hint_border_trbl_width(nscss_select_ctx *ctx,
*/
is_table_cell = true;
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_table)) {
- exc = dom_element_get_attribute(node, nscss_dom_string_border,
+ corestring_lwc_table)) {
+ exc = dom_element_get_attribute(node, corestring_dom_border,
&width);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
@@ -2280,12 +2282,12 @@ node_presentational_hint_border_trbl_style(nscss_select_ctx *ctx,
if (exc != DOM_NO_ERR)
return CSS_BADPARM;
- if (dom_string_caseless_lwc_isequal(name, nscss_lwc_string_td) ||
- dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- qs.name = lwc_string_ref(nscss_lwc_string_table);
+ qs.name = lwc_string_ref(corestring_lwc_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
@@ -2301,7 +2303,7 @@ node_presentational_hint_border_trbl_style(nscss_select_ctx *ctx,
bool has_border = false;
exc = dom_element_has_attribute(tablenode,
- nscss_dom_string_border,
+ corestring_dom_border,
&has_border);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
@@ -2318,11 +2320,11 @@ node_presentational_hint_border_trbl_style(nscss_select_ctx *ctx,
* return a reffed node to the CSS
*/
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_table)) {
+ corestring_lwc_table)) {
bool has_border = false;
exc = dom_element_has_attribute(node,
- nscss_dom_string_border,
+ corestring_dom_border,
&has_border);
if (exc != DOM_NO_ERR) {
dom_string_unref(name);
@@ -2354,12 +2356,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_lwc_isequal(name, nscss_lwc_string_td) ||
- dom_string_caseless_lwc_isequal(name, nscss_lwc_string_th)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th)) {
css_qname qs;
dom_node *tablenode = NULL;
qs.ns = NULL;
- qs.name = lwc_string_ref(nscss_lwc_string_table);
+ qs.name = lwc_string_ref(corestring_lwc_table);
if (named_ancestor_node(ctx, node, &qs,
(void *)&tablenode) != CSS_OK) {
@@ -2373,7 +2375,7 @@ node_presentational_hint_border_trbl_color(nscss_select_ctx *ctx,
if (tablenode != NULL) {
err = dom_element_get_attribute(node,
- nscss_dom_string_bordercolor,
+ corestring_dom_bordercolor,
&bordercolor);
}
/* No need to unref tablenode, named_ancestor_node does not
@@ -2381,9 +2383,9 @@ node_presentational_hint_border_trbl_color(nscss_select_ctx *ctx,
*/
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_table)) {
+ corestring_lwc_table)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_bordercolor,
+ corestring_dom_bordercolor,
&bordercolor);
}
@@ -2419,7 +2421,7 @@ node_presentational_hint_border_spacing(nscss_select_ctx *ctx,
}
if (!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_table)) {
+ corestring_lwc_table)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
@@ -2427,7 +2429,7 @@ node_presentational_hint_border_spacing(nscss_select_ctx *ctx,
dom_string_unref(node_name);
err = dom_element_get_attribute(node,
- nscss_dom_string_cellspacing, &cellspacing);
+ corestring_dom_cellspacing, &cellspacing);
if ((err != DOM_NO_ERR) || (cellspacing == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
@@ -2464,26 +2466,26 @@ node_presentational_hint_width(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- 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)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_hr) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_iframe) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_img) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_object) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_table) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_applet)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_width, &width);
+ corestring_dom_width, &width);
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_textarea)) {
+ corestring_lwc_textarea)) {
textarea = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_cols, &width);
+ corestring_dom_cols, &width);
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_input)) {
+ corestring_lwc_input)) {
input = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_size, &width);
+ corestring_dom_size, &width);
}
dom_string_unref(name);
@@ -2505,15 +2507,15 @@ node_presentational_hint_width(nscss_select_ctx *ctx,
if (input) {
err = dom_element_get_attribute(node,
- nscss_dom_string_type, &width);
+ corestring_dom_type, &width);
if ((err != DOM_NO_ERR) || (width == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
if (dom_string_lwc_isequal(width,
- nscss_lwc_string_text) ||
+ corestring_lwc_text) ||
dom_string_lwc_isequal(width,
- nscss_lwc_string_password)) {
+ corestring_lwc_password)) {
hint->data.length.unit = CSS_UNIT_EX;
}
@@ -2544,20 +2546,20 @@ node_presentational_hint_height(nscss_select_ctx *ctx,
if (err != DOM_NO_ERR)
return CSS_PROPERTY_NOT_SET;
- 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)) {
+ if (dom_string_caseless_lwc_isequal(name, corestring_lwc_iframe) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_td) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_th) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_tr) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_img) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_object) ||
+ dom_string_caseless_lwc_isequal(name, corestring_lwc_applet)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_height, &height);
+ corestring_dom_height, &height);
} else if (dom_string_caseless_lwc_isequal(name,
- nscss_lwc_string_textarea)) {
+ corestring_lwc_textarea)) {
textarea = true;
err = dom_element_get_attribute(node,
- nscss_dom_string_rows, &height);
+ corestring_dom_rows, &height);
}
dom_string_unref(name);
@@ -2599,14 +2601,14 @@ node_presentational_hint_font_size(nscss_select_ctx *ctx,
}
if (!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_font)) {
+ corestring_lwc_font)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
dom_string_unref(node_name);
- err = dom_element_get_attribute(node, nscss_dom_string_align, &size);
+ err = dom_element_get_attribute(node, corestring_dom_align, &size);
if ((err != DOM_NO_ERR) || (size == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
@@ -2639,31 +2641,31 @@ node_presentational_hint_float(nscss_select_ctx *ctx,
/** \todo input[type=image][align=*] - $11.3.3 */
if (!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_applet) &&
+ corestring_lwc_applet) &&
!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_embed) &&
+ corestring_lwc_embed) &&
!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_iframe) &&
+ corestring_lwc_iframe) &&
!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_img) &&
+ corestring_lwc_img) &&
!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_object)) {
+ corestring_lwc_object)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
dom_string_unref(node_name);
- err = dom_element_get_attribute(node, nscss_dom_string_align, &align);
+ err = dom_element_get_attribute(node, corestring_dom_align, &align);
if ((err != DOM_NO_ERR) || (align == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_lwc_isequal(align, nscss_lwc_string_left)) {
+ if (dom_string_lwc_isequal(align, corestring_lwc_left)) {
hint->status = CSS_FLOAT_LEFT;
dom_string_unref(align);
return CSS_OK;
- } else if (dom_string_lwc_isequal(align, nscss_lwc_string_right)) {
+ } else if (dom_string_lwc_isequal(align, corestring_lwc_right)) {
hint->status = CSS_FLOAT_RIGHT;
dom_string_unref(align);
return CSS_OK;
@@ -2689,14 +2691,14 @@ node_presentational_hint_color(nscss_select_ctx *ctx,
return CSS_NOMEM;
}
- if (dom_string_caseless_lwc_isequal(node_name, nscss_lwc_string_a)) {
+ if (dom_string_caseless_lwc_isequal(node_name, corestring_lwc_a)) {
/* find body node */
css_qname qs;
dom_node *bodynode = NULL;
bool is_visited;
qs.ns = NULL;
- qs.name = lwc_string_ref(nscss_lwc_string_body);
+ qs.name = lwc_string_ref(corestring_lwc_body);
if (named_ancestor_node(ctx, node, &qs,
(void *)&bodynode) != CSS_OK) {
/* Didn't find, or had error */
@@ -2719,30 +2721,30 @@ node_presentational_hint_color(nscss_select_ctx *ctx,
if (is_visited) {
err = dom_element_get_attribute(node,
- nscss_dom_string_vlink, &color);
+ corestring_dom_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);
+ corestring_dom_link, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
}
} else if (dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_body)) {
+ corestring_lwc_body)) {
err = dom_element_get_attribute(node,
- nscss_dom_string_text, &color);
+ corestring_dom_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);
+ corestring_dom_color, &color);
if ((err != DOM_NO_ERR) || (color == NULL)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
@@ -2777,19 +2779,19 @@ node_presentational_hint_caption_side(nscss_select_ctx *ctx,
}
if (!dom_string_caseless_lwc_isequal(node_name,
- nscss_lwc_string_caption)) {
+ corestring_lwc_caption)) {
dom_string_unref(node_name);
return CSS_PROPERTY_NOT_SET;
}
dom_string_unref(node_name);
- err = dom_element_get_attribute(node, nscss_dom_string_align, &align);
+ err = dom_element_get_attribute(node, corestring_dom_align, &align);
if ((err != DOM_NO_ERR) || (align == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
- if (dom_string_caseless_lwc_isequal(align, nscss_lwc_string_bottom)) {
+ if (dom_string_caseless_lwc_isequal(align, corestring_lwc_bottom)) {
hint->status = CSS_CAPTION_SIDE_BOTTOM;
dom_string_unref(align);
return CSS_OK;
@@ -2809,7 +2811,7 @@ node_presentational_hint_background_color(nscss_select_ctx *ctx,
dom_string *bgcolor;
err = dom_element_get_attribute(node,
- nscss_dom_string_bgcolor, &bgcolor);
+ corestring_dom_bgcolor, &bgcolor);
if ((err != DOM_NO_ERR) || (bgcolor == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
@@ -2839,7 +2841,7 @@ node_presentational_hint_background_image(nscss_select_ctx *ctx,
lwc_error lerror;
err = dom_element_get_attribute(node,
- nscss_dom_string_background, &atr_val);
+ corestring_dom_background, &atr_val);
if ((err != DOM_NO_ERR) || (atr_val == NULL)) {
return CSS_PROPERTY_NOT_SET;
}
diff --git a/desktop/netsurf.c b/desktop/netsurf.c
index 4fa7134c0..433acde57 100644
--- a/desktop/netsurf.c
+++ b/desktop/netsurf.c
@@ -47,6 +47,7 @@
#include "render/html.h"
#include "render/textplain.h"
+#include "utils/corestrings.h"
#include "utils/log.h"
#include "utils/url.h"
#include "utils/utf8.h"
@@ -169,6 +170,11 @@ nserror netsurf_init(int *pargc,
messages_load(messages);
+ /* corestrings init */
+ error = corestrings_init();
+ if (error != NSERROR_OK)
+ return error;
+
/* set up cache limits based on the memory cache size option */
hlcache_parameters.limit = nsoption_int(memory_cache_size);
@@ -287,6 +293,7 @@ void netsurf_exit(void)
LOG(("Destroying System colours"));
gui_system_colour_finalize();
+ corestrings_fini();
LOG(("Remaining lwc strings:"));
lwc_iterate_strings(netsurf_lwc_iterator, NULL);
diff --git a/utils/corestrings.c b/utils/corestrings.c
new file mode 100644
index 000000000..d266d17c6
--- /dev/null
+++ b/utils/corestrings.c
@@ -0,0 +1,293 @@
+/*
+ * Copyright 2012 Michael Drake <tlsa@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** \file
+ * Useful interned string pointers (implementation).
+ */
+
+#include <dom/dom.h>
+
+#include "utils/corestrings.h"
+
+/* lwc_string strings */
+lwc_string *corestring_lwc_a;
+lwc_string *corestring_lwc_abscenter;
+lwc_string *corestring_lwc_absmiddle;
+lwc_string *corestring_lwc_align;
+lwc_string *corestring_lwc_applet;
+lwc_string *corestring_lwc_baseline;
+lwc_string *corestring_lwc_body;
+lwc_string *corestring_lwc_bottom;
+lwc_string *corestring_lwc_caption;
+lwc_string *corestring_lwc_center;
+lwc_string *corestring_lwc_col;
+lwc_string *corestring_lwc_div;
+lwc_string *corestring_lwc_embed;
+lwc_string *corestring_lwc_font;
+lwc_string *corestring_lwc_h1;
+lwc_string *corestring_lwc_h2;
+lwc_string *corestring_lwc_h3;
+lwc_string *corestring_lwc_h4;
+lwc_string *corestring_lwc_h5;
+lwc_string *corestring_lwc_h6;
+lwc_string *corestring_lwc_hr;
+lwc_string *corestring_lwc_iframe;
+lwc_string *corestring_lwc_img;
+lwc_string *corestring_lwc_input;
+lwc_string *corestring_lwc_justify;
+lwc_string *corestring_lwc_left;
+lwc_string *corestring_lwc_middle;
+lwc_string *corestring_lwc_object;
+lwc_string *corestring_lwc_p;
+lwc_string *corestring_lwc_password;
+lwc_string *corestring_lwc_right;
+lwc_string *corestring_lwc_table;
+lwc_string *corestring_lwc_tbody;
+lwc_string *corestring_lwc_td;
+lwc_string *corestring_lwc_text;
+lwc_string *corestring_lwc_textarea;
+lwc_string *corestring_lwc_texttop;
+lwc_string *corestring_lwc_tfoot;
+lwc_string *corestring_lwc_th;
+lwc_string *corestring_lwc_thead;
+lwc_string *corestring_lwc_top;
+lwc_string *corestring_lwc_tr;
+
+/* dom_string strings */
+dom_string *corestring_dom_align;
+dom_string *corestring_dom_background;
+dom_string *corestring_dom_bgcolor;
+dom_string *corestring_dom_border;
+dom_string *corestring_dom_bordercolor;
+dom_string *corestring_dom_cellpadding;
+dom_string *corestring_dom_cellspacing;
+dom_string *corestring_dom_color;
+dom_string *corestring_dom_cols;
+dom_string *corestring_dom_height;
+dom_string *corestring_dom_href;
+dom_string *corestring_dom_hspace;
+dom_string *corestring_dom_link;
+dom_string *corestring_dom_rows;
+dom_string *corestring_dom_size;
+dom_string *corestring_dom_text;
+dom_string *corestring_dom_type;
+dom_string *corestring_dom_valign;
+dom_string *corestring_dom_vlink;
+dom_string *corestring_dom_vspace;
+dom_string *corestring_dom_width;
+
+
+/*
+ * Free the core strings
+ */
+void corestrings_fini(void)
+{
+#define CSS_LWC_STRING_UNREF(NAME) \
+ do { \
+ if (corestring_lwc_##NAME != NULL) { \
+ lwc_string_unref(corestring_lwc_##NAME); \
+ corestring_lwc_##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 (corestring_dom_##NAME != NULL) { \
+ dom_string_unref(corestring_dom_##NAME); \
+ corestring_dom_##NAME = NULL; \
+ } \
+ } while (0)
+
+ CSS_DOM_STRING_UNREF(align);
+ CSS_DOM_STRING_UNREF(background);
+ CSS_DOM_STRING_UNREF(bgcolor);
+ CSS_DOM_STRING_UNREF(border);
+ CSS_DOM_STRING_UNREF(bordercolor);
+ CSS_DOM_STRING_UNREF(cellpadding);
+ CSS_DOM_STRING_UNREF(cellspacing);
+ CSS_DOM_STRING_UNREF(color);
+ CSS_DOM_STRING_UNREF(cols);
+ CSS_DOM_STRING_UNREF(height);
+ CSS_DOM_STRING_UNREF(href);
+ CSS_DOM_STRING_UNREF(hspace);
+ CSS_DOM_STRING_UNREF(link);
+ CSS_DOM_STRING_UNREF(rows);
+ CSS_DOM_STRING_UNREF(size);
+ CSS_DOM_STRING_UNREF(text);
+ 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
+}
+
+
+/*
+ * Create the core strings
+ */
+nserror corestrings_init(void)
+{
+ lwc_error lerror;
+ nserror error;
+ dom_exception exc;
+
+#define CSS_LWC_STRING_INTERN(NAME) \
+ do { \
+ lerror = lwc_intern_string( \
+ (const char *)#NAME, \
+ sizeof(#NAME) - 1, \
+ &corestring_lwc_##NAME ); \
+ if ((lerror != lwc_error_ok) || \
+ (corestring_lwc_##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, \
+ &corestring_dom_##NAME ); \
+ if ((exc != DOM_NO_ERR) || \
+ (corestring_dom_##NAME == NULL)) { \
+ error = NSERROR_NOMEM; \
+ goto error; \
+ } \
+ } while(0)
+
+ CSS_DOM_STRING_INTERN(align);
+ CSS_DOM_STRING_INTERN(background);
+ CSS_DOM_STRING_INTERN(bgcolor);
+ CSS_DOM_STRING_INTERN(border);
+ CSS_DOM_STRING_INTERN(bordercolor);
+ CSS_DOM_STRING_INTERN(cellpadding);
+ CSS_DOM_STRING_INTERN(cellspacing);
+ CSS_DOM_STRING_INTERN(color);
+ CSS_DOM_STRING_INTERN(cols);
+ CSS_DOM_STRING_INTERN(height);
+ CSS_DOM_STRING_INTERN(href);
+ CSS_DOM_STRING_INTERN(hspace);
+ CSS_DOM_STRING_INTERN(link);
+ CSS_DOM_STRING_INTERN(rows);
+ CSS_DOM_STRING_INTERN(size);
+ CSS_DOM_STRING_INTERN(text);
+ 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
+
+ return NSERROR_OK;
+
+error:
+ corestrings_fini();
+
+ return error;
+}
diff --git a/utils/corestrings.h b/utils/corestrings.h
new file mode 100644
index 000000000..236c108bf
--- /dev/null
+++ b/utils/corestrings.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2012 Michael Drake <tlsa@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** \file
+ * Useful interned string pointers (interface).
+ */
+
+#ifndef NETSURF_UTILS_CORESTRINGS_H_
+#define NETSURF_UTILS_CORESTRINGS_H_
+
+#include <libwapcaplet/libwapcaplet.h>
+#include "utils/errors.h"
+
+nserror corestrings_init(void);
+void corestrings_fini(void);
+
+/* lwc_string strings */
+extern lwc_string *corestring_lwc_a;
+extern lwc_string *corestring_lwc_abscenter;
+extern lwc_string *corestring_lwc_absmiddle;
+extern lwc_string *corestring_lwc_align;
+extern lwc_string *corestring_lwc_applet;
+extern lwc_string *corestring_lwc_baseline;
+extern lwc_string *corestring_lwc_body;
+extern lwc_string *corestring_lwc_bottom;
+extern lwc_string *corestring_lwc_caption;
+extern lwc_string *corestring_lwc_center;
+extern lwc_string *corestring_lwc_col;
+extern lwc_string *corestring_lwc_div;
+extern lwc_string *corestring_lwc_embed;
+extern lwc_string *corestring_lwc_font;
+extern lwc_string *corestring_lwc_h1;
+extern lwc_string *corestring_lwc_h2;
+extern lwc_string *corestring_lwc_h3;
+extern lwc_string *corestring_lwc_h4;
+extern lwc_string *corestring_lwc_h5;
+extern lwc_string *corestring_lwc_h6;
+extern lwc_string *corestring_lwc_hr;
+extern lwc_string *corestring_lwc_iframe;
+extern lwc_string *corestring_lwc_img;
+extern lwc_string *corestring_lwc_input;
+extern lwc_string *corestring_lwc_justify;
+extern lwc_string *corestring_lwc_left;
+extern lwc_string *corestring_lwc_middle;
+extern lwc_string *corestring_lwc_object;
+extern lwc_string *corestring_lwc_p;
+extern lwc_string *corestring_lwc_password;
+extern lwc_string *corestring_lwc_right;
+extern lwc_string *corestring_lwc_table;
+extern lwc_string *corestring_lwc_tbody;
+extern lwc_string *corestring_lwc_td;
+extern lwc_string *corestring_lwc_text;
+extern lwc_string *corestring_lwc_textarea;
+extern lwc_string *corestring_lwc_texttop;
+extern lwc_string *corestring_lwc_tfoot;
+extern lwc_string *corestring_lwc_th;
+extern lwc_string *corestring_lwc_thead;
+extern lwc_string *corestring_lwc_top;
+extern lwc_string *corestring_lwc_tr;
+
+struct dom_string;
+
+/* dom_string strings */
+extern struct dom_string *corestring_dom_align;
+extern struct dom_string *corestring_dom_background;
+extern struct dom_string *corestring_dom_bgcolor;
+extern struct dom_string *corestring_dom_border;
+extern struct dom_string *corestring_dom_bordercolor;
+extern struct dom_string *corestring_dom_cellpadding;
+extern struct dom_string *corestring_dom_cellspacing;
+extern struct dom_string *corestring_dom_color;
+extern struct dom_string *corestring_dom_cols;
+extern struct dom_string *corestring_dom_height;
+extern struct dom_string *corestring_dom_href;
+extern struct dom_string *corestring_dom_hspace;
+extern struct dom_string *corestring_dom_link;
+extern struct dom_string *corestring_dom_rows;
+extern struct dom_string *corestring_dom_size;
+extern struct dom_string *corestring_dom_text;
+extern struct dom_string *corestring_dom_type;
+extern struct dom_string *corestring_dom_valign;
+extern struct dom_string *corestring_dom_vlink;
+extern struct dom_string *corestring_dom_vspace;
+extern struct dom_string *corestring_dom_width;
+
+#endif