Anonymous avatar Anonymous committed d88716e

2002-08-10 Steve Youngs <youngs@xemacs.org>;

* Sync to Upstream version 0.17

Comments (0)

Files changed (20)

+2002-08-10  Steve Youngs  <youngs@xemacs.org>
+
+	* Sync to Upstream version 0.17
+
+2002-08-08  Steve Youngs  <youngs@xemacs.org>
+
+	* Makefile (EXTRA_SOURCES): Add eieio-tests.el
+
+	* package-info.in (provides): Update.
+
+	* Makefile (AUTHOR_VERSION): Update to 0.17
+	(ELCS): Add missing .elc files.
+
+2002-08-07  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el: No longer include `compare-strings.el'
+	
+	* eieio.texi (Base Classes): Added `eieio-singleton' and `eieio-named'
+	(eieio-singleton): New section
+	(eieio-named): New section
+	(Writing Methods): Added information about :STATIC methods.
+
+	* Project.ede: Updated version number.
+
 2002-07-16  Adrian Aichner  <adrian@xemacs.org>
 
 	* .cvsignore: Add generated .info* and .html files.
 	* compare-strings.el: It's XEmacs, not Xemacs.
 	* eieio-comp.el (eieio-byte-compile-princ-code): Ditto.
 
+2002-07-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* linemark.el (linemark-next-in-buffer):
+	Correctly start search when going backward.
+	(linemark-end): Fix doc.
+
+2002-06-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el ("cl-macs"): Load silently.
+	(eieio-defclass): Removed old bootstrapping messages.
+
+	* eieio-base.el (eieio-singleton): New class.
+	(constructor::eieio-singleton): New method.
+
+	* linemark.el (linemark-next-in-buffer):
+	Accounts for extra embedded overlays.
+	(linemark-begin, linemark-end): New methods.
+
+	* eieio-tests.el: Added messages to method dispatch test.
+	Added test for static methods.
+	Added test for the singleton.
+
+	* eieio-comp.el (byte-compile-file-form-defmethod):
+	Account for STATIC methods.
+
+	* eieio.el (method-static): New constant.
+	(eieio-defclass): Constructor now uses `constructor'.
+	(defmethod): doc fix.
+	(eieio-defmethod): Account for :STATIC descriptor.
+	(eieio-generic-call): Call STATIC methods on a class.
+	(eieiomt-add): Add STATIC methods into the dispatch tables.
+	(eieiomt-get): Renamed `tag' as `key'.
+	(eieio-generic-form): Renamed tag to key.
+	(constructor): New static method.
+
+2002-06-25  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* linemark.el (linemark-add-entry): Revamped to now take a prop list.
+	(linemark-new-entry): Use :filename.
+
+	* linemark.el (linemark-new-entry): Use &rest args
+
+	* linemark.el (linemark-entry): Made the overlay protected
+	(linemark-at-point, linemark-kill-buffer-hook): Use `linemark-entry-child-p'.
+	(linemark-add-entry): Call new method on group for new entries.
+	(linemark-new-entry): New function
+
+2002-03-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-version): Update version.
+
+	* eieio-opt.el (eieio-class-speedbar): Prevent repeated refreshes.
+	(eieio-class-button): Do not put a empty folder on classes w/ no subclasses..
+
+2002-03-13  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-speedbar.el (eieio-speedbar-make-tag-line):
+	Better support for tag buttons
+	(eieio-speedbar-child-make-tag-lines): Fix error text.
+	(eieio-speedbar-expand): Only do child lines if there are children.
+
+2002-02-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* Project.ede: Version change
+
+	* eieio.el (eieio-version): Update to beta4
+
+	* eieio.texi (Predicates): Updated slot-boundp.
+
+	* eieio-tests.el:
+	Added test for `eieio-build-class-alist' & new instantiable flag.
+
+	* eieio-opt.el:
+	(eieio-build-class-alist, eieio-read-class, eieio-read-subclass):
+	Added INSTANTIABLE-ONLY flag.
+
+	* eieio.el (class-abstract-p): New function
+	(eieio-default-superclass): Made abstract.
+
+	* eieio-opt.el (eieio-describe-class):
+	If a class is abstract, display so.
+
+	* eieio-speedbar.el: (eieio-speedbar, eieio-speedbar-directory-button)
+	(eieio-speedbar-file-button): made abstract.
+
+	* eieio-base.el: (eieio-instance-inheritor, eieio-instance-tracker)
+	(eieio-persistent, eieio-named): Made abstract.
+
+2002-02-22  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el: Test passing a CLASS into slot-boundp.
+
+	* eieio.el (eieio-oref-default): Fix bugs when a class is passed in.
+	(slot-boundp): Allow a class to be passed in w/ a static slot.
+
+2002-02-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi (Building Classes): Added :abstract option to doc.
+
+	* eieio-tests.el:
+	Fix test so it can be run multiple times in one session.
+	Added :class allocated slot `slot-boundp' tests.
+	Added :abstract class instantiation tests.
+
+	* eieio.el (defclass): Allow, and enable :abstract class keyword.
+	(eieio-defclass): Obey :abstract class keyword.  Do not allow instantiation.
+
+2002-02-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-require-version): New function.
+
 2002-01-13  Steve Youngs  <youngs@xemacs.org>
 
 	* package-info.in (provides): Update to include all provides.
 	* Makefile (HTML_FILES): New.
 	* Makefile (HTML_DEP): New.
 
-2001-02-20  Steve Youngs  <youngs@xemacs.org>
-
-	* Import version 0.16.
-
-2001-02-17  Steve Youngs  <youngs@xemacs.org>
-
-	* Initial XEmacs Package - Author version 0.15.
-
+2001-12-05  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* INSTALL: Added more complex make instructions for including SPEEDBAR.
+
+	* eieio-tests.el (class-alloc-initarg): New test class
+	(class-c): Fixed spelling error.
+
+2001-12-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el (eieio-persistent): Added extension field.
+	(eieio-persistent-save-interactive): New method.
+
+2001-10-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el (chart-face-color-list): Fix to be ok on terminals.
+	(chart-face-pixmap-list): Allow to be disabled on terminals.
+	(chart-face-use-pixmaps): New option
+	(chart-axis-draw): For Y axis labels, push into the bar if they are
+	too long.
+
+	* eieio.el (eieio-defclass):
+	Warn if class allocated slot has an initarg.
+
+2001-09-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* Project.ede: Updated version.
+
+	* eieio.el: Update version.
+
+	* chart.el (chart-translate-namezone):
+	Fixed up math to handle small cases.
+	(chart-axis-draw): Fixed up some math for very small cases, and
+	to fix some odd rounding problems.
+	(chart-goto-xy): Do not allow x or y < 0
+
+	* eieio-tests.el: Fixed protection typos.
+	Fixed and added protection test methods.
+
+2001-09-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-version): Update version.
+
+	* chart.el (chart-translate-namezone):
+	Fixed up math to handle small cases.
+	(chart-axis-draw): Fixed up some math for very small cases, and
+	to fix some odd rounding problems.
+	(chart-goto-xy): Do not allow x or y < 0
+
+	* eieio-tests.el: Fixed protection typos.
+	Fixed and added protection test methods.
+
+2001-08-31  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el (chart-axis-draw):
+	If limits are too small, force increment to 1.
+
+2001-08-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-initializing-object):
+	New state variable.
+	(eieio-field-originating-class-p): New predicate.
+	(eieio-field-name-index): Use `eieio-field-originating-class-p' for
+	private slots to see if access is allowed.  Initialization of a new
+	object is exempt from this test.
+	(eieio-set-defaults): Set `eieio-initializing-object' to true.
+
+2001-08-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el (eieio-object-value-get):
+	When calculating the new name, make sure the
+	class feature :eieio-show-name is used.
+	(eieio-object-value-get): Only set the new name to an edited object if
+	there is a new name.  (nil is thrown out.)
+
+2001-08-08  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* linemark.el (linemark-funny-face):
+	Reverse light/dark colors.
+	(linemark-next-in-buffer): Reverse argument direction for getting a fcn.
+
+	* eieio.texi:
+	Add linemark to the documentation.
+
+2001-08-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* linemark.el:
+	First revision of Line Mark as a part of the EIEIO package.
+
+2001-08-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* linemark.el:
+	First revision of Line Mark as a part of the EIEIO package.
+
+2001-08-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi: Fixed main menu.
+	Added doc about generic reflected in eieio CVS 1.111.
+
+	* eieio-tests.el:
+	Changed the method order test to reflect changes in eieio 1.111.
+
+	* eieio.el (eieio-generic-call-key):
+	new variable
+	(eieio-generic-call): Only pull up generics if there is no specific.
+	Save the current key in `eieio-generic-call-key'.
+	(next-method-p): Use `eieio-generic-call-key'.
+	(call-next-method): Use `eieio-generic-call-key'.
+	If no next method is found, search for a generic, and call that.
+
+2001-07-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Added tests for :protection.
+
+	* eieio.el (eieio-defclass):
+	Support :private, :protected, :public keywords.
+	Store the actual type of protection in the protection slot instead of
+	a boolean.
+	(eieio-field-name-index): Support private and protected differences.
+
+	* eieio.texi:
+	Added naming conventions chapter.
+	Fixed example that has :protection use to use proper values.
+
+2001-07-13  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added setf method for oref by Arnd Kohrs.
+
+2001-07-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Use :class instead of class for allocation of slots.
+	Added tests for lambda actually running at instantiation time.
+
+	* eieio.el (defclass): Doc fix.
+	(eieio-defclass): Throw error if :allocation is not :class or :instance.
+	Added :public and :private possible protection values.
+	Convert new class initializer to use backquote.
+	(eieio-add-new-field): For class allocated slots, eval the initform if
+	needed when type checking, and for storage.
+	(initialize-instance): Check default args, and eval any lambdas in the
+	new scope.
+
+	* eieio-speedbar.el:
+	Use `:class' instead of `class' for class allocated slots.
+
+	* eieio-base.el:
+	Use `:class' instead of `class' for class allocated slots.
+	More description for `eieio-persistent'
+
+2001-07-05  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Added test to make sure new objects get changes from oset-default.
+
+	* eieio.el (eieio-oset-default):
+	When setting a default, be sure to change the object cache.
+
+2001-06-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Changed all `obj-of-class' calls to `object-of-class' calls.
+
+2001-05-31  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (object-of-class):
+	new name from obj-of-class.  Alias of old name.
+	(object-slots): Was obj-fields.
+
+	* eieio.texi:
+	Changed `obj-slots' to `object-slots'.
+	Changed `obj-of-class-p' to `object-of-class-p'.
+
+	* eieio-comp.el (eieio-byte-compile-princ-code):
+	Replace an XEmacs string match with featurep.
+
+2001-05-20  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* Project.ede: Update version.
+	New URLS
+
+	* eieio.texi (slot-exists-p):
+	Fixed to match source (takes class now.)
+
+	* eieio.el (eieio-defmethod):
+	Fixed typeo w/ writer creation.
+	(slot-exists-p): Can now take an object, or a class.
+
+2001-05-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	By Daniel Pittman <daniel@rimspace.net>
+	(eieio-defmethod): Tried to fix `writer', fixed `reader'.
+	(with-slots): Assignment to slots will set values in the objects now.
+
+2001-05-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Let the test run multiple times in a row.
+	Added test for :type testing on children of classes defining the :type
+
+2001-05-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added a type for typep for new classes.
+	Funny inclusion of certain cl scripts.
+
+2001-05-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-version): 0.17beta1
+
+	* eieio-base.el (slot-missing:eieio-named):
+	Added :object-name as another slot-name.
+
+2001-05-07  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el (eieio-set-name-string): New fcn.
+
+	* eieio-tests.el:
+	Added tests for eieio-named class.
+
+	* eieio-base.el (eieio-named): New class
+	(slot-missing:eieio-named): New method.
+
+2001-04-29  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el (eieio-instance-inheritor):
+	Set :type of parent-instance to be
+	`eieio-instance-inheritor-child'
+
+2001-04-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el:
+	Removed complex relative file generator in place of the built in function.
+
+	* eieio.el (class-p): Updated doc.
+	(eieio-defclass): When extracting slot description flags, use
+	`plist-get' instead of `member' (suggested by Richard Kim)
+	(make-instance): Updated doc about the use of class symbols.
+	(eieio-perform-slot-validation): Removed special class cases.
+	By using `CLASSNAME-child' instead of `CLASSNAME' for a :type
+	specifier, the same effect can be achieved.
+
+	* eieio-opt.el:
+	Added `eieio-read-subclass' function.
+
+	* eieio-doc.el (eieiodoc-one-node):
+	Fixed texification of the doc string for the class.
+
+2001-04-24  emacsman  <emacsman@choochoo>
+
+	* tree.el:
+	Added autoload cookies for the three top level comands.
+	Also set `truncate-lines' to `t' in `tree-mode' function to prevent line-wrapping.
+
+2001-04-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el:
+	If a persistent write fails, make sure the user isn't asked about
+	killing the buffer that was temporarilly created for writing.
+
+2001-04-17  emacsman  <emacsman@choochoo>
+
+	* call-tree.el:
+	Added `;;;###autoload' for `call-tree'.
+
+2001-02-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el:
+	Fix so that the chart-emacs-* commands work with XEmacs.
+
+	* eieio-tests.el:
+	Add a require for eieio-base.
+
+	* eieio.texi:
+	Rearranged some features in the feature list.
+	Removed invalid section about executing code at instantiation time
+	in a slot init form.  (Use initialize-instance method overload
+	insead.)
+	Varios other fixes.
+
+	* Project.ede: Rearranged the project file.
+	Added call-tree.el
+
+	* eieio-tests.el: Header comment update.
+	Fixed persistent test to save the file to the current directory.
+
+	* eieio-speedbar.el, eieio.el, eieio-opt.el:
+	Header comment update.
+
+2001-02-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-doc.el, eieio-custom.el, eieio-comp.el:
+	Removed ftp site information.
+
+	* INSTALL: Added web page link.
+	Removed explicit version from load path explaination.
+
+	* eieio.texi:
+	Fixed cross reference (xref) nodes to speedbar.
+	Fixed compile bugs.
+	Removed unwanted node from main menu.
+
+	* eieio.el:
+	Fixed eieio-oref-default to correctly accept a class symbol again.
+
+	* chart.el: Removed ftp location.
+	Added spaces to the commentary
+	Fixed the base chart to recalc width/height at object creation time,
+	not class creation time.
+
+	* tree.el, call-tree.el:
+	Removed FTP location from comments.
+
+	* eieio.el:
+	(defclass) If the class already exists, recover child list for the new
+	class.  This preserves existing class hierarchies, and protects the
+	user from the simple act of re compiling.
+
+2001-02-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el:
+	Added tests for `make-instance'.
+
+2001-02-16  ponced  <ponced@choochoo>
+
+	* compare-strings.el:
+	Added a `provide' statement.
+	Fixed a nasty bug in the `let' statement which reinitialized the local
+	variables i1 an i2 to nil!
+
+2001-02-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed `object-add-to-list' to force the value of a slot to a list if
+	it is not currently a list or nil.
+
+2001-02-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el:
+	`initialize-instance:eieio-instance-tracker' append new items to the
+	end of the list.
+
+2001-01-31  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* compare-strings.el:
+	Compatibility code for compare-strings.
+
+	* Project.ede: Project file for EIEIO
+
+2001-01-25  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed doc for eieio-perform-slot-validation.
+
+2001-01-24  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	In eieio-defclass, move the creation of the test fn before
+	initializing slots.  This lets slots accept objects of the same type.
+	Fixed `make-instance' to take the correct arguments.
+
+	* eieio-tests.el:
+	Test self-referencing classes.
+
+	* eieio-base.el:
+	Compare Strings backwards compatible bit.
+
+2001-01-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* psql.el:
+	Beginnings of conversion to pg.el postgres library.
+
+	* dbif.el: Various hacks I don't remember.
+
+2001-01-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added docs on some new base classes.
+
+	* eieio-tests.el:
+	Added tests for some new base classes.
+
+	* eieio-base.el:
+	Removed incompatible add-to-list call.
+
+2000-12-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-opt.el:
+	Added additional highlighting to classes and methods in *Help* buffers.
+
+2000-12-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el:
+	eieio-persistent-save.  Locally bind `default-directory' to the
+	directory part of the object being saved.
+
+2000-12-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el: Comment updates.
+
+	* eieio.el: Removed the base classes.
+
+2000-12-07  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-base.el: New file.
+
+	* eieio.el:
+	Fixed a bug in the eieio-persistent relative path generator.
+	Made lists of objects output in `write-object' prettier.
+
+2000-12-05  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added the class `eieio-instance-tracker'.
+	For this class, added `initialize-instance', `delete-instance', and
+	the function `eieio-instance-tracker-find'.
+
+	* eieio.texi: Added eieio-instance-tracker.
+
+	* eieio-speedbar.el:
+	Fixed some documentation.
+
+2000-12-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added eieio-persistent object documentation.
+
+	* eieio.el:
+	Added eieio-persistent-read function for reading eieio-persistent objects.
+
+	* eieio.el:
+	Added eieio-persistent as a new base class.
+
+2000-12-02  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added new Base Classes chapter.
+	Added sections for eieio-instance-inheritor, and eieio-speedbar.
+
+	* eieio.el:
+	Enable an initform to be a function symbol without evaling it.
+	Enable field tests to "eval" a function if needed.
+	Enable oref default, and field tests to convert `lambda-default'.
+	New function `eieio-default-eval-maybe'.
+
+	* eieio-tests.el: Added function type test.
+	Added instance inheritor test.
+
+2000-12-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added `eieio-instance-inheritor', plus `slot-unbound', and `clone' methods.
+
+2000-11-30  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	unbound-slot was using the wrong symbol for error conditions.
+	added `error' as a condition for invalid-slot-type and unbound-slot.
+
+2000-10-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el:
+	Implement slot widget type for objects.
+	Fixed `eieio-object-value-get' which had bugs from the last check in.
+
+2000-10-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el:
+	Enabled :slotofchoice specifier for custom types.
+
+2000-10-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed recent functions to use slot-boundp properly.
+
+	* eieio.texi:
+	Added discussion about class use in oref.
+	Added doc for `object-add-to-list' and `object-remove-from-list'.
+
+	* eieio.el:
+	Added `quotation' around generic method name in doc.
+	Oref now can take a class for referencing class allocating slot values.
+	Added new functions `object-add-to-list' and `object-remove-from-list'.
+	Added some doc to `object-unbound' discussing `slot-boundp'.
+
+2000-10-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added doc for the new class specifiers.
+
+2000-10-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el:
+	Added support for :objectcreatefcn as part of the widget.
+	Fixed `eieio-object-value-to-abstract' for insert into list case.
+
+	* eieio-custom.el:
+	Added an `accept' button to `apply' and `bury' the buffer.
+	Fixed the widget-get-value thingy so that it also handled the
+	group specifier.
+
+	* eieio-custom.el:
+	Added `eieio-read-customization-group' function.
+	In `eieio-object-value-create', allow null master-group for all slots,
+	  Show list of groups, with buttons to switch groups.
+	In `eieio-customize-object', put group name into the customization buffer.
+	Add a cancel button attached to bury-buffer.
+
+2000-10-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed some custom-group settings.
+	Added custom-label to all areas of slots.
+
+	* eieio-custom.el:
+	Added support for specifying a group when customizing.
+	Fixed up display to not print "Slot", to show the group
+	being edited, and to use new custom labels.
+	Added new fn `eieio-customize-object-group' for use
+	with easymenu :filters.
+
+2000-09-30  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Fixed another customgroup bug.
+
+	* eieio-speedbar.el:
+	Fixed bug with info lines at the end of the display.
+
+	* eieio.texi:
+	Added :group :custom-group, and `class-option' documentation.
+
+	* eieio.el:
+	Fixed `class-option' macro.  Must not have been using it.
+
+	* eieio.el: Removed class slot `class-doc'.
+	Added class slots for `class-public-custom-group' and
+	  `class-class-allocation-custom-group'.
+	Added :group slot specifier.  This groups slots in a class.
+	Added :custom-groups class option.  Lists all groups in this class.
+	  This is created automatically from :group specifiers.
+	Normal doc is now stored in the :documentation class specifier.
+	All support work for slot groups.
+
+2000-09-28  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-doc.el: Require eieio-opt.
+
+	* eieio-tests.el:
+	Comment test for functions in classes.
+
+	* eieio-custom.el:
+	Added `customize-object' shortcut.
+
+	* eieio.el: Update version number.
+	Fixed doc of `generic-p'.
+	When cloning, allow passing in of a new name, and replacement arguments.
+	In `write-object', do not try to access unbound slots.
+	In `eieio-edebug-prin1-to-string', handle lists of objects.
+	Fixed edebug spec for with-slots.
+
+2000-09-25  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-doc.el:
+	Added `eieio-class-nuke' which calls `eieio-class', but deletes all
+	  text following the cursor.  Useful in ede doc files.
+	Updated `eieiodoc-one-node' to display methods belonging to each
+	  class.
+	Added `eieio-insert-and-massage-docstring-with-args' for method
+	  documentation strings, and @var ing arguments when they are in
+	  the doc string.
+	Force line break after Type: label in slot docs.
+	Fixed up `texify-string' regular expressions a little.
+
+	* eieio-opt.el:
+	Updated `eieio-method-documentation' to return the arg lists also.
+	Updated `eieio-describe-class' to show method arguments.
+	Added `eieio-lambda-arglist' for fetching args from a symbol.
+
+2000-08-20  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Removed some customize autoloads.
+
+	* eieio.el:
+	Fixed creating of generic methods from byte-code.
+
+	* eieio.texi: Added @end table.
+
+	* eieio.texi: Replaced intro text.
+	Added scheduling details for defmethod.
+	Added class-children
+	Updated info about describing classes and generics.
+
+	* eieio-comp.el:
+	Added support for the :PRIMART tag, and fixed bug when parsing args.
+
+	* eieio-tests.el:
+	Defvared all the variables.
+	Added test for the :BEFORE/:AFTER tags for methods, plus generics.
+
+	* eieio-speedbar.el:
+	Updated comment to specify the needed version of speedbar.
+
+	* eieio.el:
+	Added :PRIMARY to defmethod docs, and interpretation.
+	Track the class for the first arg when making methods.
+	If there is no class for the first arg, then it is a generic.
+	Fixed error checking in `eieiomt-add'.
+	In `eieio-generic-form' return generics correctly.
+	Added autoloads for describe-generic.
+
+	* eieio-opt.el: Augment the help keymap.
+
+	* eieio.el: Fixed autoload.
+
+	* eieio-comp.el:
+	Eval and compile compatibility code.
+
+	* eieio-comp.el: Comments
+
+	* eieio.el:
+	Removed `eieio-rebuild-generic-doc-string'.
+	Don't call this function either.
+
+	* eieio-opt.el:
+	Describe-class returns the text created.
+	eieio-read-class now takes a history variable, or uses a default one.
+	Added eieieo-describe-generic, and several aliases.  Copied from
+	the eieio-rebuild-doc-string for functions.
+	Added eieio-read-generic-p, and eieio-read-generic
+	The help system augmenter will now find generics, and reset
+	the function apropriatly.
+
+	* eieio-opt.el:
+	Build slot definitions in `describe-class'.  This is no longer handled
+	by defclass.  (Faster load times.)
+
+	* eieio.el:
+	Do not rebuild doc string for class.  Handle in `describe-class'.
+	Rebuilt all macros using backquote.
+
+	* eieio-opt.el:
+	Added `eieio-help-mode-augmentation-maybee'.
+	Fixed up `describe-class' to contain a list of parents, children.
+	Fixed up `eieio-all-generic-functions' to only include functions
+	defined specifically for the given class.
+	Fixed up `eieio-method-documentation' to not throw errors for
+	pass-through memoized method symbols.
+
+	* eieio.el:
+	Added `class-children', and `class-children-fast' functions.
+	Added autoload for `eieio-help-mode-augmentation-maybee', and added
+	it to the hooks for help.
+	Added advice to `describe-variable'
+
+	* eieio.el:
+	Move version number up near the Version keyword.
+
+	* eieio-custom.el:
+	Added apply-reset button creating function.
+	Put them at the top and bottom of a direct-edit custom buffer.
+	Removed additional indentation of SLOT tag.
+	You can direct-customize the same object twice.
+
+2000-08-02  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed a slot-missing setting when initializing an object.
+	Changed the signal output from the `slot-missing' method.
+
+2000-08-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Moved eval and compile beginning part to after some variables.
+	Updated some comments.
+	Updated `eieio-validate-*slot-value' to take the field being checked.
+	This is only used when signaling an error.
+
+2000-07-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added in compatibility section for `compiled-function-arglist'.
+	Used `eieio-compiled-function-arglist' in `eieio-rebuild-generic-doc-string'.
+
+	* eieio.el:
+	Do not print bootstrap message if byte compiling, and verbosity is nil.
+	Added eieio-defgeneric-form, and used it in eieio-defgeneric from
+	whence it was pulled.  (Needed by the byte compiler.)
+	Eval and compile all of eieio (bootstrap itself w/ the byte compiler.)
+
+	* eieio-comp.el:
+	Use byte-compile-function-environment to quiet the byte compiler for methods.
+	Remove if statement around above.
+	Make sure this function returns nil!
+
+	* eieio-speedbar.el, eieio-opt.el:
+	Byte compilation fixes.
+
+2000-07-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el:
+	Added new unbound slot to test object.
+	Add protection from unbound slots. (ei, skip them)
+	Add purty cullers to slot titles, and object name.
+
+	* eieio.texi:
+	Added doc about eieio-error-unsupported-class-tags
+
+	* chart.el:
+	Convert old -engines to eieio- fns.
+
+	* eieio-comp.el:
+	Call eieio-defmethod instead of defmethod-engine.
+	In `byte-compile-file-form-defmethod', if meth is not bound, call
+	eieio-defgeneric to create the function definition so that warnings
+	aren't thrown.  Next, remove the new method from the byte-compiler's
+	list of unresolved functions.
+
+2000-07-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-custom.el, eieio-doc.el:
+	Updated to have -engine calls switched to eieio- calls.
+
+	* eieio-tests.el:
+	Added invalid slot tag testing.
+
+	* eieio.el:
+	Added `eieio-error-unsupported-class-tags', then used it in
+	eieio-defclass to wrap a block that throws an error if a bad
+	tag is encountered.
+
+2000-04-13  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added needed autoload for typep (needed in Emacs21 CVS).
+
+	* eieio.el:
+	Renamed all occurances of *-engine to eieio-* to tidy up the namespace.
+
+1999-12-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Updated version number.
+
+	* eieio-speedbar.el:
+	Added methods with errors for eieio-speedbar objects which don't
+	implement non-object children.
+
+	* eieio-custom.el:
+	Moved eieio-done-customizing
+
+1999-12-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-opt.el:
+	Changed all eieio-speedbar functions to eieio-class-speedbar to be
+	more specific.
+
+	* eieio.texi: Removed references to dbiff.
+
+	* eieio.el: Updated version number.
+
+	* eieio-speedbar.el:
+	buttonface's type is now (or symbol face). That way it will pass even
+	if speedbar hasn't been loaded yet.
+	Fixed comments at beginning.
+
+	* eieio.texi: Spell checked.
+
+	* eieio.el:
+	Added eieio-version variable and test function.
+	Ran through checkdoc.
+
+	* eieio.texi: Various MI updates to slots.
+	Doc class-parents* functions which are new with MI.  Note that
+	class-parent is depricated.
+
+	* eieio.el: Update version number
+
+	* eieio-speedbar.el:
+	Tweeked the default keymap and menu.
+
+	* eieio.el:
+	When building the test function for new classes, make sure it is an
+	object before calling the `same-class-p' primitive.  Also add new
+	primitive `-child-p' to test of an object inherits anything from a
+	class
+
+	* eieio-tests.el:
+	Added tests for auto-generated predicates for class objects.
+
+	* eieio-speedbar.el:
+	Line info for children is now derived from the parent object.
+	nearest-object will now calc depth if it is not provided.
+
+1999-11-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-tests.el: New file.
+
+1999-11-24  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed oset for class-slots w/ type validation.
+	Fixed call-next-method to only call the first method found.
+
+1999-11-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-speedbar.el:
+	Fixed random crufty bugs.
+
+	* eieio-speedbar.el: New file.
+
+1999-11-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Changed no-method-definition method to no-applicable-method.
+
+	* chart.el: Added initargs to some slots.
+
+	* eieio.el:
+	changed no-method-definition to no-applicable-method as per hyperspec.
+
+	* eieio.texi:
+	Removed anti-multi-inheritance documentation.
+	Added docs on no-method-definition and no-next-method methods
+	and signals
+
+	* eieio.el:
+	If a method is not available for a given object, call the method
+	`no-method-definition' instead of signaling it.  This method calls the
+	signal.  Call signal directly iff there is no object to call on.
+
+	New function next-method-p If there is no next method, call the method
+	`no-next-method' which is a new primitive method which signals that
+	there is no next method.
+
+	Make  sure `call-next-method' returns the value of the last lambda
+	called.
+
+	Add new signal `no-next-method'
+
+1999-11-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Fixed doc of slot-unboundp
+	eieiomt-next now returns a list of parents.
+	call-next-method, and the sym-optimizer now can handle the
+	list of parents when searching for methods.
+
+	* eieio.el:
+	Fixed defmethod-engine to keep parent classes in the same order.
+	Fixed child-of-class-p to work properly with MI.
+
+1999-09-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi: Fixed compile errors
+
+	* eieio.el:
+	Removed "execessive info" in a doc string for find-class.
+
+1999-09-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Updated to the latest version.  Changed all "field" words to "slot" to
+	be compatible with CLOS.
+
+1999-09-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-opt.el: Removed thing-to-string
+
+	* eieio-doc.el: Fixed checkdoc stuff.
+
+	* eieio-opt.el:
+	eieio-describe-class): Completely revamped to use
+	the documentation (pre-built), and new generic apropoing functions.
+	(eieio-read-class): New function
+	(eieio-all-generic-functions): New functions
+	(eieio-method-documentation): New function
+	(eieio-describe-slots): Deleted
+
+1999-09-08  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Do not add a default to doc strings if it is unbound.
+
+	* eieio-doc.el:
+	Be careful about unbound slots when creating doc.  Just leave off the
+	default value.
+
+	* eieio.texi: Added set-slot-value details.
+	Fixed a slot-value example.
+
+	* eieio.el: Added `set-slot-value'
+
+	* eieio.texi:
+	Added doc about unbound slots, and `slot-makeunbound' and
+	'slot-unboundp'.
+
+	* eieio.el:
+	Added slot-makeunbound, and implemented slot-boundp
+
+	* eieio.el:
+	Implemented unbound slots.  New variable eieio-unbound.
+	New function eieio-barf-if-slot-unbound.
+	New method slot-unbound.
+	Initialize uninitialized slits to the uninterned symbol unbound.
+	Call eieio-barf-if-slot-unbound when returning a slot value.
+
+	* eieio.el:
+	Fixed type check when identifying specific classes or object.
+	Fixed Doc to -of-class-p functions.
+
+1999-09-06  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added documentation about class-options.
+	Fixed typo about standard-object.
+
+	* eieio.el:
+	Added class-options, including :documentation, and :allow-nil-initform.
+	Make it possible to disable typechecking of initializers completely.
+
+	* eieio-doc.el:
+	Fixed up compiler warnings (the xref followed by , or . in RH 6.0)
+
+1999-09-05  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el:
+	Fixed to work with new eieio forms.
+
+	* eieio-doc.el: Fixed a compiler warning.
+
+	* eieio-opt.el: Fixed compiler warnings.
+
+	* eieio.el: Fixed some compiler warnings.
+
+	* eieio-doc.el:
+	Added the Type specifier into the documentation.
+
+	* eieio.texi:
+	Added a few more details on differnces.
+	Added xref for :type specifier.
+
+	* eieio.el: Added find-class, and boolean-p.
+	Added in a few section break comments.
+
+	* eieio.el (eieio-rebuild-doc-string):
+	Add type to output.
+
+	* eieio.el:
+	Convert TYPE slot in class into a vector for faster access.
+	Do type checking in oset and oset-default.
+	Do type checking when building a class's default values.
+
+1999-09-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Updated the version number.
+
+	* eieio-doc.el:
+	Fixed to handle the new class structure.  Add doc for class allocated
+	slots.  Private is a slot attribute.
+
+	* eieio-opt.el:
+	Fixed `describe' to handle the new class structure.
+
+	* eieio.el:
+	Removed several old defconsts, (all with PRIVATE in them) and added
+	several new ones (class-protection, and all with `allocation' in
+	them).
+	(defclass-engine): Updated to handle multiple parents.  Removed all
+	ref to private parts.  Extract class init from parent to function, and
+	loop over it.  Reverse end results of public attributes.  Store
+	private status in a list.  Store class allocated vector information.
+	(eieio-add-new-field, eieio-copy-parents-into-subclass):New functions.
+	(oref-engine, oref-default-engine, oset-engine, oset-default-engine):
+	Handle class allocated field referencing.
+	(class-parents, class-parents-fast): New functions.
+	(class-parent, class-parent-fast): Update to call plural version.
+	(child-of-class-p): Update to handle multiple parents.
+	(eieio-class-field-name-index): New function.
+	(eieio-rebuild-doc-string): Removed private field docing.  Added
+	private as a property of regular slots.  Doc class allocated slots.
+
+1999-07-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed for use under XEmacs 20.  Upgraded version number.
+
+1999-06-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added the function object-assoc-list-safe.
+
+1999-03-18  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Patch from Dave Love to create a function index.
+
+1999-03-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* Makefile.old: Fixed make of doc rule.
+
+	* eieio.el: Updated the version number.
+
+1999-02-25  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Updated the list print routine.
+
+	* eieio-custom.el:
+	Updated the slottype filter to find augmented repeating object types.
+	When a widget's value is nil, but it's type is object, create a new object
+	of type :objecttype.
+	Turn the object name into an editable field which works.
+
+1999-02-18  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi: Fixed build problem.
+
+	* eieio.texi: Fixed up some rough edges.
+
+	* Makefile.old:
+	Added lisp examples into the dist.
+
+	* psql.el, dbif-browse.el:
+	Ran through checkdoc.
+
+	* chart.el:
+	Ran through checkdoc.  Enabled runing on terminals.
+
+	* eieio-custom.el: Tweak the display.
+
+	* dlg-class.el:
+	constructor -> initialize-instance changes.
+
+	* dbif-browse.el: Ran through checkdoc.
+
+	* Makefile.old:
+	Updated for custom, and better VERSION setting
+
+1999-02-13  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Removed history party.
+
+1999-02-03  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi: More on customizing objects.
+
+	* widget-d.el: :docstring -> :documentation
+
+	* eieio-custom.el:
+	Added new generic method for when an object is 'applyd'
+	Added object-edit custom type filter so sub-objects are not cloned
+	in edit-in-place mode.
+	Added :clone-object-children widget tag for above.
+	Added some buffer-local variable defvars to hack compiler warnings.
+
+1999-02-02  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el, eieio-custom.el:
+	Ran through checkdoc.
+
+1999-01-28  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi: Fixed up lots of doc bugs.
+	Added customizing node
+	Changed :docstring to :documentation
+	Lots of tweeks, and added lots of new slot specifiers.
+
+	* eieio.el: :docstring to :documentation
+	Added :documentation to the help on defclass.
+	Changed slot validation to cl-macs `typep' function.
+	Added symbols to the eieio code printer
+	Added eieio-custom autoloads.
+
+	* eieio-custom.el:
+	Fixed up the two way customization.
+	Added `eieio-customize-object' and `eieio-custom-widget-insert'
+	functions as conveniences which are also methods for editing an object
+	`in place'.  fixed up the 'object widget to clone the object before
+	storage, so the in-place editor is safe.
+	Tweeked the display.
+
+1999-01-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* tree.el: Updated to use with-slots
+
+	* eieio.texi:
+	Added introspection chapter.  @defuns for obj-fields, and class-slot-initarg.
+	Removed comments about adding more built ins for wishlist.
+	Removed constructor/destructor doc, and all quoted functions, and
+	descriptions with @defun text describing the new initialize-instance,
+	shared-initialize, clone, and print-object methods.
+	Added @defun for with-slots
+	Added @defun for slot-exists-p, and slot-boundp.
+	Added @defun class-of
+
+	* eieio-custom.el: New file.
+
+	* eieio.el:
+	Added indentation style for `with-slots'
+	Added `condition-case' protection in object-assoc.
+	Return nil if no initarg is available in initarg-to-attribute
+	Fixed `slot-missing' standard method.
+	Added `clone' standard method.
+	Moved `destructor'.
+	Added space between list elements when outputting.
+
+1999-01-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed compile warning in slot-missing generic fn.
+
+	* eieio.el:
+	Rearranged class slot positions to add allocation, type, and custom.
+	Updated docs for new slot types.
+	Use const instead of a number when checking for a parent.
+	When creating a class, handle the new types of reader, writer, alloc,
+	type, and custom.
+	Implement generation of generic functions for the reader/writer slot.
+	Rebane `constructor' to `initialize-instance'
+	Change all applicable calls of (signale 'invalid-slot-name ...) to
+	(slot-missing) generic method.
+	Added `eieio-perform-slot-validation' and `eieio-validate-slot-value'
+	for use with the :type slot specifier.  Used it in oset.
+	Added `with-slots' (thanks Kevin Rodgers)
+	Added comment that class-name is wrong.
+	Added `obj-fields', `class-slot-initarg', `slot-boundp', and `slot-exists-p'
+	Removed `eieio-set-fields'.  It became the method `shared-initialize'.
+	Added signal `invalid-slot-type' when generating errors for
+	the :type slot parameter.
+	Create an alias for `standard-class' to eieio-default-superclass.
+	Implemented `object-write' to write out an object in such a way that
+	it can be read in.  This require the fns `eieio-override-prin1', and
+	`eieio-list-prin1'
+	Added function `change-class' with no implementation but an error.
+	Added edebug spec for with-slots
+	Added eieio-custom autoload.
+
+1998-12-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Removed a typo.
+
+	* eieio-opt.el:
+	When describing a class, do not print the PRIVATE section if there are
+	no private fields.
+	Added a speedbar mode for showing the current EIEIO class state.
+
+1998-10-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* Makefile.old:
+	Added Makefile and info rules.
+
+	* tree.el, eieio.el, eieio-opt.el, eieio-doc.el, eieio-comp.el, dbif.el:
+	Ran through checkdoc.
+
+	* dbif-edit.el: New file.
+
+	* chart.el: Ran through checkdoc.
+
+	* call-tree.el: Removed stray provide
+
+	* call-tree.el: Ran through checkdoc.
+
+	* Makefile.old: New file.
+
+	* eieiocomp.el:
+	Fixed for lack of widget stuff.
+
+	* eieio.el:
+	Fixed documentation for defclass.
+	Fixed creation of object predicate.
+	Added object-assoc, object-assoc-list.
+
+	* eieio.texi:
+	Removed all the widget references.
+
+	* eieio.texi:
+	Added association list stuff (object-assoc, object-assoc-list)
+	Fixed some spelling.
+
+1998-09-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* psql.el: Got it to work again
+
+1998-03-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Doc fixes.
+
+1997-10-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added an object-write method to the super class.
+
+1997-10-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog.texi: Added disclaimer
+
+1997-08-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Made checkdoc compliant
+
+1997-03-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el:
+	Fixed char-space-usage to use generic du, not at a specific path.
+
+	* widget-d.el:
+	Text widgets now have handle-motion set to 'traditional for optimizations.
+
+	* dialog-mode.el:
+	Added maybe key optimization.  Widgets can now specify thier handle-motion
+	field as 'traditional.  Traditional movement is handled by dialog-mode unless
+	the motions exceeds the bounds of the widget.
+
+	* widget-i.el:
+	Text field widgets no longer put their object on the < and > buttons
+
+1997-02-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-class.el:
+	A boundp should have been fboundp in data-valid-color-p
+
+1997-01-29  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog.texi:
+	changed "Dialog" to "Dialog Mode" in title
+
+	* dlg-class.el, dlg-config.el:
+	changed the name of dialog.el to dialog-mode.el
+
+	* eieiocomp.el: New file.
+
+	* dialog-mode.el:
+	Renamed this file.  Added some comments, and fixed xemacs color loader
+
+1997-01-26  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-class.el, dialog-mode.el:
+	Fixed typo
+
+	* dialog.texi: fixed the includes
+
+	* dialog.texi:
+	Fixed @includes to new file names
+
+1997-01-24  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* tree.el: Updated some documentation
+
+	* dialog-mode.el: Fixed up documentation.
+
+	* dlg-config.el: changed doc strings
+
+	* eieio-doc.el: fixed documentation strings
+
+1997-01-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Modified all doc strings to conform to standards.
+	Modified all cl things to be more robust when loading.
+	Added eieio-hook run whenever defmethod is called.
+
+1997-01-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* d-config.texi: Re ran doc generator
+
+	* d-widget.texi: Re-ran with new hierarchy
+
+	* dialog.texi, eieio.texi:
+	Updated.
+
+1997-01-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: Iffed out imenu for XEmacs
+
+	* e-config.el:
+	Added XEmacs specific checks, including completely disableing those
+	dialogs which make no sense there.
+
+	* dlg-config.el:
+	Added XEmacs specific fixes, particularly around face/font management.
+	Make dlg-bunch-of-simple-toggles smart enough to throw out variables
+	which are not bound.
+
+	* dlg-class.el:
+	Added XEmacs specific fixes, particularly around face/font management
+	and lack of working replace-match
+
+1997-01-18  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-config.el:
+	Added help button to config frame.  Added new info button.  Added help
+	functions to all buttons which didn't already have help.  Updated
+	string-to-list functions to be more configurable.
+
+	* dlg-class.el:
+	Fixed bugs with data-object-symbol's edit-config-file method when
+	dealing with `nil' as a list
+
+	* e-config.el:
+	Updated to fix bugs found when testing the auto-edit feature.
+
+	* ecfg-menu.el:
+	Added new menu items for ange-ftp, dired, citation, bookmarks, and
+	ispell.  Added the autoload calls.  Made submenu for mail related
+	items.
+
+	* e-config.el:
+	Turned all blocks of toggles into dlg-bunch-of-simple-toggles calls,
+	and added many new dialog boxes including ange-ftp, dired, citation,
+	bookmarks, and ispell.  Added calls to the new dlg-info-button, took
+	advantage of the new widget-help system in many places.
+
+1997-01-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Added mode line modifications for dialog mode
+
+1997-01-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* widget-i.el, widget-d.el:
+	Added support for widget level help
+
+	* dlg-config.el:
+	Specialized routines to help build configuration dialog boxes.
+
+	* dlg-class.el:
+	Specialized classes for editing configuration items in.
+
+	* dialog-mode.el:
+	Added support for widget-level help
+
+1997-01-07  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-doc.el:
+	Fixed compile bugs by moving some things around, and adding some
+	parameters or comments
+
+	* e-config.el: Fixed bug in postscript
+
+	* dlg-config.el: Changes to string-to-list
+
+	* dlg-class.el:
+	Added new translated version of data-object-symbol (user defined
+	translation)
+
+1997-01-04  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el, chart.el:
+	Added check so this file can be byte-compiled in batch mode
+
+1996-12-20  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added special command to update the lisp keywords to include
+	defmethod.
+
+1996-12-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-config.el:
+	Added a couple utility functions for use with the specialized data
+	objects
+
+	* widget-i.el:
+	Fixed up option-text widget to be more reliable
+
+	* e-config.el:
+	Fixed a few bugs, added lots of ps-print stuff
+
+1996-12-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	More XEmacs support, and fewer byte-compiler errors.  XEmacs now finds
+	background mode more reliably.
+
+	* eieio-doc.el: comment change
+
+	* eieio-opt.el: doc change
+
+	* eieio-comp.el:
+	Fixed XEmacs but when printing code with reference byte-code in it.
+
+	* widget-i.el:
+	Added some speed optimizations.  Fixed geometry management for groups
+	with no children.  Mouse yank in text fixed.  Title added to popup
+	menus on option buttons.  Fixed spelling.
+
+	* widget-d.el:
+	Spelling fixes.  Added :title to option button to customize menu title
+	and prompt string.
+
+	* eieio.el:
+	Fixed spelling all over.  Fixed some compiler warnings.  Added hack to
+	make edebug print objects and classes nicely.
+
+1996-12-05  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added new constants for inicies into classes and objects which were
+	not there before.
+	Fixed problems with lambda-default.  It behaves like lambda, except it
+	has `lambda-default' as the first symbol instead.
+
+1996-11-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio-doc.el:
+	Fixed string to tex function and some comments
+
+	* eieio.texi:
+	Added updated information about call-next-method's new parameter
+
+	* widget-d.el:
+	Modified widget-text-field to maintain 2D scrolling info.
+	Added widget-text-box, widget-scrolled-text, widget-combo-box,
+	widget-arrow-button.
+	Updated widget-scale and widget-scrollbar so they worked.
+
+	* eieio.el:
+	Added `replacement-args' to call-next-method
+	Added new method off default superclass for printing objects with a
+	summary
+
+	* dialog-mode.el:
+	Added some keyboard bindings
+	Made dialog-refresh smarter
+	changed dialog-test
+
+	* eieio-opt.el: New file.
+
+	* widget-i.el:
+	Added giant text-widget speedups (redraw-smarts, value-cache)
+	Added multi-line text widgets
+	Added data-object `object-print' method
+	Finished Scrollbars & scales, added arrow-button
+	Created combo-box (text and option button combo)
+	Created scrolled text (scrollbar/multi-line text combination)
+
+1996-11-22  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed up comments describing the object.
+	Added new default-object cache.  (Major speedup)
+	Fixed object-p to be faster
+	Fixed the signal for no method
+	Fixed lambda-default to work as documented under newer default scheme
+	When printing, the method tree is reversed so that they appear as
+	created.
+
+1996-11-18  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Updated some key bindings, and fixed up the demo some.
+	dialog-build-group can now accept a string as the group, and it will
+	auto make a frame with that label
+
+	* dlg-class.el:
+	fixed docstrings so they could be used in the manual.
+	Fixed data-object-command-option which was broken.  (Was evaluating a
+	string, not actually reading the string into a list first)
+
+	* eieio-comp.el: Fixed the comments
+
+	* eieio.el:
+	Moved all browsing commands into eieio-opt.el
+	Added the eieio-attribute-to-initarg command
+	Changed oref-default-engine to accept a class as well as an object.
+
+	* widget-d.el:
+	Updated all the documentation so it was good enough for the texinfo
+	file
+
+	* eieio.texi:
+	Added notes about the new eieiodoc-class command for creating
+	documentation about classes in texinfo cross-referenced format
+
+	* d-widget.texi, d-dataobj.texi, d-config.texi:
+	Fixed typo
+
+1996-11-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* d-config.texi, d-dataobj.texi, eieio-doc.el, dialog.texi, d-widget.texi:
+	New file.
+
+1996-11-14  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added documentation referring to the 0.8 upgrade (see eieio.el)
+
+1996-11-13  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added a new warning message when there is no method implementations,
+	and created new signal symbols no-method-definition and
+	invalid-slot-name.
+
+	* eieio.el:
+	Translated several things into macros, and fixed a bug in (call-next-method)
+	which ignored the superclass
+
+	* dlg-class.el:
+	Created more smart defaults to use the object name as the symbol or
+	command if needed.  Added feature to string-to-int to protect against
+	floating point numbers if needed.
+
+	* e-config.el:
+	Updated all widget and data-object initializers to use the new smart
+	defaults
+
+	* ecfg-menu.el: mail and rmail were split
+
+1996-11-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-config.el:
+	changed the dlg-init box to handle a new parameter, and take up less
+	space (4 lines minimum now.)
+
+	* e-config.el:
+	Added use of new dlg-init parameterer, and made radio-box in rmail
+	better
+
+1996-11-09  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* widget-i.el:
+	Upgraded box-drawing, and added some smarter geometry management
+
+	* dialog-mode.el:
+	Added a bunch of xemacs support
+
+	* widget-i.el:
+	Fixed some xemacs specific bugs and/or errors
+
+	* eieio.el:
+	Moved byte-compiler specific stuff into a different file.
+	Added more edebug specs for all the different macros, and fixed the
+	one for defmethod.
+
+	* eieio-comp.el: New file.
+
+1996-11-07  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed how classes are created so that defmethod can be called when
+	creating accessors.
+
+	* dlg-class.el:
+	Added or updated constructors of different types.  Fixed -list-index
+	section replacemet routine.
+
+	* widget-d.el:
+	Added widget-gadget-translator type
+
+	* widget-i.el: Added gadget-translator type.
+	Added optimization for getting values from previous widget.
+	Added checks in resizers to avoid non-visual widgets
+	Labeled text now defaults it's label to it's name if none is given
+	Labels reverse-reference their data objects
+
+	* e-config.el:
+	Updated to use the new widget smart defaults
+
+1996-11-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Created new dialog-current-parent for use with dialog-build-group.
+	Fixed color maker.  Adjusted top-level-shell's init paramters
+	Added neat indent properties to -width-writeable macro
+	Added dialog-last-maybe-command variable to make maybe command
+	frieldlier to commands that like to know when they are repeating themselves.
+	Made create-widget not take a parameter, but be backward compatible still.
+	Deleted widget-bunch-o-chars.
+	changed dialog-test.
+
+	* dlg-class.el: New file.
+
+	* dlg-config.el:
+	Removed all class definitions to dlg-class.el
+	Updated widget-creators to use new defaults from dialog set.
+
+	* widget-i.el:
+	Removed all old `get-*' routines, and made the accessors in widget-d
+	Created new heuristic defaults for x and y.
+	negative offsets are now `box' smart.
+	Boxed widgets can now have selected sides turned on or off.
+	Group size calculator is now box smart.
+	Gave new smart defaults to frame's label, and label's label.
+	Added widget-labeled-text implementation (verify only)
+	Added widget-push-button implementation (verify only)
+	Fixed radio box button init bug
+	Replaced occurances of `widget-bunch-o-chars' with make-string
+
+	* widget-d.el:
+	Added load hooks for widget-d file.  Started using accessors.
+	Changed initforms of x, y.  Added resizeable flag to visuals
+	Changed protection of boxed.   Added box-sides.
+	Created new widget-labeled-text group for text fields with labels.
+	Created new widget-push-button, to be used instead of widget-button
+	which now acts as a basic type from which other buttons inherit.
+	Added justification default for option button.
+
+	* eieio.el:
+	Fixed :accessor part in class declaration to use methods.
+	Fixed some doc strings.  Added lisp indenting and compiling tags to
+	some symbols.  Created oset-default to set default values in existing
+	classes.  Added object-name-string function.
+
+1996-10-28  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Removed all reference to classmethods
+
+1996-10-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* widget-d.el:
+	Added use of normalized coordinates to visuals.  Added handle-motion
+	for widgets which want to use motion keystrokes (up, down, etc)
+
+	* widget-i.el:
+	Fixed repetitive geometry management call (ick). Fixed frame label
+	positioning.  Fixed mouse-color over option & toggle button types.
+	Fixed cursor positioning over clicked buttons.  Removed recursive
+	input dispatching.  Added ability to create children at the beginning
+	of a list.
+
+	* dialog-mode.el:
+	Moved geometry management to after construction phase
+
+1996-10-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Implemented a new keyboard scheme with `maybe' keys, which will
+	execute commands from global map unless a widget is requireing those
+	keys.  At this time, the text widget grabs arrow keys for motion, but
+	otherwise they are used to navigate around the dialog box.
+
+	* widget-i.el:
+	Upgraded some widget input to handle new keyboard scheme
+
+	* eieio.el:
+	Fixed XEmacs related byte compilation errors
+
+	* widget-i.el:
+	Fixed byte compilation errors associated with XEmacs
+
+1996-10-12  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Added the ability to byte compile methods using moder emacs lisp
+	byte-compiler
+
+	* dlg-config.el, e-config.el, chart.el, dbif-browse.el, widget-i.el:
+	Fixed byte-compile warnings
+
+1996-09-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* widget-i.el:
+	Text widget now attaches itself into a text property for faster access
+	by dialog mode.
+
+	* dialog-mode.el:
+	Added a way to make input bypass the recursive pass-in using nifty
+	text properties.
+
+1996-09-24  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Tried to add some xemacs support, and started using some features of
+	regular emacs
+
+	* widget-i.el:
+	fixed some event management, and added a little xemacs support
+
+1996-09-21  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* e-config.el, ecfg-menu.el:
+	New file.
+
+	* widget-d.el:
+	Added navigation list to toplevel shell, and added label list to labes
+	for multi-line labels
+
+	* widget-i.el:
+	Added ability in all widgets to handle symbol input events.  Labels
+	can now display multi-line strings. (thus, buttons can do multiline
+	strings.)  toplevel shell now creates a navigation list so TAB and
+	M-TAB now navigate widgets forwards and backwards quickly, without
+	complex tree searches.  This also speeds up general group input
+	distribution.
+
+	* dialog-mode.el:
+	Dialog can now load if the current font does not support bold or
+	italic.  Added smarter keymap handlers for symbols as well as
+	characters and event.  Added meta map, so all meta commands now work
+	in text fields.  Fixed dialog-test to not quit whenever alternate
+	buffer is shown, and to use positioning deltas
+
+	* dlg-config.el:
+	Added many new data objects which know how to save themselves as
+	symbols, hooks, disabled-commands, string-numbers, packages etc.  Also
+	added the ability to save themselves into a file, either the
+	.Xdefaults, or .emacs file.
+
+1996-08-19  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* widget-i.el:
+	Added verification speedups for rectangles, and relational positioning
+	updates.  Added option buttons, and help clicks for all buttons.
+
+	* widget-d.el:
+	Added documentation strings to every field as apropriate
+
+	* eieio.el:
+	Added additional documentation support, and speedups using obarrays
+	instead of association lists.
+
+1996-08-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-config.el:
+	Added commands needed to display the automatic edits in a
+	configuration file.
+
+	* dialog-mode.el:
+	Added many keymap upgrades, some in the hope of getting xemacs to
+	work.  Also added many color loaders.
+
+1996-08-15  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Added new node describing the sample programs.
+
+1996-08-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dlg-config.el: New file.
+
+1996-07-28  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dialog-mode.el:
+	Made a better keymap, added specialized color loader for specialized
+	faces, and updated the test case
+
+	* widget-i.el:
+	Updated many behaviors, new faces, and added some methods to some
+	new widgets
+
+	* widget-d.el:
+	Updated some classes, and added a few new ones.
+
+	* eieio.el:
+	Added big speedup to method execution by using a more intelligent
+	storage system
+
+1996-06-17  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi:
+	Udated for newer version of eieio
+
+	* widget-d.el:
+	Moved some items out of private hands so that they can be worked with
+
+	* dialog-mode.el:
+	Fixed insert-overwrite-face so it uses text properties and not overlays
+	Fixed dialog-test so some of the faces really exist.
+
+	* widget-i.el:
+	Fixed groups so that TAB navigates
+	Fixed buttons to use mouse face to make it more efficient
+
+1996-06-16  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* call-tree.el: New file.
+
+1996-06-01  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el:
+	Fixed comments in beginning, and added accessors, and attempts at
+	using setf with cl.el
+
+	* psql.el:
+	Updated many parts to manage the problems created with \\ in lisp
+	strings
+
+1996-04-11  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* psql.el:
+	Added changes allowing a field to be blank.
+
+1996-04-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* tree.el:
+	Added ability to change where a parent node appears (top. bottom,
+	middle) of children nodes.
+
+	* eieio.el:
+	Added speedup by attaching symbols to class names with values being
+	indexes into an object.
+
+1996-03-28  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* dbif-browse.el: Removed errant function
+
+	* eieio.texi: Updated documentation
+
+	* tree.el:
+	Added more comments, plus eieio-class-tree
+
+	* widget-i.el, widget-d.el, dialog-mode.el, dialog-tree.el:
+	New file.
+
+	* eieio.el: *** empty log message ***
+
+	* psql.el, dbif.el, dbif-browse.el:
+	New file.
+
+1996-03-27  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* chart.el: New file.
+
+1996-03-23  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.el: *** empty log message ***
+
+1996-03-10  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* tree.el: Forgot to update version
+
+	* tree.el:
+	Added some more useful functions, converted classmethods to CLOS
+	methods, and discovered "make-string" which speeds up drawing
+
+	* eieio.el:
+	Added defgeneric, defmethod and support routines
+
+	* eieio.texi:
+	Added details surrounding defgeneric and defmethod.  Updated wish list
+	et. all
+
+1996-02-25  Eric M. Ludlam  <eric@siege-engine.com>
+
+	* eieio.texi, tree.el, eieio.el:
+	New file.
+
 The following updates to your .emacs file will help you get the most out of this
 update of eieio.
 
-1) Build eieio
+1) Byte compile EIEIO
 
-   On the unix command line, type:
+   a) Edit Makefile, and change LOADPATH to include the path to
+	 Speedbar.
+   b) run "make"
 
-   $ make
+   -OR-
 
-   On windows NT, you will need to byte compile each file from within
-   emacs, or you can leave everything unbyte compiled.
+   a) run: make "LOADPATH=<path to speedbar>"
 
+   If byte compilation fails fails:
+    a) Follow step 3:
+    b) byte compile the files individually and interactivly from
+	Emacs or XEmacs.
+
+   It is not necessary to use Speedbar with EIEIO, but EIEIO does
+   support speedbar, and it is needed to compile those few files.
 
 2) Add eieio's directory to your load path.
 
 # Boston, MA 02111-1307, USA.
 
 VERSION = 1.02
-AUTHOR_VERSION = 0.16
+AUTHOR_VERSION = 0.17
 MAINTAINER = Eric Ludlam <zappo@gnu.org>
 PACKAGE = eieio
 PKG_TYPE = regular
-REQUIRES = eieio speedbar xemacs-base 
+REQUIRES = speedbar xemacs-base
 CATEGORY = standard
 
-ELCS = call-tree.elc chart.elc compare-strings.elc eieio-base.elc eieio-comp.elc \
-	eieio-custom.elc eieio-doc.elc eieio-opt.elc eieio-speedbar.elc \
-	eieio-tests.elc eieio.elc tree.elc
+ELCS = eieio.elc eieio-comp.elc eieio-opt.elc eieio-custom.elc \
+	eieio-doc.elc eieio-base.elc tree.elc call-tree.elc \
+	chart.elc eieio-speedbar.elc linemark.elc
 
 INFO_FILES = $(PACKAGE).info
 HTML_FILES = $(PACKAGE)*.html
 TEXI_FILES = $(PACKAGE).texi
 MANUALS = $(PACKAGE)
 
-EXTRA_SOURCES = Makefile.upstream INSTALL Project.ede
+EXTRA_SOURCES = INSTALL Project.ede eieio-tests.el
 
 include ../../XEmacs.rules
 
 GENERATED += custom-load.elc
 
-all:: $(ELCS) auto-autoloads.elc custom-load.elc $(INFO_FILES)
+all:: auto-autoloads.elc $(ELCS) custom-load.elc $(INFO_FILES)
 
 srckit: srckit-std
 

Makefile.upstream

 #
 # DO NOT MODIFY THIS FILE OR YOUR CHANGES MAY BE LOST.
 # EDE is the Emacs Development Environment.
-# http://www.ultranet.com/~zappo/ede.shtml
+# http://cedet.sourceforge.net/ede.shtml
 # 
 
+top=
 ede_FILES=Project.ede Makefile
 
-eieio_LISP=eieio.el eieio-comp.el eieio-opt.el eieio-custom.el eieio-doc.el eieio-base.el compare-strings.el
+eieio_LISP=eieio.el eieio-comp.el eieio-opt.el eieio-custom.el eieio-doc.el eieio-base.el
 EMACS=emacs
-examples_LISP=tree.el call-tree.el chart.el eieio-speedbar.el
+LOADPATH=
+examples_LISP=tree.el call-tree.el chart.el eieio-speedbar.el linemark.el
 eieio_info_TEXINFOS=eieio.texi
 MAKEINFO=makeinfo
 test_LISP=eieio-tests.el
-Misc_MISC=INSTALL
-VERSION=0.16
-DISTDIR=eieio-$(VERSION)
-top_builddir = 
+Misc_MISC=INSTALL ChangeLog
+VERSION=0.17
+DISTDIR=$(top)eieio-$(VERSION)
 
-DEP_FILES=.deps/.P
+
 
 all: eieio examples eieio.info
 
-DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
--include $(DEP_FILES)
-
 eieio: $(eieio_LISP)
 	@echo "(add-to-list 'load-path nil)" > $@-compile-script
-	@for loadpath in "${LOADPATH}"; do \
+	for loadpath in . ${LOADPATH}; do \
 	   echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
-	 done
+	done;
 	@echo "(setq debug-on-error t)" >> $@-compile-script
 	$(EMACS) -batch -l $@-compile-script -f batch-byte-compile $^
 
 examples: $(examples_LISP)
 	@echo "(add-to-list 'load-path nil)" > $@-compile-script
-	@for loadpath in "${LOADPATH}"; do \
+	for loadpath in . ${LOADPATH}; do \
 	   echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
-	 done
+	done;
 	@echo "(setq debug-on-error t)" >> $@-compile-script
 	$(EMACS) -batch -l $@-compile-script -f batch-byte-compile $^
 
 eieio.info: $(eieio_info_TEXINFOS)
-	makeinfo -o $@ $<
+	$(MAKEINFO) -o $@ $<
 
 test: $(test_LISP)
 	@echo "(add-to-list 'load-path nil)" > $@-compile-script
-	@for loadpath in "${LOADPATH}"; do \
+	for loadpath in . ${LOADPATH}; do \
 	   echo "(add-to-list 'load-path \"$$loadpath\")" >> $@-compile-script; \
-	 done
+	done;
 	@echo "(setq debug-on-error t)" >> $@-compile-script
 	$(EMACS) -batch -l $@-compile-script -f batch-byte-compile $^
 
 Misc: 
 	@
 
-tags: $(eieio_LISP) $(examples_LISP) $(eieio_info_TEXINFOS) $(test_LISP) $(Misc_MISC) 
-	etags $^
+tags: 
 
 
 clean:
-	rm -f *.elc *.info
+	rm -f *.elc *.html *.info
 
 
-dist:
+dist: eieio.info
 	rm -rf $(DISTDIR)
 	mkdir $(DISTDIR)
-	cp $(eieio_LISP) $(examples_LISP) $(eieio_info_TEXINFOS) $(test_LISP) $(Misc_MISC) $(ede_FILES) $(DISTDIR)
+	cp $(eieio_LISP) $(examples_LISP) $(eieio_info_TEXINFOS) eieio.info* $(test_LISP) $(Misc_MISC) $(ede_FILES) $(DISTDIR)
 	tar -cvzf $(DISTDIR).tar.gz $(DISTDIR)
 	rm -rf $(DISTDIR)
 
 ;; EDE project file.
 (ede-proj-project "eieio"
   :name "eieio"
-  :version "0.16"
+  :version "0.17"
   :file "Project.ede"
   :targets (list 
    (ede-proj-target-elisp "eieio"
     :name "eieio"
     :path ""
-    :source '("eieio.el" "eieio-comp.el" "eieio-opt.el" "eieio-custom.el" "eieio-doc.el" "eieio-base.el" "compare-strings.el")
+    :source '("eieio.el" "eieio-comp.el" "eieio-opt.el" "eieio-custom.el" "eieio-doc.el" "eieio-base.el")
     :versionsource '("eieio.el")
     )
    (ede-proj-target-elisp "examples"
     :name "examples"
     :path ""
-    :source '("tree.el" "call-tree.el" "chart.el" "eieio-speedbar.el")
+    :source '("tree.el" "call-tree.el" "chart.el" "eieio-speedbar.el" "linemark.el")
     )
    (ede-proj-target-makefile-info "eieio.info"
     :name "eieio.info"
    (ede-proj-target-makefile-miscelaneous "Misc"
     :name "Misc"
     :path ""
-    :source '("INSTALL")
+    :source '("INSTALL" "ChangeLog")
     :partofall 'nil
     )
    )
+  :web-site-url "http://cedet.sourceforge.net/eieio.shtml"
+  :web-site-directory "/r@scp:shell.sourceforge.net:cedet/htdocs"
+  :web-site-file "eieio.shtml"
+  :ftp-upload-site "/ftp@upload.sourceforge.net:/incoming"
   :configuration-variables 'nil
   )
 		  :name (symbol-name func)
 		  :symbol func))
 
+;;;###autoload
 (defun call-tree (func)
   "Build a call tree to show all functions called by FUNC."
   (interactive "aFunction: ")
 too much in text characters anyways.")
 
 (defvar chart-face-color-list '("red" "green" "blue"
-				"orange" "yellow" "purple")
+				"cyan" "yellow" "purple")
   "Colors to use when generating `chart-face-list'.
 Colors will be the background color.")
 
-(defvar chart-face-pixmap-list '("dimple1" "scales" "dot"
-				 "cross_weave" "boxes" "dimple3")
+(defvar chart-face-pixmap-list
+  (if (and (fboundp 'display-graphic-p)
+	   (display-graphic-p))
+      '("dimple1" "scales" "dot" "cross_weave" "boxes" "dimple3"))
   "If pixmaps are allowed, display these background pixmaps.
 Useful if new Emacs is used on B&W display")
 
-(if (and window-system (not chart-face-list))
+(defcustom chart-face-use-pixmaps nil
+  "*Non-nil to use fancy pixmaps in the background of chart face colors."
+  :group 'eieio
+  :type 'boolean)
+
+(if (and (if (fboundp 'display-color-p)
+	     (display-color-p)
+	   window-system)
+	 (not chart-face-list))
     (let ((cl chart-face-color-list)
 	  (pl chart-face-pixmap-list)
 	  nf)
-      (while (and cl pl)
+      (while cl
 	(setq nf (make-face (intern (concat "chart-" (car cl) "-" (car pl)))))
-	(if (> (x-display-color-cells) 4)
+	(if (condition-case nil
+		(> (x-display-color-cells) 4)
+	      (error t))
 	    (set-face-background nf (car cl))
 	  (set-face-background nf "white"))
 	(set-face-foreground nf "black")
-	(if (fboundp 'set-face-background-pixmap)
+	(if (and chart-face-use-pixmaps
+		 pl
+		 (fboundp 'set-face-background-pixmap))
 	    (condition-case nil
 		(set-face-background-pixmap nf (car pl))
 	      (error (message "Cannot set background pixmap %s" (car pl)))))
 	 ;; want to jump by units of 5 spaces or so
 	 (j (/ rng (/  (chart-size-in-dir (oref a chart) dir) 4)))
 	 p1)
+    (if (= j 0) (setq j 1))
     (while (<= i e)
       (setq s
 	    (cond ((> i 999999)
 		  (t
 		   (format "%d" i))))
       (if (eq dir 'vertical)
-	  (chart-goto-xy (+ (+ margin z) (if (oref a loweredge)
-					     (- (length s)) 1))
-			 (chart-translate-ypos (oref a chart) i))
+	  (let ((x (+ (+ margin z) (if (oref a loweredge)
+				       (- (length s)) 1))))
+	    (if (< x 1) (setq x 1))
+	    (chart-goto-xy x (chart-translate-ypos (oref a chart) i)))
 	(chart-goto-xy (chart-translate-xpos (oref a chart) i)
 		       (+ margin z (if (oref a loweredge) -1 1))))
       (setq p1 (point))
 	 (ns (length
 	      (oref (if (eq dir 'vertical) (oref c x-axis) (oref c y-axis))
 		    items)))
-	 (lpn (/ (float w) (float ns)))
+	 (lpn (/ (+ 1.0 (float w)) (float ns)))
 	 )
-    (cons (+ m 1 (round (* lpn (float n))))
-	  (+ m (round (* lpn (+ 1 (float n))))))
+    (cons (+ m (round (* lpn (float n))))
+	  (+ m -1 (round (* lpn (+ 1.0 (float n))))))
     ))
 
 (defmethod chart-axis-draw ((a chart-axis-names) &optional dir margin zone start end)
     (while s
       (setq odd (= (% (length s) 2) 1))
       (setq r (chart-translate-namezone (oref a chart) i))
-      (setq p (- (+ (car r) (/ (- (cdr r) (car r)) 2)) (/ (length (car s)) 2)))
       (if (eq dir 'vertical)
-	  (chart-goto-xy (+ (+ margin z) (if (oref a loweredge)
-					     (- (length (car s)))
-					   (length (car s))))
-			 p)
+	  (setq p (/ (+ (car r) (cdr r)) 2))
+	(setq p (- (+ (car r) (/ (- (cdr r) (car r)) 2))
+		   (/ (length (car s)) 2))))
+      (if (eq dir 'vertical)
+	  (let ((x (+ (+ margin z) (if (oref a loweredge)
+				       (- (length (car s)))
+				     (length (car s))))))
+	    (if (< x 1) (setq x 1))
+	    (if (> (length (car s)) (1- margin))
+		(setq x (+ x margin)))
+	    (chart-goto-xy x p))
 	(chart-goto-xy p (+ (+ margin z) (if (oref a loweredge)
 					     (if odd -2 -1)
 					   (if odd 2 1)))))
 	(num (goto-line (1+ y))))
     (if (and (= 0 num) (/= 0 (current-column))) (newline 1))
     (if (eobp) (newline num))
+    (if (< x 0) (setq x 0))
+    (if (< y 0) (setq y 0))
     ;; Now, a quicky column moveto/forceto method.
     (or (= (move-to-column x) x)
 	(let ((p (point)))

compare-strings.el

-;;; compare-strings.el --- Compare Strings (copied from Emacs 21)
-
-;;;
-;; Copyright (C) 2001 David Ponce
-;; C implementation Copyright (C) Free Software Foundation
-;;
-;; 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 this program; if not, you can either send email to this
-;; program's author (see below) or write to:
-;;
-;;              The Free Software Foundation, Inc.
-;;              675 Mass Ave.
-;;              Cambridge, MA 02139, USA.
-
-;;; Comentary
-;;
-;; XEmacs does not have this function.  Implemented from Emacs 21
-;; built-in compare-strings code in src/fns.c.
-;;
-
-(defun compare-strings (str1 start1 end1 str2 start2 end2 &optional ignore-case)
-  "Compare the contents of two strings, converting to multibyte if needed.
-In string STR1, skip the first START1 characters and stop at END1.
-In string STR2, skip the first START2 characters and stop at END2.
-END1 and END2 default to the full lengths of the respective strings.
-
-Case is significant in this comparison if IGNORE-CASE is nil.
-Unibyte strings are converted to multibyte for comparison.
-
-The value is t if the strings (or specified portions) match.
-If string STR1 is less, the value is a negative number N;
-  - 1 - N is the number of characters that match at the beginning.
-If string STR1 is greater, the value is a positive number N;
-  N - 1 is the number of characters that match at the beginning."
-  (if (null start1)
-      (setq start1 0))
-  (if (null start2)
-      (setq start2 0))
-  (setq end1 (if end1
-		 (min end1 (length str1))
-	       (length str1)))
-  (setq end2 (if end2
-		 (min end2 (length str2))
-	       (length str2)))
-  (let ((i1 start1)
-	(i2 start2)
-	result c1 c2)
-    (while (and (not result) (< i1 end1) (< i2 end2))
-      (setq c1 (aref str1 i1)
-	    c2 (aref str2 i2)
-	    i1 (1+ i1)
-	    i2 (1+ i2))