Interned string cleanup, phase 2: Create utils/corestrings and use it in css handler.
This commit is contained in:
parent
1e65737c8c
commit
2ad24f39da
|
@ -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
|
||||
|
|
246
css/css.c
246
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)
|
||||
|
|
|
@ -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
|
||||
|
|
298
css/select.c
298
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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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
|
Loading…
Reference in New Issue