Commits

Anonymous committed 2046a0d

Preparation for making ECB a regular XEmacs package. This means mostly
preparations that ECB finds it's help-files (info- and html-format) and
handles the downloading-stuff (e.g. command ecb-download-ecb) correctly
regardless if installed as regular XEmacs package (e.g. via Net-Installer) or
via the archive available at the ECB website!

  • Participants
  • Parent commits aea8b4f

Comments (0)

Files changed (9)

+2002-11-18  Klaus Berndl  <klaus.berndl@sdm.de>
+
+	* Makefile (binkit): Using the new tag binkit-with-html
+	(VERSION): Changed from 0.99 to 1.0
+
+2002-11-12  Klaus Berndl  <klaus.berndl@sdm.de>
+
+	* ecb.texi: Prepared for being now a regular XEmacs package
+
+	* ecb.el (ecb-activate--impl): Check requirements here
+	(ecb-check-requirements): Prepared for the XEmacs packaging system
+	(ecb-menu-bar): Added online-help customization
+
+	* ecb-help.el (ecb-help-info-start-file): New constant
+	(ecb-help-html-start-file): New constant
+	(ecb-help): New customize group
+	(ecb-help-info-path): New option
+	(ecb-help-html-path): New option
+	(ecb-info): New function
+	(ecb-browse-html-file): New function
+	(ecb-show-help): Prepared for finding help in XEmacs package
+		system too; see options ecb-help-{info|html}-path
+
+	* ecb-upgrade.el (ecb-download-ecb): Prepared for XEmacs
+		 package-management.
+
+	* README: Small modifications for new XEmacs-package
+
+	* Makefile (all): HTML-docu is build too
+
+	* ecb-util.el (ecb-regular-xemacs-package-p): new constant
+
+	* HISTORY: ECB now a regular XEmacs package
+
 2002-11-08  Ville Skytt�  <scop@xemacs.org>
 
 	* Moved to xemacs-packages from unsupported/scop/
 Version 1.80:
 -------------
 
+- ECB now available as a regular XEmacs-package (Klaus)
+
 - ECB now requires:
-  + Latest stable release of semantic: Version 1.4
-  + Latest stable release of eieio: Version 0.17
+  + Latest stable release of semantic: Author version 1.4
+  + Latest stable release of eieio: Author 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)
 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 # Boston, MA 02111-1307, USA.
 
-VERSION = 0.99
+VERSION = 1.00
 AUTHOR_VERSION = 1.80
 MAINTAINER = Klaus Berndl <klaus.berndl@sdm.de>
 PACKAGE = ecb
 HTML_DEP = $(PACKAGE).html
 TEXI_FILES = $(PACKAGE).texi
 
+#DATA_1_FILES = $(HTML_FILES)
+#DATA_1_DEST = $(PACKAGE)/html
+
 PRELOADS = -l overlay -l compile -l timer -l ecb-util -l ecb-eshell \
 	-l ecb-layout -l tree-buffer -l esh-mode -l em-dirs -l jde-help \
 	-l semantic -l semantic-load -l semanticdb -l sendmail -l ediff-init
 
 GENERATED += custom-load.elc
 
-all:: $(ELCS) auto-autoloads.elc custom-load.elc $(PACKAGE).info
+all:: $(ELCS) auto-autoloads.elc custom-load.elc $(PACKAGE).info html
 
-binkit: binkit-common
+binkit: binkit-with-html
 ------------
 
 ECB requires the following packages being properly installed:
-- Semantic, version 1.4 or higher
+- Semantic, author version 1.4 or higher
   (http://cedet.sourceforge.net/semantic.shtml)
-- Eieio, version 0.17 or higher (http://cedet.sourceforge.net/eieio.shtml).
+- Eieio, author version 0.17 or higher
+  (http://cedet.sourceforge.net/eieio.shtml).
 - If Java code is edited the ECB works best when the JDE package
   (http://sunsite.auc.dk/jde) is installed.
 
 If you use XEmacs you must have the fsf-compat package installed (contains
-overlay.el).
+overlay.el). If you want to read the online-help of ECB in HTML-format you
+must have the library browse-url (part of the mail-lib XEmacs package)
+installed!
 
 
 Installation
 ------------
 
+*IMPORTANT*: The following steps 1., 2., 3., 6. and 7. describe installation
+tasks if you got the archive in the format available at the ECB website. If
+you use XEmacs and got ECB as regular XEmacs-package (e.g. downloaded and
+installed by the net-installer of XEmacs) then the steps 1., 2., 3., 6. and 7.
+are not necessary for you; please start reading at point 4.
+
+
 1. Unpack the ECB archive.
 
 2. Install the required semantic- and eieio-version.
 (require 'ecb-layout)
 (require 'ecb-util)
 
+(defconst ecb-help-info-start-file "ecb.info")
+(defconst ecb-help-html-start-file "ecb.html")
+
+(defgroup ecb-help nil
+  "Settings for the ECB online help"
+  :group 'ecb)
 
 (defcustom ecb-show-help-format 'info
   "*The format `ecb-show-help' shows its online help. Allowed values are 'info
 \(for the Info format) and 'html \(for HTML format). If the value is 'html
 then `browse-url-browser-function' says which browser is used."
-  :group 'ecb-general
+  :group 'ecb-help
   :type '(choice :tag "Online-help format" :menu-tag "Online-help format"
                  (const :tag "Info" :value info)
                  (const :tag "Html" :value html)))
 
+
+(defcustom ecb-help-info-path (concat
+                               (if running-xemacs
+                                   (if (file-exists-p
+                                        (concat ecb-ecb-dir
+                                                ecb-help-info-start-file))
+                                       "./"
+                                     "../../info/")
+                                 "./")
+                               ecb-help-info-start-file)
+  "*Path where the ECB online help in info format resides.
+This must be the location of the file \"ecb.info\" which comes with the ECB
+distribution. If is installed by unpacking the archive available on the ECB
+website then this is the installation directory of ECB, i.e. where the elisp
+files of ECB reside. If it is installed as XEmacs-package \(e.g. via the
+package manager of XEmacs) then this is probably not the directory where the
+elisp files of ECB reside but the directory \"../../info/\" \(relativ to the
+elisp directory of ECB).
+
+The path can either be an absolute path or a path relativ to the directory
+where the elisp files of ECB are.
+
+Normally there should be no need to change this option!"
+  :group 'ecb-help
+  :type 'file)
+
+(defcustom ecb-help-html-path (concat
+                               (if running-xemacs
+                                   (cond ((file-exists-p
+                                           (concat ecb-ecb-dir
+                                                   ecb-help-html-start-file))
+                                          "./")
+                                         ((file-exists-p
+                                           (concat ecb-ecb-dir
+                                                   "../../html/"
+                                                   ecb-help-html-start-file))
+                                          "../../html/")
+                                         (t
+                                          "../../etc/ecb/html/"))
+                                 "./")
+                               ecb-help-html-start-file)
+  "**Path where the ECB online help in HTML format resides.
+This must be the location of the file \"ecb.html\" which comes with the ECB
+distribution. If is installed by unpacking the archive available on the ECB
+website then this is the installation directory of ECB, i.e. where the elisp
+files of ECB reside. If it is installed as XEmacs-package \(e.g. via the
+package manager of XEmacs) then this is probably not the directory where the
+elisp files of ECB reside but either the directory \"../../html/\" or
+\"../../etc/ecb/html/\" \(both relativ to the elisp directory of ECB).
+
+The path can either be an absolute path or a path relativ to the directory
+where the elisp files of ECB are.
+
+Normally there should be no need to change this option!"
+  :group 'ecb-help
+  :type 'file)
+
+
+(defun ecb-info (info-file &optional no-file-not-exist-err)
+  "Starts `info' with INFO-FILE. If INFO-FILE does not exists then nil is
+returned otherwise true. If NO-FILE-NOT-EXIST-ERR is not nil then just nil is
+returned if INFO-FILE does not exist otherwise an error is reported."
+  (if (file-exists-p info-file)
+      (prog1 t
+        (info info-file))
+    (unless no-file-not-exist-err
+      (ecb-error "Info file %s does not exists!" info-file))
+    nil))
+
+(defun ecb-browse-html-file (html-file &optional no-file-not-exist-err)
+  "Opens HTML-FILE in the standard-webbrowser with `browse-url'. If INFO-FILE
+does not exists then nil is returned otherwise true. If NO-FILE-NOT-EXIST-ERR
+is not nil then just nil is returned if HTML-FILE does not exist otherwise an
+error is reported."
+  (if (file-exists-p html-file)
+      (prog1 t
+        (if (and (locate-library "browse-url")
+                 (require 'browse-url)
+                 (fboundp 'browse-url))
+            (browse-url (concat "file://" html-file)
+                        (if (boundp 'browse-url-new-window-flag)
+                            browse-url-new-window-flag
+                          browse-url-new-window-p))
+          (ecb-error "Function 'browse-url needed for displaying HTML!")))
+    (unless no-file-not-exist-err
+      (ecb-error "HTML file %s does not exists!" html-file))
+    nil))
+
+;;;###autoload
 (defun ecb-show-help (&optional format)
   "Shows the online help of ECB in Info or HTML-format depending on the value
 of the option `ecb-show-help-format'. If called with prefix argument, i.e. if
 FORMAT is not nil then the user is prompted to choose the format of the help
-\(Info or Html)."
+\(Info or Html).
+
+If an error about not finding the needed help-file occurs please take a look
+at the options `ecb-help-info-start-file' and `ecb-help-html-start-file'!"
   (interactive "P")
   (let ((f (if format
                (intern (ecb-query-string "Choose format of online-help:"
                                                     'html)
                                              '("info" "html")
                                            '("html" "info"))))
-             ecb-show-help-format)))
+             ecb-show-help-format))
+        (info-path-abs (expand-file-name
+                        (if (or (string-match "^\\." ecb-help-info-path)
+                                (string-match (concat "^"
+                                                      (regexp-quote
+                                                       ecb-help-info-start-file))
+                                              ecb-help-info-path))
+                            (concat ecb-ecb-dir ecb-help-info-path)
+                          ecb-help-info-path)))
+        (html-path-abs (ecb-fix-filename
+                        (if (or (string-match "^\\." ecb-help-html-path)
+                                (string-match (concat "^"
+                                                      (regexp-quote
+                                                       ecb-help-html-start-file))
+                                              ecb-help-html-path))
+                            (concat ecb-ecb-dir ecb-help-html-path)
+                          ecb-help-html-path))))
     (if (equal f 'info)
-        (if (file-exists-p (concat ecb-ecb-dir "ecb.info"))
-            (info (concat ecb-ecb-dir "ecb.info"))
-          (ecb-error "File %s does not exist" (concat ecb-ecb-dir "ecb.info")))
+        (ecb-info info-path-abs)
       (message "Opening ECB online-help in a web-browser...")
-      (if (file-exists-p (concat ecb-ecb-dir "ecb.html"))
-          (progn
-            (browse-url (concat "file://"
-                                (ecb-fix-filename ecb-ecb-dir "ecb.html"))
-                        (if (boundp 'browse-url-new-window-flag)
-                            browse-url-new-window-flag
-                          browse-url-new-window-p))
-            (message "Opening ECB online-help in a web-browser...done"))
-        (ecb-error "File %s does not exist" (concat ecb-ecb-dir "ecb.html"))))))
+      (ecb-browse-html-file html-path-abs))))
 
 ;;
 ;; Problem reporting functions stolen from JDE
 After sucessfull downloading the new ECB will be installed in a directory
 parallel to current ECB-directory. After adding this new directory tp
 `load-path' and restarting Emacs the new ECB version can be activated by
-`ecb-activate'."
+`ecb-activate'.
+
+If current running ECB is installed as regular XEmacs-package and not with the
+archive available at the ECB website then this function asks for proceeding!"
   (interactive)
-        ;; Installing the new version finished - displaying a message-buffer
-
-  (let ((install-dir (ecb-download-package "ecb" ecb-download-version
-                                           ecb-download-url)))
-    (when install-dir
-      (message "New ECB successfully installed!")
+  (let ((proceed t))
+    (when ecb-regular-xemacs-package-p
       (with-output-to-temp-buffer "*ECB downloading and installing*"
-        (princ "ECB has successfully installed the new ECB version in a directory parallel to\n")
-        (princ "current ECB.\n\n")
-        (princ (concat "+ Current ECB: " ecb-ecb-dir "\n"))
-        (princ (concat "+ New ECB: " install-dir))
-        (princ "\n\n")
-        (princ "After replacing the current ECB-directory with the new one in your `load-path'\n")
-        (princ "and then restarting Emacs the new ECB version can be activated by `ecb-activate'.\n\n")
-        (princ "If the value of `ecb-auto-compatibility-check' is not nil then the new version\n")
-        (princ "checks at start-time if there are incompatible options! Please read the\n")
-        (princ "documentation of this option!")
-        (princ "\n\n")
-        (save-excursion
-          (set-buffer "*ECB downloading and installing*")
-          (goto-char (point-min))
-          (ignore-errors (help-make-xrefs)))))))
-    
+        (princ "Current ECB is installed as regular XEmacs package and not with the\n")
+        (princ "archive available at the ECB-website. So you should use the package-manager\n")
+        (princ "of XEmacs to get the latest version of ECB! If you proceed installing from\n")
+        (princ "the ECB website then the new ECB is NOT installed as regular XEmacs-package\n")
+        (princ "but as \"flat\" package parallel to the current ECB directory!\n\n"))
+      (setq proceed (yes-or-no-p "Do you want to proceed installing from the ECB-website? ")))
+    (when proceed
+      (let ((install-dir (ecb-download-package "ecb" ecb-download-version
+                                               ecb-download-url)))
+        (when install-dir
+          (message "New ECB successfully installed!")
+          (with-output-to-temp-buffer "*ECB downloading and installing*"
+            (princ "ECB has successfully installed the new ECB version in a directory parallel to\n")
+            (princ "current ECB.\n\n")
+            (princ (concat "+ Current ECB: " ecb-ecb-dir "\n"))
+            (princ (concat "+ New ECB: " install-dir))
+            (princ "\n\n")
+            (princ "After replacing the current ECB-directory with the new one in your `load-path'\n")
+            (princ "and then restarting Emacs the new ECB version can be activated by `ecb-activate'.\n\n")
+            (princ "If the value of `ecb-auto-compatibility-check' is not nil then the new version\n")
+            (princ "checks at start-time if there are incompatible options! Please read the\n")
+            (princ "documentation of this option!")
+            (princ "\n\n")))))))
+  
 
 (defun ecb-download-package (package version url)
   "Download VERSION of PACKAGE from URL and install it. If no failure occurs
             (princ (concat "  " url package "-" version ".tar.gz"))
             (princ "\n\n")
             (princ "Maybe this URL does not exist...please check this!\n\n")))
-;;             (save-excursion
-;;               (set-buffer "*ECB-download-failure*")
-;;               (goto-char (point-min))
-;;               (ignore-errors (help-make-xrefs)))))
         (kill-buffer ecb-download-buffername)
 
         ;; uncompressing with gzip
   (expand-file-name (file-name-directory (locate-library "ecb"))))
 (defconst ecb-ecb-parent-dir (expand-file-name (concat ecb-ecb-dir "../")))
 
-(defconst ecb-emacs-dir
-  (expand-file-name (concat invocation-directory "../")))
-
-(defconst ecb-emacs-info-dir (expand-file-name(concat ecb-emacs-dir "info/")))
+;; we assume that current loaded ECB is a regular XEmacs-package if and only
+;; if `ecb-ecb-dir' contains a file "_pkg.el" and "auto-autoloads.el" and we
+;; are running XEmacs
+(defconst ecb-regular-xemacs-package-p
+  (and running-xemacs
+       (file-exists-p (expand-file-name (concat ecb-ecb-dir "_pkg.el")))
+       (file-exists-p (expand-file-name (concat ecb-ecb-dir "auto-autoloads.el")))))
 
 
 (defun ecb-remove-assoc (list key)
           (failed-result)
           (version-error nil)
           (semantic-dir nil)
-          (eieio-dir nil))
+          (semantic-state nil)
+          (eieio-dir nil)
+          (eieio-state nil))
       (when (not (and (fboundp 'semantic-require-version)
                       (not (semantic-require-version
                             (nth 0 ecb-required-semantic-version)
           (setq ecb-all-requirements-available t))
       (if just-check
           failed-result
-        (if failed-result
-            (if (not (yes-or-no-p (format "ECB requires %s. Do you want to download it? "
-                                          version-error)))
-                (ecb-error "ECB can only be started with %s! Sorry!" version-error)
-              ;; no we try to download the required versions
-              (message nil)
-              (if (string-match "semantic" version-error)
-                  (setq semantic-dir
-                        (ecb-download-package "semantic"
-                                              semantic-required-version-str
-                                              ecb-semantic-eieio-url)))
-              (if (string-match "eieio" version-error)
-                  (setq eieio-dir (ecb-download-package "eieio"
-                                                        eieio-required-version-str
-                                                        ecb-semantic-eieio-url)))
-              (with-output-to-temp-buffer "*ECB downloading and installing*"
-                (princ "Current state of the required packages semantic and eieio:\n\n")
-                (princ (concat "- semantic " semantic-required-version-str ":\n  "))
-                (princ (if (string-match "semantic" version-error)
-                           (if semantic-dir
-                               (concat "Installed in " semantic-dir)
-                             "Download- or installing-failure!")
-                         "Correct version already loaded!"))
-                (princ "\n")
-                (princ (concat "- eieio " eieio-required-version-str ":\n  "))
-                (princ (if (string-match "eieio" version-error)
-                           (if eieio-dir
-                               (concat "Installed in " eieio-dir)
-                             "Download- or installing-failure!")
-                         "Correct version already loaded!"))
-                (princ "\n\n")
-                (princ "After adding the new directory to your `load-path' and then restarting\n")
-                (princ "Emacs the new package(s) can be activated.\n\n")
-                (princ "\n\n")
-                (save-excursion
-                  (set-buffer "*ECB downloading and installing*")
-                  (goto-char (point-min))
-                  (ignore-errors (help-make-xrefs))))
-              (ecb-error "Please restart Emacs with the required packages!")))))))
+        (when failed-result
+          (when ecb-regular-xemacs-package-p
+            (with-output-to-temp-buffer "*ECB downloading and installing*"
+              (princ "Current ECB is installed as regular XEmacs package and not with the\n")
+              (princ "archive available at the ECB-website. So you should use the package-manager\n")
+              (princ "of XEmacs to get the required versions of semantic and/or eieio and to\n")
+              (princ "install them also as regular XEmacs-packages! If you now proceed installing\n")
+              (princ "from the CEDET-website then the new versions will NOT be installed as\n")
+              (princ "regular XEmacs-package(s) but as \"flat\" package(s) parallel to the current\n")
+              (princ "ECB directory!\n\n")))
+          (if (not (yes-or-no-p (format "ECB requires %s. Download now? "
+                                        version-error)))
+              (ecb-error "ECB can only be started with %s! Sorry!" version-error)
+            (message nil)
+            ;; try to download semantic and set state
+            (if (not (string-match "semantic" version-error))
+                (setq semantic-state "Correct version already loaded!")
+              (setq semantic-dir
+                    (ecb-download-package "semantic"
+                                          semantic-required-version-str
+                                          ecb-semantic-eieio-url))
+              (setq semantic-state (if semantic-dir
+                                       (concat "Installed in " semantic-dir)
+                                     "Download- or installing-failure!")))
+            ;; try to download eieio and set state
+            (if (not (string-match "eieio" version-error))
+                (setq eieio-state "Correct version already loaded!")
+              (setq eieio-dir (ecb-download-package "eieio"
+                                                    eieio-required-version-str
+                                                    ecb-semantic-eieio-url))
+              (setq eieio-state (if eieio-dir
+                                    (concat "Installed in " eieio-dir)
+                                  "Download- or installing-failure!")))
+            ;; display the success
+            (with-output-to-temp-buffer "*ECB downloading and installing*"
+              (princ "Current state of the required packages semantic and eieio:\n\n")
+              (princ (concat "- Required version of semantic \(author version) "
+                             semantic-required-version-str ":\n  "))
+              (princ semantic-state)
+              (princ "\n")
+              (princ (concat "- Required version of eieio \(author version) "
+                             eieio-required-version-str ":\n  "))
+              (princ eieio-state)
+              (princ "\n\n")
+              (princ "After adding the new directory to your `load-path' and then restarting\n")
+              (princ "Emacs the new package(s) can be activated.\n\n")
+              (princ "\n\n"))
+            (ecb-error "Please restart Emacs with the required packages!")))))))
 
 (defun ecb-enter-debugger (&rest error-args)
   "If `ecb-debug-mode' is not nil then enter the Emacs-debugger and signal an
       :active t
       :help "Customize options for downloading ECB"
       ])
+    (ecb-menu-item
+     ["Help options..."
+      (customize-group "ecb-help")
+      :active t
+      :help "Customize options for the online help of ECB"
+      ])
     )
    (list
     "Upgrade and Download"
        :help "Print debug-informations in the message buffer."
        ])
     "-"
+    (ecb-menu-item
+     ["Help preferences..."
+      (customize-group "ecb-help")
+      :active t
+      :help "Customize options for the online help of ECB"
+      ])
+    "-"
     (concat "ECB " ecb-version)
     )
    "-"   
   "Activates the ECB and creates all the buffers and draws the ECB-screen
 with the actually choosen layout \(see `ecb-layout-nr'). This function raises
 always the ECB-frame if called from another frame."
-  (ecb-check-requirements)
   (if ecb-use-recursive-edit
       (if ecb-minor-mode
 	  (progn
 	(ecb-redraw-layout)
 	(ecb-update-directories-buffer))
 
+    ;; checking the requirements
+    (ecb-check-requirements)
+
     ;; initialize the navigate-library
     (ecb-nav-initialize)
 
 * ecb-face-options::            Customizing options for faces
 * ecb-faces::                   Customizing the faces
 * ecb-download::                Customizing how to download ECB
+* ecb-help::                    Customizing the online help of ECB
 
 Upgrading and downloading packages
 
 @node Installation, First steps, Install and first steps, Install and first steps
 @section Installation of ECB
 
+@strong{IMPORTANT}: The following steps 1., 2., 3., 6. and 7. describe
+installation tasks if you got the archive in the format available at
+the ECB website. If you use XEmacs and got ECB as regular
+XEmacs-package (e.g. downloaded and installed by the net-installer of
+XEmacs) then the steps 1., 2., 3., 6. and 7. are not necessary for
+you.
+
 @enumerate
 
 @item
 @deffn Command ecb-show-help &optional format
 Shows the online help of ECB either in Info or in HTML format
 depending of the value of @code{ecb-show-help-format}. If called with
-prefix argument, i.e. if @var{FORMAT} is not nil then the user is prompted
-to choose the format of the help (Info or HTML).
+prefix argument, i.e. if @var{FORMAT} is not nil then the user is
+prompted to choose the format of the help (Info or HTML). If an error
+about not finding the needed help-file occurs please take a look at
+the options @code{ecb-help-info-start-file} and
+@code{ecb-help-html-start-file}!
 @end deffn
 
 @deffn Command ecb-submit-problem-report
 * ecb-face-options::            Customizing options for faces
 * ecb-faces::                   Customizing the faces
 * ecb-download::                Customizing how to download ECB
+* ecb-help::                    Customizing the online help of ECB
 @end menu
 
 @node ecb-general, ecb-directories, Customizable options, Customizable options
 for your personal taste. Or customize the related option in the group
 @ref{ecb-face-options}.
 
-@node ecb-download, , ecb-faces, Customizable options
+@node ecb-download, ecb-help, ecb-faces, Customizable options
 @subsection Group ecb-download
 
 @noindent
 @code{ecb-download-ecb} (@pxref{Interactive ECB commands}).
 @end defopt
 
+@node ecb-help, , ecb-download, Customizable options
+@subsection Group ecb-help
+
+@noindent
+This group contains the following options:
+
+
+@defopt ecb-help-html-path
+Path where the ECB online help in HTML format resides. This must be
+the location of the file @file{ecb.html} which comes with the ECB
+distribution. If is installed by unpacking the archive available on
+the ECB website then this is the installation directory of ECB, i.e.
+where the elisp files of ECB reside. If it is installed as
+XEmacs-package (e.g. via the package manager of XEmacs) then this is
+probably not the directory where the elisp files of ECB reside but
+either the directory ``../../html/'' or ``../../etc/ecb/html/'' (both
+relativ to the elisp directory of ECB).
+
+The path can either be an absolute path or a path relativ to the directory
+where the elisp files of ECB are.
+
+Normally there should be no need to change this option!
+@end defopt
+
+
+@defopt ecb-help-info-path
+Path where the ECB online help in info format resides. This must be
+the location of the file @file{ecb.info} which comes with the ECB
+distribution. If is installed by unpacking the archive available on
+the ECB website then this is the installation directory of ECB, i.e.
+where the elisp files of ECB reside. If it is installed as
+XEmacs-package (e.g. via the package manager of XEmacs) then this is
+probably not the directory where the elisp files of ECB reside but the
+directory ``../../info/'' (relativ to the elisp directory of ECB).
+
+The path can either be an absolute path or a path relativ to the directory
+where the elisp files of ECB are.
+
+Normally there should be no need to change this option!
+@end defopt
+
+
+@defopt ecb-show-help-format
+The format @code{ecb-show-help} shows its online help. Allowed values
+are 'info (for the Info format) and 'html (for HTML format). If the
+value is 'html then @code{browse-url-browser-function} says which
+browser is used.
+@end defopt
+
 
 @node Submitting problem report, Upgrading, Customizing, Top
 @chapter Submitting a problem report
 @node Downloading new versions, Auto. option-upgrading, Upgrading, Upgrading
 @section Downloading new versions of ECB and/or required packages
 
+
 @cindex Download
 ECB offers the possibility to upgrade to newer versions direct from
 the ECB-website. This can be done if the following requirements are
 @anchor{Download required packages}
 @item Download and install of required packages:
 
-ECB checks at start-time if the required versions of semantic and
-eieio (see @file{README}) are installed and loaded into Emacs. If not
-you will be asked if you want auto. download and install them. If you
-confirm this and the download and install succeeds then you will get a
-message-buffer which tells you something like:
+ECB checks at start-time if the required author-versions of semantic
+and eieio (see @file{README}) are installed and loaded into Emacs. If
+not you will be asked if you want auto. download and install them. If
+you confirm this and the download and install succeeds then you will
+get a message-buffer which tells you something like:
 
 @example
 ---------------------------------------------------------------
 Current state of the required packages semantic and eieio:
 
-- semantic 1.4:
+- Required version of semantic (author version): 1.4:
   Installed in /usr/local/lib/site-lisp/semantic-1.4
   
-- eieio 0.17:
+- Required version of eieio (author version): 0.17:
   Correct version already loaded!
 
 After adding the new directory to your @code{load-path} and then
 @strong{Note}: By setting the option @code{ecb-version-check} to
 @code{nil} you can prevent ECB from checking correct versions of
 semantic and eieio, but it's strongly recommended not to do this!
+
 @end itemize
 
 @node Auto. option-upgrading, , Downloading new versions, Upgrading