---
config.h | 158 ++++++++++++++++++++++++++++++++-------------------------
keymap.h | 6 +-
main.c | 127 +++++++++++++++++++++++++++------------------
utilities.c | 4 +-
vimprobable.h | 52 +++++++++++++++++--
5 files changed, 216 insertions(+), 131 deletions(-)
diff --git a/config.h b/config.h
index ce79178..1623fa1 100644
--- a/config.h
+++ b/config.h
@@ -1,6 +1,6 @@
/*
(c) 2009 by Leon Winter
- (c) 2009-2011 by Hannes Schueller
+ (c) 2009-2012 by Hannes Schueller
(c) 2009-2010 by Matto Fransen
(c) 2010-2011 by Hans-Peter Deifel
(c) 2010-2011 by Thomas Adam
@@ -13,20 +13,54 @@
#define INTERNAL_VERSION "Vimprobable2/"VERSION
/* general settings */
-char startpage[MAX_SETTING_SIZE] = "http://www.vimprobable.org/";
-char useragent[MAX_SETTING_SIZE] = "Vimprobable2/" VERSION;
-char acceptlanguage[MAX_SETTING_SIZE] = "";
-static const gboolean enablePlugins = TRUE; /* TRUE keeps plugins enabled */
-static const gboolean enableJava = TRUE; /* FALSE disables Java applets */
-static const gboolean enablePagecache = FALSE; /* TRUE turns on the page cache. */
-static gboolean escape_input_on_load = TRUE; /* TRUE will disable automatic focusing of input fields via Javascript*/
-
-/* appearance */
-char statusbgcolor[MAX_SETTING_SIZE] = "#000000"; /* background color for status bar */
-char statuscolor[MAX_SETTING_SIZE] = "#ffffff"; /* color for status bar */
-char sslbgcolor[MAX_SETTING_SIZE] = "#b0ff00"; /* background color for status bar with SSL url */
-char sslinvalidbgcolor[MAX_SETTING_SIZE]= "#ff0000"; /* background color for status bar with unverified SSL url */
-char sslcolor[MAX_SETTING_SIZE] = "#000000"; /* color for status bar with SSL url */
+VSettings cursettings = {
+ .startpage = "http://www.vimprobable.org/",
+ .useragent = "Vimprobable2/" VERSION,
+ .acceptLanguage = "",
+ .enableScripts = "true", /* TRUE keeps JavaScript enabled */
+ .enablePlugins = "true", /* TRUE keeps plugins enabled */
+ .enableJava = "true", /* FALSE disables Java applets */
+ .enablePagecache = "false", /* TRUE turns on the page cache. */
+ .escapeInputOnLoad = "true", /* TRUE will disable automatic focusing of input fields via Javascript */
+ .enableImages = "true",
+ .shrinkImages = "true",
+ .backgrounds = "true",
+ .defaultEncoding = "iso-8859-1",
+ /* website fonts */
+ .defaultFont = "sans-serif",
+ .cursiveFont = "serif",
+ .fantasyFont = "serif",
+ .monoFont = "monospace",
+ .sansFont = "sans-serif",
+ .serifFont = "serif",
+ .fontSize = "12",
+ .monoFontSize = "10",
+ .minimumFontSize = "5",
+ /* site customisation */
+ .caret = "false",
+ .webInspector = "false",
+ .stylesheet = "%svimprobable/style.css", /* %s will be replaced with config_base */
+ /* browser appearance */
+ .statusBgColor = "#000000", /* background color for status bar */
+ .statusColor = "#ffffff", /* color for status bar */
+ .SSLBgColor = "#b0ff00", /* background color for status bar with SSL url */
+ .SSLInvalidBgColor = "#ff0000", /* background color for status bar with unverified SSL url */
+ .SSLColor = "#000000", /* color for status bar with SSL url */
+ .scrollbars = "false",
+ .statusBar = "true",
+ .inputBox = "true",
+ /* browser behaviour */
+ .defaultSearch = "i", /* shortcut of the default search engine */
+
+ .useProxy = "true", /* TRUE if you're going to use a proxy (whose address
+ is specified in http_proxy environment variable), false otherwise */
+ .completionCase = "true",
+ .escapeInput = "true",
+ /* SSL verification */
+ .strictSSL = "true", /* FALSE will accept any SSL certificate at face value */
+ .caBundle = "/etc/ssl/certs/ca-certificates.crt"
+
+};
/* normal, warning, error */
static const char *urlboxfont[] = { "monospace normal 8", "monospace normal 8", "monospace bold 8"};
@@ -76,28 +110,13 @@ static URIHandler uri_handlers[] = {
/* downloads directory */
#define DOWNLOADS_PATH "%s", getenv("HOME")
-/* font size */
-#define DEFAULT_FONT_SIZE 12
-
-/* user styles */
-#define USER_STYLESHEET "%s/vimprobable/style.css", config_base
-
-/* ssl */
-static gboolean strict_ssl = TRUE; /* FALSE will accept any SSL certificate at face value */
-static char ca_bundle[MAX_SETTING_SIZE] = "/etc/ssl/certs/ca-certificates.crt";
-
-/* proxy */
-static const gboolean use_proxy = TRUE; /* TRUE if you're going to use a proxy (whose address
- is specified in http_proxy environment variable), false otherwise */
/* scrolling */
static unsigned int scrollstep = 40; /* cursor difference in pixel */
static unsigned int pagingkeep = 40; /* pixels kept when paging */
-#define DISABLE_SCROLLBAR
/* searching */
#define ENABLE_MATCH_HIGHLITING
static const int searchoptions = CaseInsensitive | Wrapping;
-gboolean complete_case_sensitive = TRUE;
/* search engines */
static Searchengine searchengines[] = {
@@ -108,8 +127,6 @@ static Searchengine searchengines[] = {
{ "dd", "https://duckduckgo.com/html/?q=%s&t=Vimprobable" },
};
-static char defaultsearch[MAX_SETTING_SIZE] = "i";
-
/* command mapping */
Command commands[COMMANDSIZE] = {
/* command, function, argument */
@@ -169,43 +186,44 @@ static Mouse mouse[] = {
/* settings (arguments of :set command) */
static Setting browsersettings[] = {
/* public name, internal variable webkit setting integer value? boolean value? colour value? reload page? */
- { "useragent", useragent, "user-agent", FALSE, FALSE, FALSE, FALSE },
- { "scripts", NULL, "enable-scripts", FALSE, TRUE, FALSE, FALSE },
- { "plugins", NULL, "enable-plugins", FALSE, TRUE, FALSE, FALSE },
- { "pagecache", NULL, "enable-page-cache", FALSE, TRUE, FALSE, FALSE },
- { "java", NULL, "enable-java-applet", FALSE, TRUE, FALSE, FALSE },
- { "images", NULL, "auto-load-images", FALSE, TRUE, FALSE, FALSE },
- { "shrinkimages", NULL, "auto-shrink-images", FALSE, TRUE, FALSE, FALSE },
- { "cursivefont", NULL, "cursive-font-family", FALSE, FALSE, FALSE, FALSE },
- { "defaultencoding", NULL, "default-encoding", FALSE, FALSE, FALSE, FALSE },
- { "defaultfont", NULL, "default-font-family", FALSE, FALSE, FALSE, FALSE },
- { "fontsize", NULL, "default-font-size", TRUE, FALSE, FALSE, FALSE },
- { "monofontsize", NULL, "default-monospace-font-size", TRUE, FALSE, FALSE, FALSE },
- { "caret", NULL, "enable-caret-browsing", FALSE, TRUE, FALSE, FALSE },
- { "fantasyfont", NULL, "fantasy-font-family", FALSE, FALSE, FALSE, FALSE },
- { "minimumfontsize", NULL, "minimum-font-size", TRUE, FALSE, FALSE, FALSE },
- { "monofont", NULL, "monospace-font-family", FALSE, FALSE, FALSE, FALSE },
- { "backgrounds", NULL, "print-backgrounds", FALSE, TRUE, FALSE, FALSE },
- { "sansfont", NULL, "sans-serif-font-family", FALSE, FALSE, FALSE, FALSE },
- { "seriffont", NULL, "serif-font-family", FALSE, FALSE, FALSE, FALSE },
- { "stylesheet", NULL, "user-stylesheet-uri", FALSE, FALSE, FALSE, FALSE },
- { "resizetextareas", NULL, "resizable-text-areas", FALSE, TRUE, FALSE, FALSE },
- { "webinspector", NULL, "enable-developer-extras", FALSE, TRUE, FALSE, FALSE },
-
- { "homepage", startpage, "", FALSE, FALSE, FALSE, FALSE },
- { "statusbgcolor", statusbgcolor, "", FALSE, FALSE, TRUE, TRUE },
- { "statuscolor", statuscolor, "", FALSE, FALSE, TRUE, TRUE },
- { "sslbgcolor", sslbgcolor, "", FALSE, FALSE, TRUE, TRUE },
- { "sslcolor", sslcolor, "", FALSE, FALSE, TRUE, TRUE },
- { "acceptlanguage", acceptlanguage, "", FALSE, FALSE, FALSE, FALSE },
- { "defaultsearch", defaultsearch, "", FALSE, FALSE, FALSE, FALSE },
+ { "useragent", cursettings.useragent, "user-agent", FALSE, FALSE, FALSE, FALSE },
+ { "scripts", cursettings.enableScripts, "enable-scripts", FALSE, TRUE, FALSE, FALSE },
+ { "plugins", cursettings.enablePlugins, "enable-plugins", FALSE, TRUE, FALSE, FALSE },
+ { "pagecache", cursettings.enablePagecache, "enable-page-cache", FALSE, TRUE, FALSE, FALSE },
+ { "java", cursettings.enableJava, "enable-java-applet", FALSE, TRUE, FALSE, FALSE },
+ { "images", cursettings.enableImages, "auto-load-images", FALSE, TRUE, FALSE, FALSE },
+ { "shrinkimages", cursettings.shrinkImages, "auto-shrink-images", FALSE, TRUE, FALSE, FALSE },
+ { "defaultencoding", cursettings.defaultEncoding, "default-encoding", FALSE, FALSE, FALSE, FALSE },
+ { "defaultfont", cursettings.defaultFont, "default-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "cursivefont", cursettings.cursiveFont, "cursive-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "fantasyfont", cursettings.fantasyFont, "fantasy-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "monofont", cursettings.monoFont, "monospace-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "sansfont", cursettings.sansFont, "sans-serif-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "seriffont", cursettings.serifFont, "serif-font-family", FALSE, FALSE, FALSE, FALSE },
+ { "fontsize", cursettings.fontSize, "default-font-size", TRUE, FALSE, FALSE, FALSE },
+ { "monofontsize", cursettings.monoFontSize, "default-monospace-font-size", TRUE, FALSE, FALSE, FALSE },
+ { "minimumfontsize", cursettings.minimumFontSize, "minimum-font-size", TRUE, FALSE, FALSE, FALSE },
+ { "caret", cursettings.caret, "enable-caret-browsing", FALSE, TRUE, FALSE, FALSE },
+ { "backgrounds", cursettings.backgrounds, "print-backgrounds", FALSE, TRUE, FALSE, FALSE },
+ { "stylesheet", cursettings.stylesheet, "user-stylesheet-uri", FALSE, FALSE, FALSE, FALSE },
+ { "resizetextareas", cursettings.resizeTextAreas, "resizable-text-areas", FALSE, TRUE, FALSE, FALSE },
+ { "webinspector", cursettings.webInspector, "enable-developer-extras", FALSE, TRUE, FALSE, FALSE },
+
+ { "homepage", cursettings.startpage, "", FALSE, FALSE, FALSE, FALSE },
+ { "statusbgcolor", cursettings.statusBgColor, "", FALSE, FALSE, TRUE, TRUE },
+ { "statuscolor", cursettings.statusColor, "", FALSE, FALSE, TRUE, TRUE },
+ { "sslbgcolor", cursettings.SSLBgColor, "", FALSE, FALSE, TRUE, TRUE },
+ { "sslinvalidbgcolor",cursettings.SSLInvalidBgColor, "", FALSE, FALSE, TRUE, TRUE },
+ { "sslcolor", cursettings.SSLColor, "", FALSE, FALSE, TRUE, TRUE },
+ { "acceptlanguage", cursettings.acceptLanguage, "", FALSE, FALSE, FALSE, FALSE },
+ { "defaultsearch", cursettings.defaultSearch, "", FALSE, FALSE, FALSE, FALSE },
{ "qmark", NULL, "", FALSE, FALSE, FALSE, FALSE },
- { "proxy", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "scrollbars", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "statusbar", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "inputbox", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "completioncase", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "escapeinput", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "strictssl", NULL, "", FALSE, TRUE, FALSE, FALSE },
- { "cabundle", ca_bundle, "", FALSE, FALSE, FALSE, FALSE },
+ { "proxy", cursettings.useProxy, "", FALSE, TRUE, FALSE, FALSE },
+ { "scrollbars", cursettings.scrollbars, "", FALSE, TRUE, FALSE, FALSE },
+ { "statusbar", cursettings.statusBar, "", FALSE, TRUE, FALSE, FALSE },
+ { "inputbox", cursettings.inputBox, "", FALSE, TRUE, FALSE, FALSE },
+ { "completioncase", cursettings.completionCase, "", FALSE, TRUE, FALSE, FALSE },
+ { "escapeinput", cursettings.escapeInput, "", FALSE, TRUE, FALSE, FALSE },
+ { "strictssl", cursettings.strictSSL, "", FALSE, TRUE, FALSE, FALSE },
+ { "cabundle", cursettings.caBundle, "", FALSE, FALSE, FALSE, FALSE },
};
diff --git a/keymap.h b/keymap.h
index 7ba5d0b..3038e1d 100644
--- a/keymap.h
+++ b/keymap.h
@@ -1,6 +1,6 @@
/*
(c) 2009 by Leon Winter
- (c) 2009-2011 by Hannes Schueller
+ (c) 2009-2012 by Hannes Schueller
(c) 2009-2010 by Matto Fransen
(c) 2010-2011 by Hans-Peter Deifel
(c) 2010-2011 by Thomas Adam
@@ -80,8 +80,8 @@ Key keys[] = {
{ 0, GDK_g, GDK_u, descend, {NthSubdir} },
{ 0, GDK_g, GDK_U, descend, {Rootdir} },
- { 0, GDK_g, GDK_h, open_arg, {TargetCurrent, startpage} },
- { 0, GDK_g, GDK_H, open_arg, {TargetNew, startpage} },
+ { 0, GDK_g, GDK_h, open_arg, {TargetCurrent, cursettings.startpage} },
+ { 0, GDK_g, GDK_H, open_arg, {TargetNew, cursettings.startpage} },
{ 0, 0, GDK_p, paste, {TargetCurrent | ClipboardPrimary | ClipboardGTK} },
{ 0, 0, GDK_P, paste, {TargetNew | ClipboardPrimary | ClipboardGTK} },
diff --git a/main.c b/main.c
index 029ac7c..aecd7a8 100644
--- a/main.c
+++ b/main.c
@@ -221,7 +221,7 @@ webview_load_finished_cb(WebKitWebView *webview, WebKitWebFrame *frame, gpointer
gboolean scripts;
g_object_get(settings, "enable-scripts", &scripts, NULL);
- if (escape_input_on_load && scripts && !manual_focus && !gtk_widget_is_focus(inputbox)) {
+ if (cursettings.escapeInputOnLoad && scripts && !manual_focus && !gtk_widget_is_focus(inputbox)) {
Arg a = { .i = Silent, .s = g_strdup("hints.clearFocus();") };
script(&a);
g_free(a.s);
@@ -1228,7 +1228,7 @@ open_arg(const Arg *arg) {
strcpy(new, "file://");
memcpy(&new[sizeof("file://") - 1], s, len + 1);
} else if (p || !strchr(s, '.')) { /* whitespaces or no dot? */
- search_uri = find_uri_for_searchengine(defaultsearch);
+ search_uri = find_uri_for_searchengine(cursettings.defaultSearch);
if (search_uri != NULL) {
search_term = soup_uri_encode(s, "&");
new = g_strdup_printf(search_uri, search_term);
@@ -1926,21 +1926,17 @@ process_set_line(char *line) {
if (strlen(browsersettings[i].webkit) > 0) {
/* activate appropriate webkit setting */
if (browsersettings[i].boolval) {
- g_object_set((GObject*)settings, browsersettings[i].webkit, boolval, NULL);
+ g_object_set(G_OBJECT(settings), browsersettings[i].webkit, boolval, NULL);
} else if (browsersettings[i].intval) {
- g_object_set((GObject*)settings, browsersettings[i].webkit, atoi(my_pair.value), NULL);
+ g_object_set(G_OBJECT(settings), browsersettings[i].webkit, atoi(my_pair.value), NULL);
} else {
- g_object_set((GObject*)settings, browsersettings[i].webkit, my_pair.value, NULL);
+ g_object_set(G_OBJECT(settings), browsersettings[i].webkit, my_pair.value, NULL);
}
webkit_web_view_set_settings(webview, settings);
}
- if (strlen(my_pair.what) == 14) {
- if (strncmp("acceptlanguage", my_pair.what, 14) == 0) {
- g_object_set(G_OBJECT(session), "accept-language", acceptlanguage, NULL);
- } else if (strncmp("completioncase", my_pair.what, 14) == 0) {
- complete_case_sensitive = boolval;
- }
+ if (strlen(my_pair.what) == 14 && strncmp("acceptlanguage", my_pair.what, 14) == 0) {
+ g_object_set(G_OBJECT(session), "accept-language", cursettings.acceptLanguage, NULL);
} else if (strlen(my_pair.what) == 5 && strncmp("proxy", my_pair.what, 5) == 0) {
toggle_proxy(boolval);
} else if (strlen(my_pair.what) == 10 && strncmp("scrollbars", my_pair.what, 10) == 0) {
@@ -1949,22 +1945,14 @@ process_set_line(char *line) {
gtk_widget_set_visible(GTK_WIDGET(statusbar), boolval);
} else if (strlen(my_pair.what) == 8 && strncmp("inputbox", my_pair.what, 8) == 0) {
gtk_widget_set_visible(inputbox, boolval);
- } else if (strlen(my_pair.what) == 11 && strncmp("escapeinput", my_pair.what, 11) == 0) {
- escape_input_on_load = boolval;
}
/* SSL certificate checking */
if (strlen(my_pair.what) == 9 && strncmp("strictssl", my_pair.what, 9) == 0) {
- if (boolval) {
- strict_ssl = TRUE;
- g_object_set(G_OBJECT(session), "ssl-strict", TRUE, NULL);
- } else {
- strict_ssl = FALSE;
- g_object_set(G_OBJECT(session), "ssl-strict", FALSE, NULL);
- }
+ g_object_set(G_OBJECT(session), "ssl-strict", boolval, NULL);
}
if (strlen(my_pair.what) == 8 && strncmp("cabundle", my_pair.what, 8) == 0) {
- g_object_set(G_OBJECT(session), SOUP_SESSION_SSL_CA_FILE, ca_bundle, NULL);
+ g_object_set(G_OBJECT(session), SOUP_SESSION_SSL_CA_FILE, cursettings.caBundle, NULL);
}
/* reload page? */
@@ -2170,13 +2158,13 @@ update_url(const char *uri) {
msg = webkit_network_request_get_message(request);
ssl_ok = soup_message_get_flags(msg) & SOUP_MESSAGE_CERTIFICATE_TRUSTED;
if (ssl_ok)
- sslactivecolor = sslbgcolor;
+ sslactivecolor = cursettings.SSLBgColor;
else
- sslactivecolor = sslinvalidbgcolor;
+ sslactivecolor = cursettings.SSLInvalidBgColor;
}
- gdk_color_parse(ssl ? sslactivecolor : statusbgcolor, &color);
+ gdk_color_parse(ssl ? sslactivecolor : cursettings.statusBgColor, &color);
gtk_widget_modify_bg(eventbox, GTK_STATE_NORMAL, &color);
- gdk_color_parse(ssl ? sslcolor : statuscolor, &color);
+ gdk_color_parse(ssl ? cursettings.SSLColor : cursettings.statusColor, &color);
gtk_widget_modify_fg(GTK_WIDGET(status_url), GTK_STATE_NORMAL, &color);
gtk_widget_modify_fg(GTK_WIDGET(status_state), GTK_STATE_NORMAL, &color);
}
@@ -2292,20 +2280,21 @@ setup_gui() {
clipboards[0] = gtk_clipboard_get(GDK_SELECTION_PRIMARY);
clipboards[1] = gtk_clipboard_get(GDK_NONE);
setup_settings();
- gdk_color_parse(statusbgcolor, &bg);
+ gdk_color_parse(cursettings.statusBgColor, &bg);
gtk_widget_modify_bg(eventbox, GTK_STATE_NORMAL, &bg);
gtk_widget_set_name(GTK_WIDGET(window), "Vimprobable2");
gtk_window_set_geometry_hints(window, NULL, &hints, GDK_HINT_MIN_SIZE);
keymap = gdk_keymap_get_default();
-#ifdef DISABLE_SCROLLBAR
- viewport = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(viewport), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
-#else
- /* Ensure we still see scrollbars. */
- GtkWidget *viewport = gtk_scrolled_window_new(adjust_h, adjust_v);
-#endif
+ GtkWidget *viewport;
+ if (strncmp(cursettings.scrollbars, "true", 4) == 0) {
+ /* Ensure we still see scrollbars. */
+ viewport = gtk_scrolled_window_new(adjust_h, adjust_v);
+ } else {
+ viewport = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(viewport), GTK_POLICY_NEVER, GTK_POLICY_NEVER);
+ }
setup_signals();
gtk_container_add(GTK_CONTAINER(viewport), GTK_WIDGET(webview));
@@ -2338,27 +2327,63 @@ setup_gui() {
void
setup_settings() {
WebKitWebSettings *settings = (WebKitWebSettings*)webkit_web_settings_new();
- char *filename, *file_url;
+ char *file_url, temp[MAX_SETTING_SIZE];
+ gchar *line;
+ int i, len;
session = webkit_get_default_session();
- g_object_set(G_OBJECT(session), "ssl-ca-file", ca_bundle, NULL);
- g_object_set(G_OBJECT(session), "ssl-strict", strict_ssl, NULL);
- g_object_set(G_OBJECT(settings), "default-font-size", DEFAULT_FONT_SIZE, NULL);
- g_object_set(G_OBJECT(settings), "enable-scripts", enablePlugins, NULL);
- g_object_set(G_OBJECT(settings), "enable-plugins", enablePlugins, NULL);
- g_object_set(G_OBJECT(settings), "enable-java-applet", enableJava, NULL);
- g_object_set(G_OBJECT(settings), "enable-page-cache", enablePagecache, NULL);
- filename = g_strdup_printf(USER_STYLESHEET);
- file_url = g_strdup_printf("file://%s", filename);
- g_object_set(G_OBJECT(settings), "user-stylesheet-uri", file_url, NULL);
- g_free(file_url);
- g_free(filename);
- g_object_set(G_OBJECT(settings), "user-agent", useragent, NULL);
g_object_get(G_OBJECT(settings), "zoom-step", &zoomstep, NULL);
webkit_web_view_set_settings(webview, settings);
-
+ line = g_strconcat("cabundle=", cursettings.caBundle, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("strictssl=", cursettings.strictSSL, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("fontsize=", cursettings.fontSize, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("scripts=", cursettings.enableScripts, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("plugins=", cursettings.enablePlugins, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("java=", cursettings.enableJava, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("pagecache=", cursettings.enablePagecache, NULL);
+ process_set_line(line);
+ g_free(line);
+ line = g_strconcat("useragent=", cursettings.useragent, NULL);
+ process_set_line(line);
+ g_free(line);
+ /* user stylesheet */
+ memset(temp, 0, MAX_SETTING_SIZE);
+ file_url = cursettings.stylesheet;
+ len = strlen(file_url);
+ for (i = 0; i < len; i++) {
+ if (strncmp(file_url, "%s", 2) == 0) {
+ strncat(temp, config_base, strlen(config_base));
+ file_url += 2;
+ } else {
+ strncat(temp, file_url, 1);
+ file_url++;
+ }
+ }
+ if (temp[0] == '/') {
+ file_url = g_strdup_printf("file://%s", temp);
+ } else {
+ file_url = g_strdup_printf("%s", temp);
+ }
+ line = g_strconcat("stylesheet=", file_url, NULL);
+ process_set_line(line);
+ g_free(line);
+ g_free(file_url);
/* proxy */
- toggle_proxy(use_proxy);
+ line = g_strconcat("proxy=", cursettings.useProxy, NULL);
+ process_set_line(line);
+ g_free(line);
}
void
@@ -2369,7 +2394,7 @@ setup_signals() {
g_signal_connect_after(G_OBJECT(session), "request-started", G_CALLBACK(new_generic_request), NULL);
#endif
/* Accept-language header */
- g_object_set(G_OBJECT(session), "accept-language", acceptlanguage, NULL);
+ g_object_set(G_OBJECT(session), "accept-language", cursettings.acceptLanguage, NULL);
/* window */
g_object_connect(G_OBJECT(window),
"signal::destroy", G_CALLBACK(window_destroyed_cb), NULL,
@@ -2622,7 +2647,7 @@ main(int argc, char *argv[]) {
if (argc > 1) {
strncpy(url, argv[argc - 1], 255);
} else {
- strncpy(url, startpage, 255);
+ strncpy(url, cursettings.startpage, 255);
}
a.i = TargetCurrent;
diff --git a/utilities.c b/utilities.c
index 9bb4f49..78f4586 100644
--- a/utilities.c
+++ b/utilities.c
@@ -18,8 +18,8 @@ extern Command commands[COMMANDSIZE];
extern KeyList *keylistroot;
extern Key keys[];
extern char *error_msg;
-extern gboolean complete_case_sensitive;
extern char *config_base;
+extern VSettings cursettings;
static GList *dynamic_searchengines = NULL, *dynamic_uri_handlers = NULL;
void add_modkeys(char key);
@@ -546,7 +546,7 @@ complete_list(const char *searchfor, const int mode, Listelement *elementlist)
candidatepointer = candidatelist;
while (candidatepointer != NULL) {
strncpy(s, candidatepointer->element, sizeof(s));
- if (!complete_case_sensitive) {
+ if (!cursettings.completionCase) {
g_strdown(s);
}
if (!strlen(searchfor) || strstr(s, searchfor) != NULL) {
diff --git a/vimprobable.h b/vimprobable.h
index 5a6c2df..16d4ee9 100644
--- a/vimprobable.h
+++ b/vimprobable.h
@@ -10,6 +10,11 @@
/* macros */
#define LENGTH(x) (sizeof(x)/sizeof(x[0]))
+/* maximum size of internal string variable handled by :set
+ * if you set this to anything lower than 8, colour values
+ * will stop working */
+#define MAX_SETTING_SIZE 1024
+
/* enums */
enum { ModeNormal, ModePassThrough, ModeSendKey, ModeInsert, ModeHints }; /* modes */
enum { TargetCurrent, TargetNew }; /* target */
@@ -97,6 +102,48 @@ typedef struct {
} Arg;
typedef struct {
+ char startpage[MAX_SETTING_SIZE];
+ char useragent[MAX_SETTING_SIZE];
+ char acceptLanguage[MAX_SETTING_SIZE];
+ char enableScripts[MAX_SETTING_SIZE];
+ char enablePlugins[MAX_SETTING_SIZE];
+ char enableJava[MAX_SETTING_SIZE];
+ char enablePagecache[MAX_SETTING_SIZE];
+ char escapeInputOnLoad[MAX_SETTING_SIZE];
+ char enableImages[MAX_SETTING_SIZE];
+ char shrinkImages[MAX_SETTING_SIZE];
+ char backgrounds[MAX_SETTING_SIZE];
+ char webInspector[MAX_SETTING_SIZE];
+ char defaultEncoding[MAX_SETTING_SIZE];
+ char defaultFont[MAX_SETTING_SIZE];
+ char cursiveFont[MAX_SETTING_SIZE];
+ char fantasyFont[MAX_SETTING_SIZE];
+ char monoFont[MAX_SETTING_SIZE];
+ char sansFont[MAX_SETTING_SIZE];
+ char serifFont[MAX_SETTING_SIZE];
+ char fontSize[MAX_SETTING_SIZE];
+ char monoFontSize[MAX_SETTING_SIZE];
+ char minimumFontSize[MAX_SETTING_SIZE];
+ char caret[MAX_SETTING_SIZE];
+ char stylesheet[MAX_SETTING_SIZE];
+ char resizeTextAreas[MAX_SETTING_SIZE];
+ char statusBgColor[MAX_SETTING_SIZE];
+ char statusColor[MAX_SETTING_SIZE];
+ char SSLBgColor[MAX_SETTING_SIZE];
+ char SSLInvalidBgColor[MAX_SETTING_SIZE];
+ char SSLColor[MAX_SETTING_SIZE];
+ char defaultSearch[MAX_SETTING_SIZE];
+ char useProxy[MAX_SETTING_SIZE];
+ char scrollbars[MAX_SETTING_SIZE];
+ char statusBar[MAX_SETTING_SIZE];
+ char inputBox[MAX_SETTING_SIZE];
+ char completionCase[MAX_SETTING_SIZE];
+ char escapeInput[MAX_SETTING_SIZE];
+ char strictSSL[MAX_SETTING_SIZE];
+ char caBundle[MAX_SETTING_SIZE];
+} VSettings;
+
+typedef struct {
guint mask;
guint modkey;
guint key;
@@ -184,10 +231,5 @@ enum ConfigFileError {
/* Command size */
#define COMMANDSIZE 1024
-/* maximum size of internal string variable handled by :set
- * if you set this to anything lower than 8, colour values
- * will stop working */
-#define MAX_SETTING_SIZE 1024
-
/* completion list size */
#define MAX_LIST_SIZE 40
--
1.7.2.5
|