From e39152702c839cafe5a73536ba6d3c3d769d4546 Mon Sep 17 00:00:00 2001 From: Brendan Taylor Date: Sun, 12 Jul 2009 13:52:34 -0600 Subject: "set keycmd = x" is now equivalent to "keycmd x" --- tests/Makefile | 2 +- tests/test-command.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ uzbl.c | 11 +++++++--- uzbl.h | 7 ++++-- 4 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 tests/test-command.c diff --git a/tests/Makefile b/tests/Makefile index 2bfcf98..7901b7d 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -4,7 +4,7 @@ LDFLAGS:=$(shell pkg-config --libs gtk+-2.0 webkit-1.0 libsoup-2.4 gthread-2.0) GTESTER:=gtester GTESTER_REPORT:=gtester-report -TEST_PROGS:=test-expand +TEST_PROGS:=test-expand test-command all: $(TEST_PROGS) LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):." $(GTESTER) --verbose $(TEST_PROGS) diff --git a/tests/test-command.c b/tests/test-command.c new file mode 100644 index 0000000..aee4bf2 --- /dev/null +++ b/tests/test-command.c @@ -0,0 +1,60 @@ +/* -*- 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 +#include + +extern Uzbl uzbl; + +void +test_keycmd (void) { + add_binding("insert", "set insert_mode = 1"); + add_binding("command", "set insert_mode = 0"); + + /* the 'keycmd' command */ + parse_command("keycmd", "insert", NULL); + + g_assert_cmpint(1, ==, uzbl.behave.insert_mode); + g_assert_cmpstr("", ==, uzbl.state.keycmd); + + /* setting the keycmd variable directly, equivalent to the 'keycmd' comand */ + set_var_value("keycmd", "command"); + + g_assert_cmpint(0, ==, uzbl.behave.insert_mode); + g_assert_cmpstr("", ==, uzbl.state.keycmd); +} + +int +main (int argc, char *argv[]) { + g_type_init(); + g_test_init(&argc, &argv, NULL); + + g_test_add_func("/test-command/keycmd", test_keycmd); + + initialize(argc, argv); + + return g_test_run(); +} + +/* vi: set et ts=4: */ diff --git a/uzbl.c b/uzbl.c index daf7e4d..f4f93ea 100644 --- a/uzbl.c +++ b/uzbl.c @@ -108,7 +108,7 @@ const struct { { "base_url", PTR_V(uzbl.behave.base_url, STR, 1, NULL)}, { "html_endmarker", PTR_V(uzbl.behave.html_endmarker, STR, 1, NULL)}, { "html_mode_timeout", PTR_V(uzbl.behave.html_timeout, INT, 1, NULL)}, - { "keycmd", PTR_V(uzbl.state.keycmd, STR, 1, NULL)}, /* XXX */ + { "keycmd", PTR_V(uzbl.state.keycmd, STR, 1, set_keycmd)}, { "status_message", PTR_V(uzbl.gui.sbar.msg, STR, 1, update_title)}, { "show_status", PTR_V(uzbl.behave.show_status, INT, 1, cmd_set_status)}, { "status_top", PTR_V(uzbl.behave.status_top, INT, 1, move_statusbar)}, @@ -885,6 +885,11 @@ act_dump_config() { dump_config(); } +void set_keycmd() { + run_keycmd(FALSE); + update_title(); +} + void set_mode_indicator() { uzbl.gui.sbar.mode_indicator = (uzbl.behave.insert_mode ? uzbl.behave.insert_indicator : uzbl.behave.cmd_indicator); @@ -1364,7 +1369,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; @@ -2291,7 +2296,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; diff --git a/uzbl.h b/uzbl.h index 6c292a0..ef462f5 100644 --- a/uzbl.h +++ b/uzbl.h @@ -297,6 +297,9 @@ new_action(const gchar *name, const gchar *param); static bool file_exists (const char * filename); +void +set_keycmd(); + void set_mode_indicator(); @@ -346,7 +349,7 @@ spawn_sync(WebKitWebView *web_view, GArray *argv, GString *result); static 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 @@ -406,7 +409,7 @@ GtkPlug* create_plug (); static void run_handler (const gchar *act, const gchar *args); -static void +void add_binding (const gchar *key, const gchar *act); static gchar* -- cgit v1.2.3