Jonathan G. Underwood b9972d
diff -up emacs-23.1/lisp/net/browse-url.el.xdg emacs-23.1/lisp/net/browse-url.el
Jonathan G. Underwood b9972d
--- emacs-23.1/lisp/net/browse-url.el.xdg	2009-09-18 15:10:03.000000000 -0400
Jonathan G. Underwood b9972d
+++ emacs-23.1/lisp/net/browse-url.el	2009-09-18 15:18:51.000000000 -0400
Jonathan G. Underwood b9972d
@@ -234,6 +234,7 @@ associated with the first REGEXP which m
Jonathan G. Underwood b9972d
 function is passed the URL and any other args of `browse-url'.  The last
Jonathan G. Underwood b9972d
 regexp should probably be \".\" to specify a default browser."
Jonathan G. Underwood b9972d
   :type '(choice
Jonathan G. Underwood b9972d
+          (function-item :tag "Default freedesktop.org browser"			                         :value browse-url-default-xdg-browser)
Jonathan G. Underwood b9972d
 	  (function-item :tag "Emacs W3" :value  browse-url-w3)
Jonathan G. Underwood b9972d
 	  (function-item :tag "W3 in another Emacs via `gnudoit'"
Jonathan G. Underwood b9972d
 			 :value  browse-url-w3-gnudoit)
Jonathan G. Underwood b9972d
@@ -266,6 +267,23 @@ regexp should probably be \".\" to speci
Jonathan G. Underwood b9972d
   :version "21.1"
Jonathan G. Underwood b9972d
   :group 'browse-url)
Jonathan G. Underwood b9972d
 
Jonathan G. Underwood b9972d
+;;;###autoload
Jonathan G. Underwood b9972d
+(defcustom browse-url-xdg-open-program "xdg-open"
Jonathan G. Underwood b9972d
+  "*The name by which to invoke xdg-open."
Jonathan G. Underwood b9972d
+  :type 'string
Jonathan G. Underwood b9972d
+  :group 'browse-url)
Jonathan G. Underwood b9972d
+
Jonathan G. Underwood b9972d
+
Jonathan G. Underwood b9972d
+;;;###autoload
Jonathan G. Underwood b9972d
+(defun browse-url-default-xdg-browser (url &optional new-window)
Jonathan G. Underwood b9972d
+  (interactive (browse-url-interactive-arg "URL: "))
Jonathan G. Underwood b9972d
+  (let ((process-environment (browse-url-process-environment))
Jonathan G. Underwood b9972d
+	(process-connection-type nil))
Jonathan G. Underwood b9972d
+    (start-process (concat browse-url-xdg-open-program " " url) nil
Jonathan G. Underwood b9972d
+		   browse-url-xdg-open-program url)))
Jonathan G. Underwood b9972d
+
Jonathan G. Underwood b9972d
+
Jonathan G. Underwood b9972d
+
Jonathan G. Underwood b9972d
 (defcustom browse-url-netscape-program "netscape"
Jonathan G. Underwood b9972d
   ;; Info about netscape-remote from Karl Berry.
Jonathan G. Underwood b9972d
   "The name by which to invoke Netscape.
Jonathan G. Underwood b9972d
@@ -876,6 +894,8 @@ The order attempted is gnome-moz-remote,
Jonathan G. Underwood b9972d
 Galeon, Konqueror, Netscape, Mosaic, Lynx in an xterm, and then W3."
Jonathan G. Underwood b9972d
   (apply
Jonathan G. Underwood b9972d
    (cond
Jonathan G. Underwood b9972d
+    ((executable-find browse-url-xdg-open-program) 
Jonathan G. Underwood b9972d
+                  'browse-url-default-xdg-browser)
Jonathan G. Underwood b9972d
     ((executable-find browse-url-gnome-moz-program) 'browse-url-gnome-moz)
Jonathan G. Underwood b9972d
     ((executable-find browse-url-mozilla-program) 'browse-url-mozilla)
Jonathan G. Underwood b9972d
     ((executable-find browse-url-firefox-program) 'browse-url-firefox)