Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3584 sourcerer 1
/*
2
 * Copyright 2012 Michael Drake 
3
 *
4
 * This file is part of NetSurf, http://www.netsurf-browser.org/
5
 *
6
 * NetSurf is free software; you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation; version 2 of the License.
9
 *
10
 * NetSurf is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program.  If not, see .
17
 */
18
 
19
/** \file
20
 * Useful interned string pointers (implementation).
21
 */
22
 
23
#include 
24
 
25
#include "utils/corestrings.h"
26
#include "utils/utils.h"
27
 
28
/* lwc_string strings */
29
lwc_string *corestring_lwc_a;
30
lwc_string *corestring_lwc_abscenter;
31
lwc_string *corestring_lwc_absmiddle;
32
lwc_string *corestring_lwc_align;
33
lwc_string *corestring_lwc_applet;
34
lwc_string *corestring_lwc_base;
35
lwc_string *corestring_lwc_baseline;
36
lwc_string *corestring_lwc_body;
37
lwc_string *corestring_lwc_bottom;
38
lwc_string *corestring_lwc_button;
39
lwc_string *corestring_lwc_caption;
40
lwc_string *corestring_lwc_center;
41
lwc_string *corestring_lwc_checkbox;
42
lwc_string *corestring_lwc_circle;
43
lwc_string *corestring_lwc_col;
44
lwc_string *corestring_lwc_default;
45
lwc_string *corestring_lwc_div;
46
lwc_string *corestring_lwc_embed;
47
lwc_string *corestring_lwc_file;
48
lwc_string *corestring_lwc_font;
49
lwc_string *corestring_lwc_frame;
50
lwc_string *corestring_lwc_frameset;
51
lwc_string *corestring_lwc_h1;
52
lwc_string *corestring_lwc_h2;
53
lwc_string *corestring_lwc_h3;
54
lwc_string *corestring_lwc_h4;
55
lwc_string *corestring_lwc_h5;
56
lwc_string *corestring_lwc_h6;
57
lwc_string *corestring_lwc_head;
58
lwc_string *corestring_lwc_hidden;
59
lwc_string *corestring_lwc_hr;
60
lwc_string *corestring_lwc_html;
61
lwc_string *corestring_lwc_https;
62
lwc_string *corestring_lwc_iframe;
63
lwc_string *corestring_lwc_image;
64
lwc_string *corestring_lwc_img;
65
lwc_string *corestring_lwc_input;
66
lwc_string *corestring_lwc_justify;
67
lwc_string *corestring_lwc_left;
68
lwc_string *corestring_lwc_li;
69
lwc_string *corestring_lwc_link;
70
lwc_string *corestring_lwc_meta;
71
lwc_string *corestring_lwc_middle;
72
lwc_string *corestring_lwc_multipart_form_data;
73
lwc_string *corestring_lwc_no;
74
lwc_string *corestring_lwc_noscript;
75
lwc_string *corestring_lwc_object;
76
lwc_string *corestring_lwc_optgroup;
77
lwc_string *corestring_lwc_option;
78
lwc_string *corestring_lwc_p;
79
lwc_string *corestring_lwc_param;
80
lwc_string *corestring_lwc_password;
81
lwc_string *corestring_lwc_poly;
82
lwc_string *corestring_lwc_polygon;
83
lwc_string *corestring_lwc_post;
84
lwc_string *corestring_lwc_radio;
85
lwc_string *corestring_lwc_rect;
86
lwc_string *corestring_lwc_rectangle;
87
lwc_string *corestring_lwc_refresh;
88
lwc_string *corestring_lwc_reset;
89
lwc_string *corestring_lwc_right;
90
lwc_string *corestring_lwc_search;
91
lwc_string *corestring_lwc_select;
92
lwc_string *corestring_lwc_src;
93
lwc_string *corestring_lwc_style;
94
lwc_string *corestring_lwc_submit;
95
lwc_string *corestring_lwc_table;
96
lwc_string *corestring_lwc_tbody;
97
lwc_string *corestring_lwc_td;
98
lwc_string *corestring_lwc_text;
99
lwc_string *corestring_lwc_textarea;
100
lwc_string *corestring_lwc_texttop;
101
lwc_string *corestring_lwc_text_css;
102
lwc_string *corestring_lwc_tfoot;
103
lwc_string *corestring_lwc_th;
104
lwc_string *corestring_lwc_thead;
105
lwc_string *corestring_lwc_title;
106
lwc_string *corestring_lwc_top;
107
lwc_string *corestring_lwc_tr;
108
lwc_string *corestring_lwc_ul;
109
lwc_string *corestring_lwc_url;
110
lwc_string *corestring_lwc_yes;
111
lwc_string *corestring_lwc__blank;
112
lwc_string *corestring_lwc__parent;
113
lwc_string *corestring_lwc__self;
114
lwc_string *corestring_lwc__top;
115
 
116
/* dom_string strings */
117
dom_string *corestring_dom_a;
118
dom_string *corestring_dom_abort;
119
dom_string *corestring_dom_afterprint;
120
dom_string *corestring_dom_align;
121
dom_string *corestring_dom_area;
122
dom_string *corestring_dom_async;
123
dom_string *corestring_dom_background;
124
dom_string *corestring_dom_beforeprint;
125
dom_string *corestring_dom_beforeunload;
126
dom_string *corestring_dom_bgcolor;
127
dom_string *corestring_dom_blur;
128
dom_string *corestring_dom_border;
129
dom_string *corestring_dom_bordercolor;
130
dom_string *corestring_dom_cancel;
131
dom_string *corestring_dom_canplay;
132
dom_string *corestring_dom_canplaythrough;
133
dom_string *corestring_dom_cellpadding;
134
dom_string *corestring_dom_cellspacing;
135
dom_string *corestring_dom_change;
136
dom_string *corestring_dom_charset;
137
dom_string *corestring_dom_class;
138
dom_string *corestring_dom_click;
139
dom_string *corestring_dom_close;
140
dom_string *corestring_dom_color;
141
dom_string *corestring_dom_cols;
142
dom_string *corestring_dom_content;
143
dom_string *corestring_dom_contextmenu;
144
dom_string *corestring_dom_coords;
145
dom_string *corestring_dom_cuechange;
146
dom_string *corestring_dom_dblclick;
147
dom_string *corestring_dom_defer;
148
dom_string *corestring_dom_drag;
149
dom_string *corestring_dom_dragend;
150
dom_string *corestring_dom_dragenter;
151
dom_string *corestring_dom_dragleave;
152
dom_string *corestring_dom_dragover;
153
dom_string *corestring_dom_dragstart;
154
dom_string *corestring_dom_drop;
155
dom_string *corestring_dom_durationchange;
156
dom_string *corestring_dom_emptied;
157
dom_string *corestring_dom_ended;
158
dom_string *corestring_dom_error;
159
dom_string *corestring_dom_focus;
160
dom_string *corestring_dom_hashchange;
161
dom_string *corestring_dom_height;
162
dom_string *corestring_dom_href;
163
dom_string *corestring_dom_hreflang;
164
dom_string *corestring_dom_hspace;
165
dom_string *corestring_dom_http_equiv;
166
dom_string *corestring_dom_id;
167
dom_string *corestring_dom_input;
168
dom_string *corestring_dom_invalid;
169
dom_string *corestring_dom_keydown;
170
dom_string *corestring_dom_keypress;
171
dom_string *corestring_dom_keyup;
172
dom_string *corestring_dom_link;
173
dom_string *corestring_dom_load;
174
dom_string *corestring_dom_loadeddata;
175
dom_string *corestring_dom_loadedmetadata;
176
dom_string *corestring_dom_loadstart;
177
dom_string *corestring_dom_map;
178
dom_string *corestring_dom_media;
179
dom_string *corestring_dom_message;
180
dom_string *corestring_dom_mousedown;
181
dom_string *corestring_dom_mousemove;
182
dom_string *corestring_dom_mouseout;
183
dom_string *corestring_dom_mouseover;
184
dom_string *corestring_dom_mouseup;
185
dom_string *corestring_dom_mousewheel;
186
dom_string *corestring_dom_name;
187
dom_string *corestring_dom_nohref;
188
dom_string *corestring_dom_offline;
189
dom_string *corestring_dom_online;
190
dom_string *corestring_dom_pagehide;
191
dom_string *corestring_dom_pageshow;
192
dom_string *corestring_dom_pause;
193
dom_string *corestring_dom_play;
194
dom_string *corestring_dom_playing;
195
dom_string *corestring_dom_popstate;
196
dom_string *corestring_dom_progress;
197
dom_string *corestring_dom_ratechange;
198
dom_string *corestring_dom_readystatechange;
199
dom_string *corestring_dom_rect;
200
dom_string *corestring_dom_rel;
201
dom_string *corestring_dom_reset;
202
dom_string *corestring_dom_resize;
203
dom_string *corestring_dom_rows;
204
dom_string *corestring_dom_scroll;
205
dom_string *corestring_dom_seeked;
206
dom_string *corestring_dom_seeking;
207
dom_string *corestring_dom_select;
208
dom_string *corestring_dom_shape;
209
dom_string *corestring_dom_show;
210
dom_string *corestring_dom_size;
211
dom_string *corestring_dom_sizes;
212
dom_string *corestring_dom_src;
213
dom_string *corestring_dom_stalled;
214
dom_string *corestring_dom_storage;
215
dom_string *corestring_dom_submit;
216
dom_string *corestring_dom_suspend;
217
dom_string *corestring_dom_target;
218
dom_string *corestring_dom_text;
219
dom_string *corestring_dom_text_javascript;
220
dom_string *corestring_dom_timeupdate;
221
dom_string *corestring_dom_type;
222
dom_string *corestring_dom_unload;
223
dom_string *corestring_dom_valign;
224
dom_string *corestring_dom_vlink;
225
dom_string *corestring_dom_volumechange;
226
dom_string *corestring_dom_vspace;
227
dom_string *corestring_dom_waiting;
228
dom_string *corestring_dom_width;
229
 
230
 
231
/*
232
 * Free the core strings
233
 */
234
void corestrings_fini(void)
235
{
236
#define CSS_LWC_STRING_UNREF(NAME)					\
237
	do {								\
238
		if (corestring_lwc_##NAME != NULL) {			\
239
			lwc_string_unref(corestring_lwc_##NAME);	\
240
			corestring_lwc_##NAME = NULL;			\
241
		}							\
242
	} while (0)
243
 
244
	CSS_LWC_STRING_UNREF(a);
245
	CSS_LWC_STRING_UNREF(abscenter);
246
	CSS_LWC_STRING_UNREF(absmiddle);
247
	CSS_LWC_STRING_UNREF(align);
248
	CSS_LWC_STRING_UNREF(applet);
249
	CSS_LWC_STRING_UNREF(base);
250
	CSS_LWC_STRING_UNREF(baseline);
251
	CSS_LWC_STRING_UNREF(body);
252
	CSS_LWC_STRING_UNREF(bottom);
253
	CSS_LWC_STRING_UNREF(button);
254
	CSS_LWC_STRING_UNREF(caption);
255
	CSS_LWC_STRING_UNREF(center);
256
	CSS_LWC_STRING_UNREF(checkbox);
257
	CSS_LWC_STRING_UNREF(circle);
258
	CSS_LWC_STRING_UNREF(col);
259
	CSS_LWC_STRING_UNREF(default);
260
	CSS_LWC_STRING_UNREF(div);
261
	CSS_LWC_STRING_UNREF(embed);
262
	CSS_LWC_STRING_UNREF(file);
263
	CSS_LWC_STRING_UNREF(font);
264
	CSS_LWC_STRING_UNREF(frame);
265
	CSS_LWC_STRING_UNREF(frameset);
266
	CSS_LWC_STRING_UNREF(h1);
267
	CSS_LWC_STRING_UNREF(h2);
268
	CSS_LWC_STRING_UNREF(h3);
269
	CSS_LWC_STRING_UNREF(h4);
270
	CSS_LWC_STRING_UNREF(h5);
271
	CSS_LWC_STRING_UNREF(h6);
272
	CSS_LWC_STRING_UNREF(head);
273
	CSS_LWC_STRING_UNREF(hidden);
274
	CSS_LWC_STRING_UNREF(hr);
275
	CSS_LWC_STRING_UNREF(html);
276
	CSS_LWC_STRING_UNREF(https);
277
	CSS_LWC_STRING_UNREF(iframe);
278
	CSS_LWC_STRING_UNREF(image);
279
	CSS_LWC_STRING_UNREF(img);
280
	CSS_LWC_STRING_UNREF(input);
281
	CSS_LWC_STRING_UNREF(justify);
282
	CSS_LWC_STRING_UNREF(left);
283
	CSS_LWC_STRING_UNREF(li);
284
	CSS_LWC_STRING_UNREF(link);
285
	CSS_LWC_STRING_UNREF(meta);
286
	CSS_LWC_STRING_UNREF(middle);
287
	CSS_LWC_STRING_UNREF(multipart_form_data);
288
	CSS_LWC_STRING_UNREF(no);
289
	CSS_LWC_STRING_UNREF(noscript);
290
	CSS_LWC_STRING_UNREF(object);
291
	CSS_LWC_STRING_UNREF(optgroup);
292
	CSS_LWC_STRING_UNREF(option);
293
	CSS_LWC_STRING_UNREF(p);
294
	CSS_LWC_STRING_UNREF(param);
295
	CSS_LWC_STRING_UNREF(password);
296
	CSS_LWC_STRING_UNREF(poly);
297
	CSS_LWC_STRING_UNREF(polygon);
298
	CSS_LWC_STRING_UNREF(post);
299
	CSS_LWC_STRING_UNREF(radio);
300
	CSS_LWC_STRING_UNREF(rect);
301
	CSS_LWC_STRING_UNREF(rectangle);
302
	CSS_LWC_STRING_UNREF(refresh);
303
	CSS_LWC_STRING_UNREF(reset);
304
	CSS_LWC_STRING_UNREF(right);
305
	CSS_LWC_STRING_UNREF(search);
306
	CSS_LWC_STRING_UNREF(select);
307
	CSS_LWC_STRING_UNREF(src);
308
	CSS_LWC_STRING_UNREF(style);
309
	CSS_LWC_STRING_UNREF(submit);
310
	CSS_LWC_STRING_UNREF(table);
311
	CSS_LWC_STRING_UNREF(tbody);
312
	CSS_LWC_STRING_UNREF(td);
313
	CSS_LWC_STRING_UNREF(text);
314
	CSS_LWC_STRING_UNREF(textarea);
315
	CSS_LWC_STRING_UNREF(texttop);
316
	CSS_LWC_STRING_UNREF(text_css);
317
	CSS_LWC_STRING_UNREF(tfoot);
318
	CSS_LWC_STRING_UNREF(th);
319
	CSS_LWC_STRING_UNREF(thead);
320
	CSS_LWC_STRING_UNREF(title);
321
	CSS_LWC_STRING_UNREF(top);
322
	CSS_LWC_STRING_UNREF(tr);
323
	CSS_LWC_STRING_UNREF(ul);
324
	CSS_LWC_STRING_UNREF(url);
325
	CSS_LWC_STRING_UNREF(yes);
326
	CSS_LWC_STRING_UNREF(_blank);
327
	CSS_LWC_STRING_UNREF(_parent);
328
	CSS_LWC_STRING_UNREF(_self);
329
	CSS_LWC_STRING_UNREF(_top);
330
 
331
#undef CSS_LWC_STRING_UNREF
332
 
333
#define CSS_DOM_STRING_UNREF(NAME)					\
334
	do {								\
335
		if (corestring_dom_##NAME != NULL) {			\
336
			dom_string_unref(corestring_dom_##NAME);	\
337
			corestring_dom_##NAME = NULL;			\
338
		}							\
339
	} while (0)
340
 
341
	CSS_DOM_STRING_UNREF(a);
342
	CSS_DOM_STRING_UNREF(abort);
343
	CSS_DOM_STRING_UNREF(afterprint);
344
	CSS_DOM_STRING_UNREF(align);
345
	CSS_DOM_STRING_UNREF(area);
346
	CSS_DOM_STRING_UNREF(async);
347
	CSS_DOM_STRING_UNREF(background);
348
	CSS_DOM_STRING_UNREF(beforeprint);
349
	CSS_DOM_STRING_UNREF(beforeunload);
350
	CSS_DOM_STRING_UNREF(bgcolor);
351
	CSS_DOM_STRING_UNREF(blur);
352
	CSS_DOM_STRING_UNREF(border);
353
	CSS_DOM_STRING_UNREF(bordercolor);
354
	CSS_DOM_STRING_UNREF(cancel);
355
	CSS_DOM_STRING_UNREF(canplay);
356
	CSS_DOM_STRING_UNREF(canplaythrough);
357
	CSS_DOM_STRING_UNREF(cellpadding);
358
	CSS_DOM_STRING_UNREF(cellspacing);
359
	CSS_DOM_STRING_UNREF(change);
360
	CSS_DOM_STRING_UNREF(charset);
361
	CSS_DOM_STRING_UNREF(class);
362
	CSS_DOM_STRING_UNREF(click);
363
	CSS_DOM_STRING_UNREF(close);
364
	CSS_DOM_STRING_UNREF(color);
365
	CSS_DOM_STRING_UNREF(cols);
366
	CSS_DOM_STRING_UNREF(content);
367
	CSS_DOM_STRING_UNREF(contextmenu);
368
	CSS_DOM_STRING_UNREF(coords);
369
	CSS_DOM_STRING_UNREF(cuechange);
370
	CSS_DOM_STRING_UNREF(dblclick);
371
	CSS_DOM_STRING_UNREF(defer);
372
	CSS_DOM_STRING_UNREF(drag);
373
	CSS_DOM_STRING_UNREF(dragend);
374
	CSS_DOM_STRING_UNREF(dragenter);
375
	CSS_DOM_STRING_UNREF(dragleave);
376
	CSS_DOM_STRING_UNREF(dragover);
377
	CSS_DOM_STRING_UNREF(dragstart);
378
	CSS_DOM_STRING_UNREF(drop);
379
	CSS_DOM_STRING_UNREF(durationchange);
380
	CSS_DOM_STRING_UNREF(emptied);
381
	CSS_DOM_STRING_UNREF(ended);
382
	CSS_DOM_STRING_UNREF(error);
383
	CSS_DOM_STRING_UNREF(focus);
384
	CSS_DOM_STRING_UNREF(hashchange);
385
	CSS_DOM_STRING_UNREF(height);
386
	CSS_DOM_STRING_UNREF(href);
387
	CSS_DOM_STRING_UNREF(hreflang);
388
	CSS_DOM_STRING_UNREF(hspace);
389
	CSS_DOM_STRING_UNREF(http_equiv);
390
	CSS_DOM_STRING_UNREF(id);
391
	CSS_DOM_STRING_UNREF(input);
392
	CSS_DOM_STRING_UNREF(invalid);
393
	CSS_DOM_STRING_UNREF(keydown);
394
	CSS_DOM_STRING_UNREF(keypress);
395
	CSS_DOM_STRING_UNREF(keyup);
396
	CSS_DOM_STRING_UNREF(link);
397
	CSS_DOM_STRING_UNREF(load);
398
	CSS_DOM_STRING_UNREF(loadeddata);
399
	CSS_DOM_STRING_UNREF(loadedmetadata);
400
	CSS_DOM_STRING_UNREF(loadstart);
401
	CSS_DOM_STRING_UNREF(map);
402
	CSS_DOM_STRING_UNREF(media);
403
	CSS_DOM_STRING_UNREF(message);
404
	CSS_DOM_STRING_UNREF(mousedown);
405
	CSS_DOM_STRING_UNREF(mousemove);
406
	CSS_DOM_STRING_UNREF(mouseout);
407
	CSS_DOM_STRING_UNREF(mouseover);
408
	CSS_DOM_STRING_UNREF(mouseup);
409
	CSS_DOM_STRING_UNREF(mousewheel);
410
	CSS_DOM_STRING_UNREF(name);
411
	CSS_DOM_STRING_UNREF(nohref);
412
	CSS_DOM_STRING_UNREF(offline);
413
	CSS_DOM_STRING_UNREF(online);
414
	CSS_DOM_STRING_UNREF(pagehide);
415
	CSS_DOM_STRING_UNREF(pageshow);
416
	CSS_DOM_STRING_UNREF(pause);
417
	CSS_DOM_STRING_UNREF(play);
418
	CSS_DOM_STRING_UNREF(playing);
419
	CSS_DOM_STRING_UNREF(popstate);
420
	CSS_DOM_STRING_UNREF(progress);
421
	CSS_DOM_STRING_UNREF(ratechange);
422
	CSS_DOM_STRING_UNREF(readystatechange);
423
	CSS_DOM_STRING_UNREF(rect);
424
	CSS_DOM_STRING_UNREF(rel);
425
	CSS_DOM_STRING_UNREF(reset);
426
	CSS_DOM_STRING_UNREF(resize);
427
	CSS_DOM_STRING_UNREF(rows);
428
	CSS_DOM_STRING_UNREF(scroll);
429
	CSS_DOM_STRING_UNREF(seeked);
430
	CSS_DOM_STRING_UNREF(seeking);
431
	CSS_DOM_STRING_UNREF(select);
432
	CSS_DOM_STRING_UNREF(shape);
433
	CSS_DOM_STRING_UNREF(show);
434
	CSS_DOM_STRING_UNREF(size);
435
	CSS_DOM_STRING_UNREF(sizes);
436
	CSS_DOM_STRING_UNREF(src);
437
	CSS_DOM_STRING_UNREF(stalled);
438
	CSS_DOM_STRING_UNREF(storage);
439
	CSS_DOM_STRING_UNREF(submit);
440
	CSS_DOM_STRING_UNREF(suspend);
441
	CSS_DOM_STRING_UNREF(target);
442
	CSS_DOM_STRING_UNREF(text);
443
	CSS_DOM_STRING_UNREF(text_javascript);
444
	CSS_DOM_STRING_UNREF(timeupdate);
445
	CSS_DOM_STRING_UNREF(type);
446
	CSS_DOM_STRING_UNREF(unload);
447
	CSS_DOM_STRING_UNREF(valign);
448
	CSS_DOM_STRING_UNREF(vlink);
449
	CSS_DOM_STRING_UNREF(volumechange);
450
	CSS_DOM_STRING_UNREF(vspace);
451
	CSS_DOM_STRING_UNREF(waiting);
452
	CSS_DOM_STRING_UNREF(width);
453
#undef CSS_DOM_STRING_UNREF
454
}
455
 
456
 
457
/*
458
 * Create the core strings
459
 */
460
nserror corestrings_init(void)
461
{
462
	lwc_error lerror;
463
	nserror error;
464
	dom_exception exc;
465
 
466
#define CSS_LWC_STRING_INTERN(NAME)					\
467
	do {								\
468
		lerror = lwc_intern_string(				\
469
				(const char *)#NAME,			\
470
				sizeof(#NAME) - 1,			\
471
				&corestring_lwc_##NAME );		\
472
		if ((lerror != lwc_error_ok) || 			\
473
				(corestring_lwc_##NAME == NULL)) {	\
474
			error = NSERROR_NOMEM;				\
475
			goto error;					\
476
		}							\
477
	} while(0)
478
 
479
	CSS_LWC_STRING_INTERN(a);
480
	CSS_LWC_STRING_INTERN(abscenter);
481
	CSS_LWC_STRING_INTERN(absmiddle);
482
	CSS_LWC_STRING_INTERN(align);
483
	CSS_LWC_STRING_INTERN(applet);
484
	CSS_LWC_STRING_INTERN(base);
485
	CSS_LWC_STRING_INTERN(baseline);
486
	CSS_LWC_STRING_INTERN(body);
487
	CSS_LWC_STRING_INTERN(bottom);
488
	CSS_LWC_STRING_INTERN(button);
489
	CSS_LWC_STRING_INTERN(caption);
490
	CSS_LWC_STRING_INTERN(center);
491
	CSS_LWC_STRING_INTERN(checkbox);
492
	CSS_LWC_STRING_INTERN(circle);
493
	CSS_LWC_STRING_INTERN(col);
494
	CSS_LWC_STRING_INTERN(default);
495
	CSS_LWC_STRING_INTERN(div);
496
	CSS_LWC_STRING_INTERN(embed);
497
	CSS_LWC_STRING_INTERN(file);
498
	CSS_LWC_STRING_INTERN(font);
499
	CSS_LWC_STRING_INTERN(frame);
500
	CSS_LWC_STRING_INTERN(frameset);
501
	CSS_LWC_STRING_INTERN(h1);
502
	CSS_LWC_STRING_INTERN(h2);
503
	CSS_LWC_STRING_INTERN(h3);
504
	CSS_LWC_STRING_INTERN(h4);
505
	CSS_LWC_STRING_INTERN(h5);
506
	CSS_LWC_STRING_INTERN(h6);
507
	CSS_LWC_STRING_INTERN(head);
508
	CSS_LWC_STRING_INTERN(hidden);
509
	CSS_LWC_STRING_INTERN(hr);
510
	CSS_LWC_STRING_INTERN(html);
511
	CSS_LWC_STRING_INTERN(https);
512
	CSS_LWC_STRING_INTERN(iframe);
513
	CSS_LWC_STRING_INTERN(image);
514
	CSS_LWC_STRING_INTERN(img);
515
	CSS_LWC_STRING_INTERN(input);
516
	CSS_LWC_STRING_INTERN(justify);
517
	CSS_LWC_STRING_INTERN(left);
518
	CSS_LWC_STRING_INTERN(li);
519
	CSS_LWC_STRING_INTERN(link);
520
	CSS_LWC_STRING_INTERN(meta);
521
	CSS_LWC_STRING_INTERN(middle);
522
	CSS_LWC_STRING_INTERN(no);
523
	CSS_LWC_STRING_INTERN(noscript);
524
	CSS_LWC_STRING_INTERN(object);
525
	CSS_LWC_STRING_INTERN(optgroup);
526
	CSS_LWC_STRING_INTERN(option);
527
	CSS_LWC_STRING_INTERN(p);
528
	CSS_LWC_STRING_INTERN(param);
529
	CSS_LWC_STRING_INTERN(password);
530
	CSS_LWC_STRING_INTERN(poly);
531
	CSS_LWC_STRING_INTERN(polygon);
532
	CSS_LWC_STRING_INTERN(post);
533
	CSS_LWC_STRING_INTERN(radio);
534
	CSS_LWC_STRING_INTERN(rect);
535
	CSS_LWC_STRING_INTERN(rectangle);
536
	CSS_LWC_STRING_INTERN(refresh);
537
	CSS_LWC_STRING_INTERN(reset);
538
	CSS_LWC_STRING_INTERN(right);
539
	CSS_LWC_STRING_INTERN(search);
540
	CSS_LWC_STRING_INTERN(select);
541
	CSS_LWC_STRING_INTERN(src);
542
	CSS_LWC_STRING_INTERN(style);
543
	CSS_LWC_STRING_INTERN(submit);
544
	CSS_LWC_STRING_INTERN(table);
545
	CSS_LWC_STRING_INTERN(tbody);
546
	CSS_LWC_STRING_INTERN(td);
547
	CSS_LWC_STRING_INTERN(text);
548
	CSS_LWC_STRING_INTERN(textarea);
549
	CSS_LWC_STRING_INTERN(texttop);
550
	CSS_LWC_STRING_INTERN(tfoot);
551
	CSS_LWC_STRING_INTERN(th);
552
	CSS_LWC_STRING_INTERN(thead);
553
	CSS_LWC_STRING_INTERN(title);
554
	CSS_LWC_STRING_INTERN(top);
555
	CSS_LWC_STRING_INTERN(tr);
556
	CSS_LWC_STRING_INTERN(ul);
557
	CSS_LWC_STRING_INTERN(url);
558
	CSS_LWC_STRING_INTERN(yes);
559
	CSS_LWC_STRING_INTERN(_blank);
560
	CSS_LWC_STRING_INTERN(_parent);
561
	CSS_LWC_STRING_INTERN(_self);
562
	CSS_LWC_STRING_INTERN(_top);
563
#undef CSS_LWC_STRING_INTERN
564
 
565
 
566
	lerror = lwc_intern_string("multipart/form-data",
567
			SLEN("multipart/form-data"),
568
			&corestring_lwc_multipart_form_data);
569
	if ((lerror != lwc_error_ok) ||
570
			(corestring_lwc_multipart_form_data == NULL)) {
571
		error = NSERROR_NOMEM;
572
		goto error;
573
	}
574
 
575
	lerror = lwc_intern_string("text/css", SLEN("text/css"),
576
			&corestring_lwc_text_css);
577
	if ((lerror != lwc_error_ok) || (corestring_lwc_text_css == NULL)) {
578
		error = NSERROR_NOMEM;
579
		goto error;
580
	}
581
 
582
 
583
#define CSS_DOM_STRING_INTERN(NAME)					\
584
	do {								\
585
		exc = dom_string_create_interned(			\
586
				(const uint8_t *)#NAME,			\
587
				sizeof(#NAME) - 1,			\
588
				&corestring_dom_##NAME );		\
589
		if ((exc != DOM_NO_ERR) || 				\
590
				(corestring_dom_##NAME == NULL)) {	\
591
			error = NSERROR_NOMEM;				\
592
			goto error;					\
593
		}							\
594
	} while(0)
595
 
596
	CSS_DOM_STRING_INTERN(a);
597
	CSS_DOM_STRING_INTERN(abort);
598
	CSS_DOM_STRING_INTERN(afterprint);
599
	CSS_DOM_STRING_INTERN(align);
600
	CSS_DOM_STRING_INTERN(area);
601
	CSS_DOM_STRING_INTERN(async);
602
	CSS_DOM_STRING_INTERN(background);
603
	CSS_DOM_STRING_INTERN(beforeprint);
604
	CSS_DOM_STRING_INTERN(beforeunload);
605
	CSS_DOM_STRING_INTERN(bgcolor);
606
	CSS_DOM_STRING_INTERN(blur);
607
	CSS_DOM_STRING_INTERN(border);
608
	CSS_DOM_STRING_INTERN(bordercolor);
609
	CSS_DOM_STRING_INTERN(cancel);
610
	CSS_DOM_STRING_INTERN(canplay);
611
	CSS_DOM_STRING_INTERN(canplaythrough);
612
	CSS_DOM_STRING_INTERN(cellpadding);
613
	CSS_DOM_STRING_INTERN(cellspacing);
614
	CSS_DOM_STRING_INTERN(change);
615
	CSS_DOM_STRING_INTERN(charset);
616
	CSS_DOM_STRING_INTERN(class);
617
	CSS_DOM_STRING_INTERN(click);
618
	CSS_DOM_STRING_INTERN(close);
619
	CSS_DOM_STRING_INTERN(color);
620
	CSS_DOM_STRING_INTERN(cols);
621
	CSS_DOM_STRING_INTERN(content);
622
	CSS_DOM_STRING_INTERN(contextmenu);
623
	CSS_DOM_STRING_INTERN(coords);
624
	CSS_DOM_STRING_INTERN(cuechange);
625
	CSS_DOM_STRING_INTERN(dblclick);
626
	CSS_DOM_STRING_INTERN(defer);
627
	CSS_DOM_STRING_INTERN(drag);
628
	CSS_DOM_STRING_INTERN(dragend);
629
	CSS_DOM_STRING_INTERN(dragenter);
630
	CSS_DOM_STRING_INTERN(dragleave);
631
	CSS_DOM_STRING_INTERN(dragover);
632
	CSS_DOM_STRING_INTERN(dragstart);
633
	CSS_DOM_STRING_INTERN(drop);
634
	CSS_DOM_STRING_INTERN(durationchange);
635
	CSS_DOM_STRING_INTERN(emptied);
636
	CSS_DOM_STRING_INTERN(ended);
637
	CSS_DOM_STRING_INTERN(error);
638
	CSS_DOM_STRING_INTERN(focus);
639
	CSS_DOM_STRING_INTERN(hashchange);
640
	CSS_DOM_STRING_INTERN(height);
641
	CSS_DOM_STRING_INTERN(href);
642
	CSS_DOM_STRING_INTERN(hreflang);
643
	CSS_DOM_STRING_INTERN(hspace);
644
	/* http-equiv: see below */
645
	CSS_DOM_STRING_INTERN(id);
646
	CSS_DOM_STRING_INTERN(input);
647
	CSS_DOM_STRING_INTERN(invalid);
648
	CSS_DOM_STRING_INTERN(keydown);
649
	CSS_DOM_STRING_INTERN(keypress);
650
	CSS_DOM_STRING_INTERN(keyup);
651
	CSS_DOM_STRING_INTERN(link);
652
	CSS_DOM_STRING_INTERN(load);
653
	CSS_DOM_STRING_INTERN(loadeddata);
654
	CSS_DOM_STRING_INTERN(loadedmetadata);
655
	CSS_DOM_STRING_INTERN(loadstart);
656
	CSS_DOM_STRING_INTERN(map);
657
	CSS_DOM_STRING_INTERN(media);
658
	CSS_DOM_STRING_INTERN(message);
659
	CSS_DOM_STRING_INTERN(mousedown);
660
	CSS_DOM_STRING_INTERN(mousemove);
661
	CSS_DOM_STRING_INTERN(mouseout);
662
	CSS_DOM_STRING_INTERN(mouseover);
663
	CSS_DOM_STRING_INTERN(mouseup);
664
	CSS_DOM_STRING_INTERN(mousewheel);
665
	CSS_DOM_STRING_INTERN(name);
666
	CSS_DOM_STRING_INTERN(nohref);
667
	CSS_DOM_STRING_INTERN(offline);
668
	CSS_DOM_STRING_INTERN(online);
669
	CSS_DOM_STRING_INTERN(pagehide);
670
	CSS_DOM_STRING_INTERN(pageshow);
671
	CSS_DOM_STRING_INTERN(pause);
672
	CSS_DOM_STRING_INTERN(play);
673
	CSS_DOM_STRING_INTERN(playing);
674
	CSS_DOM_STRING_INTERN(popstate);
675
	CSS_DOM_STRING_INTERN(progress);
676
	CSS_DOM_STRING_INTERN(ratechange);
677
	CSS_DOM_STRING_INTERN(readystatechange);
678
	CSS_DOM_STRING_INTERN(rect);
679
	CSS_DOM_STRING_INTERN(rel);
680
	CSS_DOM_STRING_INTERN(reset);
681
	CSS_DOM_STRING_INTERN(resize);
682
	CSS_DOM_STRING_INTERN(rows);
683
	CSS_DOM_STRING_INTERN(scroll);
684
	CSS_DOM_STRING_INTERN(seeked);
685
	CSS_DOM_STRING_INTERN(seeking);
686
	CSS_DOM_STRING_INTERN(select);
687
	CSS_DOM_STRING_INTERN(shape);
688
	CSS_DOM_STRING_INTERN(show);
689
	CSS_DOM_STRING_INTERN(size);
690
	CSS_DOM_STRING_INTERN(sizes);
691
	CSS_DOM_STRING_INTERN(src);
692
	CSS_DOM_STRING_INTERN(stalled);
693
	CSS_DOM_STRING_INTERN(storage);
694
	CSS_DOM_STRING_INTERN(submit);
695
	CSS_DOM_STRING_INTERN(suspend);
696
	CSS_DOM_STRING_INTERN(target);
697
	CSS_DOM_STRING_INTERN(text);
698
	CSS_DOM_STRING_INTERN(timeupdate);
699
	CSS_DOM_STRING_INTERN(type);
700
	CSS_DOM_STRING_INTERN(unload);
701
	CSS_DOM_STRING_INTERN(valign);
702
	CSS_DOM_STRING_INTERN(vlink);
703
	CSS_DOM_STRING_INTERN(volumechange);
704
	CSS_DOM_STRING_INTERN(vspace);
705
	CSS_DOM_STRING_INTERN(waiting);
706
	CSS_DOM_STRING_INTERN(width);
707
#undef CSS_DOM_STRING_INTERN
708
 
709
	exc = dom_string_create_interned((const uint8_t *) "text/javascript",
710
			SLEN("text/javascript"),
711
			&corestring_dom_text_javascript);
712
	if ((exc != DOM_NO_ERR) || (corestring_dom_text_javascript == NULL)) {
713
		error = NSERROR_NOMEM;
714
		goto error;
715
	}
716
 
717
	exc = dom_string_create_interned((const uint8_t *) "http-equiv",
718
			SLEN("http-equiv"),
719
			&corestring_dom_http_equiv);
720
	if ((exc != DOM_NO_ERR) || (corestring_dom_http_equiv == NULL)) {
721
		error = NSERROR_NOMEM;
722
		goto error;
723
	}
724
 
725
	return NSERROR_OK;
726
 
727
error:
728
	corestrings_fini();
729
 
730
	return error;
731
}