Anonymous avatar Anonymous committed 8b6235b

oo-browser package, initial import

Comments (0)

Files changed (109)

+===========================================================================
+*			       Copyright
+===========================================================================
+
+The following copyright applies to the OO-Browser software.
+
+Copyright (C) 1989-2002  Bob Weiner, BeOpen.com and the Free Software Foundation, Inc.
+
+The OO-Browser is available for use, modification, and distribution under the
+terms of the GNU General Public License (GPL) Version 2, or (at your option)
+any later version as published by the Free Software Foundation, with all
+rights and responsibilities thereof.  See the GNU General Public License for
+more details.  If you need a copy, write to the Free Software Foundation, 675
+Massachusetts Avenue, Cambridge, MA 02139 USA.
+
+The OO-Browser is offered 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.
+#
+# SUMMARY:      Summary of the OO-Browser features
+#
+# AUTHOR:       Bob Weiner
+#
+# ORIG-DATE:    15-Oct-90
+# LAST-MOD:      3-Jan-02 at 17:54:35 by Bob Weiner
+#
+# This file is part of the OO-Browser.
+
+     
+	     Bob Weiner designed and implemented the OO-Browser.
+			    <bwcto@users.sf.net>
+
+     Copyright (C) 1989-2002  Bob Weiner, BeOpen.com and the Free Software
+     Foundation, Inc.
+     Distributed under terms described in the BR-COPY file within the
+     OO-Browser distribution.
+
+     With thanks to Motorola, Inc. for helping fund initial development, to
+     Torgeir Veimo, Mark Stern, Steve Baur and Martin Buchholz for helping
+     with the X OO-Browser core, to Jeff Sparkes for help with Java language
+     support, to Harri Pasanen for contributing the initial Python
+     language support (derived from the C++ support code) and to Kirill
+     Katsnelson for adapting the graphical OO-Browser for use with Windows.
+
+			     ------------------
+
+OO-Browser Features
+*******************
+
+* The OO-Browser is a multi-windowed, interactive object-oriented class
+  browser similar in use to the well-known Smalltalk browsers.  It is unique
+  in a number of respects foremost of which is that it works well with a
+  multiplicity of object-oriented languages.  It provides both textual views
+  within an editor and graphical views under the X window system and Windows.
+
+
+* Support for all popular OO Languages on UNIX
+----------------------------------------------
+
+  ** Support for C, C++, Common Lisp and its Object System (CLOS), Eiffel,
+     Java, Objective-C, Python and Smalltalk class browsing is included.
+     Additionally, support for browsing large amounts of material in Info
+     format by node name (a popular online documentation format with cross
+     references and hierarchical structure) is included.  All languages
+     provide class browsing via either a textual or a graphical interface.
+
+  ** Method and typically attribute browsing is supported for all languages
+     except Smalltalk.  CLOS supports browsing all elements defined with
+     (def* constructs.  In-source feature browsing is also supported for all
+     of these languages.  One simply selects a feature name to jump to its
+     corresponding source.  Method name overloading in C++ and inherited
+     feature renaming in Eiffel are fully supported.
+
+  ** Under C++, one can click on a method call, function call or attribute
+     reference to jump to its associated definition.  If multiple definitions
+     are possible, a structured dynamic list of possible method signatures
+     are shown and can be clicked upon to jump to any selected definition.
+
+  ** Under C++, friend classes and functions may be browsed easily.
+
+  ** C code browsing is supported for C++, Objective-C and C source code.
+
+  ** Objective-C category and formal protocol browsing is supported.
+
+  ** C++ parameterized template classes and methods are supported.
+
+  ** Java abstract and native (externally defined) method browsing is
+     supported.
+
+  ** All classes that implement a particular feature name, protocol (or
+     interface) name, or class category name may be listed and then browsed.
+
+  ** Immediate switching among languages is allowed.  One can switch
+     from Eiffel browsing to C++ browsing in an instant, if so desired.
+     Or simply run two OO-Browsers side by side.
+
+  ** Multiple inheritance support is built-in, where applicable.
+
+  ** Statistics on classes and Environments may be displayed.
+
+  ** Language-specific class information may be shown.  Presently this
+     feature is supported under Python and Eiffel, where a listing of class
+     parents, attributes, routines and best guess (highly accurate) list of
+     routine calls may be displayed.  Outputs from the Eiffel `short' and
+     `flat' commands may also be shown.
+
+
+* For Serious Use
+----------------------
+
+  ** Library (stable) and System (in development) classes may be
+     maintained and listed separately or together.  Any number of
+     Libraries and Systems may be combined for listing in a single
+     Environment.  There are no fixed limits on the number of classes per
+     Environment nor on the number of Environments that may be browsed.
+
+  ** All source code is included and is heavily documented.
+
+
+* Ease of Use
+-------------
+
+  ** Machine-independent mouse support is included along with an extremely
+     intuitive point and click interface that uses just two mouse keys.  The
+     OO-Browser is pre-configured for use unser the X window system or
+     Windows when using InfoDock, GNU Emacs or XEmacs.  Online mouse
+     usage help is always one key away.
+
+  ** Popup and pulldown command menus are available under InfoDock, Emacs V19
+     (or higher) and XEmacs.
+
+  ** The OO-Browser help display gives short descriptions of all of
+     the commands and key bindings available in the browser.  By clicking
+     on any such selection, the corresponding command is executed.
+
+  ** One may also click on class names to see ancestors, descendants
+     or the class itself.  Just select a class name and the OO-Browser
+     immediately will display or edit the class source.  Once a class
+     file has been loaded, one can quickly switch to it by selection
+     from a menu of such files. 
+
+  ** For a number of languages, one may also select a feature
+     (method) name or declaration and move directly to the definition
+     of the feature.  The browser accounts for the complexities of member name
+     overloading in C++ and unlimited feature renaming in Eiffel so that you
+     need not.  Just click on a declaration and watch the browser display jump
+     to the proper definition.
+
+  ** In C++, one can jump to the declaration of a listing entry or be
+     prompted within any buffer for a class and feature name whose
+     declaration one wants to browse.  One can jump back and forth between
+     declarations and their associated definitions (between header and code
+     files) with a single command.
+
+  ** Jump back to a previously visited class or feature by selecting from a
+     list of recently visited buffers.
+
+  ** OO-Browser commands may also be invoked from the keyboard, allowing
+     unrestricted use via standard terminal interfaces.
+
+* Speed
+-------
+
+  ** Building Environments is fast compared to many other tools and browser
+     startup, once an Environment has been built, is very fast.  Response
+     times on workstations are excellent; for example, in one test case, less
+     than two real seconds were required to display a set of complex
+     inheritance graphs involving over 400 classes.
+
+
+* Flexibility
+-------------
+
+  ** An X-specific or Windows-specific hierarchy display browser is included.
+     It provides views of class inheritance structure and lexically included
+     elements, which allows for quick random access to entire Environments.
+     A click on a class or element name immediately jumps to it in the
+     editor, providing rapid, visual browsing.  One can pop up several
+     graphical browsers to gain different views of classes in the same or in
+     multiple environments.  All graphical browser sessions can communicate
+     with a single textual browser, so one can quickly display and edit
+     classes from different environments (even different languages).
+     Multiple inheritance is handled through repetition of nodes throughout
+     the tree; repeated nodes are followed by ellipses to indicate multiple
+     inheritance.
+
+  ** The OO-Browser uses class source code only, hence no compiler is
+     necessary for proper browser operation.  This allows one to explore
+     class libraries without the need for additional tools.
+
+  ** Class inheritance networks may be displayed.  Either a single
+     inheritance level (parents or children) or the entire inheritance
+     network (ancestors or descendants) for a set of classes may be shown.
+
+  ** Class files may be added as a group by specifying a root directory below
+     which all class files are found, including those in subdirectories.
+
+  ** A menu of class files can be displayed for random access to specific
+     code modules.
+
+  ** On startup, the OO-Browser lists all currently known classes within a
+     particular Environment.  Any desired classes may be found by searching
+     or by matching a regular expression or string to the set of class names.
+     This may be done repeatedly to achieve an "and"-type relational query
+     effect.
+
+  ** The number of listing windows is limited only by the screen width and
+     the width setting used for listing windows.
+
+  ** The OO-Browser is adaptable to any class-based object-oriented language.
+
+
+* Editor Integration
+--------------------
+
+  ** The OO-Browser works with the powerful, freely distributable, GNU
+     Emacs editor; it works on any UNIX system display supported by Emacs.
+     It is included as part of the InfoDock integrated development
+     environment and is also compatible with XEmacs.
+
+  ** All OO-Browser outputs are text which may be edited as desired or
+     saved to files.
+
+  ** OO-Browser functions may be used standalone within the editor
+     without using the multi-windowed browser interface.  One useful
+     example is to point to a class name such as a parent class in the
+     text of another class and have the parent's source appear in an
+     editable fashion.
+
+  ** The user need not know the location of class source; the browser will
+     display or edit a class based solely upon its class name.
+# See "br-vers.el" for the OO-Browser lisp code directory entry.
+#
+# SUMMARY:      OO-Browser overview and installation notes
+#
+# AUTHOR:       Bob Weiner
+#
+# ORIG-DATE:    16-Jun-90
+# LAST-MOD:      3-Jan-02 at 18:16:36 by Bob Weiner
+#
+# Copyright (C) 2000-2002  Bob Weiner
+# Copyright (C) 1989-1999  BeOpen.com and the Free Software Foundation, Inc.
+#
+# See the file "BR-COPY" for license and support information.
+#
+# This file is part of the OO-Browser.
+
+We hope you enjoy developing with the OO-Browser.  Feel free to mail or post
+news containing this file wherever it may be of use.
+
+===========================================================================
+*			Table of Contents
+===========================================================================
+			* Files
+			* How to Obtain
+			* Installation / Configuration
+			* Invocation
+
+
+===========================================================================
+*			   Files
+===========================================================================
+
+See the "BR-FEATURES" file for a summary of OO-Browser features.
+
+See the "BR-RELEASE" file for a summary of new features in this release.
+
+See the "BR-COPY" file for license information.
+
+See the "MANIFEST" file for summaries of the OO-Browser files.
+
+"man/oo-browser.info" contains the Info version of the OO-Browser User
+Manual.
+
+
+===========================================================================
+*			     How to Obtain
+===========================================================================
+
+The latest release of the OO-Browser may always be found at: 
+"http://www.sf.net/projects/oo-browser".
+
+You will need to obtain one archive which includes the source,
+machine-independent runtime and documentation (this archive does not mention
+an operating system) and then a second operating-system specific archive, if
+available, which contains binaries.
+
+The OO-Browser works best when used together with the InfoDock integrated
+development environment.  InfoDock provides a modern user interface on top of
+XEmacs, information management, and powerful software development tools, all
+in one package.  The OO-Browser is available as part of InfoDock or as a
+standalone package for use with XEmacs or GNU Emacs.
+
+
+===========================================================================
+*		      Installation / Configuration
+===========================================================================
+
+If you are using InfoDock, the OO-Browser is pre-configured so you can simply
+skip to the next section, Invocation.
+
+The OO-Browser is provided in a turnkey fashion, with the Lisp files
+pre-compiled and binaries built for the client architecture.  But there
+are still a few installation steps.
+
+ 1a. If this is a UNIX or Linux distribution (.tgz suffix):
+
+        You should have a *.tgz archive of the OO-Browser; we will call the
+        absolute pathname to this archive <COMMON-TGZ-PATH>.  You may also
+	have an operating system-specific archive of binaries which we'll
+	call <BINARY-TGZ-PATH>.  Execute:
+           gunzip <COMMON-TGZ-PATH>
+           gunzip <BINARY-TGZ-PATH>
+
+        Then cd to the parent directory of where you want to install the
+        OO-Browser and unpack the archive(s):
+           cd <PARENT-DIR>
+           tar xvf <COMMON-TGZ-PATH>
+           tar xvf <BINARY-TGZ-PATH>
+
+ 1b. If this is a MS Windows distribution (.zip suffix):
+
+        You should have a *.zip archive of the OO-Browser and possibly a
+	zip archive of operating system-specific binaries.
+        Change your working directory to the parent directory of where you
+        want to install the OO-Browser:
+           cd <PARENT-DIR>
+
+	Then unpack the zip archives you have using any .zip archive utility
+	such as Winzip or Pkunzip.
+
+        NOTE: In this document we use forward slashes as directory separators
+        within shell commands.  If you don't have a UNIX-type environment
+        under Windows, you will have to use backward slashes.  For the lines
+        that you add to your emacs initialization file, you can safely use
+        forward slashes without any need for additional software.
+         
+ 1c. Execution of steps 1a or 1b creates the oo-browser/ directory (referred
+     to as <OO-BROWSER-DIR> below) and several subdirectories.
+
+ 2. If you have the separate Hyperbole information management package
+    installed in your editor (available from
+    "http://www.sf.net/projects/hyperbole"), you must be using V3.18.4 or
+    greater; otherwise, upgrade.  You do not need to obtain Hyperbole
+    but if it is installed you must have a recent version.
+
+ 3. Add the following lines to your site autoload configuration or your
+    personal initialization file, .emacs or .infodock, substituting
+    the correct absolute pathname for <OO-BROWSER-DIR>:
+
+    If Hyperbole is installed, e.g. you run the OO-Browser under InfoDock
+    (which includes Hyperbole), then add this expression:
+
+         (setq load-path (cons "<OO-BROWSER-DIR>/" load-path))
+
+    Otherwise, add this expression:
+
+         (setq load-path (append
+	     	           '("<OO-BROWSER-DIR>/"
+			     "<OO-BROWSER-DIR>/hypb/")
+			   load-path))
+
+    Then following this load-path expression, add the following line
+    regardless of whether you have Hyperbole:
+
+         (load "br-start")
+
+ 4. Add the following key binding to your site keys configuration or your
+    personal initialization file so that you can use {C-c C-o} to invoke
+    the OO-Browser:
+
+         (global-set-key "\C-c\C-o" 'oo-browser)
+
+Optional:
+
+ 5. If you prefer to use some non-Emacs editor such as vi to view and edit
+    your code, then modify to your taste the settings in the
+    br-setup-external function in "br-site.el" and add the following line to
+    your personal Emacs initialization file:
+
+         (add-hook 'br-mode-hook 'br-setup-external)
+
+ 6. You may want to change the settings of `c++-cpp-include-dirs'
+    and `c++-include-dirs' at the bottom of "<OO-BROWSER-DIR>/br-site.el".
+    Then save the "br-site.el" buffer and use {M-x byte-compile-file RET RET}
+    to create its .elc file.
+
+
+ The OO-Browser is now ready for use.  Restart your editor before trying
+ it.  See the Invocation section later in this document for how to start the
+ browser or read the OO-Browser Manual.
+
+-----
+
+			    Building from Scratch
+
+If you prefer to build the OO-Browser from source yourself, you will need to
+follow the steps above for the pre-built distribution and then also follow
+the build process given below.  Otherwise, skip this section.
+
+    Once you have the newest Hyperbole version installed, you can safely
+    delete the <OO-BROWSER-DIR>/hypb/ directory, which duplicates a subset of
+    the Hyperbole files to provide the OO-Browser with context-sensitive
+    keyboard and mouse keys.  But then you must make a symbolic link from
+    your hyperbole directory to <OO-BROWSER-DIR>/hypb if you ever plan on
+    using the OO-Browser Makefile.
+
+    The OO-Browser's Lisp files are pre-byte-compiled for InfoDock, Emacs 19
+    or higher and for XEmacs, so if you run one of these versions, when you
+    use `make' to build the OO-Browser, very few files will need to be built,
+    so your make job will finish quickly.
+
+    To build and install the OO-Browser, follow the instructions in the USAGE 
+    section at the top of the "<OO-BROWSER-DIR>/Makefile".
+
+    The OO-Browser now should be ready for use.
+
+
+===========================================================================
+*			    Invocation
+===========================================================================
+
+To invoke the OO-Browser, use:
+
+    {C-c C-o} or {M-x oo-browser RET}
+
+Read the OO-Brower Manual to learn all about it.
+#
+# SUMMARY:      What's new in this version of the OO-Browser?
+#
+# AUTHOR:       Bob Weiner
+#
+# ORIG-DATE:    15-Oct-90
+# LAST-MOD:      3-Jan-02 at 18:18:42 by Bob Weiner
+#
+# Copyright (C) 2000-2001 Bob Weiner
+# Copyright (C) 1990-1999 BeOpen.com
+# See the file BR-COPY for license information.
+#
+# This file is part of the OO-Browser.
+
+---------------------------------------------------------------------------
+			       VERSION 4.08
+
+* V4.07 was released as a sourceforge.net project.  Updated the mailing list
+  and support e-mail addresses to point to the sourceforge lists.  See
+  "www.sf.net/projects/oo-browser" for more details.
+
+* Added support for the GNU General Public License Version 2.  See "BR-COPY".
+
+* Clarified installation instructions in "BR-README".
+
+* If help-mode is available, can now use {q} to exit from OO-Browser
+  information display buffers shown in the viewer window.
+
+* Many bug fixes for initial version of the Python support code and
+  elsewhere, notably a regexp overflow bug when scanning C++ code.
+  See "ChangeLog" for details.
+
+* Python OO-Browser
+
+  ** See the `Python Specifics' section of the OO-Browser user manual,
+     "(oo-browser)Python Specifics", for how to use the following new
+     features.
+
+  ** Added global variable browsing support.
+  
+  ** Added module and package browsing support.
+
+  ** Added support for Python OO-Browser Environments which include C or C++
+     code.
+
+  ** Support for source file lookup within directories listed in the
+     PYTHONPATH environment variable.
+
+  ** Added support for all docstring types, not just method docstrings.
+
+  ** Improved class scanning.
+
+  ** Integration with Python's pydoc self-documentation module when the
+     separate pydoc.el interface package is available.  Download pydoc.el
+     from: "www.deepware.com/pub/python".
+
+  ** Support for browsing Java-type interfaces within Python.  The add-on
+     Python module, bwcto_interface, lets you define interfaces within Python
+     which the OO-Browser will then browse.  Download bwcto_interface from
+     "www.deepware.com/pub/python".
+
+----------------------------------------------------------------------------------
+			       VERSION 4.07
+
+* Bug fix release.
+
+* Integrated OO-Browser Options with InfoDock's Options menu.
+
+* Fix startup time library dependency failure.
+
+* Java OO-Browser: Fixed handling of classes with no `extends' or
+  `implements' clauses.  When edit a class, point is now left at the
+  beginning of the class def line as expected, not after initial modifiers
+  such as `public'.
+
+* Windows Graphical OO-Browser: Fixed bug in source code which failed to
+  deselect a node before deleting it.  (The binary is not fixed yet so
+  if you want this fix, you will have to build the binary yourself for
+  now.)
+
+---------------------------------------------------------------------------
+			       VERSION 4.06
+
+* Bug fix release.
+
+* Separated binary distributions from the rest of the OO-Browser distribution 
+  so that parties who use it on multiple platforms don't have to download
+  the Lisp and documentation multiple times.
+
+---------------------------------------------------------------------------
+			       VERSION 4.05
+
+* Open Sourced the commercial-quality multi-language OO-Browser.
+
+* Added C construct support for Python and Eiffel.
+
+* Added support for building the Texinfo version of the OO-Browser Manual.
+
+* Improved function handling.
+
+* Added support for HP-UX distributions.
+
+---------------------------------------------------------------------------
+			       VERSION 4.04
+
+* Improved selection and error reporting within *Implementors* buffers that
+  list potential implementors of a method.  These are displayed when multiple 
+  implementations of a method name are detected after an Action Key click on
+  the method name within a code buffer.
+
+* The Use-Vi-as-Editor option worked only if an xterm was used as the
+  shell from which vi is run.  Now other shells work.
+
+* Improved handling when a dedicated frame is used to display the OO-Browser
+  and the frame is deleted.  It now is recreated.
+
+---------------------------------------------------------------------------
+			       VERSION 4.03
+
+* Added support for the pop-tag-mark command {M-*} available in some editors
+  to move back to prior code locations displayed from clicking the Action Key 
+  on an identifier or other cross-reference.
+
+* Fixed Action Key support for selecting an overloaded method within an
+  *Implementors* buffer.  Such a buffer is generated by the OO-Browser in
+  response to an Action Key click on an overloaded method call.
+
+* C++ OO-Browser
+
+  ** Eliminated rare false matches within conditional statements that look like
+     function calls and eliminated processing of ::function references within
+     function bodies.
+
+  ** Improved matching between declaration and definition of a function where
+     the two have different whitespace or contain * characters within
+     their return types.
+
+  ** Added .inc and .hpp as C++ header file suffix types since some libraries
+     use these.
+
+  ** Eliminated substring problem where searching for implementors of `func'
+     would include entries such as `function'.
+
+* Windows OO-Browser
+
+  ** Added potential support for background building of Environments.
+
+* Many subtle bug fixes.
+
+---------------------------------------------------------------------------
+			       VERSION 4.02
+
+* C++ OO-Browser
+
+  ** Improved handling of nested template class and parent declarations.
+
+  ** Improved handling of complex method declarations.
+
+  ** Support for the `typename' keyword.
+
+---------------------------------------------------------------------------
+			       VERSION 4.01
+
+* C++ OO-Browser
+
+  ** Improved recognition of C++ template and array constructs.
+
+  ** Modified listing prefix for structs and enums from "- " to "= " for now.
+
+* Eiffel OO-Browser
+
+  ** Multiple attribute declarations such as: `a,b,c: TYPE' may now be viewed 
+     individually within the browser.  Multiple routines definitions were
+     already handled by the browser.
+
+  ** Improved recognition of Eiffel inherit clauses, external features and
+     Windows-based Eiffel files.
+
+  ** Made the class `ANY' a parent of any class without an inheritance
+     clause (lacking any explicit parents).
+
+  ** The OO-Browser now browses ISE's publicly released BASE data
+     structures library and the SmallEiffel class libraries as well.
+
+* Python OO-Browser
+
+  ** Corrected comment recognition and improved expression matches.
+
+  ** Added Action Key clicking on import modules or the specific classes,
+     methods, functions or variables that they reference.  A click on
+     any such name locates the associated definition and displays it.
+
+* Java OO-Browser
+
+  ** Improved recognition of Java attributes.
+
+* Eliminated invalid association of an existing Env name with a newly created 
+  Env file.
+
+* With XEmacs under the X Window System, the Backspace key now works just
+  like the Delete key in listing buffers, scrolling the viewer window back a
+  windowful.
+
+* Bug fixes.
+
+---------------------------------------------------------------------------
+			       VERSION 4.00
+
+* An OO-Browser menubar entry has been added to the global menubar under
+  XEmacs and GNU Emacs to simplify invocation of the OO-Browser for new
+  users.  (InfoDock has long had this feature.)
+
+* The Action Key part of whose function is to display classes and features
+  when clicked upon in listing buffers is now bound to the middle mouse
+  button on 3-button systems and the left mouse button on typically 2-button
+  systems.  (InfoDock has long had this feature.)
+
+* Environments are now named, with a full suite of menu and keyboard commands 
+  for adding, removing, renaming, listing and changing Environment
+  associations to names.  Environment names eliminate the need to remember
+  where each Environment is stored within a file system.  You are prompted to
+  add a name to an Environment when trying to load an Environment to which
+  you have not yet assigned a name.
+
+  Names are user-specific so that each user can have names that are most
+  memorable and easiest to use according to their own tastes.  Names may
+  however be copied for sharing and site-wide commonality; BeOpen.com support
+  programs can help you with such configuration.
+
+* Within OO-Browser listing windows, the title bar above the frame displays
+  both the name and full pathname of the Environment being browsed for easy
+  reference.  It also shows the version of the OO-Browser in use.
+
+* Redesigned all feature handling code to speed feature queries.
+  A test Environment of 586 C++ classes on a Pentium II 350 Mhz
+  Linux system required only 1.5 seconds to list all of its features
+  (9859 entries including classes).  The time went from 15 seconds in V3.07
+  to 1.5 seconds for a 10-fold speedup.
+
+  A user-visible side-effect of this speedup under MS operating systems
+  only (due to their lack of the -d option to their builtin sort function),
+  is that features are alphabetized by category, e.g. regular methods in one
+  group, special methods in other groups, followed by attributes.
+
+* Restructured internals for improved efficiency and reliability.
+
+* When scanning trees of code directories, symbolic link subdirectories are
+  now ignored since these sometimes cause circularities that can produce an
+  infinite recursion.  If any code lives within another tree, the Environment
+  can specify inclusion of its root directory.  If a root directory given as
+  an Environment search path is a symbolic link, it is scanned, only
+  subdirectory symbolic links are ignored.
+
+* Features in a graphical OO-Browser display may now be edited or viewed
+  read-only rather than just viewed.
+
+* PC files ending with carriage-return and linefeed characters are now
+  handled without any need for conversion. 
+
+* The {@} command which shows a class within its textual inheritance graph no 
+  longer hides all other entries within the current listing.  This brings it
+  into conformance with other OO-Browser commands.
+
+* C++ OO-Browser
+
+  ** Pure virtual functions are now shown properly within feature listings.
+
+  ** C constructs of enumerations, structures, typedefs, and unions declared
+     within classes are now recognized.  Their type definitions are listed
+     under associated default classes, e.g. [enumeration].  Any variable
+     names associated with these declarations are shown as attributes under
+     the class in which they are declared.
+
+  ** Fixed to handle unsigned attribute declarations.
+
+* Eiffel OO-Browser
+
+  ** Added support for multiple routine definitions with a single definition
+     signature.
+
+  ** Made {i} show class info binding work automatically without the need to
+     call another setup command.
+
+* Lisp/CLOS OO-Browser
+
+  ** Improved implementors listings involving default classes.
+
+  ** All feature listings now have categorizing prefixes as in other
+     languages.  Constants and variables are now preceded by "= "; for now,
+     other features all are preceded by "- ".
+
+* Eliminated Rebuild-Lib-Part and Rebuild-Sys-Part from the
+  OO-Browser/Environment menu since these are seldom used.
+
+* Bug fixes.
+
+---------------------------------------------------------------------------
+			       VERSION 3.07
+
+* When an Environment is reloaded within the OO-Browser (using {C-c C-l}),
+  the browser display is completely refreshed to its beginning state as if
+  a different Environment had been loaded.  This eliminates any issue of
+  having stale data in a listing window after an Environment load.
+
+* Improved the output of `br-where' {w} to include the class name of any
+  feature being displayed.
+
+* When prompted to load or to create an Environment, completion now occurs in 
+  the current directory rather than the directory of the last used
+  Environment.  Thus, by moving to the directory in which you want your
+  Environment to be saved and then using {C-c C-o} or {M-x oo-browser RET},
+  you will be able to just hit return when promted for an Environment name.
+
+* Switching from one language Environment to another now automatically
+  updates the Environment feature file in use.
+
+* Eiffel OO-Browser:
+
+  ** Updated feature handling to latest OO-Browser standards.   This fixed
+     problems with a number of Eiffel operations.
+
+  ** Classes are now shown in upper case as they are in Eiffel code.
+
+  ** Speeded up feature scanning when building Environments.
+
+  ** Eiffel Environments built with earlier versions of the OO-Browser are
+     now obsolete.  You will be prompted to rebuild them whenever out-of-date 
+     Environments are loaded.
+
+* Bug fixes.
+
+---------------------------------------------------------------------------
+				VERSION 3.06
+
+* The emacs-related editor in use and other current environment information
+  is now included within the output of {M-e} (br-env-stats) when within a
+  browser listing window.
+
+* Bug fixes.
+
+* Improved feature listings to leave same named features in the same order as
+  they occur within the source file.
+
+* C++ OO-Browser
+
+  ** Static data members (attributes for which one copy is shared by all
+     instances of a class) are now prefixed with an "& " prefix to
+     distinguish them from replicated attributes which are prefixed with
+     "= ".
+
+  ** Improved C++ declaration recognition.
+
+  ** Improved case-sensitivity when locating features.
+
+  ** Improved constructor recognition.
+
+  ** Method argument lists may contain either :: scoped operators or ()
+     operator related parentheses.  The browser will properly recognize such
+     methods if they contain one or the other but not both embedded
+     parentheses and scoping operators.  This limitation is related to poor
+     design in the C++ language that reuses the : and parentheses characters
+     within method declarations for multiple purposes.
+
+  ** Class declarations conditionalized with #ifdef preprocessor constructs
+     are now handled better; only one version of such a class declaration
+     will appear within an Environment.
+
+
+* Java OO-Browser
+
+  ** Constructs from C files found within Java Environment source directories
+     are now listed within Java Environmens as they are within C++ and
+     Objective-C Environments.
+
+---------------------------------------------------------------------------
+				VERSION 3.05
+
+* Up to 6-fold improvement in the speed of building C++ and other
+  language environments under InfoDock and XEmacs; 14-fold speedup
+  under GNU Emacs.
+
+* C++ OO-Browser: Improved attribute matching including array support.
+
+* Support for viewing and editing elements/features with external
+  viewers/editors.  (Earlier versions support external viewing of classes
+  only.)
+
+* New menu item, Options/Use-Vi-as-Editor to toggle the setting of whether
+  the internal editor or Vi is used when edit commands are issued in the
+  OO-Browser listing windows.  Viewing commands remain unaffected.
+
+* Bug fixes.
+
+---------------------------------------------------------------------------
+				VERSION 3.04
+* Windows OO-Browser:
+
+  ** Added a version of the graphical OO-Browser for use under MS Windows-based
+     OSes and window systems.  It works in the same way as the X OO-Browser.
+     The textual OO-Browser automatically selects the appropriate graphical
+     browser to use under each OS.
+
+  ** Added Windows support under GNU Emacs major release 20.
+
+* C functions are now found using a variant of the etags program called
+  `ootags' to prevent any naming conflicts with other versions of etags
+  on a system.
+
+---------------------------------------------------------------------------
+				VERSION 3.03
+
+* The OO-Browser program directory is now called oo-browser.
+
+* C++ OO-Browser: Fixed support for global operator+ and operator- functions.
+  Be sure to not leave whitespace between the `operator' and its type
+  symbol, e.g. =, when writing global operators or the browser may
+  not browse it properly.  Whitespace is handled in scoped :: operators.
+
+* Many bug fixes, notably a fix for the problem where the OO-Browser reports
+  that a class is not defined in the Environment even though its definition
+  was found.  (This occurred only when a class was referenced in one part of
+  the Environment, e.g. System, and then defined in the other part,
+  e.g. Library.)
+
+---------------------------------------------------------------------------
+			    VERSION 3.01 and 3.02
+
+* C++ OO-Browser: Reduced large Environment build times by approximately 36%
+  through a number of optimizations.
+
+* Environments now store the start and end times of the last build of the
+  Environment.  When in the OO-Browser, {M-e} (br-env-stats) will show
+  these times.  It will also show an improved summary of the number of
+  classes and interfaces in the Environment.
+
+* Many bug fixes.
+
+* If you have a problem building an Environment in the background under
+  XEmacs or InfoDock, you can now use {C-u M-x br-env-rebuild RET} to 
+  build an Environment and to generate a stack backtrace when errors
+  occur.
+
+---------------------------------------------------------------------------
+			       VERSION 3.00
+
+
+* New key bindings and commands:
+
+      ==========================================================
+      OO-Browser Listing             Menu Item
+      Window Key Binding
+      ==========================================================
+            r               Feature/Routines
+            =               Feature/Attributes
+
+            <               View-Window/To-Buffer-Beginning
+            >               View-Window/To-Buffer-End
+            ,               View-Window/Scroll-Backward-One-Line
+            .               View-Window/Scroll-Forward-One-Line
+
+          M-0 P             Options/List-Protocols-with-Classes
+
+
+  Standalone browser features (those useful in code buffers outside of the
+  browser user interface) are now bound to keys by default (which differ from
+  the previously recommended bindings to prevent conflicts with other
+  packages).
+
+      ==========================================================
+      Source Code                    Command
+      Buffer Key Binding
+      ==========================================================
+
+         C-c M-f                     br-find
+	   Prompt with completion for a class or element name from the
+	   current Environment and display its definition for editing.
+
+	 C-c M-j  (C++ only)         br-feature-edit-declaration
+           Prompt with completion for a CLASS::FEATURE argument and then edit
+           the associated declaration.  If point is on a feature definition
+           signature in a code buffer (prior to any of its arguments), the
+           default is to edit that feature's declaration.  An error is
+           signaled if the declaration is not found.
+
+	 C-c M-w                     br-where
+	   Display in the viewer window and return the full path of the
+	   defining file for a browser listing entry.  Optional prefix arg
+	   PROMPT means prompt for the entry name; automatically prompts if
+	   called interactively outside of a listing window (in standalone
+	   mode), e.g. within a source code buffer when the browser user
+	   interface is not displayed.  If called in standalone mode with a
+	   prefix argument, the command inserts the defining path at point
+	   rather than displaying it elsewhere.
+
+          M-TAB                      br-complete-symbol
+	   Complete an OO-Browser type or element or an Emacs Lisp symbol
+	   preceding point.  The symbol is compared against current
+	   Environment entries (or Emacs symbol table entries) and any needed
+	   characters are inserted.
+
+* Redesigned menus for clarity and ease of use.  Added Graphical Menu to
+  centralize graphical browser commands.  Also added documentation
+  entries that display help for each menu and each menu concept, such as
+  `Feature'.  Added an item on the OO-Browser menu that e-mails pre-paid
+  support issues directly to BeOpen.com.
+
+* Made Ancestor menu entries behave exactly as the {a} and {C-u a} keys do,
+  rather than inverting ancestor listings, since the difference could be
+  confusing.
+
+* Simplified the (br-add-class-file) command bound to {C-c ^}.  It now
+  tries to determine by itself whether to add the class to the Library or
+  System part of the Environment.
+
+* Eliminated the load of an Environment after it is built in batch mode since
+  the editor session is terminated immediately after the build.
+
+* Fixed so that when switch Environment languages, the new Environment is
+  always properly loaded.
+
+* Simplified installation and batch usage of the OO-Browser.
+
+
+* C++ OO-Browser:
+
+  ** Attributes (data members) declared within class definitions are now
+     included in Environments.  Environments will take a bit longer to build
+     but will be more complete.
+
+  ** Friend classes are now included in Environments (previously only
+     individual friend features were included).
+
+  ** Because of the above changes, Environments built with versions of the
+     OO-Browser prior to 3.00 are now obsolete.  The browser will prompt you
+     to rebuild such Environments when they are loaded.
+
+  ** Action Key presses at the start of feature declarations and definitions
+     jump back and forth between matching definitions and declarations.
+
+  ** Action Key presses on types found within method signature argument lists
+     try to display the definitions of the types.
+
+  ** Improved default feature name computed for various commands when point
+     is within the pre-argument part of a declaration or definition of a
+     feature.
+
+  ** Allow single-line C or C++-style comments between method arguments when
+     searching for matching definitions and declarations.
+
+  ** Numerous special case fixes for optimum performance.
+
+  ** Fixed parsing of global `operator' features which ootags mishandles.
+
+
+* Java OO-Browser:
+
+  ** Require types for all feature declarations and definitions.
+
+  ** Action Key presses on types found within method signature argument lists
+     try to display the definitions of the types.
+
+  ** Eliminated false matches to statements that look like method signatures,
+     e.g. if (expr) { body }.
+
+  ** Eliminated failure of feature and ancestor queries made when point was
+     in the middle of an <interface> entry name.
+
+  ** Clarified the message display when a feature definition is found.
+
+  ** Made br-find work for Java features.
+
+
+* Graphical OO-Browser
+
+  ** Fixed so that the selected tree node is highlighted in red on
+     16-bit-plane and higher displays.  (Previously, no highlight was seen.)
+
+  ** ANSIfied the C source code and added initial multi-platform
+     configuration support.
+
+  ** Eliminated jumping between windows within the textual browser to display
+     entries selected within the graphical browser.
+
+  ** Coming soon: A native Windows port of the graphical browser.
+
+---------------------------------------------------------------------------
+			       VERSION 2.13.01
+
+* Java OO-Browser: Fixed regexp scanning bug that could cause a hang when
+  scanning Java class files that contain multiple blank lines at the end
+  of the file.
+
+* New menu item Option/List-Protocols-with-Classes which is on by default
+  includes protocols (interfaces) in the listings of all classes or top-level
+  classes under Java and Objective-C.  If you want to turn this off in your
+  editor initialization file, add the expression:
+    (setq br-protocols-with-classes-flag nil)
+
+* Listing buffers have been renamed from `Inher-Lvl-' to `OO-Browse-' and
+  now contain both the key binding that generated the listing and the listing
+  number (sequential from 1).  So if the third listing command that you use
+  is the ancestors command bound to {a}, its output would be shown in a
+  buffer named `OO-Browse-a3'.
+
+* Each command that displays its output in a new listing window uses the next
+  window to the right (and then wraps back to the first window on the left).
+  Some commands used to use the prior left window and so could obscur
+  recently generated information.
+
+* New key bindings in listing buffers:
+    {A} = list all classes       (this used to be {C-u t} which still works)
+    {T} = list top-level classes (this used to be {t}     which still works)
+
+---------------------------------------------------------------------------
+			       VERSION 2.13.02
+
+* C++ OO-Browser: Allow for #define replacement keyword between the `class'
+  literal and the class name, a technique used in some class libraries.
+
+---------------------------------------------------------------------------
+				VERSION 2.13
+
+* Eliminated issues with running the OO-Browser under Microsoft
+  OSes which lack typical UNIX executables like sort and make used
+  by the OO-Browser.
+
+* Eliminated `file has changed' messages when browse an Env after
+  building it in the background.
+
+* C++ OO-Browser
+
+  ** Improved handling of variable declarations with template args.
+
+  ** Improved recognition of "type var1, var2, var3;" declarations.
+
+  ** Made feature matches work under GNU Emacs 20 (in prior versions
+     could signal an error).
+
+---------------------------------------------------------------------------
+			       VERSION 2.12.05
+
+* C++ OO-Browser bug fixes and addition of class name display when a feature
+  definition is found since the class name may not be on the screen
+  otherwise.
+
+---------------------------------------------------------------------------
+			       VERSION 2.12.04
+
+* All Environment handling commands now prompt with a full pathname of the
+  most recent Environment as a default and beep if an attempt to enter a
+  directory name is made.
+
+* Modified installation instructions to require loading of initial browser
+  files at startup, rather than autoloading.  This avoids any undefined
+  Action/Assist Key autoloads.
+
+* Added support for Action Key selection of identifiers within the body of
+  features defined within the class declaration itself.  In earlier releases,
+  a click anywhere on the first line of an in-class method definition would
+  just move the first line of the definition to the top of the window.  Now
+  that happens only if you click before the opening brace.  This applies to
+  C++, Java and Objective-C files.
+
+* Background builds should now reload and redisplay the Environment properly
+  after finishing.  If the Environment built is the same one currently being
+  browsed, the Environment is reloaded and the browser reinitialized
+  automatically when the build finishes.
+
+* C++ OO-Browser
+
+  ** Fixed recognition of C++ feature definitions.
+
+  ** When Action Key press on a C++ member reference, if no possible
+     definitions are found within the Environment, it will try to display a
+     matching declaration instead.
+
+  ** Declaration recognition is much improved.
+
+  ** {j} and {J} commands now work when used on entries from [default
+     classes], i.e. C constructs.  They also will now find a declaration for
+     which no definition exists within the Environment.
+
+  ** References that start with the pseudo-variable `this->' now work
+     properly when the Action Key is pressed on them.
+
+  ** Made commands that display declarations and definitions of features
+     show the class of the feature in the minibuffer message since it may not
+     be visible on screen.
+
+  ** Significantly improved default prompting based on a feature name or
+     feature reference at point, whether in code or within a listing buffer.
+     Also corrected several bugs.
+
+---------------------------------------------------------------------------
+			       VERSION 2.12.03
+
+* Simplified listing display of implementor signatures when the browser
+  produces more than one feature entry as possible matches for a feature
+  reference.
+
+* Action and Assist Mouse Keys work under GNU Emacs 20.
+
+* Action and Assist Key direct selection of entities has been greatly
+  expanded.  See the Hyperbole Manual for a superset of the things that
+  can be clicked upon for action.
+
+* C++ OO-Browser
+
+  ** You should rebuild any C++ Environments built with earlier versions of
+     the browser as this may improve commands which work with feature
+     entries.
+
+  ** New {j} key binding to jump to (view) the declaration (header) of the
+     entry at point.  {C-u j} prompts with completion for the name of the
+     feature declaration to view.
+
+  ** New {J} key binding to edit the declaration of the entry at point.
+     {C-u J} prompts with completion for the name of the feature declaration
+     to edit.
+
+  ** Feature name completion when used in source buffers prompts with
+     much more intelligent defaults than in prior versions.
+
+  ** Action Key clicks on var.attribute or var->attribute feature references
+     display the attribute definition for editing if var is declared
+     within the current bufffer and the attribute is lexically defined within
+     the class given by the type of var.  Inherited attributes will be
+     supported in the future.  Action Key clicks on method calls also work
+     better.
+
+---------------------------------------------------------------------------
+			       VERSION 2.12.02
+
+* Added support independent of a full Hyperbole for Action Key clicks within C,
+  C++, Java, Lisp and Objective-C buffers as documented in the OO-Browser
+  user manual.
+
+* When the browser is invoked and a background build is initiated, the buffer
+  showing the status of the build is displayed in the viewer window.
+
+* When a background Environment finishes, the built Environment is loaded
+  if it is the current Environment or the user asks to browse it.
+
+* Improved Environment loading if user aborts during some of the Environment
+  build prompts.
+
+* Selection of completions with the Action Key is much more reliable.
+* In-buffer and minibuffer completion lists of classes, features and elements
+  now work correctly.
+
+---------------------------------------------------------------------------
+			       VERSION 2.12.01
+
+* Clarified prompts sent to the user when building an Environment to reduce
+  the need for reading the manual before getting started.
+
+* Now works with GNU Emacs 20.
+
+* Background building under GNU Emacs now works.
+
+* Now works without a full distribution of Hyperbole installed.
+
+* Reloading the same Environment after a {C-u q} now works without error.
+
+---------------------------------------------------------------------------
+				VERSION 2.12
+
+* OO-Browser Multi-language Changes
+
+  ** New class and protocol-oriented menu items "Protocols" and
+     "All-Protocols" plus "Implementors" and "All-Implementors".
+
+  ** Action Key clicks within the whitespace preceding classes or
+     interface/protocols displays their ancestors; an Assist Key click in the
+     same context displays descendants.  The same click on a feature line
+     displays the implementors of the feature.
+
+  ** Action or Assist Key clicks on default class names (those delimited by
+     square brackets, []) lists the instances of the default class, e.g. the
+     instances of [interface] are all interface names within the Environment.
+
+  ** Added text to help the user identify and correct the problem when an
+     OO-Browser Environment is moved from one location to another but the
+     pathnames it refers to are not updated.
+
+  ** The {I} (br-implementors) command has been extended to work on
+     interfaces (Java) and protocols (Objective-C), each of which are
+     shown in the browser delimited by <>.  The implementors of an
+     interface/protocol are those classes which lexically define the methods
+     specified by the interfaces.  Classes that inherit such method
+     definitions are not list as implementors.  Use {d} (br-descendants) on
+     an interface/protocol entry to see all classes that conform to the
+     entry.  Implementors are now shown in the next listing window rather
+     than the prior one since they are more like descendant relations than
+     ancestral ones.
+
+  ** {P} (br-protocols) on a class entry now shows all interfaces/protocols
+     to which a class conforms (including those it inherits), not just those
+     referenced within the class declaration.  Also changed this command when
+     on an interface/protocol entry to display the interfaces to which the
+     entry conforms, just as it does for regular classes.  Use {v} or {e} to
+     display the interface declaration itself for viewing or editing.  The
+     OO-Browser command/help menu bound to {h} now documents the {P} key.
+
+  ** Method implementors no longer include entries from interfaces/protocols
+     since these are abstract entries, not implementations.
+
+  ** The Action Key, when pressed on individual class or interface/protocol
+     names referenced for inheritance purposes within the initial line of a
+     class declaration, jumps to their associated declarations.
+
+  ** Modified the way the browser displays definitions/declarations.  Point
+     is now left on the first line of the definition, not on preceding
+     comments, although the preceding comments are also displayed.  Comments
+     that do not begin a line are ignored, so that lines such as:
+         @end /* comment */
+     are not considered preceding comments.
+
+* C++ OO-Browser
+
+  ** Navigating from method declarations to their definitions now works
+     when classes are declared within the same files as the methods rather
+     than in header files.
+
+* Java OO-Browser
+
+  ** Added full support for browsing interfaces just like classes;
+     additionally, implementors of interfaces may be listed.  Use the {f}
+     (br-features) command on the top-level default class, [interface], to
+     see all interfaces defined within the Environment.  Interface entries
+     are shown delimited by <>.
+
+  ** Interface method declarations are now properly categorized as abstract
+     methods within OO-Browser listings.
+
+  ** Due to changes in the handling of interfaces, Java OO-Browser Environments
+     built prior to V2.12 are obsolete.  The browser now prompts the user
+     to rebuild such Environments whenever they are loaded.
+
+* Objective-C OO-Browser
+
+  ** Fixed so {I} (br-implementors) works when used on feature entries
+     or class category entries.
+
+  ** Added support for method signatures which end with ,...
+     This syntax is used within GNUstep libraries.
+
+  ** Due to changes in the handling of interfaces, Objective-C OO-Browser
+     Environments built prior to V2.12 are obsolete.  The browser now prompts
+     the user to rebuild such Environments whenever they are loaded.
+
+---------------------------------------------------------------------------
+			       VERSION 2.11.03
+
+* OO-Browser Multi-language Changes
+
+  ** When using OO-Browser Environments outside of the browser user interface
+     to click on identifiers and jump to their definitions, the location of
+     display of new files and buffers is controlled by Hyperbole's
+     `hpath:display-buffer' function which allows user-level control of where
+     display occurs.
+
+  ** The browser now skips CVS subdirectories by default when scanning source
+     code.  See the documentation for `br-skip-dir-regexps' for more details.
+
+* C++ OO-Browser
+
+  ** Support for .CXX and .HXX suffixes from case-insensitive platforms.
+
+  ** Eliminated false #define macro listings when a simple constant contains
+     parentheses.
+
+  ** Method and function call browsing is now supported by pressing the
+     Action Key on a call after an Environment has been loaded.  The
+     OO-Browser deals with much of the complexity of C++'s calling
+     syntax so you need not (though it doesn't yet account for method
+     overloading).  In cases where it cannot determine a unique definition
+     (e.g. where dynamic binding is involved), it pops up a list of possible
+     definitions (method signatures).  An Action Key click on any of these
+     (or on the class names separating these signature lines) will display
+     the definition within the source code.
+
+  ** An Action Key press on pretty much any class name, including those
+     preceeding the :: scoping operator in a method call, jumps to the
+     class declaration.
+
+* Java OO-Browser
+
+  ** All interfaces and classes mentioned within `implements' and `extends'
+     clauses are now properly recorded.  Interfaces give Java a limited form
+     of multiple inheritance which is reflected by the OO-Browser.  There is
+     as yet no visual distinction within listing buffers between interface
+     and class names.
+
+  ** Classes which are referenced but not defined in the Environment
+     are now assumed to inherit directly from Object so that it remains
+     the sole top-level class.
+
+---------------------------------------------------------------------------
+			       VERSION 2.11.02
+
+* Added support for new C++ `restrict' keyword.
+
+* Added hmouse-tag.el file to support jumping from C-based headers to
+  their definitions when a full Hyperbole distribution is not available.
+
+* Added support for rebuilding C constructs when just the System or
+  Library part of an Environment is rebuilt.  You must first rebuild
+  in its entirety any Environment built with an earlier version of the
+  OO-Browser; then rebuilding either part of it will work properly.
+
+---------------------------------------------------------------------------
+			       VERSION 2.11.01
+
+* Case-sensitive feature name lookup in C++, C, Java, Python, and
+  Objective-C.
+
+* Added support for running the OO-Browser in a dedicated frame under
+  InfoDock.
+
+---------------------------------------------------------------------------
+			       VERSION 2.11
+
+* OO-Browser Multi-language Changes
+
+  ** {M-x oo-browser RET} now prompts to return to the previously browsed
+     Environment.
+
+  ** Errors in redrawing trees in the X OO-Browser when collapse a node
+     are gone (double buffering during redrawing had to be disabled).
+
+  ** Fixed a number of bugs.  See the "ChangeLog" file.
+
+  ** Edited whole OO-Browser Manual.
+
+  ** Long comments preceding an element definition no longer scroll the
+     element outside of the window bounds.
+
+  ** The {br-where} command now displays its output in the viewer window so
+     that it is never truncated and the results can be more easily reused.
+
+* C++ and Objective-C OO-Browser
+
+  ** C functions are included in Environments only if `br-c-tags-flag' is t,
+     which is the default.
+
+  ** C constructs whose name comes at the end of a multi-line { list }, such
+     as an enum, now are displayed in their entirety.  (The old behavior
+     displayed just the final line of the construct.
+
+  ** Action Key presses on global C identifier references within code jumps
+     to their definitions.
+
+  ** Global variables and individual enumeration labels are now listed in
+     default classes [variable] and [enum_label] respectively.
+
+* Eiffel OO-Browser
+
+  ** Added details to the OO-Browser Manual concerning the br-entry-info
+     command bound to {i} under Eiffel.
+
+---------------------------------------------------------------------------
+			       VERSION 2.10
+
+* OO-Browser Multi-language Changes
+
+  ** Added Show-Inherited-Features toggle button to the OO-Browser Options
+     menu.  This determines whether or not inherited features are shown
+     when listing class features.  (The default is `on'.)
+
+  ** Adding a single class to an Environment with the br-add-class command
+     now properly adds its features too.  Similarly, the br-delete command
+     deletes associated features.
+
+  ** X OO-Browser bug on some platforms that blackened the whole window after
+     drawing the tree may be eliminated on some platforms, but not all.
+
+  ** br-edit-feature is now more flexible, permitting separate specification of
+     class and feature name arguments.
+
+  ** Fixed br-find-file to never display a file in a browser listing window.
+
+  ** Eliminated unnecessary execution of mode-specific hooks when scanning
+     class files.  For example, invocation of syntax highlighting could
+     slow down scanning dramatically.
+
+  ** Added BeOpen.com contact info to version/credit screen that
+     appears on startup or when using the {C-c #} command in the browser
+     to make it easy for people to get commercial support or custom
+     develpment for the OO-Browser.
+
+* C++ OO-Browser
+
+  ** Added support for multi-line virtual method declarations.
+
+* Java OO-Browser
+
+  ** Attributes are now included as features of a class (you must rebuild
+     any existing Environment to have them included).  They are prefaced
+     with "= " when shown in a browser listing buffer.
+
+  ** Array return values from methods are now handled properly by the
+     OO-Browser scanner.
+
+  ** Feature name completion now works properly, whenever the browser
+     prompts for a feature name.
+
+  ** Added support for .jav files for 3-character suffix impaired users.
+
+  ** Cleaned up a number of areas of the code that were improperly carried
+     over from the C++ OO-Browser.
+
+  ** Removed support for threadsafe keyword since it has been deleted from
+     the language specification.
+
+* Objective-C OO-Browser
+
+  ** objc-feature-matches can now take a regular expression and return
+     all matching features.
+
+* Python OO-Browser
+
+  ** Included support for the Python object-oriented scripting language.
+
+---------------------------------------------------------------------------
+			       VERSION 2.9.11
+
+* Added man/br-design.texi to document the design rationale of the
+  OO-Browser.
+
+* Java: The OO-Browser now works on code with the new Java exception syntax:
+      public Connection(String host, int port)
+	throws UnknownHostException, InputOutputException {}
+
+* Fixed mouse key initialization bug.
+
+* C: Fixed bug in displaying structure or enum definitions.
+
+* Emacs 19: Fixed bug that caused OO-Browser menubar menu not to appear.
+
+* BR-README: Rewrote Installation / Configuration section.
+
+---------------------------------------------------------------------------
+			       VERSION 2.9.10
+
+* {M-x br-report-bug RET} bound to {C-c C-b} in OO-Browser listing buffers
+  can be used to send mail to the OO-Browser discussion list.
+
+* A number of significant bug fixes, including errors triggered when scanning
+  source directories and encountering an unreadable file.  See "ChangeLog".
+
+* .icc and .I C++ inline definition file suffixes are now supported.
+
+* Any time an Environment is built interactively, you are queried whether or
+  not to build it in the background.
+
+* If you try to load an Environment which has not yet been built and you
+  decide not to build it, then the load is aborted rather than prompting you
+  for another Environment to load.
+
+---------------------------------------------------------------------------
+			       VERSION 2.9.9
+
+* Standard OO-Browser invocation command renamed to `oo-browser' for clarity.
+  `oobr' still exists for backward compatibility.  Invocation is now much
+  simpler and cleaner.  You are always prompted for the Environment to
+  browse, but if you hit {RET} immediately or if you give a prefix argument
+  to the command, then you jump right into browsing the previous Environment.
+  This eliminates the problem new users had in not knowing how to switch
+  Environments.  See "(oo-browser.info)Loading Environments".
+
+* {q} to quit from the OO-Browser now always puts the browser buffers at the
+  bottom of the buffer list, as it should.
+
+* Subdirectories whose names are a single character long now are scanned
+  properly.
+
+* br-skip-dir-regexps and br-file-dir-regexp are now documented in the
+  manual, see "(oo-browser.info)Customization".
+
+---------------------------------------------------------------------------
+			       VERSION 2.9.8
+
+* Improved tree-x/Makefile support for building under UNIX System V.
+
+* Fixed bugs in Java Environment building.
+
+* Added Java Specifics section to the OO-Browser manual.
+---------------------------------------------------------------------------
+			  VERSIONS 2.9.6 and 2.9.7
+
+* Added support for browsing Java code.
+
+* A number of bug fixes.
+---------------------------------------------------------------------------
+			  VERSIONS 2.9.4 and 2.9.5
+
+* Eiffel: Added some new Eiffel V3 keywords.
+
+* Added information on the new oo-browser mailing list in the "BR-README"
+  file.  Also added menu items to subscribe to / unsubscribe from the list
+  and to send mail to it.
+
+* CLOS: Changed language name to Lisp, since the browser is useful on
+  non-CLOS Lisp too.
+
+---------------------------------------------------------------------------
+				VERSION 2.9.3
+
+* Environment files now contain the version of the OO-Browser which was used
+  to build them.  If the Environment file format is obsolete, the OO-Browser
+  will automatically prompt you to rebuild it whenever you load it.
+
+* {C-c C-s} now properly saves Environment features, when the Environment is
+  renamed.
+
+* The browser user interface will now display within a frame even if you have
+  set the unsplittable frame property.
+
+* Eiffel: Fixed bug that prevented display of a feature from its listing
+   entry when using {f}.
+---------------------------------------------------------------------------
+				VERSION 2.9.2
+
+* Added pulldown and popup menu support for Emacs 19.
+
+* `make install' now installs OO-Browser documentation in an Emacs tree.
+
+---------------------------------------------------------------------------
+				VERSION 2.9.1
+
+* C++/C/Objective-C:
+
+         NOTE:  You must rebuild any Objective-C Environments that you have
+                built with earlier versions of the browser.  If you want the
+                new C default classes described below to appear in C++
+                Environments, you must rebuild them, too.
+
+         The OO-Browser now supports browsing the following C constructs
+         within C++ and Objective-C Environments via default classes:
+
+         DEFAULT CLASS    C CONSTRUCT
+         --------------------------------------
+         [constant]       #define constant
+         [enumeration]    enum {}
+         [function]       non-member function()
+         [macro]          #define macro()
+         [structure]      struct {}
+         [type]           typedef {}
+         [union]          union {}
+
+         You may now define a C++ Environment which contains only C code.
+         The above default classes are the only ones that will appear in such
+         Environments.
+
+* C++: Added recognition of keywords, `mutable' and `explicit', newly added
+       to standard C++.
+
+* Removed key binding of br-toggle-keep-viewed since this is little used and
+  reused its key, {V}, for br-view-friend, which views the definition of a
+  C++ friend declaration.  This was mistakenly formerly bound to {M-v} which
+  conflicted with a basic scrolling command.
+
+* C++: Recognition of new array operators, `operator new [] ()' and 'operator
+       delete [] ()'.
+
+* The X OO-Browser can now be built on systems without the usleep system call
+  (see oo-browser/tree-x/Makefile).
+
+* {M-e}, br-env-stats, now shows the names of any classes which are defined
+  multiple times within the Environment, to help you eliminate duplicates.
+  It also shows a list of undefined classes, those which are referenced,
+  e.g. as parents of another class, but not defined within the Environment.
+
+---------------------------------------------------------------------------
+				 VERSION 2.9
+
+* C++: See the C++ Specifics section of the OO-Browser manual for user
+       documentation on all of these changes.
+
+* C++: friend declarations now appear in class feature listings, prefixed by
+       `% '.  {V} views the definition of a friend.
+
+* C++: pure virtual functions now appear in listings as `> func' instead of
+      `func = 0'.  Object creation and deletion functions appear as `+ func'
+      instead of `- func'.
+
+* C++: Overloading of operator[] and operator() is now supported.
+
+* C++: Greatly speeded up feature listings by caching feature names.
+
+* C++: Expanded variety of complex declarations/definitions that the browser
+       recognizes. 
+
+* Eiffel: Added full feature browsing as in other languages along with Eiffel
+          V3 support.
+
+---------------------------------------------------------------------------
+				VERSION 2.8.6
+
+* Added KEYWORDS: header to all *.el files, so the Emacs finder
+  program, {C-h p}, can now include them in its indices for lookup.
+
+* C++: Added support for browsing pure virtual function interfaces declared
+  within classes.  Given a pure virtual function named, f, it appears as, f =
+  0, in a browser listing buffer to distinguish it from a member definition.
+
+* C++: Improved scanning of a broader range of C++ definitions.
+
+* {C-u F} now works properly.  It shows the signatures/tags of all features
+  in the current listing buffer.
+
+* CLOS: Added proper support for &keywords in argument lists.
+
+* CLOS: All methods which do not contain any specialized parameters (those
+  of a specific type) are considered members of the root CLOS class `t'. 
+
+---------------------------------------------------------------------------
+				VERSION 2.8.5
+
+* Documented InfoDock/XEmacs menus in the manual.
+
+* Improved Makefile support for adding custom load-path entries.
+
+* Emacs 19 versions now run site-start.el when batch compiling files.
+
+---------------------------------------------------------------------------
+				VERSION 2.8.4
+
+* Added autoload comments so that autoloaded OO-Browser commands are
+  automatically picked up under V19.
+
+* The default display of class features/elements, bound to {f}, now includes
+  all inherited features.  Use {M-0 f} to turn off display of inherited
+  features.
+
+* Under XEmacs when mouse support is available, there is an OO-Browser
+  pulldown menu and the same menu as a popup, bound to the right mouse button
+  when in a browser listing buffer.
+
+* Instantiation of templates is handled well now, especially when a parent
+  class is a template instantiation.
+
+* Action Key press on a C++ class feature declaration now properly jumps to
+  the definition.
+
+---------------------------------------------------------------------------
+			  VERSIONS 2.8.2 and 2.8.3
+
+* New version of the X OO-Browser with more reliable display updates after a
+  node is collapsed and a color X resource file.
+
+* Support for C++ template class and method browsing.
+
+* Under C++, non-class functions are now found and added to the default
+  [function] class for easy browsing.  This includes both C and C++ functions.
+
+* Br-unique, {u}, and br-order, {o}, now work on all entry types, not just
+  classes.
+
+* New command, br-match-entries, bound to {M}.  Permits filtering of the set
+  of entries in a listing buffer.  Under Emacs 19, you can still browse
+  entries after filtering them.  Emacs 18 doesn't permit this since each
+  entry name is not necessarily unique.
+
+* Many bug fixes and many fewer invalid method tag matches under C++.
+
+* Much faster compilation of the OO-Browser Emacs Lisp source code since all
+  files are compiled with one invocation of Emacs, rather than one per file.
+
+* Environment builds may now be done in the background.  (You are prompted
+  for whether to build in the background, each time you build an
+  Environment.  When the build finishes, you are asked if you would like to
+  browse the built Environment.)
+
+* Eiffel 3 inheritance clause support.
+
+---------------------------------------------------------------------------
+				VERSION 2.8.1
+
+* Much faster C++ feature lookups.  You *must* rebuild any C++ Environments
+  built with earlier versions of the OO-Browser before trying to browse
+  features within the Environment.  Load such an Environment and use {C-c
+  C-e} to rebuild it.
+
+* XEmacs 19.12 mouse support.
+
+
+---------------------------------------------------------------------------
+				 VERSION 2.8
+
+* Command and Key Binding Improvements
+
+  ** Action Key press on an OO-Browser environment file named OOBR or
+     OOBR-FTR, automatically determines the language of the Environment and
+     loads it for browsing.
+
+  ** Common Lisp and Emacs Lisp element browsing support added.  Standard
+     language element types are added as default classes to Environment, so
+     one can browse functions, variables, methods and more.  See
+     "(oo-browser.info)CLOS Specifics" for details.
+
+  ** The feature listing command, br-routines, previously bound to {r}, has
+     been renamed br-features and bound to {f}.  {f} used to run br-find; use
+     {C-u e} (br-edit-entry) for that command instead.  This makes the
+     bindings of {f} and {F}, which lists feature signatures, more uniform.
+     {r} still works for backwards compatibility in this release.
+
+  ** {f} if applied to a single class for which there are no feature
+     definitions within the Environment, displays the associated class
+     definition so that you may browse its feature declarations.  This
+     improves browsing in Environments where you have only interface
+     specifications, e.g. *.h files, but no source code.
+
+  ** Fixed {I}, br-implementors command.  Also, now an Action Key press on
+     an implementor class shows the implemented element.
+
+  ** {C} lists class categories.  Presently only supported under Objective-C.
+     {v} or {e} views or edits the class category definition.
+     {I} shows the classes which implement a category.
+     The [category] default class displays all Environment categories as its
+     features.  {v} or {e} then displays the associated category definition.
+
+  ** {P} lists class protocols.   Presently only supported under Objective-C.
+     {v} or {e} views or edits the class definition which directly conforms
+     to the protocol.
+     {I} shows the classes which implement a protocol.
+     The [protocol] default class displays all Environment protocols as its
+     features.  {v} or {e} then displays the associated protocol definition.
+
+
+* Graphical Browser Improvements
+
+  ** Motif version of the X OO-Browser interface redone using the Athena
+     toolkit, so that only free X libraries are required.  Thanks to Torgeir
+     Veimo for this conversion work.
+
+
+* Many bug fixes.
+
+  ** The browser will no longer scan SCCS revision subdirectories by default.
+
+  ** Better support for the wide variety of C++ coding styles and file naming
+     conventions.
+
+
+* User Manual Improvements
+
+  ** Reorganized and renamed sections for clarity.
+
+  ** New sections:
+
+     ***  "(oo-browser.info)Browsing Categories"
+     ***  "(oo-browser.info)Browsing Elements"
+     ***  "(oo-browser.info)Browsing Implementors"
+     ***  "(oo-browser.info)Browsing Protocols"
+
+  ** Expanded glossary in user manual.
+
+
+* Installation Improvements
+
+  ** Improved Makefile to support all common Emacs versions.
+
+  ** More detailed installation notes in "BR-README". 
+		      The OO-Browser, Version <VERSION>
+
+	     Bob Weiner designed and implemented the OO-Browser.
+			    <bwcto@users.sf.net>
+
+     Copyright (C) 1989-2002  Bob Weiner, BeOpen.com and the Free Software
+     Foundation, Inc.
+     Distributed under terms described in the BR-COPY file within the
+     OO-Browser distribution.
+
+     With thanks to Motorola, Inc. for helping fund initial development, to
+     Torgeir Veimo, Mark Stern, Steve Baur and Martin Buchholz for helping
+     with the X OO-Browser core, to Jeff Sparkes for help with Java language
+     support, to Harri Pasanen for contributing the initial Python
+     language support (derived from the C++ support code) and to Kirill
+     Katsnelson for adapting the graphical OO-Browser for use with Windows.
+2002-01-03  Bob Weiner  <bwcto@users.sf.net>
+
+* BR-README: Updated and clarified Installation section.
+
+2001-05-10  Bob Weiner  <bwcto@users.sf.net>
+
+* br-python-ft.el (python-feature-entry-regexp): Renamed this regexp constant
+    from python-feature-entry.
+  br-ftr.el (br-feature-entry): Added this function.
+  br-ftr.el (br-feature-entry-regexp): Renamed this regexp constant from br-feature-entry.
+
+* br.el (br-at-feature-p): Rewrote to increase accuracy.
+
+* br-python-ft.el (python-empty-line): Updated to handle \r chars.
+
+* br.el (br-entry-info): Rewrote to support br-insert-entry-info function.
+  br-python-ft.el (python-store-entry-info):
+ 	(python-insert-entry-info): Added.
+  br-lib.el (br-setup-functions): 
+  pyth-brows.el (python-browse-setup): Added insert-entry-info, store-entry-info
+    and store-class-info function setup.
+
+* BR-VERSION: Updated copyright to support GPL 2 and distributor.
+
+* br-python-ft.el (python-lookup-docstring): Improved to use pydoc.el if
+    available and to handle all entry types with doc strings.
+        (python-get-docstring-from-source): Improved to handle all entry
+    types with doc strings.
+
+* br-lib.el (br-major-mode): Fixed to not invoke a programming mode on
+    dired buffers.
+
+* br-python-ft.el (python-feature-implementors): 
+  br-ftr.el (br-feature-name): Updated to strip any package/module prefix
+    from Python entry names.
+  br-python-ft.el (python-feature-entry): Added.
+
+* br-menu.el (br-menu-common-preamble): Updated mailing list and support menu items.
+
+2001-05-09  Bob Weiner  <bwcto@users.sf.net>
+
+* br-python-ft.el (python-import-dirs): Updated to use PYTHONPATH
+    environment variable when set.
+
+* br-python-ft.el (python-add-default-classes): Added global support.
+                  (python-scan-globals): 
+  br-python.el (python-global-name): Added and used in python-scan-features.
+
+* br-java-ft.el (java-locate-feature): 
+  br-python-ft.el (python-locate-feature): Deleted.
+
+* br-lib.el (br-filename-head): Rewrote to return a regexp.
+
+* br-python-ft.el (python-routine-def): Modified to end expression prior
+    to the terminating colon after a routine signature.
+
+* br.el (br-feature): 
+  br-ftr.el (br-feature-found-p): Modified to handle a BUF-FILE arg which
+    is a directory, for Python package handling.
+
+* br-ftr.el (br-feature-set-tags-buffer): 
+            (br-feature-tags-buffer): Added to cache access to br-feature-tags-file.
+	
+* br-lib.el (br-real-build-al): 
+	(br-real-build-alists): 
+  br-python.el (python-get-classes-from-source):
+        (python-module-name): 
+	(python-module-tag): 
+	(python-add-package): 
+	(python-search-directory): 
+  br-python-ft.el (python-add-default-classes): Added module and package
+    support for Python
+
+2001-05-07  Bob Weiner  <bwcto@users.sf.net>
+
+* br-python.el (python-to-comments-begin): Added support for C/C++/Java files.
+
+* java-brows.el (java-mode-setup): Rewrote to call new function java-lang-mode.
+  pyth-brows.el (python-mode-setup):
+ 		(python-lang-mode): Added.
+
+* br-python-ft.el: Added (require 'br-c-ft) and modified 
+    `python-feature-locate-p' to use C comment checks for C files.
+
+* br-python.el (python-class-definition-regexp): Added missing class
+	statement terminator to prevent class name substring matches.
+               (python-class-name-before): Allowed whitespace before
+   `class' keyword since sometimes classes are defined conditionally.
+
+2001-04-21  Bob Weiner  <bwcto@users.sf.net>
+
+* br-lib.el (br-real-build-alists): Modified to act as though running in
+   batch mode so that major-mode-specific messages (e.g. those in Python
+   mode) may be suppressed as files are read in for scanning.
+
+2001-04-18  Bob Weiner  <bwcto@users.sf.net>
+
+* br-env.el (br-env-select-lang): Simplified reading number from the user.
+
+2000-08-06  Bob Weiner  <weiner@beopen.com>
+
+* br-python-ft.el (python-scan-features): 
+* br-python.el (python-get-classes-from-source): Updated to ignore class
+   and function defs within doc strings.
+
+2000-07-27  Bob Weiner  <weiner@beopen.com>
+
+* br-lib.el (br-find-file-noselect): Added and bound
+   `br-find-file-noselect-function' to it.  This eliminates a regexp
+   overflow which can occur in C++ due to Hyperbole's attaching
+   `hproperty:but-create' to `find-file-hooks'.
+
+1999-10-28  Bob Weiner  <weiner@beopen.com>
+
+* br-c-tags: Added world execute bit that was missing.
+
+1999-08-15  Bob Weiner  <weiner@beopen.com>
+
+* br-name.el (br-names-display): Rewrote to utilize help mode when
+    available so can {q} out of this buffer.
+
+* br-menu.el (br-menu-external): Under InfoDock, underlined accelerator
+    key for the OO-Browser menu. 
+
+==============================================================================
+* V4.08 changes ^^^^:
+==============================================================================
+
+1999-08-04  Bob Weiner  <weiner@beopen.com>
+
+* tree-w32/intf-msw.c (HandleFrameMenuCommand): Deselect node before
+    deleting it (suggested by "Simon Waite" <opless@b0rk.co.uk>).
+
+* br-java.el: Anchored to bol so that point ends up at the start of the
+    class def when editing a class, rather than after the initial keyword.
+
+* br-lib.el (br-insert-file-contents): Added optional second arg UNUSED is
+    necessary since when used as a setting for `br-view-file-function'
+    this may be sent two arguments. 
+
+1999-08-03  Bob Weiner  <weiner@beopen.com>
+
+* br-java.el (java-class-def-regexp): Removed match of parent or protocol
+    classes at the end of expression because the expression was
+    invalid if no such classes existed and could cause the browser
+    scan to hang.
+             (java-class-name-after): Updated doc string and added
+    expression to match classes after the `extends' and `implements'
+    key words.
+
+* br-init.el (br-init-autoloads): Fixed improper file reference in
+    br-env-* autoloads.
+
+* br-start.el (br-env-default-file): 
+	      (br-env-file): Moved defs from br-env.el since the
+    `oo-browser' command in this file may reference this file before
+    br-env.el is loaded.
+
+* br-lib.el (hasht): Added missing (require 'hasht).
+
+1999-07-20  Bob Weiner  <weiner@beopen.com>
+
+* br-lib.el (br-ftr): Removed (require 'br-env).
+  br-env.el (hasht): Added (require 'br-start) since functions can be
+    autoloaded from here.
+
+* br-menu.el (br-menubar-menu-setup): 
+	     (id-menubar-br): 
+             (br-menu-common-body): Added full InfoDock Options menu when
+    available and made OO-Browser options a submenu of this.
+
+==============================================================================
+* V4.07 changes ^^^^:
+==============================================================================
+
+1999-07-18  Bob Weiner  <weiner@beopen.com>
+
+* br-vers.el (br-version): Version 4.06 released.  (Bug fix release)
+
+1999-07-16  Bob Weiner  <weiner@beopen.com>
+
+* Makefile: Tightened platform-specific target dependencies.
+
+* br.el: Added (require 'br-start).
+  br-start.el (br-ootags-executable): 
+	(br-shell-executable): 
+	(br-c-tags-flag): 
+	(br-sort-options): Moved from "br.el" to avoid byte-compilation
+    load ordering problems.
+
+1999-07-14  Bob Weiner  <weiner@beopen.com>
+
+* Makefile (dist): Changed `OO-Browser Pro' to OO-Browser for consistency
+    with other documentation.  Removed single language distribution targets
+    and separated source and runtime distribution from platform-specific
+    binaries. 
+
+1999-07-13  Bob Weiner  <weiner@beopen.com>
+
+* br-clos.el: 
+  br-eif.el: Removed circular requires pointed out by Steve Baur.
+
+1999-07-10  Bob Weiner  <weiner@beopen.com>
+
+* br-start.el (hyperb:dir): Prefer the `hyperbole/' directory to `hypb/'.
+
+1999-07-09  Bob Weiner  <weiner@beopen.com>
+
+* objc-brows.el (objc-mode-setup): 
+  java-brows.el (java-mode-setup): 
+  c++-browse.el (c++-mode-setup): Eliminated dependency on "hmouse-tag.el".
+
+* br-menu.el (br-menu-external): Removed extra parentheses that caused
+    "Continue" item to fail.
+
+==============================================================================
+* V4.06 changes ^^^^:
+==============================================================================
+
+1999-06-26  Bob Weiner  <weiner@beopen.com>
+
+* br-vers.el (br-version): Version 4.05 released.
+
+* Makefile: Added .DEFAULT target.
+
+1999-06-25  Bob Weiner  <weiner@beopen.com>
+
+* c++-browse.el (c++-mode-setup):
+  java-brows.el (java-mode-setup): 
+  objc-brows.el (objc-mode-setup): Initialized cc-mode.
+
+1999-06-16  Bob Weiner  <weiner@beopen.com>
+
+* br-menu.el (br-menu-common-preamble): Changed `About' entry to summarize 
+    OO-Browser features.
+
+1999-06-10  Bob Weiner  <weiner@beopen.com>
+
+* Makefile (dist): Changed target to build all available OO-Browser
+    distributions.
+
+1999-06-09  Bob Weiner  <weiner@beopen.com>
+
+* br-lib.el (br-find-info-node): Moved from br-info.el and renamed from
+    `info-find-nd'.
+
+* Used new name BeOpen.com throughout.
+
+1999-06-02  Bob Weiner  <weiner@beopen.com>
+
+* eif-browse.el (eif-browse-setup): 
+  br-eif-ft.el (eif-add-default-classes): 
+  br-python-ft.el (python-add-default-classes): 
+  br-c-ft.el (c-build-element-tags): Added C construct support for Python
+    and Eiffel.
+
+1999-05-18  Bob Weiner  <weiner@beopen.com>
+
+* br-env.el (br-env-validate-arg-strings): Updated to handle a deleted Env
+  File directory.
+
+1999-05-16  Bob Weiner  <weiner@beopen.com>
+
+* man/oo-browser.texi: Added to distribution.
+  Makefile: Updated to handle user manual building.
+
+1999-05-06  Bob Weiner  <weiner@beopen.com>
+
+* br-c++-ft.el (c-remove-functions): Modified to leave function opening
+    brace so that the scanner can tell that this is a function def.
+
+1999-02-04  Bob Weiner  <weiner@beopen.com>
+
+* br-c++-ft.el (c++-feature-at-reference-p): Fixed to ignore
+    ::global_function references which are handled elsewhere.
+
+1998-11-23  Bob Weiner  <weiner@beopen.com>
+
+* Makefile (dist): Added HP-UX distribution targets.
+
+==============================================================================
+* V4.05 changes ^^^^:
+==============================================================================
+
+1998-11-19  Bob Weiner  <weiner@beopen.com>
+
+* br-vers.el (br-version): Version 4.04 released.
+
+* Makefile: Added a full set of evaluation-building targets and renamed
+    unixdist targets to solarisdist.  Also eliminated `dist' term from all
+    distribution targets to reduce typing.
+
+1998-11-18  Bob Weiner  <weiner@beopen.com>
+
+* hmouse-br.el (smart-element): Improved error reporting when press occurs 
+    on a non-class and non-feature line.
+
+* br-ftr.el (br-feature-relation-implementors): Removed assumption that if 
+    there is one signature line match that it is always line three.
+    Instead, find the first line with a 'tag property and use that signature.
+    This fixed a bug that could jump to the wrong method definition when
+    the Action Key is pressed on a member call. 
+            (br-feature-to-tag): 
+	    (br-feature-add-tag): Added and used in
+    `br-feature-list-implementors' to fix bug that prevented jumping to
+    signatures listed in such buffers.
+
+1998-11-09  Bob Weiner  <weiner@beopen.com>
+
+* br-java-ft.el (java-feature-lookalikes): Added `catch'.
+
+1998-11-03  Bob Weiner  <weiner@beopen.com>
+
+* br.el (br-edit-ext-start): Fix bug that sent string as arg to nconc and
+    listed arguments in the wrong order if xterm is not used.
+
+1998-10-31  Bob Weiner  <weiner@beopen.com>
+
+* br.el (br-browse): Fixed to redisplay a dedicated OO-Browser frame if it 
+    is in use but the frame itself has been deleted.
+
+==============================================================================
+* V4.04 changes ^^^^:
+==============================================================================
+
+1998-10-27  Bob Weiner  <weiner@beopen.com>
+
+* br-vers.el (br-version): Version 4.03 released.
+
+1998-10-26  Bob Weiner  <weiner@beopen.com>
+
+* br-c++.el (c++-src-file-regexp): Extended suffixes to include .HPP.
+
+* br-ftr.el (br-feature-match-implementors): 
+	    (br-feature-insert-signatures): 
+	    (br-feature-insert-ancestor-implementors): 
+	    (br-feature-insert-descendant-implementors): Rewrote to
+    associate tags with implementor signature entries for easy definition
+    lookup.
+
+* hmouse-br.el (smart-element): Rewrote to handle overloaded methods
+    properly from both V3 and V4-type tag entries.
+  br-ftr.el (br-feature-v3-def-file): 
+	    (br-feature-v3-def-file-internal): 
+	    (br-feature-v3-file-of-tag): Added for use on OO-Browser V3
+    tags by (smart-element).
+
+* br-c-ft.el (c-build-element-tags-internal): Fixed regexp search overflow 
+    under GNU Emacs.
+
+1998-10-25  Bob Weiner  <weiner@beopen.com>
+
+* br-lib.el (br-pop-to-buffer):
+	    (br-find-file):  Added call to (hpath:push-tag-mark).
+
+* br-env.el (br-env-build): Changed EMACSLOADPATH separator to semicolon
+    when hyperb:microcruft-os-p is true.  This allows background building
+    with DOS-type shells, though a `make' program is also required for
+    such builds.
+
+1998-10-23  Bob Weiner  <weiner@beopen.com>
+
+* br.el (br-interrupt): Wrapped br-feature-clear-tags call with a (let
+    (buffer-read-only)) to avert read-only error.
+        (br-next-buffer): Moved (erase-buffer) after
+    (br-feature-clear-tags) call.
+
+* br-ftr.el (br-feature-match-implementors): Prevented substring matches,
+    e.g. looking for implementor of `func' and matching to `function'.
+
+1998-10-22  Bob Weiner  <weiner@beopen.com>
+
+* br-lib.el (br-delete-space): Made to work if string is all whitespace.
+
+* br-c++-ft.el (c++-scan-features): Fixed to ignore ::function global references.
+
+* br-c++.el (c++-header-file-regexp): 
+            (c++-src-file-regexp): Added .inc file suffix used by some libraries.
+
+* br-c++-ft.el (c++-feature-args-regexp): 
+	       (c++-func-args-regexp): Fixed bug that could remove `*'
+    characters from type declarations when trying to match feature
+    declarations to definitions.
+               (c++-feature-def-pat): Fixed problem with differing
+    whitespace within return types of declaration and definition.
+
+* br-env.el (br-env-create): Eliminated potential reference to prior Env name.
+
+* br-c++-ft.el (c-remove-functions): Added.
+               (c++-scan-features): Added call to c-remove-functions to
+    prevent any mis-scans within their bodies.  ootags processes C
+    functions separately.
+
+1998-10-19  Bob Weiner  <weiner@beopen.com>
+
+* br-c++-ft.el (c++-at-feature-regexp): Tightened match to eliminate -, +, 
+  and ! characters within function argument lists to prevent some false
+  matches.
+
+==============================================================================
+* V4.03 changes ^^^^:
+==============================================================================
+
+1998-09-30  Bob Weiner  <weiner@beopen.com>
+
+* br-c++-ft.el (c++-feature-signature-to-regexp): 
+ 	       (c++-type-identifier): 
+	       (c++-return-type-identifier): Allowed whitespace around
+    scoping operator.
+	       (c++-type-identifier): 
+               (c++-return-type-identifier): Added _ as leading character
+    possibility.  This fixed a bug in matching to class type names that
+    start with underscores.