Mercurial > emacs
view lisp/net/eudcb-mab.el @ 96496:e374c747704b
Fix typos, and general docstring cleanup.
* nxml/nxml-glyph.el (nxml-glyph-set-hook):
* nxml/nxml-uchnm.el (nxml-unicode-blocks)
(nxml-unicode-block-char-name-set):
* nxml/nxml-util.el (nxml-debug, nxml-make-namespace):
* nxml/rng-nxml.el (rng-set-state-after):
* nxml/rng-uri.el (rng-file-name-uri): Fix typo in docstring.
* nxml/rng-cmpct.el (rng-c-lookup-create, rng-c-parse-primary)
(rng-c-parse-annotation-body):
* nxml/rng-dt.el (rng-dt-namespace-context-getter): Reflow docstrings.
* nxml/nxml-mode.el (nxml, nxml-mode, nxml-after-change1)
(nxml-extend-region, nxml-merge-indent-context-type, nxml-complete)
(nxml-forward-balanced-item, nxml-dynamic-markup-word)
(nxml-define-char-name-set, nxml-toggle-char-ref-extra-display):
Fix typos in docstrings.
(nxml-attribute-indent): Reflow docstring.
(nxml-bind-meta-tab-to-complete-flag, nxml-last-fontify-end)
(nxml-default-buffer-file-coding-system): Doc fixes.
* nxml/nxml-ns.el (nxml-ns-state, nxml-ns-initial-state)
(nxml-ns-set-prefix): Fix typos in docstrings.
(nxml-ns-push-state, nxml-ns-pop-state, nxml-ns-set-default):
Reflow docstring.
(nxml-ns-get-prefix, nxml-ns-get-default): Doc fixes.
* nxml/nxml-outln.el (nxml-hide-all-text-content)
(nxml-show-direct-text-content, nxml-show-direct-subheadings)
(nxml-hide-direct-text-content, nxml-hide-subheadings)
(nxml-hide-text-content, nxml-show-subheadings, nxml-hide-other)
(nxml-outline-display-rest, nxml-outline-set-overlay)
(nxml-section-tag-forward, nxml-section-tag-backward)
(nxml-back-to-section-start): Fix typos in docstrings.
* nxml/nxml-parse.el (nxml-validate-function, nxml-parse-file):
Doc fixes.
* nxml/nxml-rap.el (nxml-scan-end, nxml-move-tag-backwards)
(nxml-scan-element-forward, nxml-scan-element-backward): Doc fixes.
(nxml-scan-after-change): Fix typo in docstring.
* nxml/rng-match.el (rng-being-compiled, rng-normalize-choice-list)
(rng-name-class-possible-names): Doc fixes.
(rng-memo-map-add, rng-intern-group, rng-match-possible-namespace-uris)
(rng-match-possible-start-tag-names, rng-match-possible-value-strings):
Fix typos in docstrings.
(rng-intern-group-shortcut, rng-intern-choice-shortcut):
Reflow docstrings.
* nxml/rng-util.el (rng-uniquify-eq, rng-uniquify-equal): Doc fixes.
(rng-substq, rng-complete-before-point): Fix typos in docstrings.
* nxml/rng-xsd.el (rng-xsd-make-date-time-regexp)
(rng-xsd-convert-date-time): Reflow docstrings.
(rng-xsd-compile): Fix typo in docstring.
* nxml/rng-loc.el (rng-current-schema-file-name)
(rng-locate-schema-file-using, rng-locate-schema-file-from-type-id):
Doc fixes.
(rng-set-schema-file): Fix typo in docstring.
* nxml/rng-valid.el (rng-error-count, rng-validate-mode)
(rng-do-some-validation, rng-process-start-tag, rng-process-text):
Fix typos in docstrings.
(rng-message-overlay, rng-conditional-up-to-date-start)
(rng-conditional-up-to-date-end): Doc fixes.
(rng-next-error, rng-previous-error): Reflow docstrings.
* nxml/xmltok.el (xmltok-attribute-raw-normalized-value): Doc fix.
(xmltok-dtd, xmltok-dependent-regions, xmltok-attribute-refs)
(xmltok-valid-char-p, xmltok-standalone, xmltok-forward-prolog)
(xmltok-merge-attributes): Fix typos in docstrings.
(xmltok-make-attribute, xmltok-forward-special)
(xmltok-get-declared-encoding-position): Reflow docstrings.
* nxml/xsd-regexp.el (xsdre-char-class-to-range-list): Doc fix.
(xsdre-range-list-union, xsdre-check-range-list, xsdre-current-regexp):
Fix typos in docstrings.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Thu, 03 Jul 2008 12:25:23 +0000 |
parents | 91e5880a36c1 |
children | a9dc0e7c3f2b |
line wrap: on
line source
;;; eudcb-mab.el --- Emacs Unified Directory Client - AddressBook backend ;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@newartisans.com> ;; Maintainer: FSF ;; Keywords: comm ;; This file is part of GNU Emacs. ;; GNU Emacs 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 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs 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. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; This library provides an interface to use the Mac's AddressBook, ;; by way of the "contacts" command-line utility which can be found ;; by searching on the Net. ;;; Code: (require 'eudc) (require 'executable) ;;{{{ Internal cooking (defvar eudc-mab-conversion-alist nil) (defvar eudc-buffer-time nil) (defvar eudc-contacts-file "~/Library/Application Support/AddressBook/AddressBook.data") (eudc-protocol-set 'eudc-query-function 'eudc-mab-query-internal 'mab) (eudc-protocol-set 'eudc-list-attributes-function nil 'mab) (eudc-protocol-set 'eudc-mab-conversion-alist nil 'mab) (eudc-protocol-set 'eudc-protocol-has-default-query-attributes nil 'mab) (defun eudc-mab-query-internal (query &optional return-attrs) "Query MAB with QUERY. QUERY is a list of cons cells (ATTR . VALUE) where ATTRs should be valid MAB attribute names. RETURN-ATTRS is a list of attributes to return, defaulting to `eudc-default-return-attributes'." (let ((fmt-string "%ln:%fn:%p:%e") (mab-buffer (get-buffer-create " *mab contacts*")) (modified (nth 5 (file-attributes eudc-contacts-file))) result) (with-current-buffer mab-buffer (make-local-variable 'eudc-buffer-time) (goto-char (point-min)) (when (or (eobp) (time-less-p eudc-buffer-time modified)) (erase-buffer) (call-process (executable-find "contacts") nil t nil "-H" "-l" "-f" fmt-string) (setq eudc-buffer-time modified)) (goto-char (point-min)) (while (not (eobp)) (let* ((args (split-string (buffer-substring (point) (line-end-position)) "\\s-*:\\s-*")) (lastname (nth 0 args)) (firstname (nth 1 args)) (phone (nth 2 args)) (mail (nth 3 args)) (matched t)) (if (string-match "\\s-+\\'" mail) (setq mail (replace-match "" nil nil mail))) (dolist (term query) (cond ((eq (car term) 'name) (unless (string-match (cdr term) (concat firstname " " lastname)) (setq matched nil))) ((eq (car term) 'email) (unless (string= (cdr term) mail) (setq matched nil))) ((eq (car term) 'phone)))) (when matched (setq result (cons `((firstname . ,firstname) (lastname . ,lastname) (name . ,(concat firstname " " lastname)) (phone . ,phone) (email . ,mail)) result)))) (forward-line))) (if (null return-attrs) result (let (eudc-result) (dolist (entry result) (let (entry-attrs abort) (dolist (attr entry) (when (memq (car attr) return-attrs) (if (= (length (cdr attr)) 0) (setq abort t) (setq entry-attrs (cons attr entry-attrs))))) (if (and entry-attrs (not abort)) (setq eudc-result (cons entry-attrs eudc-result))))) eudc-result)))) ;;}}} ;;{{{ High-level interfaces (interactive functions) (defun eudc-mab-set-server (dummy) "Set the EUDC server to MAB." (interactive) (eudc-set-server dummy 'mab) (message "MAB server selected")) ;;}}} (eudc-register-protocol 'mab) (provide 'eudcb-mab) ;; arch-tag: 4bef8e65-f109-47c7-91b9-8a6ea3ed7bb1 ;;; eudcb-mab.el ends here