From 1319ff78c89fd0c34feea187ca3d67058875fbe6 Mon Sep 17 00:00:00 2001 From: James Bursa Date: Fri, 13 Feb 2004 16:09:12 +0000 Subject: [project @ 2004-02-13 16:09:12 by bursa] Clean up and rewrite options code. svn path=/import/netsurf/; revision=536 --- riscos/options.c | 204 ------------------------------------------------------- 1 file changed, 204 deletions(-) delete mode 100644 riscos/options.c (limited to 'riscos/options.c') diff --git a/riscos/options.c b/riscos/options.c deleted file mode 100644 index a1c096777..000000000 --- a/riscos/options.c +++ /dev/null @@ -1,204 +0,0 @@ -/* - * This file is part of NetSurf, http://netsurf.sourceforge.net/ - * Licensed under the GNU General Public License, - * http://www.opensource.org/licenses/gpl-license - * Copyright 2003 Phil Mellor - * Copyright 2003 John M Bell - */ - -#include "netsurf/desktop/options.h" -#include -#include -#include "oslib/messagetrans.h" -#include "oslib/osfile.h" -#include "netsurf/utils/log.h" -#include "netsurf/utils/utils.h" - -struct options OPTIONS; -static char* lookup(messagetrans_control_block* cb, const char* token, const char* deflt); -static int lookup_yesno(messagetrans_control_block* cb, const char* token, const char* deflt); -static int lookup_i(messagetrans_control_block* cb, const char* token, const char* deflt); -static const char* yesno(int q); - -char* lookup(messagetrans_control_block* cb, const char* token, const char* deflt) -{ - int used; - char buffer[256]; - - LOG(("Looking up token '%s'",token)); - - messagetrans_lookup(cb, token, buffer, 256, 0,0,0,0, &used); - if (used > 0) - { - return strdup(buffer); - } - else - return strdup(deflt); -} - -int lookup_yesno(messagetrans_control_block* cb, const char* token, const char* deflt) -{ - char* find; - LOG(("yesno token '%s' (default '%s')", token, deflt)); - find = lookup(cb, token, deflt); - if (strcmp(find, "Y") == 0) - { - xfree(find); - return -1; - } - xfree(find); - return 0; -} - -int lookup_i(messagetrans_control_block* cb, const char* token, const char* deflt) -{ - char* find = lookup(cb, token, deflt); - int ret = atoi(find); - xfree(find); - return ret; -} - -const char* yesno(int q) -{ - if (q) - return "Y"; - else - return "N"; -} - -static const char * const WRITE_DIR = ".WWW.NetSurf"; - -void options_write(struct options* opt, char* filename) -{ - char* fn; - FILE* f; - - fn = xcalloc(strlen(WRITE_DIR) + (filename == 0 ? 7 : strlen(filename)) + 10, - sizeof(char)); - sprintf(fn, "%s.%s", WRITE_DIR, filename == 0 ? "Choices" : filename); - - xosfile_create_dir(".WWW", 0); - xosfile_create_dir(WRITE_DIR, 0); - - LOG(("filename: %s", fn)); - - f = fopen(fn, "w"); - if (f != NULL) - { - fprintf(f, "# General options - for any platform\n# Proxy\n"); - fprintf(f, "USE_HTTP:%s\n", yesno(opt->http)); - fprintf(f, "HTTP_PROXY:%s\n", opt->http_proxy); - fprintf(f, "HTTP_PORT:%d\n", opt->http_port); - - fprintf(f, "\n# RISC OS specific options\n# Browser\n"); - fprintf(f, "RO_MOUSE_GESTURES:%s\n", yesno(opt->use_mouse_gestures)); - fprintf(f, "RO_TEXT_SELECTION:%s\n", yesno(opt->allow_text_selection)); - fprintf(f, "RO_FORM_ELEMENTS:%s\n", yesno(opt->use_riscos_elements)); - fprintf(f, "RO_SHOW_TOOLBAR:%s\n", yesno(opt->show_toolbar)); - fprintf(f, "RO_SHOW_PRINT:%s\n", yesno(opt->show_print_preview)); - fprintf(f, "\n# Theme\n"); - fprintf(f, "RO_THEME:%s\n", opt->theme); - } - else - LOG(("Couldn't open Choices file")); - - fclose(f); - xfree(fn); -} - -void options_init(struct options* opt) -{ - opt->http = 0; - opt->http_proxy = strdup(""); - opt->http_port = 8080; - opt->use_mouse_gestures = 0; - opt->allow_text_selection = 1; - opt->use_riscos_elements = 1; - opt->show_toolbar = 1; - opt->show_print_preview = 0; - opt->theme = strdup("Default"); -} - -void options_read(struct options* opt, char* filename) -{ - messagetrans_control_block cb; - messagetrans_file_flags flags; - char* data; - char* fn; - int size; - - fn = xcalloc(20 + (filename == 0 ? 7 : strlen(filename)), sizeof(char)); - sprintf(fn, "Choices:WWW.NetSurf.%s", filename == 0 ? "Choices" : filename); - - LOG(("Getting file info")); - if (xmessagetrans_file_info(fn, &flags, &size) != NULL) - return; - - /* catch empty choices file - this is a kludge but should work */ - if (size <= 10) { - - LOG(("Empty Choices file - using defaults")); - options_init(opt); - return; - } - - LOG(("Allocating %d bytes", size)); - data = xcalloc((unsigned int)size, sizeof(char)); - messagetrans_open_file(&cb, fn, data); - - opt->http = lookup_yesno(&cb, "USE_HTTP", "N"); - xfree(opt->http_proxy); - opt->http_proxy = lookup(&cb, "HTTP_PROXY", ""); - opt->http_port = lookup_i(&cb, "HTTP_PORT", "8080"); - - opt->use_mouse_gestures = lookup_yesno(&cb, "RO_MOUSE_GESTURES", "N"); - opt->allow_text_selection = lookup_yesno(&cb, "RO_TEXT_SELECTION", "Y"); - opt->use_riscos_elements = lookup_yesno(&cb, "RO_FORM_ELEMENTS", "Y"); - opt->show_toolbar = lookup_yesno(&cb, "RO_SHOW_TOOLBAR", "Y"); - opt->show_print_preview = lookup_yesno(&cb, "RO_SHOW_PRINT", "N"); - - xfree(opt->theme); - opt->theme = lookup(&cb, "RO_THEME", "Default"); - messagetrans_close_file(&cb); - xfree(data); - xfree(fn); -} - -void options_to_ro(struct options* opt, struct ro_choices* ro) -{ - ro->browser.use_mouse_gestures = opt->use_mouse_gestures; - ro->browser.allow_text_selection = opt->allow_text_selection; - ro->browser.use_riscos_elements = opt->use_riscos_elements; - ro->browser.show_toolbar = opt->show_toolbar; - ro->browser.show_print_preview = opt->show_print_preview; - - ro->proxy.http = opt->http; - if (opt->http_proxy != NULL) - strcpy(ro->proxy.http_proxy, opt->http_proxy); - else - strcpy(ro->proxy.http_proxy, ""); - ro->proxy.http_port = opt->http_port; - - if (opt->theme != NULL) - strcpy(ro->theme.name, opt->theme); - else - strcpy(ro->theme.name, "Default"); -} - -void ro_to_options(struct ro_choices* ro, struct options* opt) -{ - opt->use_mouse_gestures = ro->browser.use_mouse_gestures; - opt->allow_text_selection = ro->browser.allow_text_selection; - opt->use_riscos_elements = ro->browser.use_riscos_elements; - opt->show_toolbar = ro->browser.show_toolbar; - opt->show_print_preview = ro->browser.show_print_preview; - - opt->http = ro->proxy.http; - xfree(opt->http_proxy); - opt->http_proxy = strdup(ro->proxy.http_proxy); - opt->http_port = ro->proxy.http_port; - - xfree(opt->theme); - opt->theme = strdup(ro->theme.name); -} - -- cgit v1.2.3