2002-01-16 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
- * net/eudc-export.el: New maintainer. Change author's address.
+ * net/eudc.el: New maintainer. Change author's address.
+ (eudc-pre-select-window-configuration, eudc-insertion-marker):
+ Variables removed.
+ (eudc-insert-selected): Function removed.
+ (eudc-select): Reimplemented.
+ (eudc-expand-inline): Delete the strings only after its expansion
+ is chosen not before.
+
+ * net/eudcb-ph.el (eudc-ph-open-session): Remove XEmacs case.
+ Minor coding style fixes.
+
+ * net/eudcb-ldap.el: New maintainer. Change author's address.
+ (eudc-attribute-display-method-alist): Display mail with
+ eudc-display-mail.
+
+ * net/eudcb-bbdb.el, net/eudc-export.el, net/eudc-hotlist.el,
+ * net/eudc-vars.el: New maintainer. Change author's address.
* net/eudc-bob.el: New maintainer. Change author's address.
(eudc-bob-mail-keymap): New keymap for e-mail addresses.
;;; eudc.el --- Emacs Unified Directory Client
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
-;; Author: Oscar Figueiredo <oscar@xemacs.org>
-;; Maintainer: Oscar Figueiredo <oscar@xemacs.org>
+;; Author: Oscar Figueiredo <oscar@cpe.fr>
+;; Maintainer: Pavel Janík <Pavel@Janik.cz>
;; Keywords: comm
;; This file is part of GNU Emacs.
(defvar eudc-form-widget-list nil)
(defvar eudc-mode-map nil)
-;; Used by the selection insertion mechanism
-(defvar eudc-pre-select-window-configuration nil)
-(defvar eudc-insertion-marker nil)
;; List of known servers
;; Alist of (SERVER . PROTOCOL)
list))
list))
-(defun eudc-select (choices)
- "Choose one from CHOICES using a completion buffer."
- (setq eudc-pre-select-window-configuration (current-window-configuration))
- (setq eudc-insertion-marker (point-marker))
- (with-output-to-temp-buffer "*EUDC Completions*"
- (apply 'display-completion-list
- choices
- (if eudc-xemacs-p
- '(:activate-callback eudc-insert-selected)))))
-
-(defun eudc-insert-selected (event extent user)
- "Insert a completion at the appropriate point."
- (when eudc-insertion-marker
- (set-buffer (marker-buffer eudc-insertion-marker))
- (goto-char eudc-insertion-marker)
- (insert (extent-string extent)))
- (if eudc-pre-select-window-configuration
- (set-window-configuration eudc-pre-select-window-configuration))
- (setq eudc-pre-select-window-configuration nil
- eudc-insertion-marker nil))
+(defun eudc-select (choices beg end)
+ "Choose one from CHOICES using a completion.
+BEG and END delimit the text which is to be replaced."
+ (let ((replacement))
+ (setq replacement
+ (completing-read "Multiple matches found; choose one:"
+ (mapcar 'list choices)))
+ (delete-region beg end)
+ (insert replacement)))
(defun eudc-query (query &optional return-attributes no-translation)
"Query the current directory server with QUERY.
individual inline query words with directory attribute names.
After querying the server for the given string, the expansion specified by
`eudc-inline-expansion-format' is inserted in the buffer at point.
-If REPLACE is non nil, then this expansion replaces the name in the buffer.
-`eudc-expansion-overwrites-query' being non nil inverts the meaning of REPLACE.
+If REPLACE is non-nil, then this expansion replaces the name in the buffer.
+`eudc-expansion-overwrites-query' being non-nil inverts the meaning of REPLACE.
Multiple servers can be tried with the same query until one finds a match,
see `eudc-inline-expansion-servers'"
(interactive)
(if (or
(and replace (not eudc-expansion-overwrites-query))
(and (not replace) eudc-expansion-overwrites-query))
- (delete-region beg end))
+ (kill-ring-save beg end))
(cond
((or (= (length response-strings) 1)
(null eudc-multiple-match-handling-method)
(eq eudc-multiple-match-handling-method 'first))
+ (delete-region beg end)
(insert (car response-strings)))
((eq eudc-multiple-match-handling-method 'select)
- (eudc-select response-strings))
+ (eudc-select response-strings beg end))
((eq eudc-multiple-match-handling-method 'all)
(insert (mapconcat 'identity response-strings ", ")))
((eq eudc-multiple-match-handling-method 'abort)
- (error "There is more than one match for the query"))
- ))
+ (error "There is more than one match for the query"))))
(or (and (equal eudc-server eudc-former-server)
(equal eudc-protocol eudc-former-protocol))
(eudc-set-server eudc-former-server eudc-former-protocol t)))
(goto-char pt)
(error "No more records before point")))))
-
;;}}}
;;{{{ Menus an keymaps