-;;; eudc.el --- Emacs Unified Directory Client
+;;; eudc.el --- Emacs Unified Directory Client -*- coding: utf-8 -*-
-;; Copyright (C) 1998-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1998-2013 Free Software Foundation, Inc.
;; Author: Oscar Figueiredo <oscar@cpe.fr>
-;; Maintainer: Pavel Janík <Pavel@Janik.cz>
+;; Maintainer: Pavel Janík <Pavel@Janik.cz>
;; Keywords: comm
;; This file is part of GNU Emacs.
(eval-and-compile
(if (not (fboundp 'make-overlay))
- (require 'overlay))
- (if (not (fboundp 'unless))
- (require 'cl)))
+ (require 'overlay)))
(unless (fboundp 'custom-menu-create)
(autoload 'custom-menu-create "cus-edit"))
(setq plist (cdr (cdr plist))))
nil))
-;; Emacs' plist-get lacks third parameter
+;; Emacs's plist-get lacks third parameter
(defun eudc-plist-get (plist prop &optional default)
"Extract a value from a property list.
PLIST is a property list, which is a list of the form
The translation is done according to
`eudc-protocol-attributes-translation-alist'."
(if eudc-protocol-attributes-translation-alist
- (mapcar '(lambda (attribute)
- (let ((trans (assq (car attribute)
- (symbol-value eudc-protocol-attributes-translation-alist))))
- (if trans
- (cons (cdr trans) (cdr attribute))
- attribute)))
+ (mapcar (lambda (attribute)
+ (let ((trans (assq (car attribute)
+ (symbol-value eudc-protocol-attributes-translation-alist))))
+ (if trans
+ (cons (cdr trans) (cdr attribute))
+ attribute)))
query)
query))
`eudc-protocol-attributes-translation-alist'."
(if eudc-protocol-attributes-translation-alist
(let (trans)
- (mapcar '(lambda (attribute)
+ (mapcar (lambda (attribute)
(setq trans (assq attribute
(symbol-value eudc-protocol-attributes-translation-alist)))
(if trans
precords))
(insert "\n")
(widget-create 'push-button
- :notify (lambda (&rest ignore)
+ :notify (lambda (&rest _ignore)
(eudc-query-form))
"New query")
(widget-insert " ")
(widget-create 'push-button
- :notify (lambda (&rest ignore)
+ :notify (lambda (&rest _ignore)
(kill-this-buffer))
"Quit")
(eudc-mode)
result))
-(defun eudc-mode ()
+(define-derived-mode eudc-mode special-mode "EUDC"
"Major mode used in buffers displaying the results of directory queries.
There is no sense in calling this command from a buffer other than
one containing the results of a directory query.
n -- Move to next record.
p -- Move to previous record.
b -- Insert record at point into the BBDB database."
- (interactive)
- (kill-all-local-variables)
- (setq major-mode 'eudc-mode)
- (setq mode-name "EUDC")
- (use-local-map eudc-mode-map)
(if (not (featurep 'xemacs))
(easy-menu-define eudc-emacs-menu eudc-mode-map "" (eudc-menu))
- (setq mode-popup-menu (eudc-menu)))
- (run-mode-hooks 'eudc-mode-hook))
+ (setq mode-popup-menu (eudc-menu))))
;;}}}
(interactive (list
(read-from-minibuffer "Directory Server: ")
(intern (completing-read "Protocol: "
- (mapcar '(lambda (elt)
+ (mapcar (lambda (elt)
(cons (symbol-name elt)
elt))
eudc-known-protocols)))))
(> n 0))
(setq formats
(delq nil
- (mapcar '(lambda (format)
+ (mapcar (lambda (format)
(if (= n
(length format))
format
fields)
(widget-insert "\n\n")
(widget-create 'push-button
- :notify (lambda (&rest ignore)
+ :notify (lambda (&rest _ignore)
(eudc-process-form))
"Query Server")
(widget-insert " ")
(widget-create 'push-button
- :notify (lambda (&rest ignore)
+ :notify (lambda (&rest _ignore)
(eudc-query-form))
"Reset Form")
(widget-insert " ")
(widget-create 'push-button
- :notify (lambda (&rest ignore)
+ :notify (lambda (&rest _ignore)
(kill-this-buffer))
"Quit")
(goto-char pt)
(defun eudc-move-to-next-record ()
"Move to next record, in a buffer displaying directory query results."
(interactive)
- (if (not (eq major-mode 'eudc-mode))
+ (if (not (derived-mode-p 'eudc-mode))
(error "Not in a EUDC buffer")
(let ((pt (next-overlay-change (point))))
(if (< pt (point-max))
(defun eudc-move-to-previous-record ()
"Move to previous record, in a buffer displaying directory query results."
(interactive)
- (if (not (eq major-mode 'eudc-mode))
+ (if (not (derived-mode-p 'eudc-mode))
(error "Not in a EUDC buffer")
(let ((pt (previous-overlay-change (point))))
(if (> pt (point-min))
(overlay-get (car (overlays-at (point))) 'eudc-record))
:help "Insert record at point into the BBDB database"]
["Insert All Records into BBDB" eudc-batch-export-records-to-bbdb
- (and (eq major-mode 'eudc-mode)
+ (and (derived-mode-p 'eudc-mode)
(or (featurep 'bbdb)
(prog1 (locate-library "bbdb") (message ""))))
:help "Insert all the records returned by a directory query into BBDB"]
;;; Load the options file
(if (and (not noninteractive)
(and (locate-library eudc-options-file)
- (progn (message "") t)) ; Remove modeline message
+ (progn (message "") t)) ; Remove mode line message
(not (featurep 'eudc-options-file)))
(load eudc-options-file))