summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--css/css.c3
-rw-r--r--riscos/gui.c24
2 files changed, 18 insertions, 9 deletions
diff --git a/css/css.c b/css/css.c
index d52b1f7d0..154a85d6f 100644
--- a/css/css.c
+++ b/css/css.c
@@ -141,7 +141,6 @@ int css_convert(struct content *c, unsigned int width, unsigned int height)
}
}
css__delete_buffer(buffer, c->data.css.css->lexer);
- free(c->data.css.data);
css_parser_(c->data.css.css->parser, 0, 0, &param);
css_parser_Free(c->data.css.css->parser, free);
@@ -200,6 +199,8 @@ void css_destroy(struct content *c)
unsigned int i;
struct css_node *r;
+ xfree(c->data.css.data);
+
for (i = 0; i != HASH_SIZE; i++) {
for (r = c->data.css.css->rule[i]; r != 0; r = r->next)
xfree(r->style);
diff --git a/riscos/gui.c b/riscos/gui.c
index 8f225b540..068512fc9 100644
--- a/riscos/gui.c
+++ b/riscos/gui.c
@@ -966,15 +966,23 @@ void ro_gui_open_help_page (void)
*/
void ro_gui_view_source(struct content *content)
{
- if (content->type != CONTENT_HTML)
- return;
- xosfile_save_stamped("<Wimp$Scrap>", 0xfff,
- content->data.html.source,
- (content->data.html.source +
- content->data.html.length));
- xos_cli("Filer_Run <Wimp$Scrap>");
- xosfile_set_type("<Wimp$Scrap>", 0xfaf);
+ if (content->type == CONTENT_HTML) {
+ xosfile_save_stamped("<Wimp$Scrap>", 0xfff,
+ content->data.html.source,
+ (content->data.html.source +
+ content->data.html.length));
+ xos_cli("Filer_Run <Wimp$Scrap>");
+ xosfile_set_type("<Wimp$Scrap>", 0xfaf);
+ }
+ else if (content->type == CONTENT_CSS) {
+ xosfile_save_stamped("<Wimp$Scrap>", 0xfff,
+ content->data.css.data,
+ (content->data.css.data +
+ content->data.css.length));
+ xos_cli("Filer_Run <Wimp$Scrap>");
+ xosfile_set_type("<Wimp$Scrap>", 0xf79);
+ }
}