From 478192797be8a8789c1c7c3eeaa62283a7497985 Mon Sep 17 00:00:00 2001 From: uranther Date: Mon, 8 Jun 2009 15:54:00 -0400 Subject: Fixed some issues with TYPE_FLOAT upon ing and dumping. Also, we need uzbl.gui.icon for dumping, so no need to free() it --- uzbl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/uzbl.c b/uzbl.c index 7b810dc..92ce33f 100644 --- a/uzbl.c +++ b/uzbl.c @@ -78,6 +78,8 @@ GOptionEntry entries[] = /* associate command names to their properties */ typedef const struct { + /* TODO: Make this ambiguous void **ptr into a union { char *char_p; int *int_p; float *float_p; } val; + the PTR() macro is kind of preventing this change at the moment. */ void **ptr; int type; int dump; @@ -215,9 +217,10 @@ expand_vars(char *s) { if(c->type == TYPE_STR) g_string_append(buf, (gchar *)*c->ptr); else if(c->type == TYPE_INT) { - char *b = itos((int)*c->ptr); - g_string_append(buf, b); - g_free(b); + g_string_append_printf(buf, "%d", (int)*c->ptr); + } + else if(c->type == TYPE_FLOAT) { + g_string_append_printf(buf, "%f", *(float *)c->ptr); } } if(upto == ' ') s = vend; @@ -1319,7 +1322,6 @@ set_icon() { } else { g_printerr ("Icon \"%s\" not found. ignoring.\n", uzbl.gui.icon); } - g_free (uzbl.gui.icon); } static void @@ -2402,9 +2404,11 @@ dump_var_hash(gpointer k, gpointer v, gpointer ud) { return; if(c->type == TYPE_STR) - printf("set %s = %s\n", (char *)k, *c->ptr?(char *)*c->ptr:" "); + printf("set %s = %s\n", (char *)k, *c->ptr ? (char *)*c->ptr : " "); else if(c->type == TYPE_INT) printf("set %s = %d\n", (char *)k, (int)*c->ptr); + else if(c->type == TYPE_FLOAT) + printf("set %s = %f\n", (char *)k, *(float *)c->ptr); } static void -- cgit v1.2.3 From c9290bc5a97062e2c429124bef34b9449c0f071c Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 11:43:14 -0400 Subject: Fixed bug when backspacing UTF8 characters in the command box. Also some code cleanup --- uzbl.c | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/uzbl.c b/uzbl.c index 92ce33f..74f4583 100644 --- a/uzbl.c +++ b/uzbl.c @@ -877,7 +877,12 @@ static void keycmd_bs (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; - g_string_truncate(uzbl.state.keycmd, uzbl.state.keycmd->len - 1); + g_string_truncate(uzbl.state.keycmd, + /* Calculate the number of bytes to truncate... + * This is not simply (len-1) when dealing with UTF-8 string */ + g_utf8_offset_to_pointer(uzbl.state.keycmd->str, + g_utf8_strlen(uzbl.state.keycmd->str, uzbl.state.keycmd->len) - 1) + - uzbl.state.keycmd->str); update_title(); } @@ -981,14 +986,14 @@ expand_template(const char *template, gboolean escape_markup) { switch(sym) { case SYM_URI: if(escape_markup) { - buf = uzbl.state.uri? - g_markup_printf_escaped("%s", uzbl.state.uri):g_strdup(""); + buf = uzbl.state.uri ? + g_markup_printf_escaped("%s", uzbl.state.uri) : g_strdup(""); g_string_append(ret, buf); g_free(buf); } else - g_string_append(ret, uzbl.state.uri? - uzbl.state.uri:g_strdup("")); + g_string_append(ret, uzbl.state.uri ? + uzbl.state.uri : g_strdup("")); break; case SYM_LOADPRGS: buf = itos(uzbl.gui.sbar.load_progress); @@ -1002,51 +1007,51 @@ expand_template(const char *template, gboolean escape_markup) { break; case SYM_TITLE: if(escape_markup) { - buf = uzbl.gui.main_title? - g_markup_printf_escaped("%s", uzbl.gui.main_title):g_strdup(""); + buf = uzbl.gui.main_title ? + g_markup_printf_escaped("%s", uzbl.gui.main_title) : g_strdup(""); g_string_append(ret, buf); g_free(buf); } else - g_string_append(ret, uzbl.gui.main_title? - uzbl.gui.main_title:g_strdup("")); + g_string_append(ret, uzbl.gui.main_title ? + uzbl.gui.main_title : g_strdup("")); break; case SYM_SELECTED_URI: if(escape_markup) { - buf = uzbl.state.selected_url? - g_markup_printf_escaped("%s", uzbl.state.selected_url):g_strdup(""); + buf = uzbl.state.selected_url ? + g_markup_printf_escaped("%s", uzbl.state.selected_url) : g_strdup(""); g_string_append(ret, buf); g_free(buf); } else - g_string_append(ret, uzbl.state.selected_url? - uzbl.state.selected_url:g_strdup("")); + g_string_append(ret, uzbl.state.selected_url ? + uzbl.state.selected_url : g_strdup("")); break; case SYM_NAME: buf = itos(uzbl.xwin); g_string_append(ret, - uzbl.state.instance_name?uzbl.state.instance_name:buf); + uzbl.state.instance_name ? uzbl.state.instance_name : buf); g_free(buf); break; case SYM_KEYCMD: if(escape_markup) { - buf = uzbl.state.keycmd->str? - g_markup_printf_escaped("%s", uzbl.state.keycmd->str):g_strdup(""); + buf = uzbl.state.keycmd->str ? + g_markup_printf_escaped("%s", uzbl.state.keycmd->str) : g_strdup(""); g_string_append(ret, buf); g_free(buf); } else - g_string_append(ret, uzbl.state.keycmd->str? - uzbl.state.keycmd->str:g_strdup("")); + g_string_append(ret, uzbl.state.keycmd->str ? + uzbl.state.keycmd->str : g_strdup("")); break; case SYM_MODE: g_string_append(ret, - uzbl.behave.insert_mode? - uzbl.behave.insert_indicator:uzbl.behave.cmd_indicator); + uzbl.behave.insert_mode ? + uzbl.behave.insert_indicator : uzbl.behave.cmd_indicator); break; case SYM_MSG: g_string_append(ret, - uzbl.gui.sbar.msg?uzbl.gui.sbar.msg:""); + uzbl.gui.sbar.msg ? uzbl.gui.sbar.msg : ""); break; /* useragent syms */ case SYM_WK_MAJ: -- cgit v1.2.3 From 472542d39ac6b18ced0926a0997b435b1dc0a0b5 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 17:15:29 -0400 Subject: Cleaner handling of G_TOKEN_INT, and added G_TOKEN_ERROR error message --- uzbl.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/uzbl.c b/uzbl.c index 74f4583..bde1e58 100644 --- a/uzbl.c +++ b/uzbl.c @@ -1100,9 +1100,7 @@ expand_template(const char *template, gboolean escape_markup) { } } else if(token == G_TOKEN_INT) { - buf = itos(g_scanner_cur_value(uzbl.scan).v_int); - g_string_append(ret, buf); - g_free(buf); + g_string_append_printf(ret, "%lu", g_scanner_cur_value(uzbl.scan).v_int); } else if(token == G_TOKEN_IDENTIFIER) { g_string_append(ret, (gchar *)g_scanner_cur_value(uzbl.scan).v_identifier); @@ -1110,6 +1108,12 @@ expand_template(const char *template, gboolean escape_markup) { else if(token == G_TOKEN_CHAR) { g_string_append_c(ret, (gchar)g_scanner_cur_value(uzbl.scan).v_char); } + else if(token == G_TOKEN_ERROR) { + g_scanner_error(uzbl.scan, "Token error in template ('%s') at line %d, column %d.", + template, + g_scanner_cur_line(uzbl.scan), + g_scanner_cur_position(uzbl.scan)); + } } return g_string_free(ret, FALSE); -- cgit v1.2.3 From 2420b6dcebb41dbb4e86e18702b365cfba875c84 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 18:07:49 -0400 Subject: Cleaned up after lexical scanner --- uzbl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/uzbl.c b/uzbl.c index bde1e58..b2fa48a 100644 --- a/uzbl.c +++ b/uzbl.c @@ -340,6 +340,7 @@ clean_up(void) { g_string_free(uzbl.state.keycmd, TRUE); g_hash_table_destroy(uzbl.bindings); g_hash_table_destroy(uzbl.behave.commands); + g_scanner_destroy(uzbl.scan); } /* used for html_mode_timeout -- cgit v1.2.3 From 7d3e27bd39e7f20175c1aac4bdf9f0c2c4bafe72 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 18:32:52 -0400 Subject: cleanup when uzbl quits --- uzbl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/uzbl.c b/uzbl.c index b2fa48a..3b6de7c 100644 --- a/uzbl.c +++ b/uzbl.c @@ -577,6 +577,7 @@ destroy_cb (GtkWidget* widget, gpointer data) { (void) widget; (void) data; gtk_main_quit (); + clean_up(); } static void @@ -892,6 +893,7 @@ close_uzbl (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; gtk_main_quit (); + clean_up(); } /* --Statusbar functions-- */ -- cgit v1.2.3 From 17af1bff36bb5cbf33ef63593358ba1f85a19515 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 18:41:05 -0400 Subject: Revert "cleanup when uzbl quits" This reverts commit 7d3e27bd39e7f20175c1aac4bdf9f0c2c4bafe72. --- uzbl.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/uzbl.c b/uzbl.c index 3b6de7c..b2fa48a 100644 --- a/uzbl.c +++ b/uzbl.c @@ -577,7 +577,6 @@ destroy_cb (GtkWidget* widget, gpointer data) { (void) widget; (void) data; gtk_main_quit (); - clean_up(); } static void @@ -893,7 +892,6 @@ close_uzbl (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; gtk_main_quit (); - clean_up(); } /* --Statusbar functions-- */ -- cgit v1.2.3 From e6c50d8d1fed83cbd4a4da77fa8bd5659409a166 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 18:44:33 -0400 Subject: add 'quit' command, because I can never remember whether it's exit or quit... --- uzbl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/uzbl.c b/uzbl.c index b2fa48a..a94bac5 100644 --- a/uzbl.c +++ b/uzbl.c @@ -627,6 +627,7 @@ static struct {char *name; Command command[2];} cmdlist[] = { "sh", {spawn_sh, 0} }, { "sync_sh", {spawn_sh_sync, 0} }, // needed for cookie handler { "exit", {close_uzbl, 0} }, + { "quit", {close_uzbl, 0} }, { "search", {search_forward_text, NOSPLIT} }, { "search_reverse", {search_reverse_text, NOSPLIT} }, { "dehilight", {dehilight, 0} }, -- cgit v1.2.3 From 7d211685f5aa8168eba60f35f06332e5289102c4 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 10 Jun 2009 19:56:21 -0400 Subject: Clean up init_fifo() by removing impossible conditions --- uzbl.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/uzbl.c b/uzbl.c index a94bac5..3449ea7 100644 --- a/uzbl.c +++ b/uzbl.c @@ -1694,18 +1694,6 @@ control_fifo(GIOChannel *gio, GIOCondition condition) { static gchar* init_fifo(gchar *dir) { /* return dir or, on error, free dir and return NULL */ - if (uzbl.comm.fifo_path) { /* get rid of the old fifo if one exists */ - if (unlink(uzbl.comm.fifo_path) == -1) - g_warning ("Fifo: Can't unlink old fifo at %s\n", uzbl.comm.fifo_path); - g_free(uzbl.comm.fifo_path); - uzbl.comm.fifo_path = NULL; - } - - if (*dir == ' ') { /* space unsets the variable */ - g_free (dir); - return NULL; - } - GIOChannel *chan = NULL; GError *error = NULL; gchar *path = build_stream_name(FIFO, dir); -- cgit v1.2.3 From 00baad15a16c5ac1bfefdc9314848b7bc561393c Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 24 Jun 2009 13:42:49 -0400 Subject: removed static keywords on functions for uzbl to be accessible as a library --- uzbl.c | 262 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/uzbl.c b/uzbl.c index 3449ea7..2641b4c 100644 --- a/uzbl.c +++ b/uzbl.c @@ -56,13 +56,13 @@ #include "uzbl.h" #include "config.h" -static Uzbl uzbl; +Uzbl uzbl; typedef void (*Command)(WebKitWebView*, GArray *argv); /* commandline arguments (set initial values for the state variables) */ -static const +const GOptionEntry entries[] = { { "uri", 'u', 0, G_OPTION_ARG_STRING, &uzbl.state.uri, @@ -181,7 +181,7 @@ const struct { /* construct a hash from the var_name_to_ptr array for quick access */ -static void +void make_var_to_name_hash() { uzbl.comm.proto_var = g_hash_table_new(g_str_hash, g_str_equal); while(n2v_p->name) { @@ -191,7 +191,7 @@ make_var_to_name_hash() { } /* --- UTILITY FUNCTIONS --- */ -static gchar * +gchar * expand_vars(char *s) { uzbl_cmdprop *c; char upto = ' '; @@ -245,13 +245,13 @@ itos(int val) { return g_strdup(tmp); } -static gchar* +gchar* strfree(gchar *str) { g_free(str); return NULL; } // for freeing & setting to null in one go -static gchar* +gchar* argv_idx(const GArray *a, const guint idx) { return g_array_index(a, gchar*, idx); } -static char * +char * str_replace (const char* search, const char* replace, const char* string) { gchar **buf; char *ret; @@ -263,7 +263,7 @@ str_replace (const char* search, const char* replace, const char* string) { return ret; } -static GArray* +GArray* read_file_by_line (gchar *path) { GIOChannel *chan = NULL; gchar *readbuf = NULL; @@ -315,7 +315,7 @@ gchar* parseenv (char* string) { return string; } -static sigfunc* +sigfunc* setup_signal(int signr, sigfunc *shandler) { struct sigaction nh, oh; @@ -329,7 +329,7 @@ setup_signal(int signr, sigfunc *shandler) { return NULL; } -static void +void clean_up(void) { if (uzbl.behave.fifo_dir) unlink (uzbl.comm.fifo_path); @@ -347,7 +347,7 @@ clean_up(void) { * be sure to extend this function to use * more timers if needed in other places */ -static void +void set_timeout(int seconds) { struct itimerval t; memset(&t, 0, sizeof t); @@ -359,20 +359,20 @@ set_timeout(int seconds) { /* --- SIGNAL HANDLER --- */ -static void +void catch_sigterm(int s) { (void) s; clean_up(); } -static void +void catch_sigint(int s) { (void) s; clean_up(); exit(EXIT_SUCCESS); } -static void +void catch_alrm(int s) { (void) s; @@ -383,7 +383,7 @@ catch_alrm(int s) { /* --- CALLBACKS --- */ -static gboolean +gboolean new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data) { (void) web_view; (void) frame; @@ -397,7 +397,7 @@ new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequ return (FALSE); } -static gboolean +gboolean mime_policy_cb(WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, gchar *mime_type, WebKitWebPolicyDecision *policy_decision, gpointer user_data) { (void) frame; (void) request; @@ -430,7 +430,7 @@ create_web_view_cb (WebKitWebView *web_view, WebKitWebFrame *frame, gpointer us return (NULL); } -static gboolean +gboolean download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data) { (void) web_view; (void) user_data; @@ -445,7 +445,7 @@ download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data) { } /* scroll a bar in a given direction */ -static void +void scroll (GtkAdjustment* bar, GArray *argv) { gdouble amount; gchar *end; @@ -455,32 +455,32 @@ scroll (GtkAdjustment* bar, GArray *argv) { gtk_adjustment_set_value (bar, gtk_adjustment_get_value(bar)+amount); } -static void +void scroll_begin(WebKitWebView* page, GArray *argv) { (void) page; (void) argv; gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_lower(uzbl.gui.bar_v)); } -static void +void scroll_end(WebKitWebView* page, GArray *argv) { (void) page; (void) argv; gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_upper(uzbl.gui.bar_v) - gtk_adjustment_get_page_size(uzbl.gui.bar_v)); } -static void +void scroll_vert(WebKitWebView* page, GArray *argv) { (void) page; scroll(uzbl.gui.bar_v, argv); } -static void +void scroll_horz(WebKitWebView* page, GArray *argv) { (void) page; scroll(uzbl.gui.bar_h, argv); } -static void +void cmd_set_status() { if (!uzbl.behave.show_status) { gtk_widget_hide(uzbl.gui.mainbar); @@ -490,7 +490,7 @@ cmd_set_status() { update_title(); } -static void +void toggle_status_cb (WebKitWebView* page, GArray *argv) { (void)page; (void)argv; @@ -504,7 +504,7 @@ toggle_status_cb (WebKitWebView* page, GArray *argv) { update_title(); } -static void +void link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data) { (void) page; (void) title; @@ -518,7 +518,7 @@ link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpoin update_title(); } -static void +void title_change_cb (WebKitWebView* web_view, WebKitWebFrame* web_frame, const gchar* title, gpointer data) { (void) web_view; (void) web_frame; @@ -529,7 +529,7 @@ title_change_cb (WebKitWebView* web_view, WebKitWebFrame* web_frame, const gchar update_title(); } -static void +void progress_change_cb (WebKitWebView* page, gint progress, gpointer data) { (void) page; (void) data; @@ -537,7 +537,7 @@ progress_change_cb (WebKitWebView* page, gint progress, gpointer data) { update_title(); } -static void +void load_finish_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { (void) page; (void) frame; @@ -546,7 +546,7 @@ load_finish_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { run_handler(uzbl.behave.load_finish_handler, ""); } -static void +void load_start_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { (void) page; (void) frame; @@ -557,7 +557,7 @@ load_start_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { run_handler(uzbl.behave.load_start_handler, ""); } -static void +void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { (void) page; (void) data; @@ -572,14 +572,14 @@ load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data) { run_handler(uzbl.behave.load_commit_handler, uzbl.state.uri); } -static void +void destroy_cb (GtkWidget* widget, gpointer data) { (void) widget; (void) data; gtk_main_quit (); } -static void +void log_history_cb () { if (uzbl.behave.history_handler) { time_t rawtime; @@ -594,7 +594,7 @@ log_history_cb () { /* VIEW funcs (little webkit wrappers) */ -#define VIEWFUNC(name) static void view_##name(WebKitWebView *page, GArray *argv){(void)argv; webkit_web_view_##name(page);} +#define VIEWFUNC(name) void view_##name(WebKitWebView *page, GArray *argv){(void)argv; webkit_web_view_##name(page);} VIEWFUNC(reload) VIEWFUNC(reload_bypass_cache) VIEWFUNC(stop_loading) @@ -605,7 +605,7 @@ VIEWFUNC(go_forward) #undef VIEWFUNC /* -- command to callback/function map for things we cannot attach to any signals */ -static struct {char *name; Command command[2];} cmdlist[] = +struct {char *name; Command command[2];} cmdlist[] = { /* key function no_split */ { "back", {view_go_back, 0} }, { "forward", {view_go_forward, 0} }, @@ -643,7 +643,7 @@ static struct {char *name; Command command[2];} cmdlist[] = { "print", {print, NOSPLIT} } }; -static void +void commands_hash(void) { unsigned int i; @@ -677,12 +677,12 @@ new_action(const gchar *name, const gchar *param) { return action; } -static bool +bool file_exists (const char * filename) { return (access(filename, F_OK) == 0); } -static void +void set_var(WebKitWebView *page, GArray *argv) { (void) page; gchar **split = g_strsplit(argv_idx(argv, 0), "=", 2); @@ -692,7 +692,7 @@ set_var(WebKitWebView *page, GArray *argv) { g_strfreev(split); } -static void +void print(WebKitWebView *page, GArray *argv) { (void) page; gchar* buf; @@ -702,7 +702,7 @@ print(WebKitWebView *page, GArray *argv) { g_free(buf); } -static void +void act_bind(WebKitWebView *page, GArray *argv) { (void) page; gchar **split = g_strsplit(argv_idx(argv, 0), " = ", 2); @@ -713,12 +713,12 @@ act_bind(WebKitWebView *page, GArray *argv) { } -static void +void act_dump_config() { dump_config(); } -static void +void toggle_insert_mode(WebKitWebView *page, GArray *argv) { (void)page; @@ -735,7 +735,7 @@ toggle_insert_mode(WebKitWebView *page, GArray *argv) { update_title(); } -static void +void load_uri (WebKitWebView *web_view, GArray *argv) { if (argv_idx(argv, 0)) { GString* newuri = g_string_new (argv_idx(argv, 0)); @@ -751,13 +751,13 @@ load_uri (WebKitWebView *web_view, GArray *argv) { } } -static void +void run_js (WebKitWebView * web_view, GArray *argv) { if (argv_idx(argv, 0)) webkit_web_view_execute_script (web_view, argv_idx(argv, 0)); } -static void +void run_external_js (WebKitWebView * web_view, GArray *argv) { if (argv_idx(argv, 0)) { GArray* lines = read_file_by_line (argv_idx (argv, 0)); @@ -790,7 +790,7 @@ run_external_js (WebKitWebView * web_view, GArray *argv) { } } -static void +void search_text (WebKitWebView *page, GArray *argv, const gboolean forward) { if (argv_idx(argv, 0) && (*argv_idx(argv, 0) != '\0')) { if (g_strcmp0 (uzbl.state.searchtx, argv_idx(argv, 0)) != 0) { @@ -808,24 +808,24 @@ search_text (WebKitWebView *page, GArray *argv, const gboolean forward) { } } -static void +void search_forward_text (WebKitWebView *page, GArray *argv) { search_text(page, argv, TRUE); } -static void +void search_reverse_text (WebKitWebView *page, GArray *argv) { search_text(page, argv, FALSE); } -static void +void dehilight (WebKitWebView *page, GArray *argv) { (void) argv; webkit_web_view_set_highlight_text_matches (page, FALSE); } -static void +void new_window_load_uri (const gchar * uri) { GString* to_execute = g_string_new (""); g_string_append_printf (to_execute, "%s --uri '%s'", uzbl.state.executable_path, uri); @@ -844,7 +844,7 @@ new_window_load_uri (const gchar * uri) { g_string_free (to_execute, TRUE); } -static void +void chain (WebKitWebView *page, GArray *argv) { (void)page; gchar *a = NULL; @@ -857,7 +857,7 @@ chain (WebKitWebView *page, GArray *argv) { } } -static void +void keycmd (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; @@ -866,7 +866,7 @@ keycmd (WebKitWebView *page, GArray *argv) { update_title(); } -static void +void keycmd_nl (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; @@ -875,7 +875,7 @@ keycmd_nl (WebKitWebView *page, GArray *argv) { update_title(); } -static void +void keycmd_bs (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; @@ -888,7 +888,7 @@ keycmd_bs (WebKitWebView *page, GArray *argv) { update_title(); } -static void +void close_uzbl (WebKitWebView *page, GArray *argv) { (void)page; (void)argv; @@ -896,7 +896,7 @@ close_uzbl (WebKitWebView *page, GArray *argv) { } /* --Statusbar functions-- */ -static char* +char* build_progressbar_ascii(int percent) { int width=uzbl.gui.sbar.progress_w; int i; @@ -915,7 +915,7 @@ build_progressbar_ascii(int percent) { return g_string_free(bar, FALSE); } -static void +void setup_scanner() { const GScannerConfig scan_config = { ( @@ -970,7 +970,7 @@ setup_scanner() { } } -static gchar * +gchar * expand_template(const char *template, gboolean escape_markup) { if(!template) return NULL; @@ -1122,14 +1122,14 @@ expand_template(const char *template, gboolean escape_markup) { } /* --End Statusbar functions-- */ -static void +void sharg_append(GArray *a, const gchar *str) { const gchar *s = (str ? str : ""); g_array_append_val(a, s); } // make sure that the args string you pass can properly be interpreted (eg properly escaped against whitespace, quotes etc) -static gboolean +gboolean run_command (const gchar *command, const guint npre, const gchar **args, const gboolean sync, char **output_stdout) { //command [args] @@ -1186,7 +1186,7 @@ run_command (const gchar *command, const guint npre, const gchar **args, return result; } -static gchar** +gchar** split_quoted(const gchar* src, const gboolean unquote) { /* split on unquoted space, return array of strings; remove a layer of quotes and backslashes if unquote */ @@ -1223,7 +1223,7 @@ split_quoted(const gchar* src, const gboolean unquote) { return ret; } -static void +void spawn(WebKitWebView *web_view, GArray *argv) { (void)web_view; //TODO: allow more control over argument order so that users can have some arguments before the default ones from run_command, and some after @@ -1231,7 +1231,7 @@ spawn(WebKitWebView *web_view, GArray *argv) { run_command(argv_idx(argv, 0), 0, ((const gchar **) (argv->data + sizeof(gchar*))), FALSE, NULL); } -static void +void spawn_sync(WebKitWebView *web_view, GArray *argv) { (void)web_view; @@ -1240,7 +1240,7 @@ spawn_sync(WebKitWebView *web_view, GArray *argv) { TRUE, &uzbl.comm.sync_stdout); } -static void +void spawn_sh(WebKitWebView *web_view, GArray *argv) { (void)web_view; if (!uzbl.behave.shell_cmd) { @@ -1261,7 +1261,7 @@ spawn_sh(WebKitWebView *web_view, GArray *argv) { g_strfreev (cmd); } -static void +void spawn_sh_sync(WebKitWebView *web_view, GArray *argv) { (void)web_view; if (!uzbl.behave.shell_cmd) { @@ -1283,7 +1283,7 @@ spawn_sh_sync(WebKitWebView *web_view, GArray *argv) { g_strfreev (cmd); } -static void +void parse_command(const char *cmd, const char *param) { Command *c; @@ -1307,7 +1307,7 @@ parse_command(const char *cmd, const char *param) { g_printerr ("command \"%s\" not understood. ignoring.\n", cmd); } -static void +void set_proxy_url() { SoupURI *suri; @@ -1326,7 +1326,7 @@ set_proxy_url() { return; } -static void +void set_icon() { if(file_exists(uzbl.gui.icon)) { gtk_window_set_icon_from_file (GTK_WINDOW (uzbl.gui.main_window), uzbl.gui.icon, NULL); @@ -1335,7 +1335,7 @@ set_icon() { } } -static void +void cmd_load_uri() { GArray *a = g_array_new (TRUE, FALSE, sizeof(gchar*)); g_array_append_val (a, uzbl.state.uri); @@ -1343,26 +1343,26 @@ cmd_load_uri() { g_array_free (a, TRUE); } -static void +void cmd_always_insert_mode() { uzbl.behave.insert_mode = uzbl.behave.always_insert_mode ? TRUE : FALSE; update_title(); } -static void +void cmd_max_conns() { g_object_set(G_OBJECT(uzbl.net.soup_session), SOUP_SESSION_MAX_CONNS, uzbl.net.max_conns, NULL); } -static void +void cmd_max_conns_host() { g_object_set(G_OBJECT(uzbl.net.soup_session), SOUP_SESSION_MAX_CONNS_PER_HOST, uzbl.net.max_conns_host, NULL); } -static void +void cmd_http_debug() { soup_session_remove_feature (uzbl.net.soup_session, SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); @@ -1374,12 +1374,12 @@ cmd_http_debug() { SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); } -static WebKitWebSettings* +WebKitWebSettings* view_settings() { return webkit_web_view_get_settings(uzbl.gui.web_view); } -static void +void cmd_font_size() { WebKitWebSettings *ws = view_settings(); if (uzbl.behave.font_size > 0) { @@ -1395,91 +1395,91 @@ cmd_font_size() { } } -static void +void cmd_zoom_level() { webkit_web_view_set_zoom_level (uzbl.gui.web_view, uzbl.behave.zoom_level); } -static void +void cmd_disable_plugins() { g_object_set (G_OBJECT(view_settings()), "enable-plugins", !uzbl.behave.disable_plugins, NULL); } -static void +void cmd_disable_scripts() { g_object_set (G_OBJECT(view_settings()), "enable-scripts", !uzbl.behave.disable_scripts, NULL); } -static void +void cmd_minimum_font_size() { g_object_set (G_OBJECT(view_settings()), "minimum-font-size", uzbl.behave.minimum_font_size, NULL); } -static void +void cmd_autoload_img() { g_object_set (G_OBJECT(view_settings()), "auto-load-images", uzbl.behave.autoload_img, NULL); } -static void +void cmd_autoshrink_img() { g_object_set (G_OBJECT(view_settings()), "auto-shrink-images", uzbl.behave.autoshrink_img, NULL); } -static void +void cmd_enable_spellcheck() { g_object_set (G_OBJECT(view_settings()), "enable-spell-checking", uzbl.behave.enable_spellcheck, NULL); } -static void +void cmd_enable_private() { g_object_set (G_OBJECT(view_settings()), "enable-private-browsing", uzbl.behave.enable_private, NULL); } -static void +void cmd_print_bg() { g_object_set (G_OBJECT(view_settings()), "print-backgrounds", uzbl.behave.print_bg, NULL); } -static void +void cmd_style_uri() { g_object_set (G_OBJECT(view_settings()), "user-stylesheet-uri", uzbl.behave.style_uri, NULL); } -static void +void cmd_resizable_txt() { g_object_set (G_OBJECT(view_settings()), "resizable-text-areas", uzbl.behave.resizable_txt, NULL); } -static void +void cmd_default_encoding() { g_object_set (G_OBJECT(view_settings()), "default-encoding", uzbl.behave.default_encoding, NULL); } -static void +void cmd_enforce_96dpi() { g_object_set (G_OBJECT(view_settings()), "enforce-96-dpi", uzbl.behave.enforce_96dpi, NULL); } -static void +void cmd_caret_browsing() { g_object_set (G_OBJECT(view_settings()), "enable-caret-browsing", uzbl.behave.caret_browsing, NULL); } -static void +void cmd_cookie_handler() { gchar **split = g_strsplit(uzbl.behave.cookie_handler, " ", 2); /* pitfall: doesn't handle chain actions; must the sync_ action manually */ @@ -1492,17 +1492,17 @@ cmd_cookie_handler() { g_strfreev (split); } -static void +void cmd_fifo_dir() { uzbl.behave.fifo_dir = init_fifo(uzbl.behave.fifo_dir); } -static void +void cmd_socket_dir() { uzbl.behave.socket_dir = init_socket(uzbl.behave.socket_dir); } -static void +void cmd_inject_html() { if(uzbl.behave.inject_html) { webkit_web_view_load_html_string (uzbl.gui.web_view, @@ -1510,7 +1510,7 @@ cmd_inject_html() { } } -static void +void cmd_modkey() { int i; char *buf; @@ -1528,7 +1528,7 @@ cmd_modkey() { } } -static void +void cmd_useragent() { if (*uzbl.net.useragent == ' ') { g_free (uzbl.net.useragent); @@ -1542,7 +1542,7 @@ cmd_useragent() { } } -static void +void move_statusbar() { gtk_widget_ref(uzbl.gui.scrolled_win); gtk_widget_ref(uzbl.gui.mainbar); @@ -1563,7 +1563,7 @@ move_statusbar() { return; } -static gboolean +gboolean set_var_value(gchar *name, gchar *val) { uzbl_cmdprop *c = NULL; char *endp = NULL; @@ -1593,7 +1593,7 @@ set_var_value(gchar *name, gchar *val) { return TRUE; } -static void +void render_html() { Behaviour *b = &uzbl.behave; @@ -1606,7 +1606,7 @@ render_html() { } enum {M_CMD, M_HTML}; -static void +void parse_cmd_line(const char *ctl_line) { Behaviour *b = &uzbl.behave; size_t len=0; @@ -1646,7 +1646,7 @@ parse_cmd_line(const char *ctl_line) { } } -static gchar* +gchar* build_stream_name(int type, const gchar* dir) { char *xwin_str; State *s = &uzbl.state; @@ -1666,7 +1666,7 @@ build_stream_name(int type, const gchar* dir) { return str; } -static gboolean +gboolean control_fifo(GIOChannel *gio, GIOCondition condition) { if (uzbl.state.verbose) printf("triggered\n"); @@ -1692,7 +1692,7 @@ control_fifo(GIOChannel *gio, GIOCondition condition) { return TRUE; } -static gchar* +gchar* init_fifo(gchar *dir) { /* return dir or, on error, free dir and return NULL */ GIOChannel *chan = NULL; GError *error = NULL; @@ -1720,7 +1720,7 @@ init_fifo(gchar *dir) { /* return dir or, on error, free dir and return NULL */ return NULL; } -static gboolean +gboolean control_stdin(GIOChannel *gio, GIOCondition condition) { (void) condition; gchar *ctl_line = NULL; @@ -1736,7 +1736,7 @@ control_stdin(GIOChannel *gio, GIOCondition condition) { return TRUE; } -static void +void create_stdin () { GIOChannel *chan = NULL; GError *error = NULL; @@ -1755,7 +1755,7 @@ create_stdin () { if (error) g_error_free (error); } -static gboolean +gboolean control_socket(GIOChannel *chan) { struct sockaddr_un remote; char buffer[512], *ctl_line; @@ -1809,7 +1809,7 @@ control_socket(GIOChannel *chan) { return TRUE; } -static gchar* +gchar* init_socket(gchar *dir) { /* return dir or, on error, free dir and return NULL */ if (uzbl.comm.socket_path) { /* remove an existing socket should one exist */ if (unlink(uzbl.comm.socket_path) == -1) @@ -1858,7 +1858,7 @@ init_socket(gchar *dir) { /* return dir or, on error, free dir and return NULL * it will probably improve performance if we would "cache" the processed variant, but for now it works well enough... */ // this function may be called very early when the templates are not set (yet), hence the checks -static void +void update_title (void) { Behaviour *b = &uzbl.behave; gchar *parsed; @@ -1889,7 +1889,7 @@ update_title (void) { } } -static gboolean +gboolean key_press_cb (GtkWidget* window, GdkEventKey* event) { //TRUE to stop other handlers from being invoked for the event. FALSE to propagate the event further. @@ -1947,7 +1947,7 @@ key_press_cb (GtkWidget* window, GdkEventKey* event) return TRUE; } -static void +void run_keycmd(const gboolean key_ret) { /* run the keycmd immediately if it isn't incremental and doesn't take args */ Action *act; @@ -1985,7 +1985,7 @@ run_keycmd(const gboolean key_ret) { g_string_free (short_keys_inc, TRUE); } -static void +void exec_paramcmd(const Action *act, const guint i) { GString *parampart = g_string_new (uzbl.state.keycmd->str); GString *actionname = g_string_new (""); @@ -2002,7 +2002,7 @@ exec_paramcmd(const Action *act, const guint i) { } -static GtkWidget* +GtkWidget* create_browser () { GUI *g = &uzbl.gui; @@ -2028,7 +2028,7 @@ create_browser () { return scrolled_window; } -static GtkWidget* +GtkWidget* create_mainbar () { GUI *g = &uzbl.gui; @@ -2058,7 +2058,7 @@ GtkWidget* create_window () { return window; } -static gchar** +gchar** inject_handler_args(const gchar *actname, const gchar *origargs, const gchar *newargs) { /* If actname is one that calls an external command, this function will inject @@ -2100,7 +2100,7 @@ inject_handler_args(const gchar *actname, const gchar *origargs, const gchar *ne return (gchar**)g_array_free(rets, FALSE); } -static void +void run_handler (const gchar *act, const gchar *args) { /* Consider this code a temporary hack to make the handlers usable. In practice, all this splicing, injection, and reconstruction is @@ -2159,7 +2159,7 @@ run_handler (const gchar *act, const gchar *args) { g_strfreev(parts); } -static void +void add_binding (const gchar *key, const gchar *act) { char **parts = g_strsplit(act, " ", 2); Action *action; @@ -2178,7 +2178,7 @@ add_binding (const gchar *key, const gchar *act) { g_strfreev(parts); } -static gchar* +gchar* get_xdg_var (XDG_Var xdg) { const gchar* actual_value = getenv (xdg.environmental); const gchar* home = getenv ("HOME"); @@ -2197,7 +2197,7 @@ get_xdg_var (XDG_Var xdg) { return return_value; } -static gchar* +gchar* find_xdg_file (int xdg_type, char* filename) { /* xdg_type = 0 => config xdg_type = 1 => data @@ -2230,7 +2230,7 @@ find_xdg_file (int xdg_type, char* filename) { return NULL; } } -static void +void settings_init () { State *s = &uzbl.state; Network *n = &uzbl.net; @@ -2262,7 +2262,7 @@ settings_init () { g_signal_connect_after(n->soup_session, "request-started", G_CALLBACK(handle_cookies), NULL); } -static void handle_cookies (SoupSession *session, SoupMessage *msg, gpointer user_data){ +void handle_cookies (SoupSession *session, SoupMessage *msg, gpointer user_data){ (void) session; (void) user_data; if (!uzbl.behave.cookie_handler) @@ -2285,7 +2285,7 @@ static void handle_cookies (SoupSession *session, SoupMessage *msg, gpointer use g_string_free(s, TRUE); } -static void +void save_cookies (SoupMessage *msg, gpointer user_data){ (void) user_data; GSList *ck; @@ -2303,14 +2303,14 @@ save_cookies (SoupMessage *msg, gpointer user_data){ } /* --- WEBINSPECTOR --- */ -static void +void hide_window_cb(GtkWidget *widget, gpointer data) { (void) data; gtk_widget_hide(widget); } -static WebKitWebView* +WebKitWebView* create_inspector_cb (WebKitWebInspector* web_inspector, WebKitWebView* page, gpointer data){ (void) data; (void) page; @@ -2339,7 +2339,7 @@ create_inspector_cb (WebKitWebInspector* web_inspector, WebKitWebView* page, gpo return WEBKIT_WEB_VIEW(new_web_view); } -static gboolean +gboolean inspector_show_window_cb (WebKitWebInspector* inspector){ (void) inspector; gtk_widget_show(uzbl.gui.inspector_window); @@ -2347,37 +2347,37 @@ inspector_show_window_cb (WebKitWebInspector* inspector){ } /* TODO: Add variables and code to make use of these functions */ -static gboolean +gboolean inspector_close_window_cb (WebKitWebInspector* inspector){ (void) inspector; return TRUE; } -static gboolean +gboolean inspector_attach_window_cb (WebKitWebInspector* inspector){ (void) inspector; return FALSE; } -static gboolean +gboolean inspector_detach_window_cb (WebKitWebInspector* inspector){ (void) inspector; return FALSE; } -static gboolean +gboolean inspector_uri_changed_cb (WebKitWebInspector* inspector){ (void) inspector; return FALSE; } -static gboolean +gboolean inspector_inspector_destroyed_cb (WebKitWebInspector* inspector){ (void) inspector; return FALSE; } -static void +void set_up_inspector() { GUI *g = &uzbl.gui; WebKitWebSettings *settings = view_settings(); @@ -2394,7 +2394,7 @@ set_up_inspector() { g_signal_connect (G_OBJECT (g->inspector), "notify::inspected-uri", G_CALLBACK (inspector_uri_changed_cb), NULL); } -static void +void dump_var_hash(gpointer k, gpointer v, gpointer ud) { (void) ud; uzbl_cmdprop *c = v; @@ -2410,7 +2410,7 @@ dump_var_hash(gpointer k, gpointer v, gpointer ud) { printf("set %s = %f\n", (char *)k, *(float *)c->ptr); } -static void +void dump_key_hash(gpointer k, gpointer v, gpointer ud) { (void) ud; Action *a = v; @@ -2419,7 +2419,7 @@ dump_key_hash(gpointer k, gpointer v, gpointer ud) { (char *)a->name, a->param?(char *)a->param:""); } -static void +void dump_config() { g_hash_table_foreach(uzbl.comm.proto_var, dump_var_hash, NULL); g_hash_table_foreach(uzbl.bindings, dump_key_hash, NULL); -- cgit v1.2.3 From 7965bdf8eaa53e0cd7472f042847341e401d0eaa Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 24 Jun 2009 15:09:00 -0400 Subject: take out static keyword in uzbl.h too --- uzbl.h | 202 ++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/uzbl.h b/uzbl.h index 2e7ccf9..78d9fda 100644 --- a/uzbl.h +++ b/uzbl.h @@ -217,76 +217,76 @@ XDG_Var XDG[] = }; /* Functions */ -static void +void setup_scanner(); char * itos(int val); -static char * +char * str_replace (const char* search, const char* replace, const char* string); -static GArray* +GArray* read_file_by_line (gchar *path); static gchar* parseenv (char* string); -static void +void clean_up(void); -static void +void catch_sigterm(int s); -static sigfunc * +sigfunc * setup_signal(int signe, sigfunc *shandler); -static gboolean +gboolean set_var_value(gchar *name, gchar *val); -static void +void print(WebKitWebView *page, GArray *argv); -static gboolean +gboolean new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data); -static gboolean +gboolean mime_policy_cb(WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, gchar *mime_type, WebKitWebPolicyDecision *policy_decision, gpointer user_data); WebKitWebView* create_web_view_cb (WebKitWebView *web_view, WebKitWebFrame *frame, gpointer user_data); -static gboolean +gboolean download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data); -static void +void toggle_status_cb (WebKitWebView* page, GArray *argv); -static void +void link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data); -static void +void title_change_cb (WebKitWebView* web_view, WebKitWebFrame* web_frame, const gchar* title, gpointer data); -static void +void progress_change_cb (WebKitWebView* page, gint progress, gpointer data); -static void +void load_commit_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data); -static void +void load_start_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data); -static void +void load_finish_cb (WebKitWebView* page, WebKitWebFrame* frame, gpointer data); -static void +void destroy_cb (GtkWidget* widget, gpointer data); -static void +void log_history_cb (); -static void +void commands_hash(void); void @@ -295,253 +295,253 @@ free_action(gpointer act); Action* new_action(const gchar *name, const gchar *param); -static bool +bool file_exists (const char * filename); -static void +void toggle_insert_mode(WebKitWebView *page, GArray *argv); -static void +void load_uri (WebKitWebView * web_view, GArray *argv); -static void +void new_window_load_uri (const gchar * uri); -static void +void chain (WebKitWebView *page, GArray *argv); -static void +void keycmd (WebKitWebView *page, GArray *argv); -static void +void keycmd_nl (WebKitWebView *page, GArray *argv); -static void +void keycmd_bs (WebKitWebView *page, GArray *argv); -static void +void close_uzbl (WebKitWebView *page, GArray *argv); -static gboolean +gboolean run_command(const gchar *command, const guint npre, const gchar **args, const gboolean sync, char **output_stdout); -static void +void spawn(WebKitWebView *web_view, GArray *argv); -static void +void spawn_sh(WebKitWebView *web_view, GArray *argv); -static void +void spawn_sync(WebKitWebView *web_view, GArray *argv); -static void +void spawn_sh_sync(WebKitWebView *web_view, GArray *argv); -static void +void parse_command(const char *cmd, const char *param); -static void +void parse_cmd_line(const char *ctl_line); -static gchar* +gchar* build_stream_name(int type, const gchar *dir); -static gboolean +gboolean control_fifo(GIOChannel *gio, GIOCondition condition); -static gchar* +gchar* init_fifo(gchar *dir); -static gboolean +gboolean control_stdin(GIOChannel *gio, GIOCondition condition); -static void +void create_stdin(); -static gchar* +gchar* init_socket(gchar *dir); -static gboolean +gboolean control_socket(GIOChannel *chan); -static void +void update_title (void); -static gboolean +gboolean key_press_cb (GtkWidget* window, GdkEventKey* event); -static void +void run_keycmd(const gboolean key_ret); -static void +void exec_paramcmd(const Action* act, const guint i); -static GtkWidget* +GtkWidget* create_browser (); -static GtkWidget* +GtkWidget* create_mainbar (); static GtkWidget* create_window (); -static void +void run_handler (const gchar *act, const gchar *args); -static void +void add_binding (const gchar *key, const gchar *act); -static gchar* +gchar* get_xdg_var (XDG_Var xdg); -static gchar* +gchar* find_xdg_file (int xdg_type, char* filename); -static void +void settings_init (); -static void +void search_text (WebKitWebView *page, GArray *argv, const gboolean forward); -static void +void search_forward_text (WebKitWebView *page, GArray *argv); -static void +void search_reverse_text (WebKitWebView *page, GArray *argv); -static void +void dehilight (WebKitWebView *page, GArray *argv); -static void +void run_js (WebKitWebView * web_view, GArray *argv); -static void +void run_external_js (WebKitWebView * web_view, GArray *argv); -static void handle_cookies (SoupSession *session, +void handle_cookies (SoupSession *session, SoupMessage *msg, gpointer user_data); -static void +void save_cookies (SoupMessage *msg, gpointer user_data); -static void +void set_var(WebKitWebView *page, GArray *argv); -static void +void act_bind(WebKitWebView *page, GArray *argv); -static void +void act_dump_config(); -static void +void render_html(); -static void +void set_timeout(int seconds); -static void +void dump_var_hash(gpointer k, gpointer v, gpointer ud); -static void +void dump_key_hash(gpointer k, gpointer v, gpointer ud); -static void +void dump_config(); /* Command callbacks */ -static void +void cmd_load_uri(); -static void +void cmd_set_status(); -static void +void set_proxy_url(); -static void +void set_icon(); -static void +void cmd_cookie_handler(); -static void +void move_statusbar(); -static void +void cmd_always_insert_mode(); -static void +void cmd_http_debug(); -static void +void cmd_max_conns(); -static void +void cmd_max_conns_host(); /* exported WebKitWebSettings properties */ -static void +void cmd_font_size(); -static void +void cmd_zoom_level(); -static void +void cmd_disable_plugins(); -static void +void cmd_disable_scripts(); -static void +void cmd_minimum_font_size(); -static void +void cmd_fifo_dir(); -static void +void cmd_socket_dir(); -static void +void cmd_modkey(); -static void +void cmd_useragent() ; -static void +void cmd_autoload_img(); -static void +void cmd_autoshrink_img(); -static void +void cmd_enable_spellcheck(); -static void +void cmd_enable_private(); -static void +void cmd_print_bg(); -static void +void cmd_style_uri(); -static void +void cmd_resizable_txt(); -static void +void cmd_default_encoding(); -static void +void cmd_enforce_96dpi(); -static void +void cmd_inject_html(); -static void +void cmd_caret_browsing(); /* vi: set et ts=4: */ -- cgit v1.2.3 From f6348eb684e057960e4d5689766204893bdbab1e Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 24 Jun 2009 15:10:34 -0400 Subject: leftover static keywords in uzbl.h because they were on their one line --- uzbl.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/uzbl.h b/uzbl.h index 78d9fda..d6fb1f5 100644 --- a/uzbl.h +++ b/uzbl.h @@ -229,8 +229,8 @@ str_replace (const char* search, const char* replace, const char* string); GArray* read_file_by_line (gchar *path); -static -gchar* parseenv (char* string); +gchar* +parseenv (char* string); void clean_up(void); @@ -383,8 +383,8 @@ create_browser (); GtkWidget* create_mainbar (); -static -GtkWidget* create_window (); +GtkWidget* +create_window (); void run_handler (const gchar *act, const gchar *args); -- cgit v1.2.3 From 00fbb3b2a6301e9694386480e44eaad4f59ee83c Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 24 Jun 2009 16:33:30 -0400 Subject: Preliminary uzbl testing framework - props to bct for the help --- .gitignore | 1 + Makefile | 45 +++++++++++++++++++++++++++++++++++++++++++-- tests/Makefile | 14 ++++++++++++++ tests/test-1.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ uzbl.c | 10 ++++++---- uzbl.h | 3 +++ 6 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 tests/Makefile create mode 100644 tests/test-1.c diff --git a/.gitignore b/.gitignore index abbd2d7..2efc5e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ uzbl uzblctrl +uzbl.o *~ tags examples/data diff --git a/Makefile b/Makefile index 9254e54..a20e532 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,47 @@ all: uzbl uzblctrl PREFIX?=$(DESTDIR)/usr -test: uzbl - ./uzbl --uri http://www.uzbl.org --verbose +# When compiling unit tests, compile uzbl as a library first +test: uzbl.o + $(CC) -DUZBL_LIBRARY -shared -Wl uzbl.o -o ./tests/libuzbl.so + cd ./tests/; $(MAKE) + +# test-report: run tests in subdirs and generate report +# perf-report: run tests in subdirs with -m perf and generate report +# full-report: like test-report: with -m perf and -m slow +#test-report perf-report full-report: ${TEST_PROGS} +# @test -z "${TEST_PROGS}" || { \ +# case $@ in \ +# test-report) test_options="-k";; \ +# perf-report) test_options="-k -m=perf";; \ +# full-report) test_options="-k -m=perf -m=slow";; \ +# esac ; \ +# if test -z "$$GTESTER_LOGDIR" ; then \ +# ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ +# elif test -n "${TEST_PROGS}" ; then \ +# ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ +# fi ; \ +# } +# @ ignore_logdir=true ; \ +# if test -z "$$GTESTER_LOGDIR" ; then \ +# GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ +# ignore_logdir=false ; \ +# fi ; \ +# for subdir in $(SUBDIRS) . ; do \ +# test "$$subdir" = "." -o "$$subdir" = "po" || \ +# ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ +# done ; \ +# $$ignore_logdir || { \ +# echo '' > $@.xml ; \ +# echo '' >> $@.xml ; \ +# for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ +# sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ +# done ; \ +# echo >> $@.xml ; \ +# echo '' >> $@.xml ; \ +# rm -rf "$$GTESTER_LOGDIR"/ ; \ +# ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ +# } test-dev: uzbl XDG_DATA_HOME=./examples/data XDG_CONFIG_HOME=./examples/config ./uzbl --uri http://www.uzbl.org --verbose @@ -17,6 +56,8 @@ test-share: uzbl clean: rm -f uzbl rm -f uzblctrl + rm -f uzbl.o + cd ./tests/; $(MAKE) clean install: install -d $(PREFIX)/bin diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 0000000..43a878b --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,14 @@ +CFLAGS:=-std=c99 -I$(shell pwd)/../ -L$(shell pwd) -luzbl $(shell pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4) -ggdb -Wall -W -DARCH="\"$(shell uname -m)\"" -DG_ERRORCHECK_MUTEXES -DCOMMIT="\"$(shell git log | head -n1 | sed "s/.* //")\"" $(CPPFLAGS) +LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4) -pthread $(LDFLAGS) + +GTESTER:=gtester +GTESTER_REPORT:=gtester-report + +TEST_PROGS:=test-1 + +all: $(TEST_PROGS) + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:." $(GTESTER) --verbose $(TEST_PROGS) + +clean: + rm -f $(TEST_PROGS) + rm -f libuzbl.so diff --git a/tests/test-1.c b/tests/test-1.c new file mode 100644 index 0000000..0fb86b6 --- /dev/null +++ b/tests/test-1.c @@ -0,0 +1,47 @@ +/* -*- c-basic-offset: 4; -*- */ +#define _POSIX_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +Uzbl uzbl; + +static void +test_URI (void) { + setup_scanner(); + uzbl.state.uri = g_strdup("http://www.uzbl.org"); + g_assert_cmpstr(expand_template("URI", FALSE), ==, uzbl.state.uri); + g_free(uzbl.state.uri); +} + +int +main (int argc, char *argv[]) { + g_type_init(); + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/test-1/URI", test_URI); + + return g_test_run(); +} + +/* vi: set et ts=4: */ diff --git a/uzbl.c b/uzbl.c index 2641b4c..aba4f26 100644 --- a/uzbl.c +++ b/uzbl.c @@ -289,8 +289,8 @@ read_file_by_line (gchar *path) { return lines; } -static -gchar* parseenv (char* string) { +gchar* +parseenv (char* string) { extern char** environ; gchar* tmpstr = NULL; int i = 0; @@ -2047,8 +2047,8 @@ create_mainbar () { return g->mainbar; } -static -GtkWidget* create_window () { +GtkWidget* +create_window () { GtkWidget* window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 800, 600); gtk_widget_set_name (window, "Uzbl browser"); @@ -2425,6 +2425,7 @@ dump_config() { g_hash_table_foreach(uzbl.bindings, dump_key_hash, NULL); } +#ifndef UZBL_LIBRARY /** -- MAIN -- **/ int main (int argc, char* argv[]) { @@ -2535,5 +2536,6 @@ main (int argc, char* argv[]) { return EXIT_SUCCESS; } +#endif /* vi: set et ts=4: */ diff --git a/uzbl.h b/uzbl.h index d6fb1f5..9c5db85 100644 --- a/uzbl.h +++ b/uzbl.h @@ -217,6 +217,9 @@ XDG_Var XDG[] = }; /* Functions */ +gchar * +expand_template(const char *template, gboolean escape_markup); + void setup_scanner(); -- cgit v1.2.3 From 2f4b201c35a858b800d15fc3b10c51beaa885fc8 Mon Sep 17 00:00:00 2001 From: uranther Date: Thu, 25 Jun 2009 11:31:46 -0400 Subject: max zoom bug is no longer a known bug. although I'm not sure of any current known bugs --- README | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README b/README index 4740b21..5c9dcd4 100644 --- a/README +++ b/README @@ -230,10 +230,4 @@ Custom, userdefined scripts (`spawn foo bar`) get first the arguments as specifi ### BUGS -known bugs: - -* Segfaults when using zoom commands (happens when max zoom already reached?). - Please report new issues @ uzbl.org/bugs - - -- cgit v1.2.3 From 6c336537c432475e2bc7bb84e0d2eeea18491a51 Mon Sep 17 00:00:00 2001 From: uranther Date: Fri, 26 Jun 2009 11:01:12 -0400 Subject: Plugged some memory leaks by not unnecessarily calling g_strdup (g_string_append takes a const gchar* as a parameter). Saved: 17 bytes --- uzbl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/uzbl.c b/uzbl.c index aba4f26..e1b96ff 100644 --- a/uzbl.c +++ b/uzbl.c @@ -1016,7 +1016,7 @@ expand_template(const char *template, gboolean escape_markup) { } else g_string_append(ret, uzbl.gui.main_title ? - uzbl.gui.main_title : g_strdup("")); + uzbl.gui.main_title : ""); break; case SYM_SELECTED_URI: if(escape_markup) { @@ -1027,7 +1027,7 @@ expand_template(const char *template, gboolean escape_markup) { } else g_string_append(ret, uzbl.state.selected_url ? - uzbl.state.selected_url : g_strdup("")); + uzbl.state.selected_url : ""); break; case SYM_NAME: buf = itos(uzbl.xwin); @@ -1044,7 +1044,7 @@ expand_template(const char *template, gboolean escape_markup) { } else g_string_append(ret, uzbl.state.keycmd->str ? - uzbl.state.keycmd->str : g_strdup("")); + uzbl.state.keycmd->str : ""); break; case SYM_MODE: g_string_append(ret, -- cgit v1.2.3 From cdbe169f1eff7fa3e3659d6c20ad133a6412312d Mon Sep 17 00:00:00 2001 From: uranther Date: Fri, 26 Jun 2009 16:09:35 -0400 Subject: Modified log_history_cb() to be more portable and less wasteful. --- uzbl.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/uzbl.c b/uzbl.c index e1b96ff..5c0a530 100644 --- a/uzbl.c +++ b/uzbl.c @@ -582,12 +582,14 @@ destroy_cb (GtkWidget* widget, gpointer data) { void log_history_cb () { if (uzbl.behave.history_handler) { - time_t rawtime; - struct tm * timeinfo; - char date [80]; - time ( &rawtime ); - timeinfo = localtime ( &rawtime ); - strftime (date, 80, "\"%Y-%m-%d %H:%M:%S\"", timeinfo); + GTimeVal the_time; + gchar *date; + + g_get_current_time(&the_time); + /* no need to wrap this string with quotes since it contains no spaces. + format is like: 2009-06-26T20:02:05.262864Z */ + date = g_time_val_to_iso8601(&the_time); + run_handler(uzbl.behave.history_handler, date); } } -- cgit v1.2.3 From 44b81666875963b8f9aa184a03e54fbbe53197f4 Mon Sep 17 00:00:00 2001 From: uranther Date: Fri, 26 Jun 2009 16:10:10 -0400 Subject: Typo fix and warning of memory leaks --- uzbl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/uzbl.c b/uzbl.c index 5c0a530..5e76393 100644 --- a/uzbl.c +++ b/uzbl.c @@ -2068,7 +2068,7 @@ inject_handler_args(const gchar *actname, const gchar *origargs, const gchar *ne come become after the body of the script (in sh) or after the name of the command to execute (in spawn). i.e. sh becomes sh and - span becomes spawn . + spawn becomes spawn . The return value consist of two strings: the action (sh, ...) and its args. @@ -2076,6 +2076,7 @@ inject_handler_args(const gchar *actname, const gchar *origargs, const gchar *ne gets duplicated. */ GArray *rets = g_array_new(TRUE, FALSE, sizeof(gchar*)); + /* Arrr! Here be memory leaks */ gchar *actdup = g_strdup(actname); g_array_append_val(rets, actdup); -- cgit v1.2.3 From 6bb3be0480e029879b0f430416140ccfb446e4a1 Mon Sep 17 00:00:00 2001 From: uranther Date: Fri, 26 Jun 2009 21:26:11 -0400 Subject: Now I'm fixing my own memory leaks... --- uzbl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/uzbl.c b/uzbl.c index 5e76393..af0fbeb 100644 --- a/uzbl.c +++ b/uzbl.c @@ -589,8 +589,8 @@ log_history_cb () { /* no need to wrap this string with quotes since it contains no spaces. format is like: 2009-06-26T20:02:05.262864Z */ date = g_time_val_to_iso8601(&the_time); - run_handler(uzbl.behave.history_handler, date); + g_free(date); } } -- cgit v1.2.3 From edad4126cd969b2b785a5bd27efbd6fa1593873b Mon Sep 17 00:00:00 2001 From: uranther Date: Mon, 29 Jun 2009 12:10:00 -0400 Subject: removing more static keywords --- uzbl.c | 74 +++++++++++++++++++++++++++++++++--------------------------------- uzbl.h | 58 +++++++++++++++++++++++++-------------------------- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/uzbl.c b/uzbl.c index d986a42..27611b4 100644 --- a/uzbl.c +++ b/uzbl.c @@ -192,7 +192,7 @@ make_var_to_name_hash() { /* --- UTILITY FUNCTIONS --- */ enum {EXP_ERR, EXP_SIMPLE_VAR, EXP_BRACED_VAR, EXP_EXPR, EXP_JS}; -static guint +guint get_exp_type(gchar *s) { /* variables */ if(*(s+1) == '(') @@ -211,7 +211,7 @@ return EXP_ERR; * recurse == 1: don't expand '@(command)@' * recurse == 2: don't expand '@@' */ -static gchar * +gchar * expand(char *s, guint recurse) { uzbl_cmdprop *c; guint etype; @@ -569,20 +569,20 @@ scroll_begin(WebKitWebView* page, GArray *argv, GString *result) { gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_lower(uzbl.gui.bar_v)); } -static void +void scroll_end(WebKitWebView* page, GArray *argv, GString *result) { (void) page; (void) argv; (void) result; gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_upper(uzbl.gui.bar_v) - gtk_adjustment_get_page_size(uzbl.gui.bar_v)); } -static void +void scroll_vert(WebKitWebView* page, GArray *argv, GString *result) { (void) page; (void) result; scroll(uzbl.gui.bar_v, argv); } -static void +void scroll_horz(WebKitWebView* page, GArray *argv, GString *result) { (void) page; (void) result; scroll(uzbl.gui.bar_h, argv); @@ -598,7 +598,7 @@ cmd_set_status() { update_title(); } -static void +void toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result) { (void)page; (void)argv; @@ -714,7 +714,7 @@ log_history_cb () { /* VIEW funcs (little webkit wrappers) */ -#define VIEWFUNC(name) static void view_##name(WebKitWebView *page, GArray *argv, GString *result){(void)argv; (void)result; webkit_web_view_##name(page);} +#define VIEWFUNC(name) void view_##name(WebKitWebView *page, GArray *argv, GString *result){(void)argv; (void)result; webkit_web_view_##name(page);} VIEWFUNC(reload) VIEWFUNC(reload_bypass_cache) VIEWFUNC(stop_loading) @@ -725,7 +725,7 @@ VIEWFUNC(go_forward) #undef VIEWFUNC /* -- command to callback/function map for things we cannot attach to any signals */ -static struct {char *key; CommandInfo value;} cmdlist[] = +struct {char *key; CommandInfo value;} cmdlist[] = { /* key function no_split */ { "back", {view_go_back, 0} }, { "forward", {view_go_forward, 0} }, @@ -803,7 +803,7 @@ file_exists (const char * filename) { return (access(filename, F_OK) == 0); } -static void +void set_var(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; gchar **split = g_strsplit(argv_idx(argv, 0), "=", 2); @@ -813,7 +813,7 @@ set_var(WebKitWebView *page, GArray *argv, GString *result) { g_strfreev(split); } -static void +void print(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; gchar* buf; @@ -823,7 +823,7 @@ print(WebKitWebView *page, GArray *argv, GString *result) { g_free(buf); } -static void +void act_bind(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; gchar **split = g_strsplit(argv_idx(argv, 0), " = ", 2); @@ -839,7 +839,7 @@ act_dump_config() { dump_config(); } -static void +void toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; @@ -856,7 +856,7 @@ toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result) { update_title(); } -static void +void load_uri (WebKitWebView *web_view, GArray *argv, GString *result) { (void) result; @@ -876,7 +876,7 @@ load_uri (WebKitWebView *web_view, GArray *argv, GString *result) { /* Javascript*/ -static JSValueRef +JSValueRef js_run_command (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) { @@ -904,11 +904,11 @@ js_run_command (JSContextRef ctx, JSObjectRef function, JSObjectRef thisObject, return JSValueMakeString(ctx, js_result_string); } -static JSStaticFunction js_static_functions[] = { +JSStaticFunction js_static_functions[] = { {"run", js_run_command, kJSPropertyAttributeNone}, }; -static void +void js_init() { /* This function creates the class and its definition, only once */ if (!uzbl.js.initialized) { @@ -921,7 +921,7 @@ js_init() { } -static void +void eval_js(WebKitWebView * web_view, gchar *script, GString *result) { WebKitWebFrame *frame; JSGlobalContextRef context; @@ -968,13 +968,13 @@ eval_js(WebKitWebView * web_view, gchar *script, GString *result) { JSStringRelease(js_script); } -static void +void run_js (WebKitWebView * web_view, GArray *argv, GString *result) { if (argv_idx(argv, 0)) eval_js(web_view, argv_idx(argv, 0), result); } -static void +void run_external_js (WebKitWebView * web_view, GArray *argv, GString *result) { (void) result; if (argv_idx(argv, 0)) { @@ -1026,19 +1026,19 @@ search_text (WebKitWebView *page, GArray *argv, const gboolean forward) { } } -static void +void search_forward_text (WebKitWebView *page, GArray *argv, GString *result) { (void) result; search_text(page, argv, TRUE); } -static void +void search_reverse_text (WebKitWebView *page, GArray *argv, GString *result) { (void) result; search_text(page, argv, FALSE); } -static void +void dehilight (WebKitWebView *page, GArray *argv, GString *result) { (void) argv; (void) result; webkit_web_view_set_highlight_text_matches (page, FALSE); @@ -1064,7 +1064,7 @@ new_window_load_uri (const gchar * uri) { g_string_free (to_execute, TRUE); } -static void +void chain (WebKitWebView *page, GArray *argv, GString *result) { (void) page; (void) result; gchar *a = NULL; @@ -1077,7 +1077,7 @@ chain (WebKitWebView *page, GArray *argv, GString *result) { } } -static void +void keycmd (WebKitWebView *page, GArray *argv, GString *result) { (void)page; (void)argv; @@ -1087,7 +1087,7 @@ keycmd (WebKitWebView *page, GArray *argv, GString *result) { update_title(); } -static void +void keycmd_nl (WebKitWebView *page, GArray *argv, GString *result) { (void)page; (void)argv; @@ -1097,7 +1097,7 @@ keycmd_nl (WebKitWebView *page, GArray *argv, GString *result) { update_title(); } -static void +void keycmd_bs (WebKitWebView *page, GArray *argv, GString *result) { gchar *prev; (void)page; @@ -1109,7 +1109,7 @@ keycmd_bs (WebKitWebView *page, GArray *argv, GString *result) { update_title(); } -static void +void close_uzbl (WebKitWebView *page, GArray *argv, GString *result) { (void)page; (void)argv; @@ -1445,7 +1445,7 @@ split_quoted(const gchar* src, const gboolean unquote) { return ret; } -static void +void spawn(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; //TODO: allow more control over argument order so that users can have some arguments before the default ones from run_command, and some after @@ -1453,7 +1453,7 @@ spawn(WebKitWebView *web_view, GArray *argv, GString *result) { run_command(argv_idx(argv, 0), 0, ((const gchar **) (argv->data + sizeof(gchar*))), FALSE, NULL); } -static void +void spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; @@ -1462,7 +1462,7 @@ spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result) { TRUE, &uzbl.comm.sync_stdout); } -static void +void spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; if (!uzbl.behave.shell_cmd) { @@ -1483,7 +1483,7 @@ spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result) { g_strfreev (cmd); } -static void +void spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; if (!uzbl.behave.shell_cmd) { @@ -1505,7 +1505,7 @@ spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result) { g_strfreev (cmd); } -static void +void parse_command(const char *cmd, const char *param, GString *result) { CommandInfo *c; @@ -1839,7 +1839,7 @@ render_html() { } enum {M_CMD, M_HTML}; -static void +void parse_cmd_line(const char *ctl_line, GString *result) { Behaviour *b = &uzbl.behave; size_t len=0; @@ -2006,7 +2006,7 @@ control_socket(GIOChannel *chan) { return TRUE; } -static gboolean +gboolean control_client_socket(GIOChannel *clientchan) { char *ctl_line; GString *result = g_string_new(""); @@ -2294,8 +2294,8 @@ create_window () { return window; } -static -GtkPlug* create_plug () { +GtkPlug* +create_plug () { GtkPlug* plug = GTK_PLUG (gtk_plug_new (uzbl.state.socket_id)); g_signal_connect (G_OBJECT (plug), "destroy", G_CALLBACK (destroy_cb), NULL); g_signal_connect (G_OBJECT (plug), "key-press-event", G_CALLBACK (key_press_cb), NULL); @@ -2304,7 +2304,7 @@ GtkPlug* create_plug () { } -static gchar** +gchar** inject_handler_args(const gchar *actname, const gchar *origargs, const gchar *newargs) { /* If actname is one that calls an external command, this function will inject diff --git a/uzbl.h b/uzbl.h index 5ae8ca5..2f58786 100644 --- a/uzbl.h +++ b/uzbl.h @@ -254,7 +254,7 @@ setup_signal(int signe, sigfunc *shandler); gboolean set_var_value(gchar *name, gchar *val); -static void +void print(WebKitWebView *page, GArray *argv, GString *result); gboolean @@ -269,10 +269,10 @@ create_web_view_cb (WebKitWebView *web_view, WebKitWebFrame *frame, gpointer us gboolean download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data); -static void +void toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result); -static void +void toggle_status_cb (WebKitWebView* page, GArray *argv, GString *result); void @@ -311,50 +311,50 @@ new_action(const gchar *name, const gchar *param); bool file_exists (const char * filename); -static void +void toggle_insert_mode(WebKitWebView *page, GArray *argv, GString *result); -static void +void load_uri (WebKitWebView * web_view, GArray *argv, GString *result); void new_window_load_uri (const gchar * uri); -static void +void chain (WebKitWebView *page, GArray *argv, GString *result); -static void +void keycmd (WebKitWebView *page, GArray *argv, GString *result); -static void +void keycmd_nl (WebKitWebView *page, GArray *argv, GString *result); -static void +void keycmd_bs (WebKitWebView *page, GArray *argv, GString *result); -static void +void close_uzbl (WebKitWebView *page, GArray *argv, GString *result); gboolean run_command(const gchar *command, const guint npre, const gchar **args, const gboolean sync, char **output_stdout); -static void +void spawn(WebKitWebView *web_view, GArray *argv, GString *result); -static void +void spawn_sh(WebKitWebView *web_view, GArray *argv, GString *result); -static void +void spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result); -static void +void spawn_sh_sync(WebKitWebView *web_view, GArray *argv, GString *result); -static void +void parse_command(const char *cmd, const char *param, GString *result); -static void +void parse_cmd_line(const char *ctl_line, GString *result); gchar* @@ -378,10 +378,10 @@ init_socket(gchar *dir); gboolean control_socket(GIOChannel *chan); -static gboolean +gboolean control_client_socket(GIOChannel *chan); -static void +void update_title (void); gboolean @@ -402,10 +402,10 @@ create_mainbar (); GtkWidget* create_window (); -static -GtkPlug* create_plug (); +GtkPlug* +create_plug (); -static void +void run_handler (const gchar *act, const gchar *args); void @@ -423,22 +423,22 @@ settings_init (); void search_text (WebKitWebView *page, GArray *argv, const gboolean forward); -static void +void search_forward_text (WebKitWebView *page, GArray *argv, GString *result); -static void +void search_reverse_text (WebKitWebView *page, GArray *argv, GString *result); -static void +void dehilight (WebKitWebView *page, GArray *argv, GString *result); -static void +void run_js (WebKitWebView * web_view, GArray *argv, GString *result); -static void +void run_external_js (WebKitWebView * web_view, GArray *argv, GString *result); -static void +void eval_js(WebKitWebView * web_view, gchar *script, GString *result); void handle_cookies (SoupSession *session, @@ -448,10 +448,10 @@ void save_cookies (SoupMessage *msg, gpointer user_data); -static void +void set_var(WebKitWebView *page, GArray *argv, GString *result); -static void +void act_bind(WebKitWebView *page, GArray *argv, GString *result); void -- cgit v1.2.3 From 9f96d51d3f1220fb3a87b65d7fda4bffa126399e Mon Sep 17 00:00:00 2001 From: uranther Date: Mon, 29 Jun 2009 12:12:40 -0400 Subject: fixed test-1 headers --- tests/test-1.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test-1.c b/tests/test-1.c index 0fb86b6..3a94c9b 100644 --- a/tests/test-1.c +++ b/tests/test-1.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include -- cgit v1.2.3 From 1e36bb39b48232b614194875ee410d0d2fd04d1d Mon Sep 17 00:00:00 2001 From: uranther Date: Mon, 29 Jun 2009 14:14:44 -0400 Subject: Fixed a segfault when trying to enter : as a command --- uzbl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/uzbl.c b/uzbl.c index 27611b4..404355d 100644 --- a/uzbl.c +++ b/uzbl.c @@ -1072,7 +1072,8 @@ chain (WebKitWebView *page, GArray *argv, GString *result) { guint i = 0; while ((a = argv_idx(argv, i++))) { parts = g_strsplit (a, " ", 2); - parse_command(parts[0], parts[1], result); + if (parts[0]) + parse_command(parts[0], parts[1], result); g_strfreev (parts); } } -- cgit v1.2.3 From 1895aae96446ad86fd387b72cacc6e07b9310ad3 Mon Sep 17 00:00:00 2001 From: uranther Date: Sat, 4 Jul 2009 19:14:22 -0400 Subject: Added item to TODO: spacebar binding --- docs/TODO | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/TODO b/docs/TODO index 00166eb..343a344 100644 --- a/docs/TODO +++ b/docs/TODO @@ -38,6 +38,7 @@ More or less in order of importance/urgency * proxy_url is not a good var name. it's not a url. * regex style page searching? so you can do 'or' and 'and' things. flags like case sensitive etc. * check for real command name, not just the first letter. +* Allow the spacebar to be binded to a command * let users attach handlers to the most common events/signals in uzbl. great use case: automatically calling formfiller for certain sites * document: -- cgit v1.2.3 From 585728e9b0f9a284859cdce2d47d38d24c64ec2d Mon Sep 17 00:00:00 2001 From: uranther Date: Tue, 14 Jul 2009 16:28:29 -0400 Subject: Removed commented section of Makefile that would produce XML/HTML reports of unit tests --- Makefile | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/Makefile b/Makefile index 960ea20..b2f4431 100644 --- a/Makefile +++ b/Makefile @@ -9,43 +9,6 @@ test: uzbl.o $(CC) -DUZBL_LIBRARY -shared -Wl uzbl.o -o ./tests/libuzbl.so cd ./tests/; $(MAKE) -# test-report: run tests in subdirs and generate report -# perf-report: run tests in subdirs with -m perf and generate report -# full-report: like test-report: with -m perf and -m slow -#test-report perf-report full-report: ${TEST_PROGS} -# @test -z "${TEST_PROGS}" || { \ -# case $@ in \ -# test-report) test_options="-k";; \ -# perf-report) test_options="-k -m=perf";; \ -# full-report) test_options="-k -m=perf -m=slow";; \ -# esac ; \ -# if test -z "$$GTESTER_LOGDIR" ; then \ -# ${GTESTER} --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \ -# elif test -n "${TEST_PROGS}" ; then \ -# ${GTESTER} --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \ -# fi ; \ -# } -# @ ignore_logdir=true ; \ -# if test -z "$$GTESTER_LOGDIR" ; then \ -# GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \ -# ignore_logdir=false ; \ -# fi ; \ -# for subdir in $(SUBDIRS) . ; do \ -# test "$$subdir" = "." -o "$$subdir" = "po" || \ -# ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \ -# done ; \ -# $$ignore_logdir || { \ -# echo '' > $@.xml ; \ -# echo '' >> $@.xml ; \ -# for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \ -# sed '1,1s/^?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \ -# done ; \ -# echo >> $@.xml ; \ -# echo '' >> $@.xml ; \ -# rm -rf "$$GTESTER_LOGDIR"/ ; \ -# ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \ -# } - test-dev: uzbl XDG_DATA_HOME=./examples/data XDG_CONFIG_HOME=./examples/config ./uzbl --uri http://www.uzbl.org --verbose -- cgit v1.2.3 From a9a237152d79931544e14df73acacdeec006cb01 Mon Sep 17 00:00:00 2001 From: uranther Date: Tue, 14 Jul 2009 16:48:29 -0400 Subject: Removed 'quit' command to exit from uzbl --- uzbl.c | 1 - 1 file changed, 1 deletion(-) diff --git a/uzbl.c b/uzbl.c index 77a403c..8879a1f 100644 --- a/uzbl.c +++ b/uzbl.c @@ -751,7 +751,6 @@ struct {char *key; CommandInfo value;} cmdlist[] = { "sh", {spawn_sh, 0} }, { "sync_sh", {spawn_sh_sync, 0} }, // needed for cookie handler { "exit", {close_uzbl, 0} }, - { "quit", {close_uzbl, 0} }, { "search", {search_forward_text, TRUE} }, { "search_reverse", {search_reverse_text, TRUE} }, { "dehilight", {dehilight, 0} }, -- cgit v1.2.3 From 9b4b0e2129e38cc985b3cec6143f4a8265d60e71 Mon Sep 17 00:00:00 2001 From: uranther Date: Tue, 14 Jul 2009 17:03:48 -0400 Subject: Updated CFLAGS and LDFLAGS in tests/Makefile. TODO: Find a way for those variables to be inherited or passed to the tests/Makefile. --- tests/Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/Makefile b/tests/Makefile index 43a878b..869490d 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,5 +1,8 @@ -CFLAGS:=-std=c99 -I$(shell pwd)/../ -L$(shell pwd) -luzbl $(shell pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4) -ggdb -Wall -W -DARCH="\"$(shell uname -m)\"" -DG_ERRORCHECK_MUTEXES -DCOMMIT="\"$(shell git log | head -n1 | sed "s/.* //")\"" $(CPPFLAGS) -LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4) -pthread $(LDFLAGS) +CFLAGS:=-std=c99 -I$(shell pwd)/../ -L$(shell pwd) -luzbl $(shell pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0) -ggdb -Wall -W -DARCH="\"$(shell uname -m)\"" -lgthread-2.0 -DG_ERRORCHECK_MUTEXES -DCOMMIT="\"$(shell git log | head -n1 | sed "s/.* //")\"" $(CPPFLAGS) +CFLAGS!=echo -std=c99 `pkg-config --cflags gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0` -ggdb -Wall -W -DARCH='"\""'`uname -m`'"\""' -lgthread-2.0 -DG_ERRORCHECK_MUTEXES -DCOMMIT='"\""'`git log | head -n1 | sed "s/.* //"`'"\""' $(CPPFLAGS) + +LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0) -pthread $(LDFLAGS) +LDFLAGS!=echo `pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0` -pthread $(LDFLAGS) GTESTER:=gtester GTESTER_REPORT:=gtester-report -- cgit v1.2.3 From 165dc493fdd02fee35ca266264367f2cd1db9599 Mon Sep 17 00:00:00 2001 From: uranther Date: Tue, 14 Jul 2009 17:05:46 -0400 Subject: Ran :%s/ $//g to remove trailing spaces in uzbl.h and uzbl.c --- uzbl.c | 32 ++++++++++++++++---------------- uzbl.h | 12 ++++++------ 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/uzbl.c b/uzbl.c index 8879a1f..ba12e01 100644 --- a/uzbl.c +++ b/uzbl.c @@ -60,7 +60,7 @@ Uzbl uzbl; /* commandline arguments (set initial values for the state variables) */ -const +const GOptionEntry entries[] = { { "uri", 'u', 0, G_OPTION_ARG_STRING, &uzbl.state.uri, @@ -388,7 +388,7 @@ read_file_by_line (gchar *path) { return lines; } -gchar* +gchar* parseenv (char* string) { extern char** environ; gchar* tmpstr = NULL; @@ -606,7 +606,7 @@ toggle_zoom_type (WebKitWebView* page, GArray *argv, GString *result) { (void)page; (void)argv; (void)result; - + webkit_web_view_set_full_content_zoom (page, !webkit_web_view_get_full_content_zoom (page)); } @@ -705,7 +705,7 @@ log_history_cb () { if (uzbl.behave.history_handler) { GTimeVal the_time; gchar *date; - + g_get_current_time(&the_time); /* no need to wrap this string with quotes since it contains no spaces. format is like: 2009-06-26T20:02:05.262864Z */ @@ -925,7 +925,7 @@ js_init() { } -void +void eval_js(WebKitWebView * web_view, gchar *script, GString *result) { WebKitWebFrame *frame; JSGlobalContextRef context; @@ -1344,9 +1344,9 @@ expand_template(const char *template, gboolean escape_markup) { g_string_append_c(ret, (gchar)g_scanner_cur_value(uzbl.scan).v_char); } else if(token == G_TOKEN_ERROR) { - g_scanner_error(uzbl.scan, "Token error in template ('%s') at line %d, column %d.", - template, - g_scanner_cur_line(uzbl.scan), + g_scanner_error(uzbl.scan, "Token error in template ('%s') at line %d, column %d.", + template, + g_scanner_cur_line(uzbl.scan), g_scanner_cur_position(uzbl.scan)); } } @@ -1587,7 +1587,7 @@ cmd_load_uri() { g_array_free (a, TRUE); } -void +void cmd_always_insert_mode() { uzbl.behave.insert_mode = uzbl.behave.always_insert_mode ? TRUE : FALSE; @@ -1693,31 +1693,31 @@ cmd_print_bg() { uzbl.behave.print_bg, NULL); } -void +void cmd_style_uri() { g_object_set (G_OBJECT(view_settings()), "user-stylesheet-uri", uzbl.behave.style_uri, NULL); } -void +void cmd_resizable_txt() { g_object_set (G_OBJECT(view_settings()), "resizable-text-areas", uzbl.behave.resizable_txt, NULL); } -void +void cmd_default_encoding() { g_object_set (G_OBJECT(view_settings()), "default-encoding", uzbl.behave.default_encoding, NULL); } -void +void cmd_enforce_96dpi() { g_object_set (G_OBJECT(view_settings()), "enforce-96-dpi", uzbl.behave.enforce_96dpi, NULL); } -void +void cmd_caret_browsing() { g_object_set (G_OBJECT(view_settings()), "enable-caret-browsing", uzbl.behave.caret_browsing, NULL); @@ -2320,7 +2320,7 @@ create_window () { return window; } -GtkPlug* +GtkPlug* create_plug () { GtkPlug* plug = GTK_PLUG (gtk_plug_new (uzbl.state.socket_id)); g_signal_connect (G_OBJECT (plug), "destroy", G_CALLBACK (destroy_cb), NULL); @@ -2511,7 +2511,7 @@ settings_init () { for (i = 0; default_config[i].command != NULL; i++) { parse_cmd_line(default_config[i].command, NULL); } - + if (g_strcmp0(s->config_file, "-") == 0) { s->config_file = NULL; create_stdin(); diff --git a/uzbl.h b/uzbl.h index 3789dcb..7c4e5b4 100644 --- a/uzbl.h +++ b/uzbl.h @@ -404,7 +404,7 @@ create_mainbar (); GtkWidget* create_window (); -GtkPlug* +GtkPlug* create_plug (); void @@ -558,22 +558,22 @@ cmd_enable_private(); void cmd_print_bg(); -void +void cmd_style_uri(); -void +void cmd_resizable_txt(); -void +void cmd_default_encoding(); -void +void cmd_enforce_96dpi(); void cmd_inject_html(); -void +void cmd_caret_browsing(); /* vi: set et ts=4: */ -- cgit v1.2.3 From e55693577ca32093b407824f2e5d38b258758f4d Mon Sep 17 00:00:00 2001 From: uranther Date: Tue, 14 Jul 2009 17:09:39 -0400 Subject: Added instructions in CONTRIBUTING to remind developers to write unit tests for bugfixes and new functionality --- docs/CONTRIBUTING | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/CONTRIBUTING b/docs/CONTRIBUTING index f5d7ebc..9032b42 100644 --- a/docs/CONTRIBUTING +++ b/docs/CONTRIBUTING @@ -66,6 +66,7 @@ This is a relatively easy, solid and transparent way to handle all requests in o we know for bigger changes this is not always feasible. Just try to keep the merges about bigger "clean changesets". * Your code should not introduce any compile warnings or errors. And also, no regressions but that's harder to check. +* Unit tests should be written to verify bug fixes and new functionality. That said, you can always ask us to check on your stuff or ask for advice. -- cgit v1.2.3 From 3a18de9cb89ba7de3354dda7d9dd53f990c34eac Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 15 Jul 2009 17:21:12 -0400 Subject: Remove more trailing whitespace --- uzbl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/uzbl.c b/uzbl.c index ba12e01..15d1f1c 100644 --- a/uzbl.c +++ b/uzbl.c @@ -705,7 +705,7 @@ log_history_cb () { if (uzbl.behave.history_handler) { GTimeVal the_time; gchar *date; - + g_get_current_time(&the_time); /* no need to wrap this string with quotes since it contains no spaces. format is like: 2009-06-26T20:02:05.262864Z */ @@ -2511,7 +2511,7 @@ settings_init () { for (i = 0; default_config[i].command != NULL; i++) { parse_cmd_line(default_config[i].command, NULL); } - + if (g_strcmp0(s->config_file, "-") == 0) { s->config_file = NULL; create_stdin(); -- cgit v1.2.3 From f9e93ba19d4d166d81d53e7b4bc222ef8d4e9632 Mon Sep 17 00:00:00 2001 From: uranther Date: Wed, 15 Jul 2009 17:27:19 -0400 Subject: Changed my instructions for unit tests in docs/CONTRIBUTING --- docs/CONTRIBUTING | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/CONTRIBUTING b/docs/CONTRIBUTING index 9032b42..5a88330 100644 --- a/docs/CONTRIBUTING +++ b/docs/CONTRIBUTING @@ -66,7 +66,6 @@ This is a relatively easy, solid and transparent way to handle all requests in o we know for bigger changes this is not always feasible. Just try to keep the merges about bigger "clean changesets". * Your code should not introduce any compile warnings or errors. And also, no regressions but that's harder to check. -* Unit tests should be written to verify bug fixes and new functionality. That said, you can always ask us to check on your stuff or ask for advice. @@ -91,6 +90,11 @@ is, please supply: ### Memory leak checking valgrind --tool=memcheck --leak-check=full ./uzbl +### Writing unit tests +If you can, write a unit test for a bugfix or new functionality. Add relevant unit +tests to existing .c files in tests/. Others should be made in new source files with +corresponding changes to the tests/Makefile. + ### Debugging / backtraces * compile with -ggdb (enabled by default on experimental tree) -- cgit v1.2.3 From aef57075a8ff3b27341d95b424fe8bc948dc456c Mon Sep 17 00:00:00 2001 From: uranther Date: Thu, 16 Jul 2009 16:27:18 -0400 Subject: Added back in code to check if fifo exists, in case user wants to 'set fifo_dir =' while uzbl is running --- uzbl.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/uzbl.c b/uzbl.c index 15d1f1c..81db05a 100644 --- a/uzbl.c +++ b/uzbl.c @@ -1951,6 +1951,13 @@ control_fifo(GIOChannel *gio, GIOCondition condition) { gchar* init_fifo(gchar *dir) { /* return dir or, on error, free dir and return NULL */ + if (uzbl.comm.fifo_path) { /* get rid of the old fifo if one exists */ + if (unlink(uzbl.comm.fifo_path) == -1) + g_warning ("Fifo: Can't unlink old fifo at %s\n", uzbl.comm.fifo_path); + g_free(uzbl.comm.fifo_path); + uzbl.comm.fifo_path = NULL; + } + GIOChannel *chan = NULL; GError *error = NULL; gchar *path = build_stream_name(FIFO, dir); -- cgit v1.2.3 From 771d31746357df349308cb4094f2873837e90a24 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Thu, 16 Jul 2009 22:51:48 +0200 Subject: revert commit cdbe169f to make date for history handler back in same format --- uzbl.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/uzbl.c b/uzbl.c index 81db05a..81e66d9 100644 --- a/uzbl.c +++ b/uzbl.c @@ -703,15 +703,13 @@ destroy_cb (GtkWidget* widget, gpointer data) { void log_history_cb () { if (uzbl.behave.history_handler) { - GTimeVal the_time; - gchar *date; - - g_get_current_time(&the_time); - /* no need to wrap this string with quotes since it contains no spaces. - format is like: 2009-06-26T20:02:05.262864Z */ - date = g_time_val_to_iso8601(&the_time); + time_t rawtime; + struct tm * timeinfo; + char date [80]; + time ( &rawtime ); + timeinfo = localtime ( &rawtime ); + strftime (date, 80, "\"%Y-%m-%d %H:%M:%S\"", timeinfo); run_handler(uzbl.behave.history_handler, date); - g_free(date); } } -- cgit v1.2.3