From 16db5cab90d124a755cfba4644783a28d01fcf64 Mon Sep 17 00:00:00 2001 From: Felix Herrmann Date: Mon, 21 Feb 2011 00:47:28 +0100 Subject: fix memory leak in parse_command_parts --- src/uzbl-core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 779f378..e565b14 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -1161,8 +1161,10 @@ parse_command_parts(const gchar *line, GArray *a) { CommandInfo *c = NULL; gchar *exp_line = expand(line, 0); - if(exp_line[0] == '\0') + if(exp_line[0] == '\0') { + g_free(exp_line); return NULL; + } /* separate the line into the command and its parameters */ gchar **tokens = g_strsplit(exp_line, " ", 2); -- cgit v1.2.3 From 65804b1715f223d1ab6cddfd949a2d4dd47ca8b1 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Fri, 25 Feb 2011 13:47:21 -0700 Subject: add current_encoding variable --- README | 1 + src/callbacks.c | 7 +++++++ src/callbacks.h | 3 +++ src/uzbl-core.c | 1 + src/uzbl-core.h | 1 + 5 files changed, 13 insertions(+) (limited to 'src') diff --git a/README b/README index d20cbd2..3ac9a28 100644 --- a/README +++ b/README @@ -356,6 +356,7 @@ file). stylesheet. * `resizable_text_areas`: Whether text areas can be resized (default 0). * `default_encoding`: The default text encoding (default "iso-8859-1"). +* `current_encoding`: This can be set to force a text encoding. * `enforce_96_dpi`: Enforce a resolution of 96 DPI (default 1). * `caret_browsing`: Whether the caret is enabled in the text portion of pages (default 0). diff --git a/src/callbacks.c b/src/callbacks.c index d315a9e..470e8dd 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -290,6 +290,13 @@ cmd_caret_browsing() { uzbl.behave.caret_browsing, NULL); } +void +set_current_encoding() { + webkit_web_view_set_custom_encoding(uzbl.gui.web_view, + uzbl.behave.current_encoding); +} + + void cmd_fifo_dir() { uzbl.behave.fifo_dir = init_fifo(uzbl.behave.fifo_dir); diff --git a/src/callbacks.h b/src/callbacks.h index 13cb83d..ab0c1df 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -109,6 +109,9 @@ cmd_resizable_txt(); void cmd_default_encoding(); +void +set_current_encoding(); + void cmd_enforce_96dpi(); diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 638dd1f..a7f418c 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -131,6 +131,7 @@ const struct var_name_to_ptr_t { { "stylesheet_uri", PTR_V_STR(uzbl.behave.style_uri, 1, cmd_style_uri)}, { "resizable_text_areas", PTR_V_INT(uzbl.behave.resizable_txt, 1, cmd_resizable_txt)}, { "default_encoding", PTR_V_STR(uzbl.behave.default_encoding, 1, cmd_default_encoding)}, + { "current_encoding", PTR_V_STR(uzbl.behave.current_encoding, 1, set_current_encoding)}, { "enforce_96_dpi", PTR_V_INT(uzbl.behave.enforce_96dpi, 1, cmd_enforce_96dpi)}, { "caret_browsing", PTR_V_INT(uzbl.behave.caret_browsing, 1, cmd_caret_browsing)}, { "scrollbars_visible", PTR_V_INT(uzbl.gui.scrollbars_visible, 1, cmd_scrollbars_visibility)}, diff --git a/src/uzbl-core.h b/src/uzbl-core.h index 1285e3a..a4e055f 100644 --- a/src/uzbl-core.h +++ b/src/uzbl-core.h @@ -187,6 +187,7 @@ typedef struct { gchar* style_uri; guint resizable_txt; gchar* default_encoding; + gchar* current_encoding; guint enforce_96dpi; gchar *inject_html; guint caret_browsing; -- cgit v1.2.3 From 4bb757e944c074ab4969a859a67bc33b4b9698e0 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Sat, 26 Feb 2011 08:26:31 -0700 Subject: check that 'result' is set in eval_js before assigning anything to it --- src/uzbl-core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/uzbl-core.c b/src/uzbl-core.c index a7f418c..bc75d87 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -763,7 +763,7 @@ eval_js(WebKitWebView * web_view, gchar *script, GString *result, const char *fi js_script = JSStringCreateWithUTF8CString(script); js_file = JSStringCreateWithUTF8CString(file); js_result = JSEvaluateScript(context, js_script, globalobject, js_file, 0, &js_exc); - if (js_result && !JSValueIsUndefined(context, js_result)) { + if (result && js_result && !JSValueIsUndefined(context, js_result)) { js_result_string = JSValueToStringCopy(context, js_result, NULL); js_result_size = JSStringGetMaximumUTF8CStringSize(js_result_string); -- cgit v1.2.3 From 867c257b09b9c0f2ebe9b748ebdeffa355ef4711 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Sat, 5 Mar 2011 10:38:59 -0700 Subject: fix a build warning --- src/callbacks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/callbacks.c b/src/callbacks.c index 470e8dd..cb9b492 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -1007,7 +1007,7 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { if (mi->context & WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE) { GdkEventButton ev; gint x, y; - gdk_window_get_pointer(gtk_widget_get_window(v), &x, &y, NULL); + gdk_window_get_pointer(gtk_widget_get_window(GTK_WIDGET(v)), &x, &y, NULL); ev.x = x; ev.y = y; mi->hittest = webkit_web_view_get_hit_test_result(v, &ev); -- cgit v1.2.3 From 5bdc30a7ff4d18450eacd0d01860f707a56689ae Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Sat, 5 Mar 2011 10:39:51 -0700 Subject: change @uri when the fragment identifier changes --- src/callbacks.c | 45 +++++++++++++++++++++++---------------------- src/callbacks.h | 3 +++ src/uzbl-core.c | 2 +- 3 files changed, 27 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/callbacks.c b/src/callbacks.c index cb9b492..3a544a1 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -455,29 +455,44 @@ void load_status_change_cb (WebKitWebView* web_view, GParamSpec param_spec) { (void) param_spec; - WebKitWebFrame *frame = webkit_web_view_get_main_frame(web_view); WebKitLoadStatus status = webkit_web_view_get_load_status(web_view); switch(status) { case WEBKIT_LOAD_PROVISIONAL: - send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL); + send_event(LOAD_START, NULL, TYPE_STR, uzbl.state.uri ? uzbl.state.uri : "", NULL); break; case WEBKIT_LOAD_COMMITTED: - g_free (uzbl.state.uri); - GString* newuri = g_string_new (webkit_web_frame_get_uri (frame)); - uzbl.state.uri = g_string_free (newuri, FALSE); - g_setenv("UZBL_URI", uzbl.state.uri, TRUE); - + frame = webkit_web_view_get_main_frame(web_view); send_event(LOAD_COMMIT, NULL, TYPE_STR, webkit_web_frame_get_uri (frame), NULL); break; case WEBKIT_LOAD_FINISHED: - send_event(LOAD_FINISH, NULL, TYPE_STR, webkit_web_frame_get_uri(frame), NULL); + send_event(LOAD_FINISH, NULL, TYPE_STR, uzbl.state.uri, NULL); break; case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: break; /* we don't do anything with this (yet) */ case WEBKIT_LOAD_FAILED: break; /* load_error_cb will handle this case */ } +} + +void +load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) { + (void) page; (void) frame; (void) ud; + GError *err = web_err; + + send_event (LOAD_ERROR, NULL, + TYPE_STR, uri, + TYPE_INT, err->code, + TYPE_STR, err->message, + NULL); +} + +void +uri_change_cb (WebKitWebView *web_view, GParamSpec param_spec) { + (void) param_spec; + g_free (uzbl.state.uri); + g_object_get (web_view, "uri", &uzbl.state.uri, NULL); + g_setenv("UZBL_URI", uzbl.state.uri, TRUE); } void @@ -491,20 +506,6 @@ selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud) { g_free(tmp); } -void -load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud) { - (void) page; - (void) frame; - (void) ud; - GError *err = web_err; - - send_event (LOAD_ERROR, NULL, - TYPE_STR, uri, - TYPE_INT, err->code, - TYPE_STR, err->message, - NULL); -} - void destroy_cb (GtkWidget* widget, gpointer data) { (void) widget; diff --git a/src/callbacks.h b/src/callbacks.h index ab0c1df..d34b9fa 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -160,6 +160,9 @@ load_status_change_cb (WebKitWebView* web_view, GParamSpec param_spec); void load_error_cb (WebKitWebView* page, WebKitWebFrame* frame, gchar *uri, gpointer web_err, gpointer ud); +void +uri_change_cb (WebKitWebView *web_view, GParamSpec param_spec); + void selection_changed_cb(WebKitWebView *webkitwebview, gpointer ud); diff --git a/src/uzbl-core.c b/src/uzbl-core.c index 31ed50d..d73fbdf 100644 --- a/src/uzbl-core.c +++ b/src/uzbl-core.c @@ -1394,7 +1394,6 @@ update_title(void) { } } - void create_scrolled_win() { GUI* g = &uzbl.gui; @@ -1423,6 +1422,7 @@ create_scrolled_win() { "signal::selection-changed", (GCallback)selection_changed_cb, NULL, "signal::notify::progress", (GCallback)progress_change_cb, NULL, "signal::notify::load-status", (GCallback)load_status_change_cb, NULL, + "signal::notify::uri", (GCallback)uri_change_cb, NULL, "signal::load-error", (GCallback)load_error_cb, NULL, "signal::hovering-over-link", (GCallback)link_hover_cb, NULL, "signal::navigation-policy-decision-requested", (GCallback)navigation_decision_cb, NULL, -- cgit v1.2.3 From cefa7bb4a4e99e6fa7fd7ddcf7866ee60be50fc5 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Sat, 5 Mar 2011 12:08:35 -0700 Subject: fix a build error i am a bad person who doesn't test my commits. --- src/callbacks.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/callbacks.c b/src/callbacks.c index 3a544a1..deda426 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -455,6 +455,7 @@ void load_status_change_cb (WebKitWebView* web_view, GParamSpec param_spec) { (void) param_spec; + WebKitWebFrame *frame; WebKitLoadStatus status = webkit_web_view_get_load_status(web_view); switch(status) { case WEBKIT_LOAD_PROVISIONAL: -- cgit v1.2.3