Hello,
  Here is a searchengine patch for surf 0.2 (changed pasteuri() to
geturi() as pasteuri() was alredy taken), and new toggleflash, saving
another 1 LOC. Hope that will help someone.
Constructive critisism welcome.
Regards,
Ted

-- 
===========================================================
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

diff -r ba69af3ca2c3 config.def.h
--- a/config.def.h      Sat Oct 17 09:23:28 2009 +0200
+++ b/config.def.h      Mon Oct 19 12:23:10 2009 +0200
@@ -35,6 +35,10 @@
     { 0,                    GDK_Return, hideuri,    { 0 },          UriBar },
 };
 
+static SearchEngine searchengines[] = {
+    { NULL, NULL },
+};
+
 static Item items[] = {
     { "New Window",     newwindow, { .v = NULL } },
     { "Reload",         reload,    { .b = FALSE } },
diff -r ba69af3ca2c3 surf.c
--- a/surf.c    Sat Oct 17 09:23:28 2009 +0200
+++ b/surf.c    Mon Oct 19 12:23:10 2009 +0200
@@ -60,6 +60,11 @@
        KeyFocus focus;
 } Key;
 
+typedef struct {
+  char *token;
+  char *uri;
+} SearchEngine;
+
 static Display *dpy;
 static Atom uriprop;
 static SoupCookieJar *cookiejar;
@@ -100,6 +105,7 @@
 static void newwindow(Client *c, const Arg *arg);
 static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f, Client 
*c);
 static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
+static gchar *geturl(const gchar *uri);
 static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer 
d);
 static void print(Client *c, const Arg *arg);
 static void progresschange(WebKitWebView *v, gint p, Client *c);
@@ -408,6 +414,19 @@
        update(c);
 }
 
+gchar *
+geturl(const gchar *uri) {
+  guint i;
+  for (i = 0; i < LENGTH(searchengines); i++) {
+    if (searchengines[i].token == NULL || searchengines[i].uri == NULL || 
*(uri + strlen(searchengines[i].token)) != ' ')
+      continue;
+    if(g_str_has_prefix(uri, searchengines[i].token))
+      return g_strdup_printf(searchengines[i].uri, uri + 
strlen(searchengines[i].token) + 1);
+  }
+  return g_strrstr(uri, "://") ? g_strdup(uri) : g_strdup_printf("http://%s";, 
uri);
+}
+    
+
 void
 loaduri(Client *c, const Arg *arg) {
        char *u;
@@ -417,8 +436,7 @@
                uri = autouri(c);
        if(!uri)
                return;
-       u = g_strrstr(uri, "://") ? g_strdup(uri)
-               : g_strdup_printf("http://%s";, uri);
+  u = geturl(uri);
        webkit_web_view_load_uri(c->view, u);
        c->progress = 0;
        c->title = copystr(&c->title, u);
diff -r 18dd74d2564d config.def.h
--- a/config.def.h      Sat Oct 17 13:19:21 2009 +0200
+++ b/config.def.h      Mon Oct 19 12:33:23 2009 +0200
@@ -18,6 +18,7 @@
     { 0,                    GDK_Escape, hidesearch, { 0 },          Any },
     { 0,                    GDK_Escape, hideuri,    { 0 },          Any },
     { MODKEY|GDK_SHIFT_MASK,GDK_p,      print,      { 0 },          Any },
+    { MODKEY,               GDK_f,      toggleflash,{ 0 },          Any },
     { MODKEY,               GDK_p,      clipboard,  { .b = TRUE },  Browser },
     { MODKEY,               GDK_y,      clipboard,  { .b = FALSE }, Browser },
     { MODKEY|GDK_SHIFT_MASK,GDK_j,      zoom,       { .i = -1 },    Browser },
diff -r 18dd74d2564d surf.c
--- a/surf.c    Sat Oct 17 13:19:21 2009 +0200
+++ b/surf.c    Mon Oct 19 12:33:23 2009 +0200
@@ -116,6 +116,7 @@
 static void showuri(Client *c, const Arg *arg);
 static void stop(Client *c, const Arg *arg);
 static void titlechange(WebKitWebView *v, WebKitWebFrame* frame, const char* 
title, Client *c);
+static void toggleflash(Client *c, const Arg *arg);
 static gboolean focusview(GtkWidget *w, GdkEventFocus *e, Client *c);
 static void usage(void);
 static void update(Client *c);
@@ -539,6 +540,7 @@
        gdk_window_add_filter(GTK_WIDGET(c->win)->window, processx, c);
        webkit_web_view_set_full_content_zoom(c->view, TRUE);
        settings = webkit_web_view_get_settings(c->view);
+  g_object_set(G_OBJECT(settings), "enable-plugins", FALSE, NULL);
        g_object_set(G_OBJECT(settings), "user-agent", useragent, NULL);
        uri = g_strconcat("file://", stylefile, NULL);
        g_object_set(G_OBJECT(settings), "user-stylesheet-uri", uri, NULL);
@@ -763,6 +765,14 @@
        update(c);
 }
 
+void
+toggleflash(Client *c, const Arg *arg) {
+  static bool flash = 0;
+  WebKitWebSettings *settings;
+  settings = webkit_web_view_get_settings(c->view);
+  g_object_set(G_OBJECT(settings), "enable-plugins", (flash = !flash), NULL);
+}
+
 gboolean
 focusview(GtkWidget *w, GdkEventFocus *e, Client *c) {
        hidesearch(c, NULL);

Reply via email to