$OpenBSD: patch-scripts_xdg-open,v 1.3 2009/08/15 23:14:15 ajacoutot Exp $
--- scripts/xdg-open.orig	Sun Jun 24 21:58:01 2007
+++ scripts/xdg-open	Sun Aug 16 01:11:30 2009
@@ -364,7 +364,9 @@ open_generic()
     for browser in $BROWSER; do
         if [ x"$browser" != x"" ]; then
 
-            browser_with_arg=`echo "$browser" | sed s#%s#"$1"#`
+            browser_with_args=`printf "$browser" "$1" 2>/dev/null`
+            if [ $? -ne 0 ]; then browser_with_args=$browser;
+            fi
 
             if [ x"$browser_with_arg" = x"$browser" ]; then "$browser" "$1";
             else $browser_with_arg;
@@ -403,12 +405,21 @@ if [ -z "${url}" ] ; then
     exit_failure_syntax "file or URL argument missing"
 fi
 
+if which xdg-open-hook > /dev/null 2> /dev/null; then
+    xdg-open-hook "$url"
+    if [ $? -eq 0 ]; then
+        exit_success
+    else
+        exit_failure_operation_failed
+    fi
+fi
+
 detectDE
 
 if [ x"$DE" = x"" ]; then
     # if BROWSER variable is not set, check some well known browsers instead
     if [ x"$BROWSER" = x"" ]; then
-        BROWSER=firefox:mozilla:netscape
+        BROWSER=firefox:seamonkey:epiphany:opera:mozilla:netscape
     fi
     DE=generic
 fi
