blob: 4c9c8d4a9d58fc653d86539fe1af39ba83384b30 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
;;; This file is part of the Insidious Big Brother Database (aka BBDB),
;;; copyright (c) 1991, 1992, 1993 Jamie Zawinski <jwz@netscape.com>.
;;; 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)
(eval-when-compile
(condition-case() (require 'url) (error (fset 'url-view-url 'ignore))))
;;;###autoload
(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)))))
;;;###autoload
(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)))
;;;###autoload
(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)
|