This commit was generated by cvs2svn to compensate for changes in r1705,
[chise/xemacs-chise.git.1] / etc / NEWS
index 01711ba..856fc15 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -9,7 +9,7 @@ history.
 
 Use `C-c C-f' to move to the next equal level of outline, and
 `C-c C-b' to move to previous equal level.  `C-h m' will give more
-info about the Outline mode.  Many commands are also available through 
+info about the Outline mode.  Many commands are also available through
 the menubar.
 
 Users who would like to know which capabilities have been introduced
@@ -32,8 +32,504 @@ file.
 \f
 * Changes in XEmacs 21.2
 ========================
-None yet.
 
+** The delete key now deletes forward by default.
+
+This is regulated by the variable `delete-key-deletes-forward', which
+now defaults to t.  `delete-key-deletes-forward' takes effect only on
+the systems that offer both a backspace and a delete key.  If set to
+nil, the key labeled "Delete" will always delete backward.  If set to
+non-nil, the "Delete" key will delete forward, except on keyboards
+where a "Backspace" key is not provided (e.g. old DEC keyboards.)
+
+Unless our implementation has bugs, the only reason why you would want
+to set `delete-key-deletes-forward' to nil is if you want to use the
+Delete key to delete backwards, despite the presence (according to
+Xlib) of a BackSpace key on the keyboard.
+
+** Shifted motion keys now select text by default.  You can turn this
+off by setting `shifted-motion-keys-select-region' to nil.
+
+** You can now set the variable `kill-whole-line' to `always', which
+makes `kill-line' (C-k) delete the entire line always, not just when
+the cursor is at the beginning of the line.  This behavior, as well as
+the existing kill-whole-line behavior, now only take effect when
+kill-line is called interactively, although this is a departure from a
+previous behavior in the case of setting this variable kill-whole-line
+to t.  It is almost certainly what has always been intended, and most
+likely the old way of doing things introduced bugs.
+
+The new function `historical-kill-line' ignores the `kill-whole-line'
+setting and always gives the historical behavior of only killing to
+the end of the line.  This function is bound to Sh-C-k, so that the
+kill to end of line behavior is available, even when `kill-whole-line'
+has been customized.
+
+** XEmacs menus now have accelerators by default.  If a menu item does
+not have an accelerator specified, one is created dynamically, using
+numbers 1-9 and letters.
+
+** Interactive searching and matching case improvements.
+
+Case sensitiveness in searching operations is normally controlled by
+the variable `case-fold-search' (if non-nil, case is ignored while
+searching).  This mechanism has now been slightly improved for
+interactive searches: if the search string (or regexp) contains
+uppercase characters, the searching is forced to be case-sensitive,
+`case-fold-search'.
+
+The new behavior affects all functions performing interactive
+searches, like `zap-to-char', `list-matching-lines', `tags-search'
+etc.  The incremental search facility has always behaved that way.
+
+** Incremental search will now highlight all visible matches, making
+it easier to anticipate where consecutive C-s or C-r will place the
+point.  If you want to disable the feature, set
+`isearch-highlight-all-matches' to nil.
+
+** You can now use the buffer tabs to switch between buffers.  The
+tabs are located between the toolbar and the uppermost window, in a
+location called "gutter".  If you dislike the buffer tabs, you can
+disable them by customizing `gutter-buffers-tab-visible-p', or by
+placing this in your .emacs:
+
+   (set-gutter-element-visible-p default-gutter-visible-p 'buffers-tab nil)
+
+You can change the location of the gutter with
+`set-default-gutter-position', however currently only MS-Windows
+supports tab widgets with orientations other than vertical.
+
+** Kill and yank now interact with the clipboard by default under
+Windows.  This was done by changing the default value of
+`interprogram-cut-function' and `interprogram-paste-function'.  You
+can get the old behavior by setting these to nil, and there is an
+option on the options menu to do this.
+
+** When you press RET at a minibuffer prompt that provides a default
+value, the value is stored in history instead of an empty line.  Also,
+you can now edit the default value by pressing the down arrow,
+accessing the logical "future" value.  Not all minibuffer prompts have
+yet been converted to support this feature.
+
+** The rectangle functions have been almost completely rewritten in
+order to avoid inserting undesirable spaces, notably at the end of
+lines.  Two typical examples of the old behavior were
+`string-rectangle', which filled all lines up to the right side of the
+rectangle, and `clear-rectangle', which filled even empty lines up to
+the left side.  All functions have been rewritten to avoid inserting
+unwanted spaces, and an optional prefix now allows them to behave the
+old way.
+
+Also, the behavior of `string-rectangle' is now compliant with
+`pending-delete-mode': if this mode is active, then the string
+replaces the region rectangle.  Otherwise, the command does not delete
+or overwrite any existing text.  For those who want that feature but do
+not use pending-delete-mode, a new function, `replace-rectangle', is
+available.
+
+As a side effect, the FORCE argument to `move-to-column' now
+understands the special value `coerce', which means that the line
+should not be filled if it is too short to reach the desired column.
+
+** Customize now supports adding comments about your face and variable
+settings using a new menu entry.  Comments for variables can also be
+assigned by calling `customize-set-(value|variable)' with a prefix
+argument.
+
+** XEmacs now locates the early package hierarchies at
+~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/.  Previously,
+the early packages were located in ~/.xemacs/.
+
+** You can now create "indirect buffers", like in GNU Emacs.  An
+indirect buffer shares its text with another buffer ("base buffer"),
+but has its own major mode, local variables, extents, and narrowing.
+An indirect buffer has a name of its own, distinct from those of the
+base buffer and all other buffers.  An indirect buffer cannot itself
+be visiting a file (though its base buffer can be).  The base buffer
+cannot itself be indirect.
+
+Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer
+named NAME whose base is BASE-BUFFER.  If BASE-BUFFER is itself an
+indirect buffer, its base buffer is used as the base for the new
+buffer.
+
+You can make an indirect buffer current, or switch to it in a window,
+just as you would a non-indirect buffer.
+
+The function `buffer-base-buffer' returns a buffer's base buffer or
+nil, if given an ordinary (non-indirect) buffer.  The function
+`buffer-indirect-children' returns a list of the indirect children of
+a base buffer.
+
+** User names following the tilde character can now be completed at
+file name prompts; e.g. `C-x C-f ~hni<TAB>' will complete to
+`~hniksic/'.  To make this operation faster, a cache of user names is
+maintained internally.
+
+The new primitives available for this purpose are functions named
+`user-name-completion' and `user-name-all-completions'.
+
+** XEmacs can now play sound using Enlightenment Sound Daemon (ESD).
+It will try NAS first, then ESD, then playing native sound directly.
+
+** X-Face support is now available under MS-Windows.
+If an X-Face libary built under MS-Windows is available then XEmacs
+will use this at build time.
+
+** The font-menu is now available under MS-Windows.
+
+** MS-Windows support for selection is now much more robust.
+
+Generally selection should now do what you would expect under
+MS-Windows: the middle mouse button will paste your current selection
+or the clipboard; conversions from different types of selection to the
+clipboard can be made; the kill-ring and friends will be updated as
+per X.
+
+The only thing selection doesn't do is set the clipboard automatically
+as this would break the MS-Windows model.  If you want this behavior
+then set `selection-sets-clipboard' to t.
+
+** Mail spool locking now works correctly.
+XEmacs has always come with a little auxiliary program, movemail,
+which moves mail out of the system's spool area into user storage.  To
+coordinate between XEmacs, the mail delivery agent, and other mail
+user agents, movemail needs to properly lock the spool file before
+moving it.  Movemail now correctly respects the --mail-locking option
+to configure.  Moreover, movemail's locking behavior can be specified
+at run-time, via a new command-line option -m to movemail, or through
+the environment variable EMACSLOCKMETHOD.
+
+When installing XEmacs, make sure you configure it according to your
+environment's mail spool locking conventions.  When you're using a
+binary kit, set the `mail-lock-method' variable at startup, or the
+EMACSLOCKMETHOD environment variable.
+
+** Init file will move to ~/.xemacs/init.el.
+
+If `~/.xemacs/init.el' exists, XEmacs will prefer it over `~/.emacs'
+as an init file.  The file may be byte-compiled as
+`~/.xemacs/init.elc'.
+
+Future versions of XEmacs will stop supporting `~/.emacs' as an init
+file.  XEmacs offers automatic migration upon startup.
+
+** Custom file will move to ~/.xemacs/custom.el.
+
+Whereas customize settings were formerly stored in the regular init
+file, XEmacs now prefers them to be in a separate file
+`~/.xemacs/custom.el', completely under automatic control.  This
+change goes with the migration of the init file, and XEmacs offers
+automatic migration upon startup.
+
+** Init file may be called .emacs.el.
+
+For the time being, like in GNU Emacs 20.4 and on, you can now name
+the XEmacs init file `.emacs.el'.  Formerly the name had to be
+`.emacs'.  If you use the name `.emacs.el', you can byte-compile the
+file in the usual way.
+
+If both `.emacs' and `.emacs.el' exist, the latter file is the one
+that is used.
+
+** New command-line switches -user-init-file and -user-init-directory.
+These can be used to specify alternate locations for what is normally
+~/.emacs and ~/.xemacs.
+
+Moreover, -user <user> (which used to only work in unpredictable ways)
+is now equivalent to -user-init-file ~<user>/.xemacs/init.el
+-user-init-directory ~<user>/.xemacs.  or -user-init-file
+~<user>/.emacs -user-init-directory ~<user>/.xemacs, whichever init
+file comes first.
+
+** New variable `mswindows-meta-activates-menu'.
+If you set this variable to nil then pressing and releasing the Alt
+key under MS-Windows will no longer activate the menubar.  The default
+is t.  This is not to be confused with `menu-accelerator-enabled',
+which enables the use of Alt+<Letter> accelerators to invoke the
+menus.
+
+** Pixel-based scrolling has been implemented.
+By default this will attempt to scroll in increments equal to the
+height of the default face.  Set `window-pixel-scroll-increment' to
+modify this behavior.
+
+** Operation progress can be displayed using graphical widgets.
+See `lprogress-display' for details.  This support has been switched
+on by default for font-lock and some web browsing functions.  If you
+do not like this behavior set `progress-feedback-use-echo-area'.
+
+** The PostgreSQL Relational Database Management System is now supported.
+It is now possible to build XEmacs so that the programming interface
+to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp.
+Supported versions of PostgreSQL are 6.5.3 (earlier versions may work,
+but have not been tested) and 7.0-beta1.
+
+** Etags changes.
+
+*** In DOS, etags looks for file.cgz if it cannot find file.c.
+
+*** New option --ignore-case-regex is an alternative to --regex.  It is now
+possible to bind a regexp to a language, by prepending the regexp with
+{lang}, where lang is one of the languages that `etags --help' prints
+out.  This feature is useful especially for regex files, where each
+line contains a regular expression.  The manual contains details.
+
+*** In C and derived languages, etags creates tags for function
+declarations when given the --declarations option.
+
+*** In C++, tags are created for "operator".  The tags have the form
+"operator+", without spaces between the keyword and the operator.
+
+*** New language Ada: tags are functions, procedures, packages, tasks, and
+types.
+
+*** In Fortran, procedure is no more tagged.
+
+*** In Java, tags are created for "interface".
+
+*** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs
+are now tagged.
+
+*** In Perl, the --globals option tags global variables.  my and local
+variables are tagged.
+
+*** New language Python: def and class at the beginning of a line are tags.
+
+*** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is
+for PSWrap.
+
+\f
+* Lisp and internal changes in XEmacs 21.2
+==========================================
+
+** A new portable dumper is available for beta testing.
+
+Olivier Galibert has written a portable dumper for XEmacs, based on
+initial work by Kyle Jones.  Normally, XEmacs C sources link into an
+executable called `temacs', which loads the Lisp code and "unexecs"
+into a proper `xemacs' executable.  The unexec() process is hard to
+implement correctly and makes XEmacs very hard to port to new
+operating systems, or even to new releases of old systems.
+
+A portable dumper is a different approach to dumping: instead of
+dumping full-fledged executable, it only dumps out the initialized
+data structures (both Lisp and C) into an external file.  A normally
+running XEmacs only needs to mmap() that file and relocate a bit to
+get to the initialized data.  In that scheme, there is no difference
+between `temacs' and `xemacs'.
+
+This is all very experimental, though.  Configure with `--pdump' to
+try testing it.
+
+** Much effort has been invested to make XEmacs Lisp faster:
+
+*** Many basic lisp operations are now faster.
+This is especially the case when running a Mule-enabled XEmacs.
+
+A general overhaul of the lisp engine should produce a speedup of 1.4
+in a Latin-1 XEmacs, and 2.1 in a Mule XEmacs.  These numbers were
+obtained running `(byte-compile "simple.el")', which should be a
+pretty typical test of "pure" Lisp.
+
+*** Lisp hash tables have been re-implemented.  The Common Lisp style
+hash table interface has been made standard, and moved from cl.el into
+fast C code (See the section on hash tables in the XEmacs Lisp
+Reference).  A speedup factor of 3 can be expected with code that
+makes intensive use of hash tables.
+
+*** The garbage collector has been tuned, leading to a speedup of
+1.16.
+
+*** The family of functions that iterate over lists, like `memq', and
+`rassq', have been made a little faster (typically 1.3).
+
+*** Lisp function calls are faster, by approximately a factor of two.
+However, defining inline functions (via defsubst) still makes sense
+for tight loops.
+
+*** Finally, a few functions have had dramatic performance
+improvements.  For example, `(last long-list)' is now 30 times faster.
+
+Of course, your mileage will vary.
+
+Many operations do not see any improvement.  Surprisingly, running
+(font-lock-fontify-buffer) does not use the Lisp engine much at all.
+Speeding up your favorite slow operation is an excellent project to
+improve XEmacs.  Don't forget to profile!
+
+** Native widgets can be displayed in buffers.
+
+The glyph system has been extended to allow the display of glyphs that
+are implemented as native window-system widgets.  Thus you can embed
+buttons, scrollbars, combo boxes, edit fields and progress gauges in a
+buffer.  As a side effect subwindow support now works once again.
+
+All of this is still fairly experimental and there is no
+documentation.  The current APIs might change in a future version of
+XEmacs.  Some widgets are only available under MS-Windows.  See the
+file glyphs-test.el in the XEmacs src distribution for examples of
+usage.
+
+The buffers-tab functionality and progress gauge have been implemented
+using this feature.
+
+** `user-init-file' and `user-init-directory' are now absolute
+file/directory names.  Previously, both variables used to be relative
+to (concat "~" init-file-user).  This turned out to be too complicated
+for most packages (and some core Lisp files) to use correctly.  Also,
+the `init-file-user' variable has been obsoleted in the process.
+
+The user-visible options like `-u' have not changed their behavior.
+
+** XEmacs finally has an automated test suite!
+Although this is not yet very sophisticated, it is already responsible
+for several important bug fixes in XEmacs.  To try it out, simply use
+the makefile target `make check' after building XEmacs.
+
+** Hash tables have been reimplemented.
+As was pointed out above, the standard interface to hash tables is now
+the Common Lisp interface, as described in Common Lisp, the Language
+(CLtL2, by Steele).  The older interface (functions with names
+containing the phrase `hashtable') will continue to work, but the
+preferred interface now has names containing the phrase `hash-table'.
+
+Here's the executive overview: create hash tables using
+make-hash-table, and use gethash, puthash, remhash, maphash and
+clrhash to manipulate entries in the hash table.  See the (updated)
+Lisp Reference Manual for details.
+
+** Lisp code handles circular lists much more robustly.
+Many basic lisp functions used to loop forever when given a circular
+list, expecting you to C-g (quit) out of the loop.  Now this is more
+likely to trigger a `circular-list' error.  Printing a circular list
+now results in something like this:
+
+    (let ((x (cons 'foo 'foo)))
+      (setcdr x x)
+      x)
+      => (foo ... <circular list>)
+
+An extra bonus is that checking for circularities is not just
+friendlier, but actually faster than checking for C-g.
+
+** Functions for decoding base64 encoding are now available; see
+`base64-encode-region', `base64-encode-string', `base64-decode-region'
+and `base64-decode-string'.
+
+** The functions `read-string', `read-expression', `eval-minibuffer',
+`read-variable', `read-command', `read-function', `read-number',
+`read-shell-command', `read-from-minibuffer', and `completing-read'
+now take an additional argument which specifies the default value.  If
+this argument is non-nil, it should be a string; that string is used
+in two ways:
+
+  It is returned if the user enters empty input.
+  It is available through the history command M-n.
+
+** LDAP changes.
+
+*** The LDAP interface now consists of two layers, a low-level layer
+that closely matches the LDAP C API, and a more convenient
+higher-level set of functions.
+
+*** The low-level functions that used to be named *-internal are now
+named more simply: `ldap-open', `ldap-close', `ldap-search-basic',
+`ldap-add', and `ldap-modify'.  They should be used directly for very
+specific purposes (such as multiple operations on a connection) only.
+
+*** The higher-level functions provide a more convenient way to access
+LDAP directories hiding the subtleties of handling the connection,
+translating arguments and ensuring compliance with LDAP
+internationalization rules and formats (currently partly implemented
+only.)  This layer provides atomic operations for searches,
+modification, addition and deletion of multiple entries at once:
+`ldap-search-entries', `ldap-add-entries', `ldap-delete-entries', and
+`ldap-modify-entries'.
+
+*** To maintain compatibility with previous code, the now obsolete
+function `ldap-search' is now merely a wrapper that calls either
+`ldap-search-basic' or `ldap-search-entries'.  Please don't use the
+`ldap-search' function in your new programs -- a direct call to one of
+the two replacements is more efficient and unambiguous.
+
+** The arguments to `locate-file' are now more Lisp-like.  As before,
+the usage is:
+
+    (locate-file FILENAME PATH-LIST &optional SUFFIXES MODE)
+
+Except that SUFFIXES are now a list of strings instead of a single,
+colon-separated string.  MODE is now a symbol or a list of symbols
+(symbols `exists', `executable', `writable', and `readable' are
+supported) instead of an integer code.  See the documentation for
+details.  Of course, the old form is still accepted for backward
+compatibility.
+
+Several bugs in locate-file have been fixed, most notably its failure
+to call expand-file-name on elements of PATH-LIST.  Because of that
+elements of load-path of the form "~/..." used to not work.
+locate-file is now guaranteed to expand files during its course of
+operation.
+
+** `translate-region' has been improved in several ways.  Its TABLE
+argument used to be a 256-character string.  In addition to this, it
+can now also be a vector or a char-table, which makes the function
+useful for Mule, which it wasn't.  If TABLE a vector or a generic
+char-table, you can map characters to strings instead of to other
+characters.  For instance:
+
+    (let ((table (make-char-table 'generic)))
+      (put-char-table ?a "the letter a" table)
+      (put-char-table ?b "" table)
+      (put-char-table ?c ?\n table)
+      (translate-region (point-min) (point-max) table))
+
+** The new form `ignore-file-errors', similar to `ignore-errors' may
+be used as a short-hand for condition-case when you wish to ignore
+file-related error.  For example:
+
+    (ignore-file-errors (delete-file "foo"))
+
+** The first argument to `intern-soft' may now also be a symbol, like
+with `unintern'.  If given a symbol, `intern-soft' will look for that
+exact symbol rather than for any string.  This is useful when you want
+to check whether a specific symbol is interned in an obarray, e.g.:
+
+    (intern "foo")
+    (intern-soft "foo")
+      => foo
+    (intern-soft (make-symbol "foo"))
+      => nil
+
+** The `keywordp' function now returns non-nil only on symbols
+interned in the global obarray.  For example:
+
+    (keywordp (intern ":foo" [0]))
+      => nil
+    (keywordp (intern ":foo"))       ; The same as (keywordp :foo)
+      => t
+
+This behavior is compatible with other code which treats symbols
+beginning with colon as keywords only if they are interned in the
+global obarray.  `keywordp' used to wrongly return t in both cases
+above.
+
+** New variables `this-command-properties' and
+`last-command-properties' are now available for communication between
+consecutive commands.  Commands should use these to communicate with
+the pre/post-command hooks, subsequent commands, wrapping commands,
+etc. in preference to looking at and/or setting `this-command'.
+
+** New functions `add-one-shot-hook' and `add-local-one-shot-hook' make
+it possible to add a "one-shot" hook, which is to say a hook that runs
+only once, and automatically removes itself after the first time it
+has run.
+
+** The descriptor that specifies the text of a menu item can now be an
+evaluated expression.  This makes this descriptor parallel with
+others, which can also be expressions.
+
+\f
 * Changes in XEmacs 21.0
 ========================
 
@@ -63,8 +559,18 @@ will have to set them all again through the menu, and remove the code loading
 ** When the Zmacs region is active, `M-x query-replace' and the other
 replace commands now operate on the region contents only.
 
-** Using the new `-private' option, you can make XEmacs use a private
-colormap.
+** XEmacs now is able to choose X visuals and use private colormaps.
+The '-visual <visualStr>' command line option or the '.EmacsVisual'
+Xresource controls which visual XEmacs will use, and
+'-privateColormap' or '.privateColormap' will force XEmacs to create a
+private colormap for use.  The syntax for the visual string is
+"<visual><bitdepth>" where <visual> is one of 'StaticColor',
+'TrueColor', 'GrayScale', 'PseudoColor' or 'DirectColor' and
+<bitdepth> is the appropriate number of bits per pixel.  If an invalid
+or non-supported combination is entered, XEmacs attempts to find a happy
+medium.  The X creation mechanism will then determine if it needs to
+create a colormap for use, or the presence of the private flags will
+force it to create it.
 
 ** The `imenu' package has been ported to XEmacs and is available as a
 package.
@@ -83,15 +589,15 @@ and then through inexact matches, as one would expect.
 ** The new variable `user-full-name' can be used to customize one's
 name when using the Emacs mail and news reading facilities.
 
-Normally, `user-full-name' is a function that returns the full name of 
+Normally, `user-full-name' is a function that returns the full name of
 a user or UID, as specified by the system -- for instance,
-(user-full-name "root") returns something like "Super-User".  However, 
+(user-full-name "root") returns something like "Super-User".  However,
 when the function is called without arguments, it will return the
-value of the `user-full-name' variable.  The `user-full-name' variable 
+value of the `user-full-name' variable.  The `user-full-name' variable
 is initialized using the environment variable NAME and (failing that)
 the user's system name.
 
-The behaviour of the `user-full-name' function with an argument
+The behavior of the `user-full-name' function with an argument
 specified is unchanged.
 
 ** The new command `M-x customize-changed-options' lets you customize
@@ -157,6 +663,12 @@ commands attached to them.  To use it, add the following to `.emacs':
 It has been greatly enhanced with respect to the one once included
 with the ilisp package and should work well under XEmacs 21.0.
 
+** Gnuserv changes
+
+*** Like the old 'gnudoit' program. Gnuclient -batch now can read from stdin.
+
+*** Gnuclient -batch no longer breaks off the output at the first LF.
+
 ** C mode changes
 
 *** Multiline macros are now handled, both as they affect indentation,
@@ -250,7 +762,7 @@ limit.
 
 *** \\1-expressions are now valid in `nnmail-split-methods'.
 
-*** The `custom-face-lookup' function has been removed.  
+*** The `custom-face-lookup' function has been removed.
 If you used this function in your initialization files, you must
 rewrite them to use `face-spec-set' instead.
 
@@ -300,7 +812,7 @@ updated by the `gnus-start-date-timer' command.
 subsystem.  If the `dir' file does not exist in an Info directory, the
 relevant information will be generated on-the-fly.
 
-This behaviour can be customized, look for `Info-auto-generate-directory'
+This behavior can be customized, look for `Info-auto-generate-directory'
 and `Info-save-auto-generated-dir' in the `info' customization group.
 
 \f
@@ -340,7 +852,7 @@ this is set to nil, the vertical dividers between windows are shown
 only when needed, and they are not draggable.
 
 Other properties of the vertical dividers may be controlled using
-`vertical-divider-shadow-thickness', `vertical-divider-line-width' and 
+`vertical-divider-shadow-thickness', `vertical-divider-line-width' and
 `vertical-divider-spacing' specifiers, which see.
 
 ** Frame focus management changes.
@@ -412,8 +924,10 @@ instance:
 ** It is now possible to build XEmacs with LDAP support.
 You will need to install a LDAP library first.  The following have
 been tested:
-  - LDAP 3.3 from the University of Michigan 
+  - LDAP 3.3 from the University of Michigan
     (get it from <URL:http://www.umich.edu/~dirsvcs/ldap/>)
+  - OpenLDAP 1.0.3 from the OpenLDAP Foundation
+    (get it from <URL:http://www.openldap.org/>)
   - LDAP SDK 1.0 from Netscape Corp.
     (get it from <URL:http://developer.netscape.com/>)
 
@@ -497,7 +1011,7 @@ directory hierarchy has been rewritten to support the package system.
 Look under "Startup Paths" in the Info documentation for more
 information.
 
-*** site-lisp is now longer part of the load-path by default.
+*** site-lisp is no longer part of the load-path by default.
 Its use is deprecated, but you can specify --with-site-lisp=yes at the
 configure command line to get it back.