path: root/lisp/bbdb-w3.el
diff options
Diffstat (limited to 'lisp/bbdb-w3.el')
1 files changed, 61 insertions, 0 deletions
diff --git a/lisp/bbdb-w3.el b/lisp/bbdb-w3.el
new file mode 100644
index 0000000..4c9c8d4
--- /dev/null
+++ b/lisp/bbdb-w3.el
@@ -0,0 +1,61 @@
+;;; This file is part of the Insidious Big Brother Database (aka BBDB),
+;;; copyright (c) 1991, 1992, 1993 Jamie Zawinski <>.
+;;; WWW-related functions for the BBDB. See bbdb.texinfo.
+;;; The Insidious Big Brother Database is free software; you can redistribute
+;;; it and/or modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation; either version 2 or (at your
+;;; option) any later version.
+;;; BBDB is distributed in the hope that it will be useful, but WITHOUT ANY
+;;; WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+;;; FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+;;; details.
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Emacs; see the file COPYING. If not, write to
+;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+(require 'bbdb-com)
+(require 'browse-url)
+(defvar w3-mode-map)
+ (condition-case() (require 'url) (error (fset 'url-view-url 'ignore))))
+(defun bbdb-www (rec &optional which)
+ "Visit URLs stored in the `www' field of the current record.
+\\[bbdb-apply-next-command-to-all-records]\\[bbdb-www] \
+means to try all records currently visible.
+Non-interactively, do all records if arg is nonnil."
+ (interactive (list (bbdb-get-record "Visit (WWW): ")
+ (or current-prefix-arg 0)))
+ (browse-url (read-string "fetch: "
+ (or (bbdb-get-field rec 'www which)
+ (bbdb-get-field rec 'ftp which)))))
+(defun bbdb-www-grab-homepage (record)
+ "Grab the current URL and store it in the bbdb database"
+ (interactive (list (bbdb-completing-read-one-record
+ "Add WWW homepage for: ")))
+ ;; if there is no database record for this person, create one
+ (unless record
+ (setq record (bbdb-read-new-record))
+ (bbdb-invoke-hook 'bbdb-create-hook record))
+ (if (bbdb-record-getprop record 'www)
+ (bbdb-record-putprop
+ record 'www
+ (concat (bbdb-record-getprop record 'www) "," (url-view-url t)))
+ (bbdb-record-putprop record 'www (url-view-url t)))
+ (bbdb-change-record record t)
+ (bbdb-display-records (list record)))
+(defun bbdb-insinuate-w3 ()
+ "Call this function to hook BBDB into W3."
+ (add-hook 'w3-mode-hook
+ (lambda () (define-key w3-mode-map ":" 'bbdb-www-grab-homepage))))
+(provide 'bbdb-w3)