diff options
Diffstat (limited to 'openembedded/packages/gtkhtml2/files/css-media.patch')
-rw-r--r-- | openembedded/packages/gtkhtml2/files/css-media.patch | 466 |
1 files changed, 0 insertions, 466 deletions
diff --git a/openembedded/packages/gtkhtml2/files/css-media.patch b/openembedded/packages/gtkhtml2/files/css-media.patch deleted file mode 100644 index c5500ca2d1..0000000000 --- a/openembedded/packages/gtkhtml2/files/css-media.patch +++ /dev/null | |||
@@ -1,466 +0,0 @@ | |||
1 | Index: libgtkhtml/css/cssmatcher.c | ||
2 | =================================================================== | ||
3 | --- libgtkhtml/css/cssmatcher.c.orig 2006-02-11 05:18:03.000000000 +0000 | ||
4 | +++ libgtkhtml/css/cssmatcher.c 2006-02-11 05:21:28.000000000 +0000 | ||
5 | @@ -2411,7 +2411,8 @@ css_matcher_apply_stylesheet (HtmlDocume | ||
6 | CssStatement *stat = list->data; | ||
7 | gint j; | ||
8 | |||
9 | - if (stat->type == CSS_IMPORT_RULE) { | ||
10 | + switch (stat->type) { | ||
11 | + case CSS_IMPORT_RULE: { | ||
12 | if (stat->s.import_rule.fetched) { | ||
13 | if (stat->s.import_rule.sheet) { | ||
14 | css_matcher_apply_stylesheet (doc, stat->s.import_rule.sheet, node, declaration_list, type, pseudo); | ||
15 | @@ -2440,31 +2441,65 @@ css_matcher_apply_stylesheet (HtmlDocume | ||
16 | g_free (str); | ||
17 | #endif | ||
18 | } | ||
19 | + break; | ||
20 | } | ||
21 | - | ||
22 | - /* FIXME: We need to support more than just rulesets here */ | ||
23 | - if (stat->type != CSS_RULESET) | ||
24 | - continue; | ||
25 | - | ||
26 | - for (j = 0; j < stat->s.ruleset->n_sel; j++) { | ||
27 | - CssSelector *sel = stat->s.ruleset->sel[j]; | ||
28 | + | ||
29 | + case CSS_MEDIA_RULE: | ||
30 | + case CSS_RULESET: { | ||
31 | + CssRuleset **rs; | ||
32 | + gint k, l; | ||
33 | |||
34 | - if (css_matcher_match_selector (sel, node, pseudo)) { | ||
35 | - int i; | ||
36 | + if (stat->type == CSS_MEDIA_RULE) { | ||
37 | + CssValueEntry *entry = stat->s.media_rule.media_list->v.entry; | ||
38 | + const gchar *media = html_document_get_media_type (doc); | ||
39 | + gboolean has_media = FALSE; | ||
40 | |||
41 | - for (i = 0; i < stat->s.ruleset->n_decl; i++) { | ||
42 | - CssDeclaration *decl = stat->s.ruleset->decl[i]; | ||
43 | - CssDeclarationListEntry *entry = g_new (CssDeclarationListEntry, 1); | ||
44 | + if (!media) break; | ||
45 | + | ||
46 | + for (; entry; entry = entry->next) { | ||
47 | + const gchar *value = css_value_to_string (entry->value); | ||
48 | + if (strcasecmp (media, value) == 0) { | ||
49 | + has_media = TRUE; | ||
50 | + break; | ||
51 | + } | ||
52 | + } | ||
53 | + if (!has_media) break; | ||
54 | + | ||
55 | + rs = stat->s.media_rule.rs; | ||
56 | + k = stat->s.media_rule.n_rs; | ||
57 | + } else { | ||
58 | + rs = &stat->s.ruleset; | ||
59 | + k = 1; | ||
60 | + } | ||
61 | + | ||
62 | + for (l = 0; l < k; l++) { | ||
63 | + for (j = 0; rs[l] && (j < rs[l]->n_sel); j++) { | ||
64 | + CssSelector *sel = rs[l]->sel[j]; | ||
65 | |||
66 | - entry->spec = sel->a * 1000000 + sel->b * 1000 + sel->c; | ||
67 | - entry->type = type; | ||
68 | - entry->decl = g_new (CssDeclaration, 1); | ||
69 | - entry->decl->property = decl->property; | ||
70 | - entry->decl->expr = css_value_ref (decl->expr); | ||
71 | - entry->decl->important = decl->important; | ||
72 | - *declaration_list = g_list_insert_sorted (*declaration_list, entry, css_declaration_list_sorter); | ||
73 | + if (css_matcher_match_selector (sel, node, pseudo)) { | ||
74 | + int i; | ||
75 | + | ||
76 | + for (i = 0; i < rs[l]->n_decl; i++) { | ||
77 | + CssDeclaration *decl = rs[l]->decl[i]; | ||
78 | + CssDeclarationListEntry *entry = g_new (CssDeclarationListEntry, 1); | ||
79 | + | ||
80 | + entry->spec = sel->a * 1000000 + sel->b * 1000 + sel->c; | ||
81 | + entry->type = type; | ||
82 | + entry->decl = g_new (CssDeclaration, 1); | ||
83 | + entry->decl->property = decl->property; | ||
84 | + entry->decl->expr = css_value_ref (decl->expr); | ||
85 | + entry->decl->important = decl->important; | ||
86 | + *declaration_list = g_list_insert_sorted (*declaration_list, entry, css_declaration_list_sorter); | ||
87 | + } | ||
88 | + } | ||
89 | } | ||
90 | } | ||
91 | + break; | ||
92 | + } | ||
93 | + | ||
94 | + default: | ||
95 | + g_warning ("Unhandled stylesheet"); | ||
96 | + break; | ||
97 | } | ||
98 | } | ||
99 | } | ||
100 | @@ -2781,7 +2816,7 @@ css_matcher_get_style (HtmlDocument *doc | ||
101 | css_matcher_html_to_css (doc, style, node); | ||
102 | |||
103 | if (!default_stylesheet) { | ||
104 | - default_stylesheet = css_parser_parse_stylesheet (html_css, strlen (html_css), NULL); | ||
105 | + default_stylesheet = css_parser_parse_stylesheet (html_css, strlen (html_css), NULL, NULL); | ||
106 | } | ||
107 | |||
108 | css_matcher_apply_stylesheet (doc, default_stylesheet, node, &declaration_list, CSS_STYLESHEET_DEFAULT, pseudo); | ||
109 | @@ -2800,25 +2835,31 @@ css_matcher_get_style (HtmlDocument *doc | ||
110 | prop = xmlGetProp (node, "style"); | ||
111 | |||
112 | if (prop) { | ||
113 | - CssRuleset *rs = css_parser_parse_style_attr (prop, strlen (prop), NULL); | ||
114 | - gint i; | ||
115 | + xmlChar *media_prop = xmlGetProp (node, "media"); | ||
116 | + const gchar *media = html_document_get_media_type (doc); | ||
117 | |||
118 | - if (rs) { | ||
119 | - for (i = 0; i < rs->n_decl; i++) { | ||
120 | - CssDeclarationListEntry *entry = g_new (CssDeclarationListEntry, 1); | ||
121 | - CssDeclaration *decl = rs->decl[i]; | ||
122 | - | ||
123 | - entry->type = CSS_STYLESHEET_STYLEDECL; | ||
124 | - entry->decl = g_new (CssDeclaration, 1); | ||
125 | - entry->decl->property = decl->property; | ||
126 | - entry->decl->expr = css_value_ref (decl->expr); | ||
127 | - entry->decl->important = decl->important; | ||
128 | - entry->spec = 0; | ||
129 | + if (!media_prop || (media && (strcasecmp (media, media_prop) == 0))) { | ||
130 | + CssRuleset *rs = css_parser_parse_style_attr (prop, strlen (prop), NULL); | ||
131 | + gint i; | ||
132 | + | ||
133 | + if (rs) { | ||
134 | + for (i = 0; i < rs->n_decl; i++) { | ||
135 | + CssDeclarationListEntry *entry = g_new (CssDeclarationListEntry, 1); | ||
136 | + CssDeclaration *decl = rs->decl[i]; | ||
137 | |||
138 | - declaration_list = g_list_insert_sorted (declaration_list, entry, css_declaration_list_sorter); | ||
139 | + entry->type = CSS_STYLESHEET_STYLEDECL; | ||
140 | + entry->decl = g_new (CssDeclaration, 1); | ||
141 | + entry->decl->property = decl->property; | ||
142 | + entry->decl->expr = css_value_ref (decl->expr); | ||
143 | + entry->decl->important = decl->important; | ||
144 | + entry->spec = 0; | ||
145 | + | ||
146 | + declaration_list = g_list_insert_sorted (declaration_list, entry, css_declaration_list_sorter); | ||
147 | + } | ||
148 | + css_ruleset_destroy (rs); | ||
149 | } | ||
150 | - css_ruleset_destroy (rs); | ||
151 | } | ||
152 | + if (media_prop) xmlFree (media_prop); | ||
153 | xmlFree (prop); | ||
154 | } | ||
155 | |||
156 | Index: libgtkhtml/document/htmldocument.c | ||
157 | =================================================================== | ||
158 | --- libgtkhtml/document/htmldocument.c.orig 2006-02-11 05:21:18.000000000 +0000 | ||
159 | +++ libgtkhtml/document/htmldocument.c 2006-02-11 05:21:28.000000000 +0000 | ||
160 | @@ -142,9 +142,7 @@ html_document_stylesheet_stream_close (c | ||
161 | if (!buffer) | ||
162 | return; | ||
163 | |||
164 | - sheet = css_parser_parse_stylesheet (buffer, len, (gchar *) stream_data->internal_data); | ||
165 | - g_free(stream_data->internal_data); | ||
166 | - stream_data->internal_data = NULL; | ||
167 | + sheet = css_parser_parse_stylesheet (buffer, len, (gchar *) stream_data->internal_data, stream_data->media); | ||
168 | |||
169 | for (list = sheet->stat; list; list = list->next) { | ||
170 | CssStatement *statement = list->data; | ||
171 | @@ -153,15 +151,13 @@ html_document_stylesheet_stream_close (c | ||
172 | switch (statement->type) { | ||
173 | case CSS_IMPORT_RULE: { | ||
174 | HtmlDocumentStreamData *stream_data_import; | ||
175 | - gchar *url; | ||
176 | |||
177 | - url = css_value_to_string (statement->s.import_rule.url); | ||
178 | stream_data_import = g_new (HtmlDocumentStreamData, 1); | ||
179 | stream_data_import->document = stream_data->document; | ||
180 | - stream_data_import->internal_data = g_strdup(url); | ||
181 | + stream_data_import->internal_data = css_value_to_string (statement->s.import_rule.url); | ||
182 | + stream_data_import->media = statement->s.import_rule.media ? statement->s.import_rule.media : g_strdup (stream_data->media); | ||
183 | stream = html_stream_buffer_new (html_document_stylesheet_stream_close, stream_data_import); | ||
184 | - g_signal_emit (G_OBJECT (document), document_signals [REQUEST_URL], 0, url, stream); | ||
185 | - g_free (url); | ||
186 | + g_signal_emit (G_OBJECT (document), document_signals [REQUEST_URL], 0, stream_data_import->internal_data, stream); | ||
187 | break; | ||
188 | } | ||
189 | default: | ||
190 | @@ -169,8 +165,11 @@ html_document_stylesheet_stream_close (c | ||
191 | } | ||
192 | } | ||
193 | |||
194 | - g_free (stream_data); | ||
195 | document->stylesheets = g_slist_append (document->stylesheets, sheet); | ||
196 | + | ||
197 | + g_free (stream_data->media); | ||
198 | + g_free(stream_data->internal_data); | ||
199 | + g_free (stream_data); | ||
200 | |||
201 | /* Restyle the document */ | ||
202 | style_change = html_document_restyle_node (document, DOM_NODE (dom_Document__get_documentElement (document->dom_document)), NULL, TRUE); | ||
203 | @@ -211,21 +210,22 @@ html_document_node_inserted_traverser (H | ||
204 | HtmlDocumentStreamData *stream_data; | ||
205 | HtmlStream *stream; | ||
206 | |||
207 | - stream_data = g_new (HtmlDocumentStreamData, 1); | ||
208 | + stream_data = g_new0 (HtmlDocumentStreamData, 1); | ||
209 | stream_data->document = document; | ||
210 | stream_data->internal_data = g_strdup(url); | ||
211 | + stream_data->media = xmlGetProp (node->xmlnode, "media"); | ||
212 | |||
213 | stream = html_stream_buffer_new (html_document_stylesheet_stream_close, stream_data); | ||
214 | |||
215 | g_signal_emit (G_OBJECT (document), document_signals [REQUEST_URL], 0, url, stream); | ||
216 | + g_free (url); | ||
217 | } | ||
218 | - g_free (url); | ||
219 | } else if (str && (strcasecmp (str, "icon") == 0)) { | ||
220 | gchar *url = xmlGetProp (node->xmlnode, "href"); | ||
221 | if (url) { | ||
222 | g_signal_emit (G_OBJECT (document), document_signals [REQUEST_ICON], 0, url); | ||
223 | + g_free (url); | ||
224 | } | ||
225 | - g_free (url); | ||
226 | } | ||
227 | g_free (str); | ||
228 | } | ||
229 | @@ -277,8 +277,10 @@ html_document_node_inserted_traverser (H | ||
230 | CssStylesheet *ss; | ||
231 | HtmlStyleChange style_change; | ||
232 | GSList *list; | ||
233 | + xmlChar *media = xmlGetProp (node->xmlnode->parent, "media"); | ||
234 | |||
235 | - ss = css_parser_parse_stylesheet (node->xmlnode->content, strlen (node->xmlnode->content), NULL); | ||
236 | + ss = css_parser_parse_stylesheet (node->xmlnode->content, strlen (node->xmlnode->content), NULL, media); | ||
237 | + if (media) xmlFree (media); | ||
238 | |||
239 | for (list = ss->stat; list; list = list->next) { | ||
240 | CssStatement *statement = list->data; | ||
241 | @@ -291,9 +293,10 @@ html_document_node_inserted_traverser (H | ||
242 | |||
243 | cssurl = css_value_to_string (statement->s.import_rule.url); | ||
244 | |||
245 | - stream_data = g_new (HtmlDocumentStreamData, 1); | ||
246 | + stream_data = g_new0 (HtmlDocumentStreamData, 1); | ||
247 | stream_data->document = document; | ||
248 | stream_data->internal_data = g_strdup(cssurl); | ||
249 | + stream_data->media = statement->s.import_rule.media; | ||
250 | |||
251 | stream = html_stream_buffer_new (html_document_stylesheet_stream_close, stream_data); | ||
252 | g_signal_emit (G_OBJECT (document), document_signals [REQUEST_URL], 0, cssurl, stream); | ||
253 | @@ -541,6 +544,9 @@ html_document_finalize (GObject *object) | ||
254 | |||
255 | if (document->parser) | ||
256 | g_object_unref (G_OBJECT (document->parser)); | ||
257 | + | ||
258 | + if (document->media_type) | ||
259 | + g_free (document->media_type); | ||
260 | |||
261 | parent_class->finalize (object); | ||
262 | } | ||
263 | @@ -748,6 +754,7 @@ html_document_init (HtmlDocument *docume | ||
264 | { | ||
265 | document->stylesheets = NULL; | ||
266 | document->image_factory = html_image_factory_new (); | ||
267 | + document->media_type = NULL; | ||
268 | |||
269 | g_signal_connect (G_OBJECT (document->image_factory), "request_image", | ||
270 | G_CALLBACK (html_document_request_image), document); | ||
271 | @@ -1159,3 +1166,24 @@ html_document_remove_stylesheet (HtmlDoc | ||
272 | return TRUE; | ||
273 | } | ||
274 | |||
275 | +void | ||
276 | +html_document_set_media_type (HtmlDocument *document, const gchar *type) | ||
277 | +{ | ||
278 | + HtmlStyleChange style_change; | ||
279 | + | ||
280 | + g_return_if_fail (HTML_IS_DOCUMENT (document)); | ||
281 | + | ||
282 | + if (document->media_type) | ||
283 | + g_free (document->media_type); | ||
284 | + | ||
285 | + document->media_type = g_strdup (type); | ||
286 | + | ||
287 | + style_change = html_document_restyle_node (document, DOM_NODE (dom_Document__get_documentElement (document->dom_document)), NULL, TRUE); | ||
288 | + g_signal_emit (G_OBJECT (document), document_signals [STYLE_UPDATED], 0, DOM_NODE (dom_Document__get_documentElement (document->dom_document)), style_change); | ||
289 | +} | ||
290 | + | ||
291 | +const gchar * | ||
292 | +html_document_get_media_type (HtmlDocument *document) | ||
293 | +{ | ||
294 | + return document->media_type; | ||
295 | +} | ||
296 | Index: libgtkhtml/document/htmldocument.h | ||
297 | =================================================================== | ||
298 | --- libgtkhtml/document/htmldocument.h.orig 2006-02-11 05:20:51.000000000 +0000 | ||
299 | +++ libgtkhtml/document/htmldocument.h 2006-02-11 05:21:28.000000000 +0000 | ||
300 | @@ -64,6 +64,8 @@ struct _HtmlDocument { | ||
301 | DomNode *hover_node; | ||
302 | DomNode *active_node; | ||
303 | DomElement *focus_element; | ||
304 | + | ||
305 | + gchar *media_type; | ||
306 | }; | ||
307 | |||
308 | struct _HtmlDocumentClass { | ||
309 | @@ -97,6 +99,7 @@ struct _HtmlDocumentClass { | ||
310 | struct _HtmlDocumentStreamData { | ||
311 | HtmlDocument *document; | ||
312 | gpointer internal_data; | ||
313 | + gchar *media; | ||
314 | }; | ||
315 | |||
316 | GType html_document_get_type (void); | ||
317 | @@ -116,6 +119,10 @@ DomNode *html_document_find_anchor | ||
318 | void html_document_add_stylesheet (HtmlDocument *document, CssStylesheet *stylesheet); | ||
319 | void html_document_remove_stylesheet (HtmlDocument *document, CssStylesheet *stylesheet); | ||
320 | |||
321 | +void html_document_set_media_type (HtmlDocument *document, const gchar *type); | ||
322 | +const gchar *html_document_get_media_type (HtmlDocument *document); | ||
323 | + | ||
324 | + | ||
325 | G_END_DECLS | ||
326 | |||
327 | #endif /* __HTMLDOCUMENT_H__ */ | ||
328 | Index: libgtkhtml/css/cssparser.c | ||
329 | =================================================================== | ||
330 | --- libgtkhtml/css/cssparser.c.orig 2006-02-11 05:18:03.000000000 +0000 | ||
331 | +++ libgtkhtml/css/cssparser.c 2006-02-11 05:21:28.000000000 +0000 | ||
332 | @@ -688,6 +688,32 @@ css_parser_parse_value (const gchar *buf | ||
333 | return pos; | ||
334 | } | ||
335 | |||
336 | +static void | ||
337 | +css_parser_parse_media_list (const gchar *buffer, gint start_pos, gint end_pos, CssValue **ret_val) | ||
338 | +{ | ||
339 | + CssValue *list = NULL; | ||
340 | + while (start_pos < end_pos) { | ||
341 | + CssValue *val; | ||
342 | + HtmlAtom name; | ||
343 | + | ||
344 | + if (buffer[start_pos] == ',') | ||
345 | + start_pos++; | ||
346 | + | ||
347 | + start_pos = css_parser_parse_whitespace (buffer, start_pos, end_pos); | ||
348 | + | ||
349 | + if (start_pos >= end_pos) | ||
350 | + break; | ||
351 | + | ||
352 | + start_pos = css_parser_parse_ident (buffer, start_pos, end_pos, &name); | ||
353 | + val = css_value_ident_new (name); | ||
354 | + if (!list) list = css_value_list_new (); | ||
355 | + css_value_list_append (list, val, ','); | ||
356 | + | ||
357 | + start_pos = css_parser_parse_whitespace (buffer, start_pos, end_pos); | ||
358 | + } | ||
359 | + | ||
360 | + *ret_val = list; | ||
361 | +} | ||
362 | |||
363 | static gint | ||
364 | css_parser_parse_attr_selector (const gchar *buffer, gint start_pos, gint end_pos, CssTail *tail) | ||
365 | @@ -1329,7 +1355,7 @@ css_parser_parse_atkeyword (const gchar | ||
366 | |||
367 | /* g_print ("Going to return: %d\n", pos); */ | ||
368 | |||
369 | - return pos + 1; | ||
370 | + return pos; | ||
371 | |||
372 | break; | ||
373 | case HTML_ATOM_PAGE: | ||
374 | @@ -1390,7 +1416,8 @@ css_parser_parse_atkeyword (const gchar | ||
375 | break; | ||
376 | case HTML_ATOM_IMPORT: { | ||
377 | gchar *import_url; | ||
378 | - const gchar *s_url, *e_url; | ||
379 | + const gchar *s_url, *e_url, *e_import, *e_media; | ||
380 | + CssValue *value = NULL; | ||
381 | |||
382 | cur_pos = css_parser_parse_to_char (buffer, ';', pos, end_pos); | ||
383 | |||
384 | @@ -1411,6 +1438,7 @@ css_parser_parse_atkeyword (const gchar | ||
385 | return cur_pos + 1; | ||
386 | } | ||
387 | |||
388 | + e_import = e_url + 1; | ||
389 | s_url++; | ||
390 | e_url--; | ||
391 | |||
392 | @@ -1434,6 +1462,11 @@ css_parser_parse_atkeyword (const gchar | ||
393 | result->type = CSS_IMPORT_RULE; | ||
394 | |||
395 | result->s.import_rule.url = css_value_string_new (import_url); | ||
396 | + | ||
397 | + /* Check for media types */ | ||
398 | + e_media = buffer + cur_pos; | ||
399 | + if ((e_media > e_import) && (css_parser_parse_whitespace(e_import, 0, e_media-e_import) < (e_media-e_import))) | ||
400 | + result->s.import_rule.media = g_strndup (e_import, e_media-e_import); | ||
401 | |||
402 | *ret_val = result; | ||
403 | |||
404 | @@ -1489,7 +1522,7 @@ css_parser_parse_style_attr (const gchar | ||
405 | } | ||
406 | |||
407 | CssStylesheet * | ||
408 | -css_parser_parse_stylesheet (const gchar *str, gint len, const gchar *base_url) | ||
409 | +css_parser_parse_stylesheet (const gchar *str, gint len, const gchar *base_url, const gchar *media) | ||
410 | { | ||
411 | CssStylesheet *result; | ||
412 | GSList *stat = NULL; | ||
413 | @@ -1515,12 +1548,23 @@ css_parser_parse_stylesheet (const gchar | ||
414 | pos = css_parser_parse_ruleset (buffer, pos, end_pos, &ruleset, base_url); | ||
415 | |||
416 | if (ruleset) { | ||
417 | - CssStatement *rulestatement; | ||
418 | - rulestatement = g_new0 (CssStatement, 1); | ||
419 | - rulestatement->type = CSS_RULESET; | ||
420 | - rulestatement->s.ruleset = ruleset; | ||
421 | + CssStatement *statement; | ||
422 | + | ||
423 | + if (media) { | ||
424 | + statement = g_new0 (CssStatement, 1); | ||
425 | |||
426 | - stat = g_slist_append (stat, rulestatement); | ||
427 | + statement->type = CSS_MEDIA_RULE; | ||
428 | + css_parser_parse_media_list (media, 0, strlen (media), &statement->s.media_rule.media_list); | ||
429 | + g_assert (statement->s.media_rule.media_list); | ||
430 | + statement->s.media_rule.rs = g_new (CssRuleset *, 1); | ||
431 | + statement->s.media_rule.rs[0] = ruleset; | ||
432 | + statement->s.media_rule.n_rs = 1; | ||
433 | + } else { | ||
434 | + statement = g_new0 (CssStatement, 1); | ||
435 | + statement->type = CSS_RULESET; | ||
436 | + statement->s.ruleset = ruleset; | ||
437 | + } | ||
438 | + stat = g_slist_append (stat, statement); | ||
439 | } | ||
440 | |||
441 | if (pos == -1) | ||
442 | Index: libgtkhtml/css/cssparser.h | ||
443 | =================================================================== | ||
444 | --- libgtkhtml/css/cssparser.h.orig 2006-02-11 05:18:03.000000000 +0000 | ||
445 | +++ libgtkhtml/css/cssparser.h 2006-02-11 05:21:28.000000000 +0000 | ||
446 | @@ -30,7 +30,7 @@ | ||
447 | |||
448 | G_BEGIN_DECLS | ||
449 | |||
450 | -CssStylesheet *css_parser_parse_stylesheet (const gchar *str, gint len, const gchar *base_url); | ||
451 | +CssStylesheet *css_parser_parse_stylesheet (const gchar *str, gint len, const gchar *base_url, const gchar *media); | ||
452 | CssRuleset *css_parser_parse_style_attr (const gchar *buffer, gint len, const gchar *base_url); | ||
453 | |||
454 | G_END_DECLS | ||
455 | Index: libgtkhtml/css/cssstylesheet.h | ||
456 | =================================================================== | ||
457 | --- libgtkhtml/css/cssstylesheet.h.orig 2006-02-11 05:18:03.000000000 +0000 | ||
458 | +++ libgtkhtml/css/cssstylesheet.h 2006-02-11 05:21:28.000000000 +0000 | ||
459 | @@ -99,6 +99,7 @@ struct _CssStatement { | ||
460 | CssValue *url; | ||
461 | gboolean fetched; | ||
462 | gboolean fetching; | ||
463 | + gchar *media; | ||
464 | } import_rule; | ||
465 | |||
466 | } s; | ||