diff options
-rw-r--r-- | README | 4 | ||||
-rwxr-xr-x | examples/data/uzbl/scripts/uzblcat | 22 | ||||
-rw-r--r-- | uzbl.c | 64 | ||||
-rw-r--r-- | uzbl.h | 6 |
4 files changed, 8 insertions, 88 deletions
@@ -174,11 +174,7 @@ Besides the builtin variables you can also define your own ones and use them in * Variables: - uri (callback: load the uri) - verbose: affects output on stdout - - mode:insert or command mode - inject_html - - base_url: used when passing html through stdin - - html_endmarker: delimiter when passing html through stdin - - html_mode_timeout: consider end of html input after x seconds when no endmarker found - keycmd: holds the input buffer (callback: update input buffer) - status_message (callback: update title) - show_status: show statusbar or not diff --git a/examples/data/uzbl/scripts/uzblcat b/examples/data/uzbl/scripts/uzblcat index 5c3063e..e955608 100755 --- a/examples/data/uzbl/scripts/uzblcat +++ b/examples/data/uzbl/scripts/uzblcat @@ -1,20 +1,12 @@ -#!/usr/bin/env perl +#!/usr/bin/env python # uzblcat - safely push html to uzbl # See http://www.uzbl.org/wiki/html-mode -use strict; use warnings; -my $html; -local $/; # slurp files -# automagically choose to read from stdin/files/... -$html .= $_ for <>; +from sys import stdin, stdout -my $endmarker = rand; -$endmarker .= rand() while $html =~ /^\Q$endmarker\E$/m; +stdout.write("uri data:text/html,") +for line in stdin: + stdout.write(line[0:-1]) + +# vim: set noet ff=unix -print "set base_url = $ENV{BASE_URL}\n" if $ENV{BASE_URL}; -print << "EOS"; -set html_endmarker = $endmarker -set mode = 1 -$html -$endmarker -EOS @@ -115,11 +115,8 @@ const struct var_name_to_ptr_t { /* ---------------------------------------------------------------------------------------------- */ { "uri", PTR_V_STR(uzbl.state.uri, 1, cmd_load_uri)}, { "verbose", PTR_V_INT(uzbl.state.verbose, 1, NULL)}, - { "mode", PTR_V_INT(uzbl.behave.mode, 0, NULL)}, { "inject_html", PTR_V_STR(uzbl.behave.inject_html, 0, cmd_inject_html)}, { "base_url", PTR_V_STR(uzbl.behave.base_url, 1, NULL)}, - { "html_endmarker", PTR_V_STR(uzbl.behave.html_endmarker, 1, NULL)}, - { "html_mode_timeout", PTR_V_INT(uzbl.behave.html_timeout, 1, NULL)}, { "keycmd", PTR_V_STR(uzbl.state.keycmd, 1, set_keycmd)}, { "status_message", PTR_V_STR(uzbl.gui.sbar.msg, 1, update_title)}, { "show_status", PTR_V_INT(uzbl.behave.show_status, 1, cmd_set_status)}, @@ -496,20 +493,6 @@ clean_up(void) { g_hash_table_destroy(uzbl.behave.commands); } -/* used for html_mode_timeout - * be sure to extend this function to use - * more timers if needed in other places -*/ -void -set_timeout(int seconds) { - struct itimerval t; - memset(&t, 0, sizeof t); - - t.it_value.tv_sec = seconds; - t.it_value.tv_usec = 0; - setitimer(ITIMER_REAL, &t, NULL); -} - /* --- SIGNAL HANDLER --- */ void @@ -525,15 +508,6 @@ catch_sigint(int s) { exit(EXIT_SUCCESS); } -void -catch_alrm(int s) { - (void) s; - - set_var_value("mode", "0"); - render_html(); -} - - /* --- CALLBACKS --- */ gboolean @@ -1920,40 +1894,12 @@ set_var_value(const gchar *name, gchar *val) { return TRUE; } -void -render_html() { - Behaviour *b = &uzbl.behave; - - if(b->html_buffer->str) { - webkit_web_view_load_html_string (uzbl.gui.web_view, - b->html_buffer->str, b->base_url); - g_string_free(b->html_buffer, TRUE); - b->html_buffer = g_string_new(""); - } -} - enum {M_CMD, M_HTML}; void parse_cmd_line(const char *ctl_line, GString *result) { - Behaviour *b = &uzbl.behave; size_t len=0; - if(b->mode == M_HTML) { - len = strlen(b->html_endmarker); - /* ctl_line has trailing '\n' so we check for strlen(ctl_line)-1 */ - if(len == strlen(ctl_line)-1 && - !strncmp(b->html_endmarker, ctl_line, len)) { - set_timeout(0); - set_var_value("mode", "0"); - render_html(); - return; - } - else { - set_timeout(b->html_timeout); - g_string_append(b->html_buffer, ctl_line); - } - } - else if((ctl_line[0] == '#') /* Comments */ + if((ctl_line[0] == '#') /* Comments */ || (ctl_line[0] == ' ') || (ctl_line[0] == '\n')) ; /* ignore these lines */ @@ -2844,19 +2790,11 @@ initialize(int argc, char *argv[]) { fprintf(stderr, "uzbl: error hooking SIGTERM\n"); if(setup_signal(SIGINT, catch_sigint) == SIG_ERR) fprintf(stderr, "uzbl: error hooking SIGINT\n"); - if(setup_signal(SIGALRM, catch_alrm) == SIG_ERR) - fprintf(stderr, "uzbl: error hooking SIGALARM\n"); uzbl.gui.sbar.progress_s = g_strdup("="); //TODO: move these to config.h uzbl.gui.sbar.progress_u = g_strdup("ยท"); uzbl.gui.sbar.progress_w = 10; - /* HTML mode defaults*/ - uzbl.behave.html_buffer = g_string_new(""); - uzbl.behave.html_endmarker = g_strdup("."); - uzbl.behave.html_timeout = 60; - uzbl.behave.base_url = g_strdup("http://invalid"); - /* default mode indicators */ uzbl.behave.insert_indicator = g_strdup("I"); uzbl.behave.cmd_indicator = g_strdup("C"); @@ -134,11 +134,8 @@ typedef struct { guint caret_browsing; guint mode; gchar* base_url; - gchar* html_endmarker; gchar* insert_indicator; gchar* cmd_indicator; - GString* html_buffer; - guint html_timeout; gboolean print_version; /* command list: name -> Command */ @@ -451,9 +448,6 @@ void act_dump_config(); void -render_html(); - -void set_timeout(int seconds); void |