2 |
@c %**start of header |
@c %**start of header |
3 |
@setfilename ../info/eudc |
@setfilename ../info/eudc |
4 |
@settitle Emacs Unified Directory Client (EUDC) Manual |
@settitle Emacs Unified Directory Client (EUDC) Manual |
|
@iftex |
|
5 |
@afourpaper |
@afourpaper |
|
@end iftex |
|
6 |
@c %**end of header |
@c %**end of header |
7 |
|
|
8 |
@footnotestyle end |
@copying |
9 |
|
This file documents EUDC v1.30b. |
|
@ifinfo |
|
|
@dircategory Emacs |
|
|
@direntry |
|
|
* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). |
|
|
@end direntry |
|
|
|
|
|
This file documents EUDC v1.30b |
|
|
|
|
|
EUDC is part of Emacs. |
|
10 |
|
|
11 |
EUDC is the Emacs Unified Directory Client, a common interface to |
EUDC is the Emacs Unified Directory Client, a common interface to |
12 |
directory servers using various protocols such as LDAP or the CCSO white |
directory servers using various protocols such as LDAP or the CCSO white |
13 |
pages directory system (PH/QI) |
pages directory system (PH/QI) |
14 |
|
|
15 |
Copyright 1998, 2000, 2001 Free Software Foundation, Inc. |
Copyright 1998, 2000, 2001, 2002 Free Software Foundation, Inc. |
16 |
|
|
17 |
|
@quotation |
18 |
Permission is granted to copy, distribute and/or modify this document |
Permission is granted to copy, distribute and/or modify this document |
19 |
under the terms of the GNU Free Documentation License, Version 1.1 or |
under the terms of the GNU Free Documentation License, Version 1.1 or |
20 |
any later version published by the Free Software Foundation; with no |
any later version published by the Free Software Foundation; with no |
31 |
Documentation License. If you want to distribute this document |
Documentation License. If you want to distribute this document |
32 |
separately from the collection, you can do so by adding a copy of the |
separately from the collection, you can do so by adding a copy of the |
33 |
license to the document, as described in section 6 of the license. |
license to the document, as described in section 6 of the license. |
34 |
@end ifinfo |
@end quotation |
35 |
|
@end copying |
36 |
|
|
37 |
|
@dircategory Emacs |
38 |
|
@direntry |
39 |
|
* EUDC: (eudc). An Emacs client for directory servers (LDAP, PH). |
40 |
|
@end direntry |
41 |
|
|
42 |
|
@footnotestyle end |
43 |
|
|
44 |
@titlepage |
@titlepage |
45 |
@title{EUDC Manual} |
@title{EUDC Manual} |
49 |
|
|
50 |
@page |
@page |
51 |
@vskip 0pt plus 1fill |
@vskip 0pt plus 1fill |
52 |
Copyright @copyright{} 1998, 2000, 2001 Free Software Foundation, Inc. |
@insertcopying |
|
|
|
|
Permission is granted to copy, distribute and/or modify this document |
|
|
under the terms of the GNU Free Documentation License, Version 1.1 or |
|
|
any later version published by the Free Software Foundation; with no |
|
|
Invariant Sections, with the Front-Cover texts being ``A GNU |
|
|
Manual'', and with the Back-Cover Texts as in (a) below. A copy of the |
|
|
license is included in the section entitled ``GNU Free Documentation |
|
|
License'' in the Emacs manual. |
|
|
|
|
|
(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
|
|
this GNU Manual, like GNU software. Copies published by the Free |
|
|
Software Foundation raise funds for GNU development.'' |
|
|
|
|
|
This document is part of a collection distributed under the GNU Free |
|
|
Documentation License. If you want to distribute this document |
|
|
separately from the collection, you can do so by adding a copy of the |
|
|
license to the document, as described in section 6 of the license. |
|
53 |
@end titlepage |
@end titlepage |
54 |
|
|
55 |
@ifinfo |
@ifnottex |
56 |
@node Top, Overview, (dir), (dir) |
@node Top, Overview, (dir), (dir) |
57 |
@comment node-name, next, previous, up |
@comment node-name, next, previous, up |
58 |
|
|
62 |
A common interface to directory servers using various protocols such as |
A common interface to directory servers using various protocols such as |
63 |
LDAP or the CCSO white pages directory system (PH/QI) |
LDAP or the CCSO white pages directory system (PH/QI) |
64 |
|
|
65 |
@end ifinfo |
@end ifnottex |
66 |
|
|
67 |
@menu |
@menu |
68 |
* Overview:: Summary of EUDC features |
* Overview:: Summary of EUDC features |
70 |
* Usage:: The various usage possibilities explained |
* Usage:: The various usage possibilities explained |
71 |
* Credits:: Who's done what |
* Credits:: Who's done what |
72 |
* Command and Function Index:: |
* Command and Function Index:: |
73 |
* Variables Index:: |
* Variables Index:: |
74 |
@end menu |
@end menu |
75 |
|
|
76 |
|
|
83 |
|
|
84 |
EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user |
EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user |
85 |
interface to access directory servers using different directory |
interface to access directory servers using different directory |
86 |
protocols. |
protocols. |
87 |
|
|
88 |
Currently supported back-ends are: |
Currently supported back-ends are: |
89 |
|
|
99 |
The main features of the EUDC interface are: |
The main features of the EUDC interface are: |
100 |
|
|
101 |
@itemize @bullet |
@itemize @bullet |
102 |
@item |
@item |
103 |
Queries using a customizable form |
Queries using a customizable form |
104 |
@item |
@item |
105 |
Inline query expansion (for instance you can expand a name |
Inline query expansion (for instance you can expand a name |
216 |
email composition buffers (@pxref{Inline Query Expansion}) |
email composition buffers (@pxref{Inline Query Expansion}) |
217 |
|
|
218 |
@lisp |
@lisp |
219 |
(eval-after-load |
(eval-after-load |
220 |
"message" |
"message" |
221 |
'(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) |
'(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) |
222 |
(eval-after-load |
(eval-after-load |
223 |
"sendmail" |
"sendmail" |
224 |
'(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) |
'(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline)) |
225 |
@end lisp |
@end lisp |
255 |
submenu of the @samp{Tools} submenu. |
submenu of the @samp{Tools} submenu. |
256 |
|
|
257 |
@menu |
@menu |
258 |
* Querying Servers:: How queries are performed and handled |
* Querying Servers:: How queries are performed and handled |
259 |
* Query Form:: How to use and customize the query form |
* Query Form:: How to use and customize the query form |
260 |
* Display of Query Results:: Controlling how query results are presented |
* Display of Query Results:: Controlling how query results are presented |
261 |
* Inline Query Expansion:: How to use and customize inline queries |
* Inline Query Expansion:: How to use and customize inline queries |
463 |
|
|
464 |
The fields that are returned for each record |
The fields that are returned for each record |
465 |
are controlled by @code{eudc-default-return-attributes} (@pxref{Return |
are controlled by @code{eudc-default-return-attributes} (@pxref{Return |
466 |
Attributes}). |
Attributes}). |
467 |
|
|
468 |
The display of each individual field can be performed by an arbitrary |
The display of each individual field can be performed by an arbitrary |
469 |
function which allows specific processing for binary values, such as |
function which allows specific processing for binary values, such as |
484 |
Locals}). For instance, it is defined as follows for LDAP: |
Locals}). For instance, it is defined as follows for LDAP: |
485 |
|
|
486 |
@lisp |
@lisp |
487 |
(eudc-protocol-set 'eudc-attribute-display-method-alist |
(eudc-protocol-set 'eudc-attribute-display-method-alist |
488 |
'(("jpegphoto" . eudc-display-jpeg-inline) |
'(("jpegphoto" . eudc-display-jpeg-inline) |
489 |
("labeledurl" . eudc-display-url) |
("labeledurl" . eudc-display-url) |
490 |
("audio" . eudc-display-sound) |
("audio" . eudc-display-sound) |
491 |
("labeledurl" . eudc-display-url) |
("labeledurl" . eudc-display-url) |
492 |
("url" . eudc-display-url)) |
("url" . eudc-display-url)) |
493 |
'ldap) |
'ldap) |
494 |
@end lisp |
@end lisp |
495 |
|
|
547 |
@code{eudc-expanding-overwrites-query} and |
@code{eudc-expanding-overwrites-query} and |
548 |
@code{eudc-multiple-match-handling-method}. |
@code{eudc-multiple-match-handling-method}. |
549 |
|
|
550 |
If the query fails for a server, other servers may be tried successively |
If the query fails for a server, other servers may be tried successively |
551 |
until one of them finds a match (@pxref{Multi-server Queries}). |
until one of them finds a match (@pxref{Multi-server Queries}). |
552 |
|
|
553 |
@deffn Command eudc-expand-inline replace-p |
@deffn Command eudc-expand-inline replace-p |
564 |
@end deffn |
@end deffn |
565 |
|
|
566 |
@defvar eudc-inline-query-format |
@defvar eudc-inline-query-format |
567 |
Format of an inline expansion query. |
Format of an inline expansion query. |
568 |
This is actually a list of @var{format}s. A @var{format} is a list of |
This is actually a list of @var{format}s. A @var{format} is a list of |
569 |
one or more EUDC attribute names. A @var{format} applies if it contains |
one or more EUDC attribute names. A @var{format} applies if it contains |
570 |
as many attributes as individual words in the inline query string. If |
as many attributes as individual words in the inline query string. If |
572 |
is found. If @code{nil} all the words will be mapped onto the default |
is found. If @code{nil} all the words will be mapped onto the default |
573 |
server/protocol attribute name (generally @code{name}). |
server/protocol attribute name (generally @code{name}). |
574 |
|
|
575 |
For instance, use the following |
For instance, use the following |
576 |
@lisp |
@lisp |
577 |
(setq eudc-inline-query-format '((name) |
(setq eudc-inline-query-format '((name) |
578 |
(firstname) |
(firstname) |
582 |
to indicate that single word expansion queries are to be considered as |
to indicate that single word expansion queries are to be considered as |
583 |
surnames and if no match is found then they should be tried as first |
surnames and if no match is found then they should be tried as first |
584 |
names. Inline queries consisting of two words are considered as |
names. Inline queries consisting of two words are considered as |
585 |
consisting of a first name followed by a surname. If the query consists |
consisting of a first name followed by a surname. If the query consists |
586 |
of more than two words, then the first one is considered as the first |
of more than two words, then the first one is considered as the first |
587 |
name and the remaining words are all considered as surname constituents. |
name and the remaining words are all considered as surname constituents. |
588 |
|
|
620 |
The first match is considered as being the only one, the others are |
The first match is considered as being the only one, the others are |
621 |
discarded. |
discarded. |
622 |
@item select |
@item select |
623 |
A selection buffer pops up where you can choose a particular match. This |
A selection buffer pops up where you can choose a particular match. This |
624 |
is the default value of the variable. |
is the default value of the variable. |
625 |
@item all |
@item all |
626 |
The expansion uses all records successively |
The expansion uses all records successively |
637 |
@comment node-name, next, previous, up |
@comment node-name, next, previous, up |
638 |
@section The Server Hotlist |
@section The Server Hotlist |
639 |
|
|
640 |
EUDC lets you maintain a list of frequently used servers so that you |
EUDC lets you maintain a list of frequently used servers so that you |
641 |
can easily switch from one to another. This hotlist appears in the |
can easily switch from one to another. This hotlist appears in the |
642 |
@samp{Server} submenu. You select a server in this list by clicking on |
@samp{Server} submenu. You select a server in this list by clicking on |
643 |
its name. You can add the current server to the list with the command |
its name. You can add the current server to the list with the command |
661 |
|
|
662 |
@defvar eudc-options-file |
@defvar eudc-options-file |
663 |
The name of a file where EUDC stores its internal variables |
The name of a file where EUDC stores its internal variables |
664 |
(the hotlist and the current server). EUDC will try to load |
(the hotlist and the current server). EUDC will try to load |
665 |
that file upon initialization so, if you choose a file name |
that file upon initialization so, if you choose a file name |
666 |
different from the defaults @file{~/.eudc-options}, be sure to set this |
different from the defaults @file{~/.eudc-options}, be sure to set this |
667 |
variable to the appropriate value @emph{before} EUDC is itself |
variable to the appropriate value @emph{before} EUDC is itself |
775 |
mapping between BBDB field names onto directory attribute names records. |
mapping between BBDB field names onto directory attribute names records. |
776 |
This is a protocol-local variable and is initialized upon protocol |
This is a protocol-local variable and is initialized upon protocol |
777 |
switch (@pxref{Server/Protocol Locals}). The alist is made of cells of the |
switch (@pxref{Server/Protocol Locals}). The alist is made of cells of the |
778 |
form @code{(@var{bbdb-field} . @var{spec-or-list})}. |
form @code{(@var{bbdb-field} . @var{spec-or-list})}. |
779 |
@var{bbdb-field} is the name of a field |
@var{bbdb-field} is the name of a field |
780 |
that must be defined in your BBDB environment (standard field names are |
that must be defined in your BBDB environment (standard field names are |
781 |
@code{name}, @code{company}, @code{net}, @code{phone}, @code{address} |
@code{name}, @code{company}, @code{net}, @code{phone}, @code{address} |
782 |
and @code{notes}). |
and @code{notes}). |
783 |
@var{spec-or-list} is either a single mapping specification or a list of |
@var{spec-or-list} is either a single mapping specification or a list of |
784 |
mapping specifications. Lists of mapping specifications are valid for |
mapping specifications. Lists of mapping specifications are valid for |
785 |
the @code{phone} and @code{address} BBDB fields only. @var{spec}s are |
the @code{phone} and @code{address} BBDB fields only. @var{spec}s are |
786 |
actually s-expressions which are evaluated as follows: |
actually s-expressions which are evaluated as follows: |
787 |
|
|
788 |
@table @asis |
@table @asis |
789 |
@item a string |
@item a string |
790 |
evaluates to itself |
evaluates to itself |
791 |
@item a symbol |
@item a symbol |
792 |
evaluates to the symbol value. Symbols corresponding to directory |
evaluates to the symbol value. Symbols corresponding to directory |
793 |
attribute names present in the record evaluate to the value of the field |
attribute names present in the record evaluate to the value of the field |
794 |
in the record |
in the record |
795 |
@item a form |
@item a form |
796 |
is evaluated as a function. The argument list may contain attribute |
is evaluated as a function. The argument list may contain attribute |
797 |
names which evaluate to the corresponding values in the record. The form |
names which evaluate to the corresponding values in the record. The form |
798 |
evaluation should return something appropriate for the particular |
evaluation should return something appropriate for the particular |
799 |
@var{bbdb-field} (see @code{bbdb-create-internal}). |
@var{bbdb-field} (see @code{bbdb-create-internal}). |
816 |
This means that: |
This means that: |
817 |
|
|
818 |
@itemize @bullet |
@itemize @bullet |
819 |
@item |
@item |
820 |
the @code{name} field of the BBDB record gets its value |
the @code{name} field of the BBDB record gets its value |
821 |
from the @code{name} attribute of the directory record |
from the @code{name} attribute of the directory record |
822 |
@item |
@item |
932 |
@end defun |
@end defun |
933 |
|
|
934 |
@defun eudc-variable-server-value var [server] |
@defun eudc-variable-server-value var [server] |
935 |
Return the value of @var{var} local to @var{server}. |
Return the value of @var{var} local to @var{server}. |
936 |
Return @code{unbound} if @var{var} has no value local to @var{server}. |
Return @code{unbound} if @var{var} has no value local to @var{server}. |
937 |
@var{server} defaults to @code{eudc-server}. |
@var{server} defaults to @code{eudc-server}. |
938 |
@end defun |
@end defun |
952 |
@comment node-name, next, previous, up |
@comment node-name, next, previous, up |
953 |
@chapter Credits |
@chapter Credits |
954 |
|
|
955 |
EUDC was written by Oscar Figueiredo based on @file{ph.el} by the |
EUDC was written by Oscar Figueiredo based on @file{ph.el} by the |
956 |
same author. |
same author. |
957 |
|
|
958 |
Thanks to Soren Dayton for his suggestions, his enthusiasm and his help |
Thanks to Soren Dayton for his suggestions, his enthusiasm and his help |