summaryrefslogtreecommitdiff
path: root/bits/bbdb-edit.el
diff options
context:
space:
mode:
Diffstat (limited to 'bits/bbdb-edit.el')
-rw-r--r--bits/bbdb-edit.el139
1 files changed, 0 insertions, 139 deletions
diff --git a/bits/bbdb-edit.el b/bits/bbdb-edit.el
deleted file mode 100644
index b22f308..0000000
--- a/bits/bbdb-edit.el
+++ /dev/null
@@ -1,139 +0,0 @@
-;;; bbdb-edit.el --- BBDB field edit
-;; Copyright (C) 1999, 2000, 2001 Shenghuo ZHU
-
-;; Author: Shenghuo ZHU <zsh@cs.rochester.edu>
-;; Created: Fri Aug 27 17:45:25 EDT 1999
-;; Keywords: BBDB field edit
-
-;; This file is not a part of GNU Emacs.
-;;
-;; This file 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.
-;;
-;; This file 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, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-
-;; bbdb-field-edit-add (`insert') and bbdb-field-edit-del (`delete')
-;; add/del a item to/from a certain field of the bbdb record. These
-;; keys also support `*'.
-
-;;; Code:
-
-(require 'bbdb)
-
-(defun bbdb-field-edit-get-values (record field)
- (cond
- ((eq field 'net) (bbdb-record-net record))
- ((eq field 'AKA) (bbdb-record-aka record))
- ((eq field 'address) (bbdb-record-addresses record))
- ((eq field 'phone) (bbdb-record-phones record))
- (t (bbdb-split (or (bbdb-record-getprop record field) "")
- (or (get field 'field-separator)
- bbdb-notes-default-separator)))))
-
-(defun bbdb-field-edit-put-values (record field values)
- (if values
- (cond
- ((eq field 'net) (bbdb-record-set-net record values))
- ((eq field 'AKA) (bbdb-record-set-aka record values))
- ((eq field 'address) (bbdb-record-set-addresses record values))
- ((eq field 'phone) (bbdb-record-set-phones record values))
- (t (bbdb-record-putprop record field
- (bbdb-join values
- (or (get field 'field-separator)
- bbdb-notes-default-separator)))))
- (if (memq field '(net AKA address))
- (bbdb-record-store-field-internal record field nil)
- (bbdb-record-putprop record field nil)))
- (bbdb-change-record record t)
- (bbdb-redisplay-one-record record))
-
-;;;###autoload
-(defun bbdb-field-edit-add (bbdb-record field value)
- "Add VALUE to FIELD of bbdb-record(s)."
- (interactive (list (if (bbdb-do-all-records-p)
- (mapcar 'car bbdb-records)
- (list (bbdb-current-record)))
- (completing-read
- "Field: "
- (append '(("net")("notes")("AKA"))
- (bbdb-propnames))
- nil nil
- (symbol-name
- (let ((on-field (bbdb-current-field t)))
- (cond ((null on-field) 'mail-alias)
- ((eq (car on-field) 'property)
- (car (nth 1 on-field)))
- (t (car on-field))))))
- (bbdb-read-string "Value: ")))
- (if (stringp field) (setq field (intern field)))
- (if (memq field '(name address phone))
- (error "Use `e' to edit this field."))
- (while bbdb-record
- (let ((values (bbdb-field-edit-get-values (car bbdb-record) field)))
- (if (member value values) nil
- (bbdb-field-edit-put-values (car bbdb-record) field
- (cons value values))))
- (setq bbdb-record (cdr bbdb-record))))
-
-;;;###autoload
-(defun bbdb-field-edit-del (bbdb-record field value)
- "Delete VALUE to FIELD of bbdb-record(s).
-If prefix arg exists, delete all existing field values matching VALUE(regexp)."
- (interactive (list (if (bbdb-do-all-records-p)
- (mapcar 'car bbdb-records)
- (list (bbdb-current-record)))
- (completing-read
- "Field: "
- (append '(("net")("notes")("AKA"))
- (bbdb-propnames))
- nil nil (symbol-name
- (let ((on-field (bbdb-current-field t)))
- (cond ((null on-field) 'mail-alias)
- ((eq (car on-field) 'property)
- (car (nth 1 on-field)))
- (t (car on-field))))))
- (bbdb-read-string (if current-prefix-arg
- "Regexp: "
- "Value: "))))
- (if (stringp field) (setq field (intern field)))
- (if (memq field '(name address phone))
- (error "Use `e' to edit this field."))
- (while bbdb-record
- (let ((values (bbdb-field-edit-get-values (car bbdb-record) field)))
- (cond
- (current-prefix-arg
- (let (nvalues found)
- (while values
- (if (string-match value (car values))
- (setq found t)
- (setq nvalues (cons (car values) nvalues)))
- (setq values (cdr values)))
- (if found
- (bbdb-field-edit-put-values (car bbdb-record) field
- (nreverse nvalues)))))
- (t
- (if (member value values)
- (bbdb-field-edit-put-values (car bbdb-record) field
- (delete value values))))))
- (setq bbdb-record (cdr bbdb-record))))
-
-;;; The key binding might be moved to somewhere else.
-
-(define-key bbdb-mode-map [(insert)] 'bbdb-field-edit-add)
-(define-key bbdb-mode-map [(delete)] 'bbdb-field-edit-del)
-
-(provide 'bbdb-edit)
-
-;; bbdb-edit.el ends here