diff options
author | 2009-10-28 16:08:14 +0100 | |
---|---|---|
committer | 2009-10-28 16:08:14 +0100 | |
commit | 9fe687b21c31dd56a398f30c946bd354cb6b169f (patch) | |
tree | 5cc4ec0e88bb101316967618574ca20814d75c03 /uzbl-core.c | |
parent | f5ca0aa5c05df75dd3268e85feb8947b92486aaf (diff) | |
parent | 9d7ae1b21aefac2cf5418667bd150c110bf8932e (diff) |
Merge branch 'experimental' of git://github.com/Dieterbe/uzbl into prompt
Diffstat (limited to 'uzbl-core.c')
-rw-r--r-- | uzbl-core.c | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/uzbl-core.c b/uzbl-core.c index 1480491..3a59574 100644 --- a/uzbl-core.c +++ b/uzbl-core.c @@ -103,9 +103,9 @@ const struct var_name_to_ptr_t { { "load_start_handler", PTR_V_STR(uzbl.behave.load_start_handler, 1, NULL)}, { "load_commit_handler", PTR_V_STR(uzbl.behave.load_commit_handler, 1, NULL)}, { "download_handler", PTR_V_STR(uzbl.behave.download_handler, 1, NULL)}, - { "cookie_handler", PTR_V_STR(uzbl.behave.cookie_handler, 1, cmd_cookie_handler)}, + { "cookie_handler", PTR_V_STR(uzbl.behave.cookie_handler, 1, NULL)}, { "new_window", PTR_V_STR(uzbl.behave.new_window, 1, NULL)}, - { "scheme_handler", PTR_V_STR(uzbl.behave.scheme_handler, 1, cmd_scheme_handler)}, + { "scheme_handler", PTR_V_STR(uzbl.behave.scheme_handler, 1, NULL)}, { "fifo_dir", PTR_V_STR(uzbl.behave.fifo_dir, 1, cmd_fifo_dir)}, { "socket_dir", PTR_V_STR(uzbl.behave.socket_dir, 1, cmd_socket_dir)}, { "http_debug", PTR_V_INT(uzbl.behave.http_debug, 1, cmd_http_debug)}, @@ -623,7 +623,6 @@ struct {const char *key; CommandInfo value;} cmdlist[] = { "print", {print, TRUE} }, { "event", {event, TRUE} }, { "request", {event, TRUE} }, - { "update_gui", {update_gui, TRUE} }, { "menu_add", {menu_add, TRUE} }, { "menu_link_add", {menu_add_link, TRUE} }, { "menu_image_add", {menu_add_image, TRUE} }, @@ -669,13 +668,6 @@ set_var(WebKitWebView *page, GArray *argv, GString *result) { } void -update_gui(WebKitWebView *page, GArray *argv, GString *result) { - (void) page; (void) argv; (void) result; - - update_title(); -} - -void add_to_menu(GArray *argv, guint context) { GUI *g = &uzbl.gui; MenuItem *m; @@ -1229,8 +1221,9 @@ void spawn(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; gchar *path = NULL; + //TODO: allow more control over argument order so that users can have some arguments before the default ones from run_command, and some after - if ( argv_idx(argv, 0) && + if (argv_idx(argv, 0) && ((path = find_existing_file(argv_idx(argv, 0)))) ) { run_command(path, 0, ((const gchar **) (argv->data + sizeof(gchar*))), @@ -1242,10 +1235,15 @@ spawn(WebKitWebView *web_view, GArray *argv, GString *result) { void spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result) { (void)web_view; (void)result; + gchar *path = NULL; - if (argv_idx(argv, 0)) - run_command(argv_idx(argv, 0), 0, ((const gchar **) (argv->data + sizeof(gchar*))), + if (argv_idx(argv, 0) && + ((path = find_existing_file(argv_idx(argv, 0)))) ) { + run_command(path, 0, + ((const gchar **) (argv->data + sizeof(gchar*))), TRUE, &uzbl.comm.sync_stdout); + g_free(path); + } } void @@ -1531,6 +1529,7 @@ set_var_value(const gchar *name, gchar *val) { send_event(VARIABLE_SET, msg->str, NULL); g_string_free(msg,TRUE); } + update_title(); return TRUE; } @@ -2051,10 +2050,15 @@ run_handler (const gchar *act, const gchar *args) { g_strfreev(chainparts); } else { - gchar **inparts = inject_handler_args(parts[0], parts[1], args); + /* expand the user-specified arguments */ + gchar* expanded = expand(parts[1], 0); + gchar **inparts = inject_handler_args(parts[0], expanded, args); + parse_command(inparts[0], inparts[1], NULL); + g_free(inparts[0]); g_free(inparts[1]); + g_free(expanded); } g_strfreev(parts); } |