removed html_mode in favour of "data URI scheme"
authorRobert Manea <gotmor@gmail.com>
Fri, 7 Aug 2009 21:11:54 +0000 (23:11 +0200)
committerRobert Manea <gotmor@gmail.com>
Fri, 7 Aug 2009 21:11:54 +0000 (23:11 +0200)
README
examples/data/uzbl/scripts/uzblcat
uzbl.c
uzbl.h

diff --git a/README b/README
index 3314bf7..b36293c 100644 (file)
--- a/README
+++ b/README
@@ -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
index 5c3063e..e955608 100755 (executable)
@@ -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
diff --git a/uzbl.c b/uzbl.c
index e2148fd..38dcc5f 100644 (file)
--- a/uzbl.c
+++ b/uzbl.c
@@ -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");
diff --git a/uzbl.h b/uzbl.h
index b99a89c..b175ccb 100644 (file)
--- a/uzbl.h
+++ b/uzbl.h
@@ -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