Commits

Anonymous committed 1732989

New files for the next release

  • Participants
  • Parent commits 2e38076

Comments (0)

Files changed (3)

+* Changes for ECB version 1.92.1
+
+** Fixed bugs:
+
+*** Fixing eating up a lot of CPU-power just for updating the menu-
+    entries of current compilation-buffers in the ECB-menu. Now the mechanism
+    is based on a idle-timer and a cache.
+    Fixed with great testing-help by Dan Debertin <airboss@nodewarrior.org>
+
+*** Fixed a bug which always truncates lines in the ECB-windows regardless
+    of the value of `ecb-truncate-lines'
+
+*** The upgrade library of ECB now explicitly requires and loads the
+    library executable.el because Emacs 20.X does not autoload the
+    function `executable-find'.
+
+*** `ecb-toggle-compile-window' now works also correct if called with
+    a prefix arg.
+
+
+
+* Changes for ECB version 1.92
+
+** Fixed bugs:
+
+*** Fixed small bugs in the popup-menu of the history-buffer.
+
+*** Fixed some not working links in the FAQ.
+
+** ECB now includes a file "ecb-autoloads.el" which contains all available
+   autoloads of ECB. Therefore loading this file is enough.
+
+** Enhancements to the layout
+
+*** The sizes of the ecb-windows can be fixed even during frame-resizing
+    This new feature is only available with GNU Emacs 21.X. See new option
+    `ecb-fix-window-size'.
+    Suggested by Gunther Ohrner <G.Ohrner@post.rwth-aachen.de>
+     
+*** The command `ecb-store-window-sizes' can now also store fixed sizes.
+    If called with a prefix arg then fixed sizes are stored instead of
+    fractions of frame-width resp. -height.
+
+*** The command `split-window' is now also adviced to work properly.
+
+** Enhancements for the tree-buffers
+
+*** "Create Source" in the popup-menues now work also for non-java-files.
+
+*** ecb-truncate-lines can now be set different for each ECB-tree-buffer.
+
+*** Easy horizontal mouse-scrolling of the ECB tree-buffers. See new option
+    `ecb-tree-easy-hor-scroll'.
+
+** Added a command `ecb-jde-display-class-at-point' which displays the contents
+   of the java-class under point in the methods-buffer of ECB.
+
+** Renamed previous HISTORY file to NEWS and reformate it for outline-mode.
+
+
+
+* Changes for ECB version 1.91.1
+
+** Fixed bugs:
+
+*** Fixes a bug in the speedbar integration which prevented clicking onto a
+    directory in the speedbar: Always after clicking onto a directory speedbar
+    has re-synced itself to the directory of the current source-buffer in the
+    edit-window. This bug is fixed, now directory navigation in the speedbar
+    works. (Klaus)
+
+*** Fixes a bug in upgrading stored window-sizes from ECB 1.80 to ECB >= 1.90.
+    Fixes also two bugs in `ecb-store-window-sizes' if default-values are used in
+    `ecb-layout-window-sizes' or if ecb-windows have frame-height as height
+    (resp. frame-width as width) . (Klaus)
+
+*** Fixed a bug in the navigation-history of ECB which sometimes has prevented
+    that a user can open files from the sources/history buffer or clicking onto
+    tokens in the method-buffer. Now the back-forward-navigation works stable.
+    (Klaus)
+    
+** Enhanced the downloading feature of ECB
+
+*** Fixed a bug in the downloading feature of ECB. (Klaus)
+
+*** Now ECB autom. checks at the download sites which versions are available.
+    With the new option `ecb-download-package-version-type' you can define
+    which types of version you allow to download (only stable, stable and betas
+    or stable, betas and alphas); see related section in the online-manual!
+    (Klaus)
+
+*** New command `ecb-download-semantic' for easy getting latest semantic
+    versions. (Klaus)
+
+
+
+* Changes for ECB version 1.90
+
+** The website of ECB has moved from http://home.swipnet.se/mayhem/ecb.html to
+   http://ecb.sourceforge.net. Maintainance has switched from Jesper Nordenberg
+   to Klaus Berndl.
+
+** Fixed bugs:
+   
+*** Fixed an annoying bug which results in an error "Wrong type argument:
+    integer-or-marker-p nil)" after a full buffer reparse. ECB 1.80 has repaired
+    its internal state but nevertheless the user had to reclick on the same
+    token after this error to really jump to a token. With ECB 1.90 this bug has
+    been gone (Klaus).
+
+*** Fixed a small bug in `ecb-add-all-buffers-to-history': If
+    `ecb-sort-history-items' is nil then now the most recently used buffers are
+    added to the top of the history, the seldom used buffers at the bottom.
+    Thanks to Stefan Reich��r <xsteve@riic.at>! (Klaus).
+
+*** Fixed some bugs concerning the eshell-integration (Klaus):
+
+**** Synchronizing does not set the mark anymore
+
+**** No longer synchronizing after every command if current source resides in
+     the HOME directory.
+
+**** Redrawing the layout preserves the eshell-buffer in the compile-window.
+
+**** Standard emacs-hooks are not clobbered with ecb-eshell-functions if ECB is
+     not active.
+
+** General enhancements:
+     
+*** Now ECB displays at every start a "Tip of the day" in a dialog-box. This can
+    be switched off with option `ecb-tip-of-the-day'. There is also a new
+    command `ecb-show-tip-of-the-day' (Klaus).
+
+*** Advicing `scroll-all-mode' so it works correct with ECB, means
+    `scroll-all-mode' scrolls only the windows of the edit-area, i.e. max. the
+    two edit-windows (Klaus).
+
+*** Autom. preventing `winner-mode' from being activated as long as ECB is
+    running (Klaus).
+
+*** Now autom. (de)activating ECB via the options ecb-major-modes-activate and
+    ecb-major-modes-deactivate also works when opening files via dired (Klaus).
+
+*** Now ECB can be "autoloaded", i.e.
+    + ecb-activate,
+    + ecb-minor-mode,
+    + ecb-byte-compile and
+    + ecb-show-help
+    are autoload-able via '(autoload ...)' (Klaus)
+
+*** Silencing the byte-compiler, i.e. byte-compilation of ECB should now be
+    warning free. If byte-compilation still throws warnings during
+    byte-compilation with 'ecb-byte-compile' (resp. using the Makefile or
+    make.bat) please send this to our mailing list. (Klaus)
+
+** Enhancements to the methods/variable/token tree-buffer:
+   
+*** New feature: Now the methods buffer is auto. expanded if the node related to
+    the current token in the edit-window is not visible (probably because its
+    parent is collapsed). See new options `ecb-auto-expand-token-tree' and
+    `ecb-expand-methods-switch-off-auto-expand' and the new comand
+    `ecb-toggle-auto-expand-token-tree' (Klaus).
+  
+*** New command `ecb-expand-methods-nodes' which allows precisely expanding
+    tokens with a certain indentation-level. There are also two new related
+    options `ecb-methods-nodes-expand-spec' and
+    `ecb-methods-nodes-collapse-spec' (Klaus).
+
+** Enhancements to the directories tree-buffer:
+    
+*** New command `ecb-expand-directory-nodes' which does the same for the
+    directories tree-buffer as the new command `ecb-expand-methods-nodes' for
+    the methods tree-buffer (Klaus).
+
+*** Rewritten cache-mechanism for directories and sources:
+    Depending on the value of the option ecb-cache-directory-contents the
+    following is cached for a directory:
+    - The disk-contents of the directory means subdirs and files
+    - If ecb-show-sources-in-directories-buffer is nil (i.e. sources are
+      displayed in the extra ECB-sources-window) then also the complete
+      sources-buffer is cached. This results in a speed-boost for big-size
+      directories.
+    The cache of a directory is refreshed and actualized with a POWER-click onto
+    the related directory in the directories-buffer (s.b.) (Klaus)
+
+** Enhancements to the sources tree-buffer:
+   
+*** The option ecb-source-file-regexps now works on a directory-base, which means
+    for each directory-regexp the files to display can be specified. Default is
+    an all-matching directory-regexp. Old saved values are autom. upgraded
+    (Klaus).
+
+** Enhancements to the layout-customization:
+
+*** Naming and managing of layouts has been changed! Now a layout is not longer
+    identified by an integer but by an arbitrary string! Example: The layout
+    with index 0 in ECB <= 1.80 is now named "left1" in ECB 1.90.
+
+**** Therefore the name of the option 'ecb-layout-nr' has changed to
+     'ecb-layout-name'! See the docstring of 'ecb-layout-name' for the names
+     of all buildin layouts.
+
+**** In this context also the type of ecb-show-sources-in-directories-buffer has
+     changed so it is now a list of layout-names where the sources should be
+     displayed in the directories window (or 'always/'never). Now every change of
+     the layout also checks the value of ecb-show-sources-in-directories-buffer.
+  
+**** This change also introduces three new commands:
+     - ecb-change-layout: Change layouts by selecting a name
+     - ecb-delete-new-layout: Delete an user-created (by 'ecb-create-new-layout')
+       layout.
+     - ecb-show-layout-help: Displays the docstring of a layout which at least
+       for buildin layouts contains a picture of the outline of this layout.
+     All three commands offer TAB-completion for easy selecting a layout name.
+
+**** ECB autom. upgrades the following options to theirs new names/types:
+     - ecb-layout-nr: The stored value is transformed to the new name of the
+       related layout and stored in 'ecb-layout-name'
+     - ecb-toggle-layout-sequence: The stored value is transformed to the new
+       type with layout-names instead of layout-numbers.
+     - ecb-major-modes-activate: The stored value is transformed to the new type
+       with layout-names instead of layout-numbers.
+     - ecb-layout-window-sizes: The stored value is transformed to the new type
+       with layout-names instead of layout-numbers.
+     - ecb-show-sources-in-directories-buffer: Reset to the new default value.
+     (Klaus)
+
+*** Adding a new layout type "left-right" which allows the ECB-tree-windows to
+    be located at the left and the right side of the ECB-frame. See the new
+    layouts "leftright1", "leftright2" and "leftright3" for examples. Other
+    layouts of this type can be created or programmed very easy with
+    'ecb-create-newlayout' resp. the macro 'ecb-layout-define'. (Klaus)
+
+*** Now ECB offers a command `ecb-create-new-layout' for interactively creating
+    new layouts "by example". Read the online-help. (Klaus)
+
+*** Rewritten the mechanism for storing customized window-sizes. See option
+    ecb-layout-window-sizes and the command ecb-store-window-sizes and
+    ecb-restore-window-sizes. Now the sizes are always saved as fractions of
+    the width (resp. height) of the ECB-frame, so the stored sizes are always
+    correct regardless of the current frame-size (Klaus). Suggested and first
+    implementation by Geert Ribbers [geert.ribbers@realworld.nl]
+
+** General Enhancements of the tree-windows:
+
+*** Introduced a POWER-click (was SHIFT-click before) in the ECB-tree-windows -
+    see documentation of ecb-primary-secondary-mouse-buttons and see also the
+    online-help section "Usage of ECB --> Using the mouse" (Klaus).
+
+*** Now the ECB-tree-buffers offer in their popup-menus a "Grep" and a "Grep
+    recursive" (= grep-find) command where you can perform an easy grep in every
+    directory without buffer-switching before. See also the new options
+    `ecb-grep-function' and `ecb-grep-find-function'. (Klaus)
+
+*** Modified syntax-table for all tree-buffers with all paren, braces and
+    brackets handled as whitespace so for example no paren-matching takes place
+    (Klaus).
+    
+** Enhancements to the layout-engine of ECB:
+   
+*** Added a complete new section "The layout-engine of ECB" to the online-help
+    which describes in detail how to program new layouts and new special
+    windows. This is for foreign packages which want to display own informations
+    in own special windows and synchronizing these windows with the edit-window
+    of ECB (a graphical debugger could be an example). Also a full working
+    example is added in the new file ecb-examples.el. (Klaus)
+
+*** Completely rewritten how to program new layouts. Now there is a new macro
+    `ecb-layout-define' which offers very easy programming of new layouts.
+    (Klaus).
+
+** Enhancements to the compile-window
+
+*** ECB now has a list of valid compilation buffers within the ECB menu. (Kevin)
+
+*** ECB now supports `ecb-enlarged-compilation-window-max-height' which can be
+    used for defining the max. height of the ecb-compile-window if enlarged by
+    `ecb-toggle-enlarged-compilation-window'. (burton)
+
+*** Added new command 'ecb-toggle-compile-window': Toggle the visibility of the
+    compile-window of ECB (Klaus).
+
+** Speedbar is now integrated in ECB and can be used instead of the standard
+   ECB-directories buffer (or instead of all tree-buffers if you like :-). Most
+   of the important basic work has been done by Kevin A. Burton.
+    
+*** See new option 'ecb-use-speedbar-for-directories' and the node "Integrating
+    speedbar" in the online-help. (Klaus)
+
+*** Version-checking for correct speedbar version (>= 0.14beta1). For lower
+    versions ecb-use-speedbar-for-directories has no effect. (Klaus)
+
+*** ecb-speedbar and speedbar first loaded direct before drawing the layout
+    with integrated speedbar. (Klaus)
+
+*** The speedbar-commands speedbar, speedbar-get-focus are adviced during
+    running speedbar within ECB, so they behave in a senseful way. (Klaus)
+
+** Enhancements to the ehell-support of ECB:
+   
+*** ecb-eshell now recenters after command execution. (burton)
+
+*** ecb-eshell now recenters if there are any window resizes.  This is done so
+    that the prompt is always at the bottom of the window. (burton)
+
+*** ecb-eshell integration now protects against buffer-list modifications during
+    transparent eshell updates in the compile window.  In the past, if the eshell
+    was running, and you want from buffer "foo", to "bar", and then tries to go
+    back to "foo" the next entry in your buffer list is "*eshell*" so this would
+    break a lot of completion tools like 'switch-to-buffer.  (burton)
+
+*** Added online documentation for the eshell integration. See section
+    "Tips and tricks". (Klaus)
+
+** New hooks:
+  
+*** New or renamed hooks:
+    - ecb-redraw-layout-after-hook (new)
+    - ecb-redraw-layout-before-hook (new)
+    - ecb-hide-ecb-windows-after-hook (new)
+    - ecb-hide-ecb-windows-before-hook (was ecb-hide-ecb-windows-hook)
+    - ecb-show-ecb-windows-after-hook (new)
+    - ecb-show-ecb-windows-before-hook (was ecb-show-ecb-windows-hook)
+    Read the documentation! (Klaus)
+
+*** Added two general hooks:
+    + ecb-before-activate-hook: Activate ECB only if all added hooks return not
+      nil
+    + ecb-before-deactivate-hook: Deactivate ECB only if all added hooks return
+      not nil
+    (Klaus)
+
+*** Added 5 new hooks for the ECB tree-buffers:
+    + ecb-common-tree-buffer-after-create-hook
+    + ecb-directories-buffer-after-create-hook
+    + ecb-sources-buffer-after-create-hook
+    + ecb-methods-buffer-after-create-hook
+    + ecb-history-buffer-after-create-hook
+    These hooks are called directly after tree-buffer creation so they can be
+    used for example to add personal local keybindings either to all
+    tree-buffers (ecb-common-tree-buffer-after-create-hook) or just to a certain
+    tree-buffer. Please read the documentation. (Klaus)
+
+
+
+* Changes for ECB version 1.80
+
+** ECB now requires:
+   + Latest stable release of semantic: Version 1.4
+   + Latest stable release of eieio: Version 0.17
+   ECB checks at start-time if the correct versions are available and if not
+   ECB offers you to download and install them from within Emacs. After this
+   you have only to restart Emacs and you are fine. (Klaus)
+
+** Fixed bugs:
+   
+*** Fixed: Now no empty tooltips are displayed if mouse moves over nodes in the
+    tree-buffers of ECB which can be displayed completely in the tree-window.
+    (Klaus)
+
+*** Fixed a bug in ecb-eshell.  If we are running with current buffer sync, and
+    there is garbage on the current line, when we change buffers this garbage will
+    be executed which could result in a 'command not found' or even worse, a
+    damaging command executed.  We now cleanse the command line prior to directory
+    changed. (Kevin A. Burton) 
+
+*** Fixed a bug in ecb-speedbar.  The speedbar was doing its own updating outside
+    of the ECB.  This means that if you were to change buffers in a frame outside
+    of the ECB frame, the ECB's Speedbar would be updated to reflect a buffer not
+    within the ECB.  We now disable Speedbar's automatic update and have ECB
+    handle this.  (Kevin A. Burton) 
+
+*** Fixed a bug: Sometimes there occurs a a "wrong-type-argument"-error (or
+    "destroyed extent"-error with XEmacs) under some circumstances. Now ECB
+    auto-reparses the buffer and after that ECB is in correct state again.
+    (Klaus)
+
+*** Fixed formatting of "Parent" nodes in token buffer. (Jesper)
+
+** Byte compiling ECB either interactive with `ecb-byte-compile' or with the
+   supplied Makefile now checks also the versions of semantic and eieio.
+   (Klaus)
+
+** ECB now displays the section "First steps" of the online-manual after
+   activating first time. (Klaus)
+
+** Now the adviced versions of `delete-window' and `delete-other-windows' can
+   also handle the optional WINDOW argument of the original versions correctly
+   so the adviced versions now also work correct if called from program (Klaus).
+
+** New adviced window command: `delete-windows-on' now works correct with ECB.
+   See `ecb-advice-window-functions'. (Klaus)
+
+** In the ECB-directories buffer now F4 adds a new source-path instead of F1.
+   That is because F1 is such an important key in many OS and tools (e.g. opens
+   help in all windows-programs), so ECB should not hardly "rebind" it. (Klaus)
+
+** Enhancing the option 'ecb-window-sync': Now the synchronisation can take
+   place for all buffers which have a relation to files AND directories, i.e.
+   now also for dired-buffers. But per default this is switched off, see the
+   doc-string. (Klaus)
+
+** Now the ECB online help is available in the standard Info-format and also in
+   HTML-format. With the new option 'ecb-show-help-format' you can choose which
+   format is used by the function 'ecb-show-help'. (Klaus)
+
+** New feature and command: ecb-download-ecb. With this function you can
+   download and install any arbitrary ECB-version from the ECB-website from
+   within Emacs. This is especially usefull for upgrading to the latest
+   version. (Klaus)
+
+** New debug mode for ECB which prints some debug informations in the message
+   buffer for certain critical operations with semantic-overlays/extends.
+   New option 'ecb-debug-mode' (also available in the Help-menu of ECB).
+   (Klaus)
+
+** Some default keybindings have changed; see `ecb-key-map'. (Klaus)
+
+** New feature: Possibility to define a sequence of layouts with new option
+   `ecb-toggle-layout-sequence' and toggle very fast between them via
+   `ecb-toggle-layout'. Read the online-help section "Simulation a speedbar
+   without an extra frame"! (Klaus).
+
+** Two new hooks: ecb-hide-ecb-windows-hook and ecb-show-ecb-windows-hook. Read
+   the documentation. (Klaus)
+   Suggested by Daniel Hegyi <daniel_hegyi@hotmail.com>
+
+** Two new options: ecb-major-modes-activate and ecb-major-modes-deactivate.
+   Allow (de)activation of ECB on major-mode base. Instead of deactivation also
+   just hiding the ECB-windows is possible. Read the docstrings. (Klaus)
+   Suggested by Daniel Hegyi <daniel_hegyi@hotmail.com>
+
+** Redefining of the option 'ecb-compile-window-temporally-enlarge': Now you
+   can specify that the compile-window is auto. enlarged after selecting it and
+   auto. shrinked after leaving it. Read the docstring! (Klaus)
+   Suggested by Daniel Hegyi <daniel_hegyi@hotmail.com>
+
+** Much better and more powerful auto. upgrading-mechanism of incompatible or
+   renamed ECB-options to latest ECB-version. See the option
+   ecb-auto-compatibility-check! (Klaus)
+
+** New option ecb-tree-RET-selects-edit-window: Possibility not to select the
+   edit-window of hitting RET in a tree-buffer; see the doc-string. There is
+   also a new function ecb-toggle-RET-selects-edit-window which is bound to
+   [C-t] in each tree-buffer. (Kevin A. Burton,  Klaus)
+
+** Better grouping of external methods, i.e. methods which are implemented
+   outside the class-definition, like in C++, CLOS and EIEIO. Now this is done
+   completely by semantic. (Klaus)
+
+** For application programmers using the tree-buffer library:
+   + The function tree-buffer-create has a new argument NODE-DATA-EQUAL-FN. See
+     the doc-string for a description (Klaus).
+   + For each tree-buffer a special user-data-storage (for any arbitrary data)
+     is ceated which can be accessed via `tree-buffer-set-data-store' and
+     `tree-buffer-get-data-store'. See the docstring of `tree-buffer-create'.
+     (Klaus)
+
+    
+
+* Changes for ECB version 1.70
+
+** New option ecb-bucket-token-display. See doc-string for details. (Klaus)
+
+** Reorganisation of the faces used by ECB. The group 'ecb-face-options'
+   contains now all options which type is 'face (i.e. the defcustom's) and the
+   group 'ecb-faces' contains all face-definition (the defface's). In addition
+   it is now possible to change easily and fast the general face for ALL
+   ECB-tree-buffers (same for the highlighting face). See the docstring of the
+   new faces 'ecb-default-general-face' and 'ecb-default-highlight-face' for
+   further details. (Klaus).
+
+** Smarter incr. search in a tree-buffer with the [end]-key: If there are at
+   least two nodes with the same greatest common-prefix than every hit of
+   [end] jumps to the next node with this common prefix. (Klaus)
+
+** New feature ecb-auto-compatibility-check: ECB checks on startup if the
+   current value of an ECB-option OPT is not compatible with the type of OPT in
+   current ECB-release. This is done during activation. If there are
+   incompatible options ECB resets them to the default value of current ECB
+   release and displays after activation in a temporary window which options
+   have been reset, inkl. their old-value (before the reset) and new-value
+   (after the reset). (Klaus)
+
+** New feature ecb-tree-navigation-by-arrow: Smarter navigation in the
+   tree-windows with left- and right-arrow key (Klaus).
+   Thanks for the suggestion and a first implementation to Geert Ribbers
+   <geert.ribbers@realworld.nl>!
+
+** New feature 'ecb-type-token-display'. See the doc-string of this new option
+   for a description. (Klaus)
+
+** Now the option 'ecb-post-process-semantic-tokenlist' has per default an
+   entry for emacs-lisp-mode, so for eieio-code the methods (defmethod) of a
+   class are grouped with respect to the class they belong. The new default
+   value of this option does this for c++- and eieio-code. (Klaus)
+
+** Now in the ECB-tree-buffers RETURN works like the primary button (already in
+   previous versions) and C-RETURN works like the secondary button (new in
+   version 1.70). For an explanation of primary and secondary see the option
+   ecb-primary-secondary-mouse-buttons. (Klaus)
+
+** New feature: Now the token-display function can be defined separated for
+   each major-mode. Furthermore the token-display for C++ has enhanced,
+   especially for template-classes (but template displaying is first available
+   with semantic > version 14beta13!).
+   For this the option ecb-token-display-function has been completely rewritten
+   and is now incompatible with the old values before ECB 1.61. (Klaus)
+
+** Fixed a bug with mouse-avoidance-mode (only relevant for GNU Emacs 20.X)
+   Klaus. 
+
+** New feature, ecb-select-edit-window-on-redraw.  Mostly used if you are running
+   with ecb-redraw-layout-quickly and want to make sure you are always in the
+   edit window. (Kevin)
+
+** New feature, ecb-auto-activate.  If non-nil we can start the ECB after Emacs
+   is started.  See `ecb-auto-activate' for more information.  (Kevin)
+
+** New package, ecb-cycle.el.  Supports cycling through all known compilation
+   buffers. (Kevin)
+     + ecb-cycle-switch-to-compilation-buffer - switch to available compilation
+       buffers.
+     + ecb-cycle-through-compilation-buffers - cycle through all compilation
+       buffers.
+  
+** Much better performance of the directory and file-browser in ECB, especially
+   for directories with a lot of entries (means ~ >1000, dependend on your
+   machine and the net-connection in case of network-drives). See also the new
+   feature: ecb-cache-directory-contents. (Klaus)
+
+** ecb-eshell now supports customization.  (Kevin)
+
+** New feature: ecb-layout-always-operate-in-edit-window. Look at the
+   documentation. (Kevin & Klaus)
+
+** Fixed a bug in `ecb-toggle-ecb-windows'.  For starters we weren't setting
+   `ecb-window-hidden' when we redraw the layout.  This means that the ecb
+   windows could be hidden but never shown.
+   Other things:
+   + ecb-windows-hidden now has documentation
+   + we display status messages when we hide windows. (Kevin)
+
+** Fixed bug in `ecb-redraw-layout-quickly'.  If for come reason any of the ECB
+   windows are not alive, we do not return with a hard error.  Instead, we use
+   the scratch buffer.  (Kevin)
+
+** New function ecb-toggle-enlarged-compilation-window allows users to expand and
+   then contract the compilation window with a new key binding C-c . / (Kevin)
+
+** new option ecb-add-path-for-not-matching-files. Look at the documentation
+   (Klaus).
+
+
+   
+* Changes for ECB version 1.60
+
+** ecb-highlight-token-header-after-jump is now a boolean; which face is used
+   for highlighting is defined in ecb-token-header-face. (Klaus)
+
+** New option 'ecb-post-process-semantic-tokenlist': Special postprocessing of
+   the semantic tokenlist for certain major-modes. This is usefull for
+   c++-mode. Now with the default value of this option all methods in a
+   c++-implementation-file (no class/method-declaration but only method
+   implementations) are grouped with respect to the class they belong. (Klaus)
+
+** Now also with C++ Sources the method- and variable-protection is displayed
+   correct in the ECB-method buffer (Klaus).
+
+** Fixed a bug which prevented ECB using the root path "/" on unix-like systems
+   as a source-path. (Klaus)
+
+** If a file via the standard-mechanisms of Emacs (e.g. find-file) is openend,
+   then the auto. window synch (see `ecb-window-sync') has worked only correct
+   if the new file is located in any of the paths in `ecb-source-path'. Now ECB
+   adds the path of the new file at least temporally via `ecb-add-source-path'
+   to the list of paths in `ecb-source-path', so the window-synch works always
+   correct. ECB asks the user if the new path should saved also for future
+   sessions. (Klaus)
+
+** Added ecb-redraw-layout-hooks so that code can be executed after we redraw the
+   ecb layout.
+
+** New hook ecb-current-buffer-sync-hook allows developers to add code to be
+   evaluated after the ECB is synchronized with the current buffer.
+
+** Now all faces used by ECB for highlighting and displaying it��s own stuff are
+   customizable. See new group 'ecb-faces' (Klaus).
+
+** ECB is now fully prepared for Emacs 21. The new feature
+   `ecb-show-node-info-in-minibuffer' is implemented with the new 'help-echo
+   property of Emacs 21, therefore the ugly `track-mouse' mechanism is not
+   needed anymore with Emacs 21. (Klaus).
+
+** The options `ecb-show-node-name-in-minibuffer',
+   `ecb-show-complete-file-name-in-minibuffer' and
+   `ecb-show-file-info-in-minibuffer' are gone and have been replaced by one
+   single new option `ecb-show-node-info-in-minibuffer' where you can define
+   separately for every tree-buffer when and which node info should be
+   displayed in the minibuffer (Klaus).
+
+** ecb-auto-expand-directory-tree now offers two options:
+   - best: Expand always the best matching source-path for a file
+   - first: Expand always the first matching source-path for a file (Klaus)
+
+** Fixed a bug in auto. expanding directories if a source-path has an alias.
+   (Klaus)
+
+** If mouse is moved over an alias in the directories buffer then the real path
+   is shown in the echo-area; see also 'ecb-show-node-info-in-minibuffer'
+   (Klaus).
+
+** If mouse is moved over an history-entry then the full path is shown in the
+   echo-area so you can distinct better between two entries with the same name
+   but with differnt pathes; see also 'ecb-show-node-info-in-minibuffer'
+   (Klaus).
+
+** New option for the history: ecb-kill-buffer-clears-history defines if
+   `kill-buffer' should also remove the corresponding history entry. There are
+   several options (Klaus).
+
+
+   
+* Changes for ECB version 1.52
+
+** Added EIEIO requirement to ECB.
+
+
+
+* Changes for ECB version 1.51
+
+** Now the names of all ECB buffers begin with a SPC per default. (Klaus)
+
+** ECB now can handle not only full but also partial buffer reparsing if done
+   by semantic and other tools (e.g. JDE >= 2.2.9). The method buffer will
+   always be uptodate if for a major-mode auto. reparsing after buffer changes
+   is enabled (the auto. buffer reparsing itself is not an ECB feature but must
+   be supplied by the major-mode, e.g. JDE). (Klaus)
+
+** Incremental node-search in the ECB-buffers now uses the value of
+   `case-fold-search'. (Klaus)
+
+** Complete new customization of the ECB-keybindings. The option
+   `ecb-prefix-key' has been removed. There is one new option `ecb-key-map'
+   where you can customize all keysettings of ECB (including a common
+   prefixkey). (Klaus)
+
+** ecb-add-source-path and ecb-delete-source-path now ask if saving should be
+   done for future sessions (Klaus).
+
+** Added new navigator functionality. Makes it easy to go to the back and forward
+   in navigated tokens and buffers. See ecb-nav-goto-next and 
+   ecb-nav-goto-previous. (Jesper)
+
+** Added an option to narrow the buffer to the token that is jumped to. See
+   ecb-token-jump-narrow. (Jesper)
+
+** Fixed a small bug that placed the window start at the beginning of the token
+   instead of the beginning of the token line. (Jesper)
+
+
+      
+* Changes for ECB version 1.50
+
+** Fixed a minor bug that occured when de-activating ECB under XEmacs. (Jesper)
+
+** ecb-layout-window-sizes variable is now an association list, which makes it
+   easier to add and remove layouts. (Jesper)
+
+** Added a new layout (nr. 12). Thanks to Nick Cross
+   <nick.cross@prismtechnologies.com> for this layout.
+
+** Each source path can now have an alias that is displayed instead of the path
+   name in the directories buffer. (Jesper)
+
+** The history items can now use the buffer name instead of the file
+   name. Customizable with ecb-history-item-name. (Jesper)
+
+** When jumping to a token the window can be scrolled so that the token starts 
+   at the top or center of the window. This behaviour is customizable with
+   the variable ecb-scroll-window-after-jump. (Jesper)
+
+** Fixed a bug when retrieving parent names for a token. (Jesper)
+
+** Now the option 'ecb-prefix-key' is customizable so you can define another
+   prefix if there are conflicts with other minor-modes or packages (Klaus).
+
+
+   
+* Changes for ECB version 1.41
+
+** Fixed bug when clicking on token in the methods buffer in XEmacs.
+
+
+
+* Changes for ECB version 1.40
+
+** Tree-incremental-search in the ecb-windows now ignores all non interesting
+   stuff:
+   + any leading spaces
+   + expand/collapse-buttons: [+] resp. [-]
+   + protection-signs (+, -, #) in the method-window if uml-notation is used
+   + variables types or returntypes in front of variable- or method-names.
+   + const specifier for variables
+   This makes incremental-searching in a tree-buffer much faster and easier.
+   (Klaus)
+
+** ECB now uses Semantic DB to find parents of types. (Jesper)
+
+** Long source paths in the directories buffer are now truncated at the
+   beginning. Customizable with variable ecb-truncate-long-names. (Jesper)
+
+** Tokens can now be sorted by access. (Jesper)
+
+** Added a function to semantic-clean-token-hooks that just updates the token
+   changed instead of re-building the entire token tree. (Jesper)
+
+** Implemented a token tree cache that stores recently opened buffers' token
+   trees. This makes the buffer switching much faster and also saves expanded
+   nodes and window positions. The cache is unlimited at the moment. (Jesper)
+
+** Added a speedbar-like layout nr. 11. This is very useful (like also layout
+   nr. 10) either for users with small screens or users which normally do not
+   need/want the ECB-windows but sometimes browsing/selecting
+   methods/variables. (Klaus)
+
+** Better extraction of tokens from current buffer. ECB now displays any token
+   type in any order. (Jesper)
+
+** ECB now uses Semantic to display tokens in the methods buffer. (Jesper)
+
+** Much saver ecb-redraw-layout: Now the layout can be restored ALWAYS
+   regardless what messy thing has been done before. (Klaus)
+
+** New advice for 'other-window-for-scrolling', so all scroll-functions for the
+   "other" window can also scroll the first edit-window if point stays in the
+   second one. (Klaus)
+
+** ecb-toggle-ecb-windows now preserves the split, the split-amount, the buffer
+   contents, the window starts and current point. (Klaus)
+
+** Some important changes in the ECB-layout concerning displaying compilation-
+   and temp-buffers. (Klaus):
+
+*** 'ecb-select-compile-window' has been gone.
+  
+*** 'ecb-use-dedicated-windows' is not longer a user-customizable option but
+    it is always set to t, because this is essential for correct working of
+    the ecb-layout engine!
+
+*** 'ecb-compile-window-temporally-enlarge' is now a boolean option.  
+
+*** Now ECB does all necessary that your edit-window of ECB seems to be a
+    normal Emacs frame, especially concerning displaying temp-buffers (like
+    help- and completion-buffers) and compilation-buffers.
+    
+*** The variables 'compilation-window-height' and 'temp-buffer-shrink-to-fit'
+    (XEmacs) and 'temp-buffer-resize-mode' (GNU Emacs) are now fully supported
+    by ECB if no durable compilation-window is shown.
+
+** New function to toggle visibility of the ECB windows. Now it��s possible to
+   hide all ECB windows without deactivating ECB (see 'ecb-toggle-ecb-windows')
+   (Klaus).
+
+** ECB is now a global minor mode with it��s own menu "ECB" and it��s own keymap
+   with prefix "C-c .". New function to (de)activate/toggle ECB with
+   'ecb-minor-mode'. (Klaus)
+
+** Fixed a bug in highlighting current token in the method-buffer when
+   font-lock-mode is nil for the source-buffer. (Klaus)
+
+** New option for highlighting the method-header in the edit-window after
+   clicking onto the method in the method-window (like Speedbar does). (Klaus)
+
+** Function for automatically submitting a problem report to the ECB mailing
+   list: ecb-submit-problem-report. (Klaus)
+
+** Now not only for method-highlighting an idle delay can be set but also for
+   synchronizing the ECB windows with current edit window (see option
+   ecb-window-sync and ecb-window-sync-delay; default is 0.25 sec delay)
+   (Klaus).
+
+** Smarter highlighting of current method (Klaus).
+
+** All tree-buffers now have as default-directory the current selected
+   directory in the directory buffer. So you can also open files with find-file
+   etc. from within the tree-buffers. (Klaus).
+
+
+   
+* Changes for ECB version 1.32
+
+** Nil parent bug fixed. (Jesper)
+
+** New advices for find-file and switch-to-buffer (Klaus).
+
+** Now possible to set an idle delay before the current method is highlighted;
+   useful for slow machines but prevents also "jumping backward/forward" during
+   scrolling within java-classes if point goes out of method-definition into
+   class-definition. Default is an idle time of 0.25 seconds. (Klaus).
+
+
+   
+* Changes for ECB version 1.31
+
+** Parents (extends and implements) of the classes in the current buffer is now
+   shown in the methods buffer. (Jesper). Possibility to define a regexp which
+   parents should not be shown. (Klaus).
+
+** Now displaying the complete node name in minibuffer with the track-mouse
+   mechanism works also with mouse-avoidance-mode on; the mouse-avoidance will
+   be deactivated as long ECB is activated and the node-name display-mechanism
+   is on. This refers only to GNU Emacs! (Klaus)
+
+** Fixed a bug in 'ecb-current-buffer-sync' and 'ecb-redraw-layout' (Klaus)
+
+** Fixed a bug in loading semantic 1.3.3 or semantic 1.4 (Klaus)
+
+
+
+* Changes for ECB version 1.30
+
+** If not all ECB-tree-windows of current layout are visible at redraw-time
+   ('ecb-redraw-layout') then the redraw synchronizes the contents of the
+   tree-windows with the source displayed in current edit-window (Klaus).
+
+** Added a section "Tips and Tricks" to the ECB online-help. (Klaus)
+
+** Added a new layout Nr. 10 for very small screen resolutions where all
+   squarecentimeters are needed for the editing itself. This layout only
+   displays a method-window and a edit-window. (Klaus).
+
+** The messages displayed after moving the mouse over a node in a tree-buffer
+   do not longer wasting the log, means they will not be logged (Klaus).
+
+** ECB now also works with semantic >= 1.4 (Klaus).
+
+** Now the ecb-compile-window-height is also preserved after displaying
+   temp-buffers (e.g. help-buffers after C-h f) - if you want this. See the
+   documentation of the option 'ecb-compile-window-temporally-enlarge'. (Klaus)
+
+** Added menu items for modification of the source paths in the directories
+   buffer. (Jesper)
+
+** Added buttons to directories buffer. (Jesper)
+
+** Mouse over files, methods etc. now work even if follow-mouse isn't
+   activated (Jesper). ECB adds a more intelligent mouse tracking mechanism, so
+   not only the mouse-over-node stuff of ECB works now very well and savely but
+   also follow-mouse itself works better and saver as without activated ECB.
+   (Klaus)
+
+** Popup menus now work in XEmacs. (Jesper)
+
+** You can now specify paths with env-vars like $HOME in the option
+   `ecb-source-path'. (Klaus)
+
+** The user must now confirm if he tries to delete the ECB frame. If he wants
+   to proceed then ECB will be first deactivated before deleting the frame.
+   This works for all ways to delete a frame (shortcut, window-manager-button,
+   ...). (Klaus)
+
+** ECB now optionally create its own frame when activated. See the new option
+   'ecb-new-ecb-frame'. (Klaus)
+
+** Intelligent recentering of tree-buffers now completely implemented without
+   the function 'recenter'. This means no flickering and flashing the whole
+   frame anymore after each 'recenter'. Now the ECB display is stable like a
+   rock :-) (Klaus)
+
+** Mouse over directories now shows directory path. (Jesper)
+
+** Methods and variables with point are now highlighted. (Jesper)
+
+** ECB windows are now updated when saving new files and deleting files. (Jesper)
+
+** incremental-search in every tree-buffer for easier and faster selecting
+   nodes with the keyboard (see new option `ecb-tree-incremental-search' and
+   new function 'tree-buffer-incremental-node-search') for more details.
+   (Klaus)
+
+** ecb-redraw-layout now restores both edit window buffers and the edit window
+   start. (Jesper)
+
+** Spelling corrections. Thanks to Colin Marquardt
+   <colin.marquardt@usa.alcatel.com> for spotting them.
+
+** Mode line prefixes can now be set individually for each ECB-buffer. There is
+   a default-prefix for each buffer but the user can also define a custom
+   prefix or no prefix at all. (Jesper/Klaus)
+
+** Fixed small bug in directory tree that caused directories to be sorted by
+   extension. (Jesper)
+
+
+   
+* Changes for ECB version 1.20
+
+** Now the ECB-buffers are intelligent in displaying nodes (Klaus):
+   + Expandable nodes: (e.g. a directory with it��s subdirectories). An
+     ECB-tree-window now tries always to make visisble as much as possible of
+     the subnodes of a node if a node is expanded (e.g. by clicking onto it��s
+     expand-symbol).
+   + Other nodes: A ECB-tree-window is always best filled, means no empty lines
+     if there are enough lines to fill the whole window.
+
+** The source file is only parsed if the ECB methods window is visible
+   (Jesper).
+
+** The methods buffer now show fields of EIEIO classes. Only works with
+   semantic 1.4. Thanks to Eric M. Ludlam <eric@siege-engine.com> for
+   this patch.
+
+** Now all adviced functions behave only special in the ECB-frame. In each other
+   frame they behave exactly like the not adviced functions. (Klaus)
+
+** Fix "invalid method-buffer"-bug (Klaus, with a lot of help by Eric Ludlam
+   and David Ponce).
+
+** Source files can now be sorted by name, extension or not sorted at all
+   (Jesper).
+
+** Now you can precisely define by an exclude and include regexp which files
+   should be displayed by ECB. (Jesper).
+
+** Jumping to a method/variable from the ECB-method buffer now sets the mark so
+   the user can easily jump back (see `ecb-method-jump-sets-mark'). (Klaus)
+
+** Now you can define a primary and a secondary mouse-button for ECB. See the
+   new variable `ecb-primary-secondary-mouse-buttons'.
+   Note: The name of the option 'ecb-left-mouse-jump-destination' has been
+   changed to `ecb-primary-mouse-jump-destination'!
+
+** Now ECB is really ediff-friendly: During ediff is active the advices of ECB
+   are temporally deactivated! (Klaus)
+
+** Now all tree-buffers (ECB-buffers) are read-only (Klaus)!
+
+** Better implementation of advising the functions. Now all adviceable
+   functions are completely independent from each other (Klaus)!
+
+** Removes the redundant modeline info and shows important
+   information.
+
+** Added new option `ecb-advice-window-functions'. Enabling the intelligent
+   window functions via customize. No hook hacking necessary anymore!
+   Now the intelligent window functions are implemented by advicing (klaus).
+
+** Better online help display (Klaus).
+
+** Added new option 'ecb-primary-mouse-jump-destination' (thanks to David Hay
+   for suggestion <David.Hay@requisite.com>.
+
+** Adviced 'other-window' acts now exactly like the original but always related
+   to 'ecb-other-window-jump-behavior' (klaus)!
+
+** Fixed bug with 'ecb-compile-window-height'. Now ECB has always the correct
+   compile-window height after compilation-output (compile, grep etc.)
+
+** New option 'ecb-compile-window-temporally-enlarge'. Allowing
+   Emacs-compilation to enlarge the ECB-compile-window temporally.
+
+
+   
+* Changes for ECB version 1.10
+
+** Automatic expansion of the directory tree.
+
+** Method parsing is now recursive, so that for example inner classes
+   in Java are shown in the methods buffer.
+
+** Variables are now shown in the methods buffer.
+
+** Selected files and directories now use the secondary-selection
+   face. Thanks to Kevin A. Burton <burton@relativity.yi.org> for this
+   patch.
+
+** Fixed some issues with XEmacs. Thanks to Colin Marquardt
+   <colin.marquardt@usa.alcatel.com> for this.
+
+** Fixed bug with truncating lines in tree-buffer.el.
+
+** The methods buffer can now be automatically updated when the source
+   file is saved.
+
+** Help text is available with "ecb-show-help".
+
+** Moving the mouse over a node shows the name in the
+   mini-buffer. Currently this only works when follow-mouse is
+   activated.
+
+
+   
+* Changes for ECB version 1.0
+
+** Changed name from JCB to ECB and prefix from "jde-jcb-" to "ecb-".
+
+** Works with semantic 1.3.1 and higher.
+
+** Fixed a couple of bugs when creating and deleting files.
+
+** Grouped customization variables.
+
+** Contributed by Klaus Berndl <klaus.berndl@sdm.de>:
+
+*** A lot of intelligent ECB window-functions (e.g. ecb-delete-window) which
+    gives you the feeling as if the edit-window is the only window of the ECB
+    frame.
+
+*** New layout functionality.
+
+*** The history buffer can optionally be sorted and also cleared.
+
+*** The package expanded symbol can optionally be placed before the package name.
+
+*** Syntax highlighting of the methods buffer.
+
+*** Show argument names and return type in the methods buffer.
+
+*** History clear function: ecb-clear-history.
+
+*** Added pop-up menu to the history buffer.
+
+*** Fixed edit buffer sync bug.
+
+
+
+* Changes for ECB version 0.04
+
+** Keyboard navigation in JCB buffers. Use Return to select and Tab to expand.
+
+** Tree view of packages.
+
+** Class files can be viewed in the packages buffer.
+
+** Better handling of mouse events.
+
+** Automatic update of the packages buffer.
+
+** Added pop-up menus to the packages and classes buffers. They are activated 
+   with mouse button 3 (right button).
+
+** Added method sorting. Thanks to Brian Anderson <brian.anderson@luna.com> 
+   for this improvement.
+
+
+   
+* Changes for ECB version 0.03
+
+** Fixed naming of variables.
+
+** Fixed license and copyright comments.
+
+** Fixed class file regular expression bug. 
+   Thanks to Jim Loverde <loverde@str.com> for finding it.
+
+** Added three new layouts.
+
+** The JCB buffers can now be (almost) synchronized with the edit window.
+
+** When clicking on a class or method using mouse button 2, it will be loaded
+   into another window. A new customization variable was added for this.
+
+** Minor changes. Thanks to Jim for his suggestions.
+
+** Removed the "jde-jcb-window-skips-from-methods-buffer" and 
+   "jde-jcb-window-skips-from-history-buffer" customization variables.
+
+   
+   
+* Changes for ECB version 0.02
+
+** Changed prefix from "jcb-" to "jde-jcb-". This will cause JCB customization 
+   variables to be saved in JDE project files.
+
+** Lists and parses non-Java file types. Currently the C and Lisp parsers from 
+   semantic-ex.el are used.
+
+** History buffer implemented.
+
+** Layout function implement. Thanks to Jim Loverde <loverde@str.com> for 
+   helping out with this.
+
+** Packages matching a regular expression can be excluded from the packages 
+   buffer. Thanks to Mark Gibson <mark@markg.co.uk> for this feature.
+
+
+   
+* Changes for ECB version 0.01
+
+** Initial version.
+
+
+
+Local variables:
+mode: outline
+paragraph-separate: "[ 	
+end:

File ecb-autogen.el

+;;; ecb-autogen.el --- Auto load statement generator
+
+;;; Copyright (C) 2003 Klaus Berndl
+
+;; $Id$
+
+;; This file is not part of GNU Emacs.
+
+;; ECB is free software; you can redistribute it and/or modify it under the
+;; terms of the GNU General Public License as published by the Free Software
+;; Foundation; either version 2, or (at your option) any later version.
+
+;; This software is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+;;
+;; Automatically generate autoloads for ECB
+;;
+;; This code is completely copied from semantic-autogen.el, the autoload
+;; generator of semantic.
+;;
+;;; Code
+;;
+
+(require 'autoload)
+
+(require 'ecb-util)
+
+(eval-when-compile
+  (require 'silentcomp))
+
+;; Emacs knows only a variable noninteractive whereas XEmacs knows both,
+;; funvtion and variable. Therefore we silence here the byte-compiler.
+(silentcomp-defun noninteractive)
+
+;;; Compatibility
+(defun ecb-autogen-noninteractive ()
+  "Return non-nil if running non-interactively."
+  (if (featurep 'xemacs)
+      (noninteractive)
+    noninteractive))
+
+(when (ecb-autogen-noninteractive)
+  ;; If the user is doing this non-interactively, we need to set up
+  ;; these conveniences.
+  (add-to-list 'load-path nil)
+  (setq find-file-hooks nil
+        find-file-suppress-same-file-warnings t)
+  )
+
+
+(defconst ecb-autogen-header
+  "Auto-generated ecb autoloads"
+  "Header of the auto-generated autoloads file.")
+
+(defconst ecb-autogen-file "ecb-autoloads.el"
+  "Name of the auto-generated autoloads file.")
+
+(defconst ecb-autoload-feature "ecb-autoloads"
+  "Featurename of the autoloads")
+
+(defvar ecb-autogen-subdirs nil
+  "Sub-directories to scan for autoloads.")
+
+(defun ecb-autogen-update-header ()
+  "Update header of the auto-generated autoloads file.
+Run as `write-contents-hooks'."
+  (when (string-equal generated-autoload-file (buffer-file-name))
+    (let ((tag (format ";;; %s ---" (file-name-nondirectory
+                                     (buffer-file-name)))))
+      (message "Updating header...")
+      (goto-char (point-min))
+      (cond
+       ;; Replace existing header line
+       ((re-search-forward (concat "^" (regexp-quote tag)) nil t)
+        (beginning-of-line)
+        (kill-line 1)
+        )
+       ;; Insert header before first ^L encountered (XEmacs)
+       ((re-search-forward "^
+        (beginning-of-line)
+        ))
+      (insert tag " " ecb-autogen-header)
+      (newline)
+      (message "Updating header...done")
+      nil ;; Say not already written.
+      )))
+
+(defun ecb-update-autoloads ()
+  "Update ecb autoloads from sources.
+Autoloads file name is defined in variable `ecb-autogen-file'. If ECB is
+installed as regular XEmacs-package then this function reports an error and
+does nothing."
+  (interactive)
+  (if ecb-regular-xemacs-package-p
+      (ecb-error "Updating autoloads not possible for regular XEmacs-packages!")
+    (when (and (not ecb-running-xemacs)
+               (not (file-exists-p (expand-file-name ecb-autogen-file))))
+      ;; generate a new one if ecb-autogen-file does not exist, but do this not
+      ;; for XEmacs because XEmacs must(!) handle this itself
+      (with-temp-file (expand-file-name ecb-autogen-file)
+        (insert "
+    (let* ((default-directory (file-name-directory (locate-library "ecb")))
+           (generated-autoload-file (expand-file-name ecb-autogen-file))
+           ;; needed for XEmacs to ensure that always a feature 'ecb-autoloads
+           ;; is provided and not a feature like 'ecb-1.91.2-autoloads (XEmacs
+           ;; uses the installation-directory of ECB as feature prefix if
+           ;; autoload-package-name is not provided.
+           (autoload-package-name "ecb")
+           (subdirs (mapcar 'expand-file-name ecb-autogen-subdirs))
+           (write-contents-hooks '(ecb-autogen-update-header))
+           (command-line-args-left (cons default-directory subdirs))
+           )
+      (batch-update-autoloads))
+    ;; XEmacs adds autom. the provide statement but for GNU Emacs we must do
+    ;; this.
+    (when (not ecb-running-xemacs)
+      (save-excursion
+        (set-buffer (find-file-noselect (expand-file-name ecb-autogen-file)))
+        (goto-char (point-min))
+        (when (not (re-search-forward (format "^(provide '%s)"
+                                              ecb-autoload-feature) nil t))
+          (goto-char (point-max))
+          (insert (format "\n(provide '%s)\n" ecb-autoload-feature))
+          (save-buffer)
+          (kill-buffer (current-buffer)))))))
+
+(silentcomp-provide 'ecb-autogen)
+
+;;; ecb-autogen.el ends here
+;;; ecb-jde.el: ECB JDE integrations
+
+;; Copyright (C) 2003 Jesper Nordenberg
+;; Copyright (C) 2003 Free Software Foundation, Inc.
+;; Copyright (C) 2003 Klaus Berndl <klaus.berndl@sdm.de>
+
+;; Author: Klaus Berndl <klaus.berndl@sdm.de>
+;; Maintainer: Klaus Berndl <klaus.berndl@sdm.de>
+;; Keywords: java, class, browser
+
+;; This program is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by the Free
+;; Software Foundation; either version 2, or (at your option) any later
+;; version.
+
+;; This program is distributed in the hope that it will be useful, but WITHOUT
+;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+;; more details.
+
+;; You should have received a copy of the GNU General Public License along
+;; with GNU Emacs; see the file COPYING. If not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+;; $Id$
+
+;;; Commentary:
+;;
+;; Contains code for JDEE integrations into ECB or vice versa
+;; JDEE is available at http://jdee.sunsite.dk/
+
+;;; Code
+
+(eval-when-compile
+  (require 'silentcomp))
+
+(silentcomp-defun jde-show-class-source)
+(silentcomp-defvar jde-open-class-at-point-find-file-function)
+(silentcomp-defun jde-open-functions-exist)
+(silentcomp-defun jde-parse-java-variable-at-point)
+(silentcomp-defun jde-open-get-class-to-open)
+(silentcomp-defun jde-open-get-path-prefix-list)
+(silentcomp-defun jde-open-find-java-file-name)
+(silentcomp-defun jde-gen-class-buffer)
+
+(silentcomp-defun end-of-thing)
+
+(require 'ecb-util)
+(require 'ecb-layout)
+
+(defun ecb-jde-display-class-at-point ()
+  "Displays in the ECB-methods-buffer the contents \(methods, attributes
+etc...) of the class which contains the definition of the \"thing\" under
+point \(this can be a variablename, classname, methodname, attributename).
+This function needs the same requirements to work as the method-completion
+feature of JDE \(see `jde-complete-at-point')!. The source-file is searched
+first in `jde-sourcepath', then in `jde-global-classpath', then in $CLASSPATH,
+then in current-directory.
+
+Works only for classes where the source-code \(i.e. the *.java-file) is
+available."
+  (interactive)
+  (when (and ecb-minor-mode
+             (ecb-point-in-edit-window)
+             (equal major-mode 'jde-mode))
+    (if (jde-open-functions-exist)
+        (let* (
+               (thing-of-interest (thing-at-point 'symbol))
+               (pair (save-excursion (end-of-thing 'symbol)
+                                     (jde-parse-java-variable-at-point)))
+               (class-to-open (jde-open-get-class-to-open
+                               pair thing-of-interest))
+               (source-path-prefix-list (jde-open-get-path-prefix-list)) 
+               (java-file-name nil)
+               )
+          (if (and class-to-open (stringp class-to-open))
+              (progn
+                (setq java-file-name (jde-open-find-java-file-name
+                                      class-to-open source-path-prefix-list))
+                (if (not java-file-name)
+                    (ecb-error "Can not find the sourcecode-file for \"%s\""
+                               thing-of-interest)
+
+                  ;; TODO: Klaus Berndl <klaus.berndl@sdm.de>: 
+                  ;; The following two lines of code are the only difference
+                  ;; between this function and `jde-open-class-at-point'.
+                  ;; Therefore it would be nice if the whole stuff necessary
+                  ;; for finding the source-file of `thing-of-interest' would
+                  ;; be extracted in an own function of JDE.
+                  
+                  ;; we have found the java-sourcefile. So let�s display its
+                  ;; contents in the method-buffer of ECB
+                  (ecb-exec-in-methods-window
+                   (ecb-set-selected-source java-file-name nil t))))
+            
+            (ecb-error "Can not parse the thing at point!")))
+      (message "You need JDE >= 2.2.6 and Senator for using this feature!"))))
+
+
+(defun ecb-jde-show-class-source (unqual-class)
+  "Calls `jde-show-class-source' for UNQUAL-CLASS and returns t if no error
+occurs."
+  (when (eq major-mode 'jde-mode)
+    (condition-case nil
+        (progn
+          (jde-show-class-source unqual-class)
+          t)
+      (error nil))))
+
+
+(defun ecb-jde-open-class-at-point-ff-function (filename &optional wildcards)
+  "Special handling of the class opening at point JDE feature. This function
+calls the value of `jde-open-class-at-point-find-file-function' with activated
+ECB-adviced functions."
+  (ecb-with-adviced-functions
+   (if (and (boundp 'jde-open-class-at-point-find-file-function)
+            (fboundp jde-open-class-at-point-find-file-function))
+       (funcall jde-open-class-at-point-find-file-function
+                filename wildcards))))
+
+
+(defun ecb-jde-gen-class-buffer (dir filename)
+  "Calls `jde-gen-class-buffer' for the file FILENAME in DIR. If this function
+is not available then `find-file' is called."
+  (let ((file (concat dir "/" filename)))
+    (if (fboundp 'jde-gen-class-buffer)
+        (jde-gen-class-buffer file)
+      (find-file file))))
+
+(silentcomp-provide 'ecb-jde)
+
+;;; ecb-jde.el ends here