emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to eudc.texi


From: Glenn Morris
Subject: [Emacs-diffs] Changes to eudc.texi
Date: Thu, 06 Sep 2007 04:59:51 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       07/09/06 04:59:51

Index: eudc.texi
===================================================================
RCS file: eudc.texi
diff -N eudc.texi
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ eudc.texi   6 Sep 2007 04:59:51 -0000       1.1
@@ -0,0 +1,985 @@
+\input texinfo.tex
address@hidden %**start of header
address@hidden ../info/eudc
address@hidden Emacs Unified Directory Client (EUDC) Manual
address@hidden
address@hidden %**end of header
+
address@hidden
+This file documents EUDC v1.30b.
+
+EUDC is the Emacs Unified Directory Client, a common interface to
+directory servers using various protocols such as LDAP or the CCSO white
+pages directory system (PH/QI)
+
+Copyright @copyright{} 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+Free Software Foundation, Inc.
+
address@hidden
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.2 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.
address@hidden quotation
address@hidden copying
+
address@hidden Emacs
address@hidden
+* EUDC: (eudc).   An Emacs client for directory servers (LDAP, PH).
address@hidden direntry
+
address@hidden end
+
address@hidden
address@hidden Manual}
address@hidden Emacs Unified Directory Client}
address@hidden by Oscar Figueiredo
address@hidden
+
address@hidden
address@hidden 0pt plus 1fill
address@hidden
address@hidden titlepage
+
address@hidden
address@hidden     Top, Overview, (dir), (dir)
address@hidden  node-name,  next,         previous, up
+
+
+This manual documents EUDC v1.30b, the Emacs Unified Directory Client.
+
+A common interface to directory servers using various protocols such as
+LDAP or the CCSO white pages directory system (PH/QI)
+
address@hidden ifnottex
+
address@hidden
+* Overview::                    Summary of EUDC features
+* Installation::                How to install EUDC
+* Usage::                       The various usage possibilities explained
+* Credits::                     Who's done what
+* GNU Free Documentation License:: The license for this documentation.
+* Command and Function Index::
+* Variables Index::
address@hidden menu
+
+
+
+
+
address@hidden     Overview, Installation, Top, Top
address@hidden  node-name,   next,  previous,  up
address@hidden Overview
+
+EUDC, the @dfn{Emacs Unified Directory Client}, provides a common user
+interface to access directory servers using different directory
+protocols.
+
+Currently supported back-ends are:
+
address@hidden @bullet
address@hidden
+LDAP, Lightweight Directory Access Protocol
address@hidden
+CCSO PH/QI
address@hidden
+BBDB, Big Brother's Insidious Database
address@hidden itemize
+
+The main features of the EUDC interface are:
+
address@hidden @bullet
address@hidden
+Queries using a customizable form
address@hidden
+Inline query expansion (for instance you can expand a name
+to an email address in a mail message buffer using a server as an
+address book)
address@hidden
+Multiple servers can be tried in turn until a match is found for an
+inline query
address@hidden
+Fast minibuffer queries for email addresses and phone numbers
address@hidden
+Interface to BBDB to let you insert server records into your own BBDB database
+(@pxref{Top,,BBDB,bbdb,BBDB Manual})
address@hidden itemize
+
address@hidden
+* LDAP::                        What is LDAP ?
+* CCSO PH/QI::                  What is CCSO, PH, QI ?
+* BBDB::                        What is BBDB ?
address@hidden menu
+
+
+
address@hidden LDAP, CCSO PH/QI, Overview, Overview
address@hidden  node-name,  next,  previous,  up
address@hidden LDAP
+
+LDAP, @dfn{the Lightweight Directory Access Protocol}, is a communication
+protocol for directory applications defined in RFC 1777.
+
+Quoted from RFC 1777:
+
address@hidden
+[LDAP] is designed to provide access to the X.500 Directory while not
+incurring the resource requirements of the Directory Access Protocol
+(DAP). This protocol is specifically targeted at simple management
+applications and browser applications that provide simple read/write
+interactive access to the X.500 Directory, and is intended to be a
+complement to the DAP itself.
address@hidden quotation
+
+LDAP servers usually store (but are not limited to) information about
+people such as their name, phone number, email address, office
+location, address@hidden More information about LDAP can be found at
address@hidden://www.openldap.org/}
+
+EUDC requires external support to access LDAP directory servers
+(@pxref{LDAP Requirements})
+
+
address@hidden CCSO PH/QI, BBDB, LDAP, Overview
address@hidden  node-name,  next,  previous,  up
address@hidden CCSO PH/QI
+
+The Central Computing Services Office (CCSO) of the University of
+Illinois at Urbana Champaign (UIUC) created and freely distributes a
+directory system that is currently in use in more than 300 organizations
+around the world.  The system records information about people such as
+their address, phone number, email, academic information or any other
+details it was configured to.
+
+The system consists of two parts: a database server traditionally called
address@hidden and a command-line client called @samp{ph}.
address@hidden://uiarchive.cso.uiuc.edu/pub/packages/ph} is the main
+distribution site.  @url{http://www.uiuc.edu/cgi-bin/ph/lookup?Query=.}
+provides a listing of the active @samp{qi} servers.
+
+The original command-line @samp{ph} client that comes with the
address@hidden/qi} distribution provides additional features like the
+possibility to communicate with the server in login-mode which makes it
+possible to change records in the database.  This is not implemented in
+EUDC.
+
+
address@hidden BBDB,  , CCSO PH/QI, Overview
address@hidden  node-name,  next,  previous,  up
address@hidden BBDB
+
+BBDB is the @dfn{Big Brother's Insidious Database}, a package for Emacs
+originally written by Jamie Zawinski which provides rolodex-like
+database functionality featuring tight integration with the Emacs mail
+and news readers.
+
+It is often used as an enhanced email address book.
+
+EUDC considers BBDB as a directory server back end just like LDAP or
+PH/QI servers, though BBDB has no client/server protocol and thus always
+resides locally on your machine.  The point in this is not to offer an
+alternate way to query your BBDB database (BBDB itself provides much
+more flexible ways to do that), but rather to offer an interface to your
+local directory that is consistent with the interface to external
+directories (LDAP, PH/QI).  This is particularly interesting when
+performing queries on multiple servers.
+
+EUDC also offers a means to insert results from directory queries into
+your own local BBDB (@pxref{Creating BBDB Records})
+
address@hidden Installation, Usage, Overview, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Installation
+
+Add the following to your @file{.emacs} init file:
address@hidden
+(require 'eudc)
address@hidden lisp
+This will install EUDC at startup.
+
+After installing EUDC you will find (the next time you launch Emacs) a
+new @code{Directory Search} submenu in the @samp{Tools} menu that will
+give you access to EUDC.
+
+You may also find it useful to add the following to your @file{.emacs}
+initialization file to add a shortcut for email address expansion in
+email composition buffers (@pxref{Inline Query Expansion})
+
address@hidden
+(eval-after-load
+ "message"
+ '(define-key message-mode-map [(control ?c) (tab)] 'eudc-expand-inline))
+(eval-after-load
+ "sendmail"
+ '(define-key mail-mode-map [(control ?c) (tab)] 'eudc-expand-inline))
address@hidden lisp
+
address@hidden
+* LDAP Requirements::           EUDC needs external support for LDAP
address@hidden menu
+
address@hidden LDAP Requirements,  , Installation, Installation
address@hidden  node-name,  next,  previous,  up
address@hidden LDAP Requirements
+
+LDAP support is added by means of @file{ldap.el} which is part of Emacs.
address@hidden needs an external command line utility named
address@hidden which is available as part of LDAP toolkits:
+
address@hidden @bullet
address@hidden
+Open LDAP Libraries
+(@url{http://www.openldap.org/})
address@hidden
+University of Michigan's LDAP Client software
+(@url{http://www.umich.edu/~dirsvcs/ldap/})
address@hidden itemize
+
+
address@hidden Usage, Credits, Installation, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Usage
+
+This chapter describes the usage of EUDC.  Most functions and
+customization options are available through the @samp{Directory Search}
+submenu of the @samp{Tools} submenu.
+
address@hidden
+* Querying Servers::            How queries are performed and handled
+* Query Form::                  How to use and customize the query form
+* Display of Query Results::    Controlling how query results are presented
+* Inline Query Expansion::      How to use and customize inline queries
+* The Server Hotlist::          How to use and manage the server hotlist
+* Multi-server Queries::        How to query multiple servers successively
+* Creating BBDB Records::       How to insert query results into your BBDB
+* Server/Protocol Locals::      Customizing on a per server/protocol basis
address@hidden menu
+
+
address@hidden Querying Servers, Query Form, Usage, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Querying Servers
+
+EUDC's basic functionality is to let you query a directory server and
+return the results back to you.  There are several things you may want
+to customize in this process.
+
+
address@hidden
+* Selecting a Server::          The first thing to do
+* Return Attributes::           Configuring what the server should return
+* Duplicate Attributes::        What to do when records have duplicate 
attributes
address@hidden menu
+
address@hidden Selecting a Server, Return Attributes, Querying Servers, 
Querying Servers
address@hidden Selecting a Server
+
+Before doing any query you will need to set the directory server.  You
+need to specify the name of the host machine running the server software
+and the protocol to use. If you do not set the server in any fashion,
+EUDC will ask you for one when you make your first query.
+
+You can set the server by selecting one from your hotlist of servers
+(@pxref{The Server Hotlist}) available in the @samp{Server} submenu or
+by selecting @samp{New Server} in that same menu.
+
+LDAP servers generally require some configuration before you can perform
+queries on them.  In particular, the @dfn{search base} must be
+configured.  If the server you select has no configured search base then
+EUDC will propose you to configure it at this point.  A customization
+buffer will be displayed where you can edit the search base and other
+parameters for the server.
+
address@hidden eudc-server
+The name or IP address of the remote directory server. A TCP port number
+may be specified by appending a colon and a number to the name of the
+server. You will not need this unless your server runs on a port other
+than the default (which depends on the protocol).
+If the directory server resides on your own computer (which is the case
+if you use the BBDB back end) then `localhost' is a reasonable value but
+it will be ignored anyway.
address@hidden defvar
+
address@hidden eudc-protocol
+The directory protocol to use to query the server.  Currently supported
+protocols in this version of EUDC are @code{ph}, @code{ldap} and @code{bbdb}.
address@hidden defvar
+
address@hidden Command eudc-set-server
+This command accessible from @samp{New Server} submenu lets you specify a
+new directory server and protocol.
address@hidden deffn
+
address@hidden Return Attributes, Duplicate Attributes, Selecting a Server, 
Querying Servers
address@hidden Return Attributes
+
+Directory servers may be configured to return a default set of
+attributes for each record matching a query if the query specifies none.
+The variable @code{eudc-default-return-attributes} controls the return
+attributes you want to see, if different from the server defaults.
+
address@hidden eudc-default-return-attributes
+A list of the default attributes to extract from directory entries.  If
+set to the symbol @code{all} then all available attributes are
+returned. A value of @code{nil}, the default, means to return the
+default attributes as configured in the server.
address@hidden defvar
+
+The server may return several matching records to a query. Some of the
+records may however not contain all the attributes you requested. You can
+discard those records.
+
address@hidden eudc-strict-return-matches
+If address@hidden, entries that do not contain all the requested return
+attributes are ignored.  Default is @code{t}.
address@hidden defopt
+
address@hidden Duplicate Attributes,  , Return Attributes, Querying Servers
address@hidden Duplicate Attributes
+
+Directory standards may authorize different instances of the same
+attribute in a record. For instance the record of a person may contain
+several email fields containing different email addresses. When using
+a QI directory server this is difficult to distinguish from attributes
+having multi-line values such as the postal address that may contain a
+line for the street and another one for the zip code and city name. In
+both cases, EUDC will consider the attribute duplicated.
+
+EUDC has several methods to deal with duplicated attributes. The
+available methods are:
+
address@hidden @code
address@hidden list
+Makes a list with the different values of the duplicate attribute. The
+record is returned with only one instance of the attribute with a list
+of all the different values as a value. This is the default method that
+is used to handle duplicate fields for which no other method has been
+specified.
address@hidden first
+Discards all the duplicate values of the field keeping only the first
+one.
address@hidden concat
+Concatenates the different values using a newline as a separator. The
+record keeps only one instance of the field the value of which is a
+single multi-line string.
address@hidden duplicate
+Duplicates the whole record into as many instances as there are different
+values for the field. This is the default for the email field. Thus a
+record containing 3 different email addresses is duplicated into three
+different records each having a single email address. This is
+particularly useful in combination with @code{select} as the method to
+handle multiple matches in inline expansion queries (@pxref{Inline Query
+Expansion}) because you are presented with the 3 addresses in a
+selection buffer
address@hidden table
+
+Because a method may not be applicable to all fields, the variable
address@hidden lets you specify either a
+default method for all fields or a method for each individual field.
+
address@hidden eudc-duplicate-attribute-handling-method
+A method to handle entries containing duplicate attributes.  This is
+either an alist of elements @code{(@var{attr} . @var{method})}, or a symbol
address@hidden  The alist form of the variable associates a method to an
+individual attribute name; the second form specifies a method applicable
+to all attribute names. Available methods are: @code{list},
address@hidden, @code{concat}, and @code{duplicate} (see above).  The default is
address@hidden
address@hidden defvar
+
+
+
address@hidden Query Form, Display of Query Results, Querying Servers, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Query Form
+
+The simplest way to query your directory server is to use the query
+form. You display the query form with the @samp{Query with Form} menu
+item or by invoking the command @kbd{M-x eudc-query-form}. The attribute
+names presented in this form are defined by the
address@hidden variable (unless a address@hidden
+argument is supplied to @code{eudc-query-form}).
+
+Since the different directory protocols to which EUDC interfaces may
+use different names for equivalent attributes, EUDC defines its own set
+of attribute names and a mapping between these names and their
+protocol-specific equivalent through the variable
address@hidden  Names currently
+defined by EUDC are @code{name}, @code{firstname}, @code{email} and
address@hidden
+
address@hidden eudc-query-form-attributes
address@hidden eudc-get-attribute-list
+A list of attributes presented in the query form.  Attribute names in
+this list should be either EUDC attribute names or valid attribute
+names.  You can get a list of valid attribute names for the current
+protocol with the @samp{List Valid Attribute Names} menu item or the
address@hidden eudc-get-attribute-list} command.  Defaults to @code{name},
address@hidden and @code{phone}.
address@hidden defvar
+
address@hidden Command eudc-query-form get-fields-from-server
+Display a form to query the directory server.  If given a address@hidden
+argument the function first queries the server for the existing fields
+and displays a corresponding form.  Not all protocols may support a
address@hidden argument here.
address@hidden deffn
+
+Since the names of the fields may not be explicit enough or adapted to
+be directly displayed as prompt strings in the form, the variable
address@hidden lets you define more explicit
+names for directory attribute names.  This variable is ignored if
address@hidden is address@hidden
+
address@hidden eudc-user-attribute-names-alist
+This is an alist of user-defined names for the directory attributes used in
+query/response forms. Prompt strings for attributes that are not in this
+alist are derived by splitting the attribute name at underscores and
+capitalizing the individual words.
address@hidden defvar
+
address@hidden eudc-use-raw-directory-names
+If address@hidden, use attributes names as defined in the directory.
+Otherwise, directory query/response forms display the user attribute
+names defined in @code{eudc-user-attribute-names-alist}.
address@hidden defvar
+
address@hidden Display of Query Results, Inline Query Expansion, Query Form, 
Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Display of Query Results
+
+Upon successful completion of a form query, EUDC will display a buffer
+containing the results of the query.
+
+The fields that are returned for each record
+are controlled by @code{eudc-default-return-attributes} (@pxref{Return
+Attributes}).
+
+The display of each individual field can be performed by an arbitrary
+function which allows specific processing for binary values, such as
+images or audio samples, as well as values with semantics, such as
+URLs.
+
address@hidden eudc-attribute-display-method-alist
+An alist specifying methods to display attribute values.  Each member of
+the list is of the form @code{(@var{name} . @var{func})} where
address@hidden is a lowercased string naming a directory attribute
+(translated according to @code{eudc-user-attribute-names-alist} if
address@hidden is address@hidden) and @var{func} a
+function that will be passed the corresponding attribute values for
+display.
address@hidden defvar
+
+This variable has protocol-local definitions (see @pxref{Server/Protocol
+Locals}).  For instance, it is defined as follows for LDAP:
+
address@hidden
+(eudc-protocol-set 'eudc-attribute-display-method-alist
+                   '(("jpegphoto" . eudc-display-jpeg-inline)
+                     ("labeledurl" . eudc-display-url)
+                     ("audio" . eudc-display-sound)
+                     ("labeledurl" . eudc-display-url)
+                     ("url" . eudc-display-url))
+                   'ldap)
address@hidden lisp
+
+EUDC provides a set of built-in functions to display binary value types:
+
address@hidden eudc-display-generic-binary data
+Display a button for unidentified binary @var{data}.
address@hidden defun
+
address@hidden eudc-display-url url
+Display URL and make it clickable.
address@hidden defun
+
address@hidden eudc-display-sound data
+Display a button to play the sound @var{data}.
address@hidden defun
+
address@hidden eudc-display-jpeg-inline data
+Display the JPEG @var{data} inline at point if possible.
address@hidden defun
+
address@hidden eudc-display-jpeg-as-button data
+Display a button for the JPEG @var{data}.
address@hidden defun
+
+Right-clicking on a binary value button pops up a contextual menu with
+options to process the value.  Among these are saving the attribute
+value to a file or sending it to an external viewer command.  External
+viewers should expect the value on their standard input and should
+display it or perform arbitrary processing on it.  Messages sent to
+standard output are discarded.  External viewers are listed in the
+variable @code{eudc-external-viewers} which you can customize.
+
address@hidden eudc-external-viewers
+This is a list of viewer program specifications.  Each specification is
+a list whose first element is a string naming the viewer for unique
+identification, the second element is the executable program which
+should be invoked and the following elements are arguments that should
+be passed to the program.
address@hidden defvar
+
+
address@hidden Inline Query Expansion, The Server Hotlist, Display of Query 
Results, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Inline Query Expansion
+
+Inline query expansion is a powerful method to get completion from your
+directory server.  The most common usage is for expanding names to email
+addresses in mail message buffers.  The expansion is performed by the
+command @kbd{M-x eudc-expand-inline} which is available from the
address@hidden Inline Query} menu item but can also be conveniently
+bound to a key shortcut (@pxref{Installation}).  The operation is
+controlled by the variables @code{eudc-inline-expansion-format},
address@hidden,
address@hidden and
address@hidden
+
+If the query fails for a server, other servers may be tried successively
+until one of them finds a match (@pxref{Multi-server Queries}).
+
address@hidden Command eudc-expand-inline replace-p
+Query the server and expand the query string before point.  The query
+string consists of the buffer substring from the point back to the
+preceding comma, colon or beginning of
+line.  @code{eudc-inline-query-format} controls how individual words
+are mapped onto directory attribute names.  After querying the server
+for the given string, the expansion specified by
address@hidden is inserted in the buffer at
+point. If @var{replace-p} is @code{t} then this expansion replaces the
+query string in the buffer.  If @code{eudc-expanding-overwrites-query}
+is address@hidden then the meaning of @var{replace-p} is negated.
address@hidden deffn
+
address@hidden eudc-inline-query-format
+Format of an inline expansion query.
+This is actually a list of @var{format}s.  A @var{format} is a list of
+one or more EUDC attribute names.  A @var{format} applies if it contains
+as many attributes as individual words in the inline query string.  If
+several @var{format}s apply then they are tried in order until a match
+is found.  If @code{nil} all the words will be mapped onto the default
+server/protocol attribute name (generally @code{name}).
+
+For instance, use the following
address@hidden
+(setq eudc-inline-query-format '((name)
+                                 (firstname)
+                                 (firstname name)))
address@hidden lisp
address@hidden
+to indicate that single word expansion queries are to be considered as
+surnames and if no match is found then they should be tried as first
+names.  Inline queries consisting of two words are considered as
+consisting of a first name followed by a surname.  If the query consists
+of more than two words, then the first one is considered as the first
+name and the remaining words are all considered as surname constituents.
+
address@hidden are in fact not limited to EUDC attribute names, you can
+use server or protocol specific names in them.  It may be safer if you
+do so, to set the variable @code{eudc-inline-query-format} in a protocol
+or server local fashion (see @pxref{Server/Protocol Locals}).
+
+For instance you could use the following to match up to three words
+against the @code{cn} attribute of LDAP servers:
address@hidden
+(eudc-protocol-set 'eudc-inline-query-format
+                   '((cn)
+                     (cn cn)
+                     (cn cn cn))
+                   'ldap)
address@hidden lisp
address@hidden defvar
+
address@hidden eudc-inline-expansion-format
+This variable lets you control exactly what is inserted into the buffer
+upon an inline expansion request.  It is a list whose first element is a
+string passed to @code{format}.  Remaining elements are symbols
+corresponding to directory attribute names.  The corresponding attribute
+values are passed as additional arguments to @code{format}.  Default is
address@hidden("%s" email)} but you may want to consider a value like @code{("%s
+<%s>" name email)}
address@hidden defvar
+
address@hidden eudc-multiple-match-handling-method
+This variable controls what to do when multiple entries match a query
+for an inline expansion.  Possible values are:
address@hidden @code
address@hidden first
+The first match is considered as being the only one, the others are
+discarded.
address@hidden select
+A selection buffer pops up where you can choose a particular match.  This
+is the default value of the variable.
address@hidden all
+The expansion uses all records successively
address@hidden abort
+An error is signaled.  The expansion aborts.
address@hidden table
+
+Default is @code{select}
address@hidden defvar
+
+
+
address@hidden The Server Hotlist, Multi-server Queries, Inline Query 
Expansion, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden The Server Hotlist
+
+EUDC lets you maintain a list of frequently used servers so that you
+can easily switch from one to another.  This hotlist appears in the
address@hidden submenu.  You select a server in this list by clicking on
+its name.  You can add the current server to the list with the command
address@hidden eudc-bookmark-current-server}.  The list is contained in the 
variable
address@hidden which is stored in and retrieved from the file
+designated by @code{eudc-options-file}.  EUDC also provides a facility to
+edit the hotlist interactively (@pxref{The Hotlist Edit Buffer}).
+
+The hotlist is also used to make queries on multiple servers
+successively (@pxref{Multi-server Queries}).  The order in which the
+servers are tried is the order they appear in the hotlist, therefore it
+is important to sort the hotlist appropriately.
+
address@hidden Command eudc-bookmark-server server
+Add @var{server} to the hotlist of servers
address@hidden deffn
+
address@hidden Command eudc-bookmark-current-server
+Add the current server to the hotlist of servers
address@hidden deffn
+
address@hidden eudc-options-file
+The name of a file where EUDC stores its internal variables
+(the hotlist and the current server).  EUDC will try to load
+that file upon initialization so, if you choose a file name
+different from the defaults @file{~/.eudc-options}, be sure to set this
+variable to the appropriate value @emph{before} EUDC is itself
+loaded.
address@hidden defvar
+
address@hidden
+* The Hotlist Edit Buffer::     An interactive hotlist editing facility
address@hidden menu
+
address@hidden The Hotlist Edit Buffer,  , The Server Hotlist, The Server 
Hotlist
address@hidden  node-name,  next,  previous,  up
address@hidden The Hotlist Edit Buffer
+
+The hotlist edit buffer offers a means to manage a list of frequently
+used servers.  Commands are available in the context pop-up menu
+generally bound to the right mouse button.  Those commands also have
+equivalent key bindings.
+
address@hidden Command eudc-hotlist-add-server
+Bound to @kbd{a}.
+Add a new server to the hotlist on the line after point
address@hidden deffn
+
address@hidden Command eudc-hotlist-delete-server
+Bound to @kbd{d}.
+Delete the server on the line point is on
address@hidden deffn
+
address@hidden Command eudc-hotlist-select-server
+Bound to @kbd{s}.
+Select the server the point is on as the current directory server for
+the next queries
address@hidden deffn
+
address@hidden Command eudc-hotlist-transpose-servers
+Bound to @kbd{t}.
+Bubble up the server the point is on to the top of the list
address@hidden deffn
+
address@hidden Command eudc-hotlist-quit-edit
+Bound to @kbd{q}.
+Save the changes and quit the hotlist edit buffer.  Use @kbd{x} or
address@hidden kill-buffer} to exit without saving.
address@hidden deffn
+
+
address@hidden Multi-server Queries, Creating BBDB Records, The Server Hotlist, 
Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Multi-server Queries
+
+When using inline query expansion (@pxref{Inline Query Expansion}), EUDC
+can try to query successively a sequence of directory servers until one
+of them successfully finds a match for the query.
+
address@hidden eudc-inline-expansion-servers
+This variable controls which servers are tried and in which order when
+trying to perform an inline query.  Possible values are:
address@hidden @code
address@hidden current-server
+Only the current directory server is tried
address@hidden hotlist
+The servers in the hotlist are tried in order until one finds a match
+for the query or `eudc-max-servers-to-query' is reached
address@hidden server-then-hotlist
+The current server then the servers in the hotlist are tried in the
+order they appear in the hotlist until one of them finds a match or
+`eudc-max-servers-to-query' is reached.  This is the default.
address@hidden table
address@hidden defvar
+
address@hidden eudc-max-servers-to-query
+This variable indicates the maximum number of servers to query when
+performing a multi-server query.  The default, @code{nil}, indicates
+that all available servers should be tried.
address@hidden defvar
+
+
+
address@hidden Creating BBDB Records, Server/Protocol Locals, Multi-server 
Queries, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Creating BBDB Records
+
address@hidden eudc-insert-record-at-point-into-bbdb
address@hidden eudc-try-bbdb-insert
+With EUDC, you can automatically create BBDB records
+(@pxref{Top,,BBDB,bbdb,BBDB Manual}) from records you get from a
+directory server.  You do this by moving point to the appropriate
+record in a query result display buffer and invoking the command
address@hidden eudc-insert-record-at-point-into-bbdb} with the
+keyboard binding @address@hidden key binding does not actually
+call @code{eudc-insert-record-at-point-into-bbdb} but uses
address@hidden instead.}, or with the menu.  EUDC
+cannot update an existing BBDB record and will signal an error if you
+try to insert a record matching an existing one.
+
address@hidden eudc-batch-export-records-to-bbdb
+It is also possible to export to BBDB the whole batch of records
+contained in the directory query result with the command
address@hidden eudc-batch-export-records-to-bbdb}.
+
+Because directory systems may not enforce a strict record format, local
+server installations may use different attribute names and have
+different ways to organize the information.  Furthermore BBDB has its own
+record structure.  For these reasons converting a record from its
+external directory format to the BBDB format is a highly customizable
+process.
+
address@hidden eudc-bbdb-conversion-alist
+The value of this variable should be a symbol naming an alist defining a
+mapping between BBDB field names onto directory attribute names records.
+This is a protocol-local variable and is initialized upon protocol
+switch (@pxref{Server/Protocol Locals}).  The alist is made of cells of the
+form @code{(@var{bbdb-field} . @var{spec-or-list})}.
address@hidden is the name of a field
+that must be defined in your BBDB environment (standard field names are
address@hidden, @code{company}, @code{net}, @code{phone}, @code{address}
+and @code{notes}).
address@hidden is either a single mapping specification or a list of
+mapping specifications.  Lists of mapping specifications are valid for
+the @code{phone} and @code{address} BBDB fields only. @var{spec}s are
+actually s-expressions which are evaluated as follows:
+
address@hidden @asis
address@hidden a string
+evaluates to itself
address@hidden a symbol
+evaluates to the symbol value.  Symbols corresponding to directory
+attribute names present in the record evaluate to the value of the field
+in the record
address@hidden a form
+is evaluated as a function.  The argument list may contain attribute
+names which evaluate to the corresponding values in the record.  The form
+evaluation should return something appropriate for the particular
address@hidden (see @code{bbdb-create-internal}).
address@hidden and @code{eudc-bbdbify-address} are provided as
+convenience functions to parse phones and addresses.
address@hidden table
address@hidden defvar
+
+The default value of the PH-specific value of that variable is
address@hidden:
+
address@hidden
+((name . name)
+ (net . email)
+ (address . (eudc-bbdbify-address address "Address"))
+ (phone . ((eudc-bbdbify-phone phone "Phone")
+           (eudc-bbdbify-phone office_phone "Office Phone"))))
address@hidden lisp
+
+This means that:
+
address@hidden @bullet
address@hidden
+the @code{name} field of the BBDB record gets its value
+from the @code{name} attribute of the directory record
address@hidden
+the @code{net} field of the BBDB record gets its value
+from the @code{email} attribute of the directory record
address@hidden
+the @code{address} field of the BBDB record is obtained by parsing the
address@hidden attribute of the directory record with the function
address@hidden
address@hidden
+two @code{phone} fields are created (when possible) in the BBDB record.
+The first one has @cite{Phone} for location and its value is obtained by
+parsing the @code{phone} attribute of the PH/QI record with the function
address@hidden  The second one has @cite{Office Phone} for location
+its value is obtained by parsing the @code{office_phone} attribute of the
+PH/QI record with the function @code{eudc-bbdbify-phone}.
address@hidden itemize
+
address@hidden eudc-bbdbify-phone phone location
+This is a convenience function provided for use in
address@hidden  It parses @var{phone} into a vector
+compatible with @code{bbdb-create-internal}.  @var{phone} is either a string
+supposedly containing a phone number or a list of such strings which are
+concatenated. @var{location} is used as the phone location for BBDB.
address@hidden defun
+
address@hidden eudc-bbdbify-address addr location
+This is a convenience function provided for use in
address@hidden  It parses @var{addr} into a vector
+compatible with @code{bbdb-create-internal}.  @var{addr} should be an
+address string of no more than four lines or a list of lines.  The last
+line is searched for the zip code, city and state name.  @var{location}
+is used as the phone location for BBDB.
address@hidden defun
+
+Note that only a subset of the attributes you selected with
address@hidden and that are actually displayed may
+actually be inserted as part of the newly created BBDB record.
+
+
address@hidden Server/Protocol Locals,  , Creating BBDB Records, Usage
address@hidden  node-name,  next,  previous,  up
address@hidden Server/Protocol Locals
+
+EUDC can be customized independently for each server or directory
+protocol.  All variables can be given local bindings that are activated
+when a particular server and/or protocol becomes active.  This is much
+like buffer-local bindings but on a per server or per protocol basis.
+
address@hidden
+* Manipulating local bindings::  Functions to set and query local bindings
address@hidden menu
+
address@hidden Manipulating local bindings,  , Server/Protocol Locals, 
Server/Protocol Locals
address@hidden  node-name,  next,  previous,  up
address@hidden Manipulating local bindings
+
+EUDC offers functions that let you set and query variables on a per
+server or per protocol basis.
+
+The following predicates allow you to test the existence of
+server/protocol local bindings for a particular variable.
+
address@hidden eudc-server-local-variable-p var
+Return address@hidden if @var{var} has server-local bindings
address@hidden defun
+
address@hidden eudc-protocol-local-variable-p var
+Return address@hidden if @var{var} has protocol-local bindings
address@hidden defun
+
+The following functions allow you to set the value of a variable with
+various degrees of locality.
+
address@hidden eudc-default-set var val
+Set the EUDC default value of @var{var} to @var{val}.
+The current binding of @var{var} (if local to the current server or
+protocol) is not changed.
address@hidden defun
+
address@hidden eudc-protocol-set var val &optional protocol
+Set the binding of @var{var} local to @var{protocol} to @var{val}.  If
+omitted, @var{protocol} defaults to the current value of
address@hidden  The current binding of @var{var} is changed only
+if @var{protocol} is omitted.
address@hidden defun
+
address@hidden eudc-server-set var val &optional server
+Set the binding of @var{var} local to @var{server} to @var{val}.  If
+omitted, @var{server} defaults to the current value of
address@hidden  The current binding of @var{var} is changed only if
address@hidden is omitted.
address@hidden defun
+
address@hidden eudc-set var val
+Set the most local (server, protocol or default) binding of @var{var} to
address@hidden  The current binding of @var{var} is also set to @var{val}.
address@hidden defun
+
+The following variables allow you to query the various bindings of a
+variable (local or non-local).
+
address@hidden eudc-variable-default-value var
+Return the default binding of @var{var} (outside of a particular server
+or protocol local binding).
+Return @code{unbound} if @var{var} has no EUDC default value.
address@hidden defun
+
address@hidden eudc-variable-protocol-value var &optional protocol
+Return the value of @var{var} local to @var{protocol}.  Return
address@hidden if @var{var} has no value local to @var{protocol}.
address@hidden defaults to @code{eudc-protocol}.
address@hidden defun
+
address@hidden eudc-variable-server-value var [server]
+Return the value of @var{var} local to @var{server}.
+Return @code{unbound} if @var{var} has no value local to @var{server}.
address@hidden defaults to @code{eudc-server}.
address@hidden defun
+
+Changing a protocol-local or server-local value of a variable has no
+effect on its current value.  The following command is used to
+synchronize the current values of variables with their local values
+given the current @code{eudc-server} and @code{eudc-protocol}:
+
address@hidden eudc-update-local-variables
+Update all EUDC variables according to their local settings.
address@hidden defun
+
+
+
address@hidden Credits, GNU Free Documentation License, Usage, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Credits
+
+EUDC was written by Oscar Figueiredo based on @file{ph.el} by the
+same author.
+
+Thanks to Soren Dayton for his suggestions, his enthusiasm and his help
+in testing and proofreading the code and docs of @file{ph.el}.
+
address@hidden GNU Free Documentation License, Command and Function Index, 
Credits, Top
address@hidden GNU Free Documentation License
address@hidden doclicense.texi
+
address@hidden Command and Function Index, Variables Index, GNU Free 
Documentation License, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Command and Function Index
+
address@hidden fn
+
address@hidden Variables Index,  , Command and Function Index, Top
address@hidden  node-name,  next,  previous,  up
address@hidden Variables Index
+
address@hidden vr
+
address@hidden odd
address@hidden
address@hidden
+
address@hidden
+   arch-tag: 1b79460b-4ea1-441d-ab45-05ddd16ef241
address@hidden ignore




reply via email to

[Prev in Thread] Current Thread [Next in Thread]