aboutsummaryrefslogtreecommitdiffhomepage
path: root/uzbl.c
diff options
context:
space:
mode:
authorGravatar DuClare <akarinotengoku@gmail.com>2009-05-19 14:54:28 +0300
committerGravatar DuClare <akarinotengoku@gmail.com>2009-05-19 14:54:28 +0300
commit757b51da21442ffc4f3b39dfe173999bfcb8a3c8 (patch)
treeb0940bfaa5f2fcbb2add14c75b980e6660cdde42 /uzbl.c
parent355fa7c0d712c2b7a15bf15d8b12c078d4310085 (diff)
Disable splitting for some actions, fix sampleconfig-dev
Diffstat (limited to 'uzbl.c')
-rw-r--r--uzbl.c100
1 files changed, 49 insertions, 51 deletions
diff --git a/uzbl.c b/uzbl.c
index 763004c..d699387 100644
--- a/uzbl.c
+++ b/uzbl.c
@@ -411,29 +411,29 @@ VIEWFUNC(go_forward)
/* -- command to callback/function map for things we cannot attach to any signals */
// TODO: reload
-static struct {char *name; Command command;} cmdlist[] =
-{
- { "back", view_go_back },
- { "forward", view_go_forward },
- { "scroll_vert", scroll_vert },
- { "scroll_horz", scroll_horz },
- { "scroll_begin", scroll_begin },
- { "scroll_end", scroll_end },
- { "reload", view_reload, },
- { "reload_ign_cache", view_reload_bypass_cache},
- { "stop", view_stop_loading, },
- { "zoom_in", view_zoom_in, }, //Can crash (when max zoom reached?).
- { "zoom_out", view_zoom_out, },
- { "uri", load_uri },
- { "script", run_js },
- { "toggle_status", toggle_status_cb },
- { "spawn", spawn },
- { "sh", spawn_sh },
- { "exit", close_uzbl },
- { "search", search_forward_text },
- { "search_reverse", search_reverse_text },
- { "insert_mode", set_insert_mode },
- { "runcmd", runcmd }
+static struct {char *name; Command command[2];} cmdlist[] =
+{ /* key function no_split */
+ { "back", {view_go_back, 0} },
+ { "forward", {view_go_forward, 0} },
+ { "scroll_vert", {scroll_vert, 0} },
+ { "scroll_horz", {scroll_horz, 0} },
+ { "scroll_begin", {scroll_begin, 0} },
+ { "scroll_end", {scroll_end, 0} },
+ { "reload", {view_reload, 0}, },
+ { "reload_ign_cache", {view_reload_bypass_cache, 0} },
+ { "stop", {view_stop_loading, 0}, },
+ { "zoom_in", {view_zoom_in, 0}, }, //Can crash (when max zoom reached?).
+ { "zoom_out", {view_zoom_out, 0}, },
+ { "uri", {load_uri, NOSPLIT} },
+ { "script", {run_js, NOSPLIT} },
+ { "toggle_status", {toggle_status_cb, 0} },
+ { "spawn", {spawn, 0} },
+ { "sh", {spawn_sh, 0} },
+ { "exit", {close_uzbl, 0} },
+ { "search", {search_forward_text, NOSPLIT} },
+ { "search_reverse", {search_reverse_text, NOSPLIT} },
+ { "insert_mode", {set_insert_mode, 0} },
+ { "runcmd", {runcmd, NOSPLIT} }
};
static void
@@ -485,32 +485,27 @@ set_insert_mode(WebKitWebView *page, GArray *argv) {
}
static void
-load_uri (WebKitWebView * web_view, GArray *argv) { /* TODO: tell load_uri doesn't want splicing */
+load_uri (WebKitWebView *web_view, GArray *argv) {
if (argv_idx(argv, 0)) {
- gchar *u = g_strjoinv(" ", (gchar**)argv->data);
- GString* newuri = g_string_new (u);
- if (g_strrstr (u, "://") == NULL)
+ GString* newuri = g_string_new (argv_idx(argv, 0));
+ if (g_strrstr (argv_idx(argv, 0), "://") == NULL)
g_string_prepend (newuri, "http://");
/* if we do handle cookies, ask our handler for them */
webkit_web_view_load_uri (web_view, newuri->str);
g_string_free (newuri, TRUE);
- g_free (u);
}
}
static void
-run_js (WebKitWebView * web_view, GArray *argv) { /* TODO: tell run_js doesn't want splicing */
- if (argv_idx(argv, 0)) {
- gchar *body = g_strjoinv(" ", (gchar**)argv->data);
- webkit_web_view_execute_script (web_view, body);
- g_free(body);
- }
+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
-search_text (WebKitWebView *page, GArray *argv, const gboolean forward) { /* TODO: "" */
+search_text (WebKitWebView *page, GArray *argv, const gboolean forward) {
if (argv_idx(argv, 0) && (*argv_idx(argv, 0) != '\0'))
- uzbl.state.searchtx = g_strjoinv(" ", (gchar**)argv->data);
+ uzbl.state.searchtx = g_strdup(argv_idx(argv, 0));
if (uzbl.state.searchtx != NULL) {
if (uzbl.state.verbose)
@@ -890,17 +885,24 @@ spawn_sh(WebKitWebView *web_view, GArray *argv) {
static void
parse_command(const char *cmd, const char *param) {
- Command c;
+ Command *c;
if ((c = g_hash_table_lookup(uzbl.behave.commands, cmd))) {
- guint i;
- gchar **par = split_quoted(param, TRUE);
- GArray *a = g_array_new (TRUE, FALSE, sizeof(gchar*));
- for (i = 0; i < g_strv_length(par); i++)
- sharg_append(a, par[i]);
- c(uzbl.gui.web_view, a);
- g_strfreev (par);
- g_array_free (a, TRUE);
+
+ guint i;
+ gchar **par = split_quoted(param, TRUE);
+ GArray *a = g_array_new (TRUE, FALSE, sizeof(gchar*));
+
+ if (c[1]) { /* don't split */
+ sharg_append(a, param);
+ } else {
+ for (i = 0; i < g_strv_length(par); i++)
+ sharg_append(a, par[i]);
+ }
+ c[0](uzbl.gui.web_view, a);
+ g_strfreev (par);
+ g_array_free (a, TRUE);
+
} else
g_printerr ("command \"%s\" not understood. ignoring.\n", cmd);
}
@@ -1108,13 +1110,9 @@ set_var_value(gchar *name, gchar *val) {
}
static void
-runcmd(WebKitWebView* page, GArray *argv) { /* TODO: tell runcmd doesn't want args spliced
- or just wait 'till actions and commands are
- merged :] */
+runcmd(WebKitWebView* page, GArray *argv) {
(void) page;
- gchar *ctl_line = g_strjoinv(" ", (gchar**)argv->data);
- parse_cmd_line(ctl_line);
- g_free (ctl_line);
+ parse_cmd_line(argv_idx(argv, 0));
}
static void