summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/options.c36
-rw-r--r--desktop/options.h1
-rw-r--r--riscos/gui.c14
3 files changed, 45 insertions, 6 deletions
diff --git a/desktop/options.c b/desktop/options.c
index fa2d29cfe..ad8f17042 100644
--- a/desktop/options.c
+++ b/desktop/options.c
@@ -221,6 +221,36 @@ void options_write(const char *path)
fclose(fp);
}
+/**
+ * Dump user options to stderr
+ */
+void options_dump(void)
+{
+ unsigned int i;
+
+ for (i = 0; i != option_table_entries; i++) {
+ fprintf(stderr, "%s:", option_table[i].key);
+ switch (option_table[i].type) {
+ case OPTION_BOOL:
+ fprintf(stderr, "%c",
+ *((bool *) option_table[i].p) ?
+ '1' : '0');
+ break;
+
+ case OPTION_INTEGER:
+ fprintf(stderr, "%i",
+ *((int *) option_table[i].p));
+ break;
+
+ case OPTION_STRING:
+ if (*((char **) option_table[i].p))
+ fprintf(stderr, "%s",
+ *((char **) option_table[i].p));
+ break;
+ }
+ fprintf(stderr, "\n");
+ }
+}
/**
* Loads a hotlist as a tree from a specified file.
@@ -238,7 +268,7 @@ struct tree *options_load_tree(const char *filename) {
warn_user("HotlistLoadError", messages_get("ParsingFail"));
return NULL;
}
-
+
html = options_find_tree_element((xmlNode *) doc, "html");
body = options_find_tree_element(html, "body");
ul = options_find_tree_element(body, "ul");
@@ -277,7 +307,7 @@ void options_load_tree_directory(xmlNode *ul, struct node *directory) {
char *title;
struct node *dir;
xmlNode *n;
-
+
assert(ul);
assert(directory);
@@ -350,7 +380,7 @@ void options_load_tree_entry(xmlNode *li, struct node *directory) {
"memory exhausted.)");
return;
}
-
+
data = url_store_find(url);
if (!data)
return;
diff --git a/desktop/options.h b/desktop/options.h
index b63d21ce7..ee9c48415 100644
--- a/desktop/options.h
+++ b/desktop/options.h
@@ -48,6 +48,7 @@ extern int option_expire_url;
void options_read(const char *path);
void options_write(const char *path);
+void options_dump(void);
struct tree *options_load_tree(const char *filename);
bool options_save_tree(struct tree *tree, const char *filename,
diff --git a/riscos/gui.c b/riscos/gui.c
index c463e8f36..2edb13702 100644
--- a/riscos/gui.c
+++ b/riscos/gui.c
@@ -621,12 +621,20 @@ void gui_quit(void)
void ro_gui_signal(int sig)
{
struct content *c;
- if (sig == SIGFPE) {
+ if (sig == SIGFPE || sig == SIGABRT) {
+ os_colour old_sand, old_glass;
+
+ xhourglass_on();
+ xhourglass_colours(0x0000ffff, 0x000000ff,
+ &old_sand, &old_glass);
for (c = content_list; c; c = c->next)
if (c->type == CONTENT_HTML && c->data.html.layout) {
LOG(("Dumping: '%s'", c->url));
box_dump(c->data.html.layout, 0);
}
+ options_dump();
+ xhourglass_colours(old_sand, old_glass, 0, 0);
+ xhourglass_off();
}
ro_gui_cleanup();
raise(sig);
@@ -838,7 +846,7 @@ void ro_gui_redraw_window_request(wimp_draw *redraw)
if (ro_gui_wimp_event_redraw_window(redraw))
return;
-
+
g = ro_gui_window_lookup(redraw->w);
if (g)
ro_gui_window_redraw(g, redraw);
@@ -1055,7 +1063,7 @@ void ro_gui_keypress(wimp_key *key)
bool handled = false;
struct gui_window *g;
os_error *error;
-
+
if (ro_gui_wimp_event_keypress(key))
handled = true;
else if ((g = ro_gui_window_lookup(key->w)) != NULL)