Commits

Anonymous committed 8fc7fe2

Import from CVS: tag r19-15b94

Comments (0)

Files changed (211)

 							-*- indented-text -*-
+to 19.15 beta94
+-- New symbol `signal-error-on-buffer-boundary'.  Set to nil to avoid
+    lossage of zmacs region when moving against buffer boundaries.
+-- python-mode.el-2.89 Courtesy of Barry Warsaw
+-- added mouse-[123] and down-mouse-[123] Emacs-compatible keysyms
+-- W3-3.0.59
+-- Clicking on `**' buffer modified status in mode-line now works the same
+    way as C-x C-q.
+-- Miscellanous bug fixes from a number of people
+-- mine.el-1.17 Courtesy of Jacques Duthen [New]
+-- fast-lock.el-3.10.2 Courtesy of Simon Marshall
+-- browse-cltl2.el-1.1 Courtesy of Holger Schauer
+-- eldoc.el-1.8 Courtesy of Noah Friedman [New]
+-- webjump.el-1.4 Courtesy of Neil W. Van Dyke [New]
+-- Canna coredump fixed
+-- verilog-mode.el Courtesy of Michael McNamara & Adrian Aichner [New]
+-- overlay.el Courtesy of Joseph Nuspl [New]
+-- hm--html-menus-5.1 Courtesy of Heiko Muenkel
+-- tm-7.105
+-- Initial port of edmacro.el courtesy of Hrvoje Niksic [New]
+-- custom-1.40
+-- Native sound support for FreeBSD Courtesy Dick van den Burg
+-- Correct detection of GIF89, and implement detection of PNG
+-- efs-1.15 courtesy of Andy Norman and Michael Sperber [New]
+-- Easy customization of toolbar support courtesy of Hrvoje Niksic
+-- Gnus-5.4.12
+-- balloon-help-1.03 courtesy of Kyle Jones [New]
+-- 'compatible byte compiler warning type added and turned off by default
+-- redo.el-1.00 courtesy of Kyle Jones [New]
+-- floating-toolbar.el courtesy of Kyle Jones [New]
+
 to 19.15 beta93
+-- W3-3.0.56
 -- VM-6.13 Courtesy of Kyle Jones
 -- Custom-1.30
 -- Replicating extents are history
-This directory tree holds version 19.14 of XEmacs, the extensible,
+This directory tree holds version 19.15 of XEmacs, the extensible,
 customizable, self-documenting real-time display editor.
 
 See the file `etc/NEWS' for information on new features and other

etc/custom/check0.xpm

Added
New image
+/* XPM */
+static char * check0_xpm[] = {
+"11 11 3 1",
+" 	c #E6E6E6E6E6E6",
+".	c #737373737373",
+"X	c #BFBFBFBFBFBF",
+"           ",
+"          .",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  .........",
+" .........."};

etc/custom/check1.xpm

Added
New image
+/* XPM */
+static char * check1_xpm[] = {
+"11 11 3 1",
+" 	c #737373737373",
+".	c #E6E6E6E6E6E6",
+"X	c #22228B8B2222",
+"           ",
+"          .",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  XXXXXXX..",
+"  .........",
+" .........."};

etc/custom/radio0.xpm

Added
New image
+/* XPM */
+static char * radio0_xpm[] = {
+"12 11 4 1",
+" 	c #FFFFFFFFFFFF s background",
+".	c #E6E6E6E6E6E6",
+"X	c #BFBFBFBFBFBF",
+"o	c #737373737373",
+"     ..     ",
+"    ....    ",
+"   ..XX..   ",
+"  ..XXXX..  ",
+" ..XXXXXX.. ",
+"ooXXXXXXXXoo",
+" ooXXXXXXoo ",
+"  ooXXXXoo  ",
+"   ooXXoo   ",
+"    oooo    ",
+"     oo     "};

etc/custom/radio1.xpm

Added
New image
+/* XPM */
+static char * radio1_xpm[] = {
+"12 11 4 1",
+" 	c #FFFFFFFFFFFF s background",
+".	c #737373737373",
+"X	c #22228B8B2222",
+"o	c #E6E6E6E6E6E6",
+"     ..     ",
+"    ....    ",
+"   ..XX..   ",
+"  ..XXXX..  ",
+" ..XXXXXX.. ",
+"ooXXXXXXXXoo",
+" ooXXXXXXoo ",
+"  ooXXXXoo  ",
+"   ooXXoo   ",
+"    oooo    ",
+"     oo     "};
 This directory contains some mu-law encoded SunOS 4.1 sound files.  
 
-If you're running XEmacs on the console of a SparcStation or SGI
-machine, you can use these sounds to replace the default beep.  See the
+You can only play sound files if you are running on display 0 of the
+console of a machine with native sound support or running a NetAudio
+server and XEmacs has the necessary sound support compiled in.
+
+You can use these sounds to replace the default beep.  See the
 documentation of the `sound-alist' variable, and the functions
 `load-default-sounds' and `load-sound-file' from lisp/prim/sound.el.
 ** This functionality will be removed as soon as the W3C comes up with
 ** the standard way to do this, perhaps in CSS level 2.
 */
-input { text-decoration: underline; }
-input:submit { color: green;  text-decoration: none; }
-input:reset  { color: red;    text-decoration: none; }
-input:button { color: yellow; text-decoration: none; }
-input:image  { text-decoration: none; }
+input:text,
+input:integer,
+input:float,
+input:url,
+input:text    { text-decoration: underline; }
+input:submit  { color: green;  text-decoration: none; }
+input:reset   { color: red;    text-decoration: none; }
+input:button  { color: yellow; text-decoration: none; }
+input:image   { text-decoration: none; }
 
 /*
 ** List formatting instructions
 
 Packages:
 
-* Ange-FTP::	Making the entire network accessible as a pseudo-filesystem.
 * CC-MODE::	Mode for editing C, C++, and Objective-C code.
 * CL::		A Common Lisp compatibility package for Emacs-Lisp.
 * Custom::	Customization Library for Emacs
-* Dired::	Manual for Tree Dired.
 * Ediff::	A Visual Interface to Unix Diff and Patch Utilities.
 * External-Widget::
 		Use XEmacs as a text widget inside of another program.

lib-src/Makefile.in.in

 /* Things that a user might actually run,
    which should be installed in bindir. */
 INSTALLABLES = etags ctags emacsclient b2m gnuclient gnuattach gnudoit
-INSTALLABLE_SCRIPTS = rcs-checkin
+INSTALLABLE_SCRIPTS = rcs-checkin pstogif
 
 /* Things that Emacs runs internally, or during the build process,
    which should not be installed in bindir. */
 	  rm -f vcdiff ; ${LN_S} ${srcdir}/vcdiff . ;	\
 	fi
 
+$(TM_SCRIPTS): force
+	@if [ ! -r $@ ] ; then			\
+	  rm -f $@ ; ${LN_S} ${srcdir}/$@ . ;	\
+	fi
+
 force:
 #else /* ultrix */
 rcs2log:
 vcdiff:
+$(TM_SCRIPTS):
 #endif /* ultrix */
 
 #ifdef MOVEMAIL_NEEDS_BLESSING

lib-src/update-elc.sh

 \!/energize/write-file.el$!d
 \!/eos/!d
 \!/gnus/!d
+\!/efs/!d
 \!/ilisp/!d
 \!/paths.el$!d
 \!/prim/loadup.el$!d
   echo Viper done.
 fi
 
+if [ -d lisp/efs ]; then
+  echo Compiling efs...
+  ( cd lisp/efs ; make EMACS=$REAL )
+  echo efs done.
+fi
+
 # Gnus now has a makefile...
 echo Compiling Gnus...
 ( cd lisp/gnus ; make EMACS=$REAL some )

lisp/bytecomp/byte-optimize.el

 	  form)
       ;; else
       (if (and (consp fn) (eq (car fn) 'autoload))
-	  (load (nth 1 fn)))
+	  (progn
+	    (load (nth 1 fn))
+	    (setq fn (or (cdr (assq name byte-compile-function-environment))
+			 (and (fboundp name) (symbol-function name))))))
       (if (and (consp fn) (eq (car fn) 'autoload))
 	  (error "file \"%s\" didn't define \"%s\"" (nth 1 fn) name))
       (if (symbolp fn)

lisp/bytecomp/bytecomp-runtime.el

   (put var 'byte-obsolete-variable new)
   var)
 
+;; By overwhelming demand, we separate out truly obsolete symbols from
+;; those that are present for GNU Emacs compatibility.
+(defun make-compatible (fn new)
+  "Make the byte-compiler know that FUNCTION is provided for compatibility.
+The warning will say that NEW should be used instead.
+If NEW is a string, that is the `use instead' message."
+  (interactive "aMake function compatible: \nxCompatible replacement: ")
+  (let ((handler (get fn 'byte-compile)))
+    (if (eq 'byte-compile-compatible handler)
+	(setcar (get fn 'byte-compatible-info) new)
+      (put fn 'byte-compatible-info (cons new handler))
+      (put fn 'byte-compile 'byte-compile-compatible)))
+  fn)
+
+(defun make-compatible-variable (var new)
+  "Make the byte-compiler know that VARIABLE is provided for compatibility.
+and NEW should be used instead.  If NEW is a string, then that is the
+`use instead' message."
+  (interactive
+   (list
+    (let ((str (completing-read "Make variable compatible: "
+				obarray 'boundp t)))
+      (if (equal str "") (error ""))
+      (intern str))
+    (car (read-from-string (read-string "Compatible replacement: ")))))
+  (put var 'byte-compatible-variable new)
+  var)
+
 (put 'dont-compile 'lisp-indent-hook 0)
 (defmacro dont-compile (&rest body)
   "Like `progn', but the body always runs interpreted (not compiled).

lisp/bytecomp/bytecomp.el

 ;;;					    a macro to a lambda or vice versa,
 ;;;					    or redefined to take other args)
 ;;;				'obsolete  (obsolete variables and functions)
+;;;				'pedantic  (references to Emacs-compatible
+;;;					    symbols)
 ;;; (RMS calls the following option byte-compile-compatibility but
 ;;;  our name is better)
 ;;; byte-compile-emacs18-compatibility	Whether the compiler should
   redefine	function cell redefined from a macro to a lambda or vice
 		versa, or redefined to take a different number of arguments.
   obsolete	use of an obsolete function or variable.
+  pedantic	warn of use of compatible symbols.
 
 The default set is specified by `byte-compile-default-warnings' and
 normally encompasses all possible warnings.
 			       (car new)
 			     (format "use %s instead." (car new)))))
     (funcall (or (cdr new) 'byte-compile-normal-call) form)))
+
+;;; Used by make-obsolete.
+(defun byte-compile-compatible (form)
+  (let ((new (get (car form) 'byte-compatible-info)))
+    (if (memq 'pedantic byte-compile-warnings)
+	(byte-compile-warn "%s is provided for compatibility; %s" (car form)
+			   (if (stringp (car new))
+			       (car new)
+			     (format "use %s instead." (car new)))))
+    (funcall (or (cdr new) 'byte-compile-normal-call) form)))
 
 ;; Compiler options
 
 			     (if (stringp ob)
 				 ob
 			       (format "use %s instead." ob)))))
+    (if (and (get var 'byte-compatible-variable)
+	     (memq 'pedantic byte-compile-warnings))
+	(let ((ob (get var 'byte-compatible-variable)))
+	  (byte-compile-warn "%s is provided for compatibility; %s" var
+			     (if (stringp ob)
+				 ob
+			       (format "use %s instead." ob)))))
     (if (memq 'free-vars byte-compile-warnings)
 	(if (eq base-op 'byte-varbind)
 	    (setq byte-compile-bound-variables
   ;; XEmacs change:
   (make-local-hook 'kill-buffer-hook)
   (add-hook 'kill-buffer-hook 'gdb-delete-arrow-extent nil t)
-  (setq comint-input-sentinel 'shell-directory-tracker)
+  (add-hook 'comint-input-filter-functions 'shell-directory-tracker nil t)
   (run-hooks 'gdb-mode-hook))
 
 (defun gdb-delete-arrow-extent ()
     (goto-char (point-max))
     (insert comm)))
 
-(defun gdb-control-c-subjob ()
-  "Send a Control-C to the subprocess."
-  (interactive)
-  (process-send-string (get-buffer-process (current-buffer))
-		       "\C-c"))
+(fset 'gdb-control-c-subjob 'comint-interrupt-subjob)
+
+;(defun gdb-control-c-subjob ()
+;  "Send a Control-C to the subprocess."
+;  (interactive)
+;  (process-send-string (get-buffer-process (current-buffer))
+;		       "\C-c"))
 
 (defun gdb-toolbar-break ()
   (interactive)

lisp/custom/ChangeLog

+Sat Feb 15 22:27:07 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.40 released.
+
+Sat Feb 15 22:18:57 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el: Use the `changed' state.
+
+Fri Feb 14 12:46:46 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.39 released.
+
+Fri Feb 14 12:35:15 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-variable-action): Capitalize.
+	(custom-face-action): Ditto.
+	(custom-group-action): Ditto.
+	* widget-edit.el (widget-choose): Use title in XEmacs.
+	Patch by Jens Lautenbacher <jens@metrix.de>.
+
+Thu Feb 13 21:14:41 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.38 released.
+
+Thu Feb 13 15:15:24 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-buffer-create): Added `Done' button.
+
+	* custom-edit.el (custom-variable-state-set): Customized to
+	factory setting is the same as uncustomized.
+	(custom-variable-set): Did not set `customized-value' right.
+
+	* widget-edit.el (widget-plist-member): Changed to defsubst.
+	(widget-get): Made it non-recursive.
+
+	* widget-edit.el (widget-glyph-insert-glyph): New function.
+	(widget-glyph-insert): Use it.
+	(widget-push-button-gui): New option.
+	(widget-push-button-cache): New variable.
+	(widget-gui-action): New function.
+	(widget-push-button-value-create): New function.
+	(push-button): Use it.
+	(widget-editable-list-gui): New option.
+	(widget-editable-list-format-handler): Use it.
+	(widget-editable-list-value-create): Ditto.
+	This implements GUI push buttons.
+
+	* Version 1.37 released.
+
+Thu Feb 13 13:51:20 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-redraw): Protect point.
+
+	* widget-edit.el (widget-button1-click): New function.
+	(widget-keymap): Bind it.
+
+	* Version 1.36 released.
+
+Thu Feb 13 13:16:34 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el: Removed all `;;;###autoload' at the request of Steven
+	L Baur <steve@miranova.com>.  
+	Don't call `autoload' or `custom-menu-reset' when `load-gc' is
+	fbound. 
+
+	* Version 1.35 released.
+
+Thu Feb 13 10:37:18 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (boolean): Forgot terminating newline in :format.
+
+Wed Feb 12 18:49:03 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.34 released.
+
+Wed Feb 12 09:13:52 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-field-keymap): Disabled menu-bar in the
+	worng keymap. 
+	(widget-text-keymap): Ditto.
+	(widget-glyph-directory): Default to "data-directory/custom/'.
+
+	* Version 1.33 released.
+
+Wed Feb 12 09:11:23 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Makefile (TEXT): Added `check0.xpm' and `check1.xpm'.
+
+	* widget-edit.el (checkbox): Add glyphs.
+
+Mon Feb 10 22:52:03 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-browse.el (widget-browse-sexps): New function.
+	(:args): Use it.
+	(widget-browse-action): New function.
+	(widget-browse): Use it.
+	(widget-browse-widgets): Use it.
+
+	* Version 1.32 released.
+
+Mon Feb 10 15:39:45 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-browse.el (widget-browse-sexp): Catch printing errors.
+	(widget-browse-widgets): Print types instead of numbers.
+
+	* all: Renamed `widget-name' to `widget-type'.
+
+	* widget-edit.el (widget-button-click): Call the right command.
+
+	* widget.texi (Basic Types): Documented new glyph options. 
+
+	* Version 1.31 released.
+
+Mon Feb 10 13:04:14 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-glyph-directory): New option.
+	(widget-glyph-enable): New option.
+	(widget-glyph-insert): New function.
+	(widget-toggle-value-create): Use it.
+	(radio-button): Use it.
+	(widget-field-activate): Only look for a field 
+	(widget-button-click): Handle glyph events.
+	(widget-default-create): Handle `:glyph'.
+	* widget.el (:on-glyph): New keyword.
+	(:off-glyph): Ditto.
+	(:glyph): Ditto.
+	* widget.texi (toggle): Documented them..
+	(Basic Types): Ditto.
+	* radio1.xpm: New file.
+	* radio0.xpm: Ditto.
+	Original patch provided by Robert Bihlmeyer <robbe@orcus.ping.at>.
+
+	* widget-browse.el (widget-browse): Add group.
+	(widget-browse-mode-menu): Add commands.
+
+	* widget-edit.el (widget-keymap): Bind [mouse-2-down] instead of
+	[mouse-2]. 
+
+	* widget-edit.el (widget-keymap): Don't bind [menu-bar] here.
+	(widget-field-keymap): Bind it here instead.
+	(widget-text-keymap): And here.
+
+Sun Feb  9 20:33:25 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-browse.el: New file.
+	* Makefile (WIDGET): Added it.
+	* widget.el (widget-browse-at): Added autoload.
+	(widget-browse): Ditto.
+	* widget-edit.el (widget-identify): Deleted.
+
+	* custom-edit.el (custom-mode): Install custom-mode-menu under
+	XEmacs. 
+
+Sat Feb 08 13:16:17 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.30 released.
+
+Sat Feb  8 13:15:21 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-name): New macro.
+	* widget.texi: Document it.
+
+Sat Feb 08 12:35:22 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.29 released.
+
+Sat Feb  8 12:29:48 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-get-sibling): New function.
+	(widget-identify): New command.
+
+	* widget-edit.el (toggle): Don't use subwidgets.
+	(widget-toggle-convert-widget): Deleted.
+	(widget-toggle-value-create): New function.
+	(widget-toggle-action): New function.
+	(checkbox): Caller updated.
+	(radio-button): Ditto.
+	(boolean): Ditto.
+	* custom.el (custom-face-attributes): Ditto.
+
+Fri Feb 07 18:34:42 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.28 released.
+
+Fri Feb  7 18:33:47 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-keymap): Don't bind `C-a' and `C-e'
+	here. 
+	(widget-field-keymap): Bind them here instead.
+	(widget-text-keymap): And here.
+
+Fri Feb 07 18:29:31 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.27 released.
+
+Fri Feb  7 18:18:31 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-beginning-of-line): New function.
+	(widget-keymap): Bind it.
+	Patch by "William M. Perry" <wmperry@aventail.com>.
+	(widget-end-of-line): New function.
+	(widget-keymap): Bind it.
+
+Thu Feb 06 19:21:09 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.26 released.
+
+Thu Feb  6 19:19:12 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-kill-line): New function.
+	(widget-keymap): Bind it.
+
+Thu Feb 06 19:10:37 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.25 released.
+
+Thu Feb  6 19:09:52 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-specify-field-update): Unconditionally
+	set local keymap property after the field.
+
+Sat Feb 01 13:13:48 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.24 released.
+
+Thu Jan 30 13:04:30 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-field-value-delete): Fix problem with
+	editable fields where the format string doesn't contain %v.
+
+Tue Jan 28 08:23:17 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.23 released.
+
+Tue Jan 28 04:33:24 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.el (:valid-regexp): New keyword.
+	* widget-edit.el (widget-field-validate): New function.
+	(editable-field): Use them.
+	* widget.texi (editable-field): Document it.
+
+	* custom-edit.el (custom-face-format-handler): Removed unused
+	variable `state'.
+
+	* custom.el (custom-menu-reset): Support menu-less XEmacs.
+	Reported by Carsten Leonhardt <leo@arioch.tng.oche.de>.
+
+Mon Jan 27 11:51:17 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.22 released.
+
+Mon Jan 27 08:46:05 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-variable-set): Fixed error message.
+	(custom-variable-save): Ditto.
+
+	* Version 1.21 released.
+
+Mon Jan 27 07:17:55 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.el (:secret): New keyword.
+	* widget-edit.el (widget-specify-field-update): Support it.
+	(widget-field-value-get): Ditto.
+	* widget.texi (editable-field): Documented it.
+
+	* widget-edit.el (widget-field-keymap): New variable.
+	(editable-field): Use it.
+	(widget-text-keymap): New variable.
+	(text): Use it.
+	(widget-field-activate): New command.
+
+Sun Jan 26 13:02:20 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (customize): Include `widgets' customization group. 
+
+Sat Jan 25 08:23:02 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.20 released.
+
+Sat Jan 25 07:13:26 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-specify-field-update): Use
+	`widget-keymap' by default.
+
+Fri Jan 24 08:10:46 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.19 released.
+
+Fri Jan 24 06:53:48 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-documentation-face): Typo in face name.
+
+	* custom-edit.el (custom-variable-sample-face): New face.
+	(custom-variable-button-face): New face.
+	(custom-variable-value-create): Use them.
+	(custom-face-tag-face): New face.
+	(custom-face): Use it.
+	(custom-face-format-handler): Don't make the sample a button.
+	(custom-group-tag-faces): New variable.
+	(custom-group-tag-face-1): New face.
+	(custom-group-tag-face): New face.
+	(custom-group-sample-face-get): New function.
+	(custom-group): Use it.
+
+	* widget-edit.el (character): Use sample face for tag.
+	(list): Ditto.
+	(vector): Ditto.
+	(cons): Ditto.
+	(radio): Ditto.
+	(repeat): Ditto.
+	(set): Ditto.
+	(boolean): Ditto.
+
+Thu Jan 23 20:25:46 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.el (:sample-face-get): New keyword.
+	(:sample-face): New keyword.
+
+	* widget-edit.el (widget-default-create): Support %{ and %}
+	escapes. 
+	(widget-specify-sample): New function.
+	(default): Define `:sample-face-get'.
+	(widget-default-sample-face-get): New function.
+
+	* custom-edit.el (custom-variable-action): Show if hidden.
+
+Wed Jan 22 04:54:10 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (error-message-string): Define if unbound.
+
+Thu Jan 16 16:07:09 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.18 released.
+
+Thu Jan 16 16:03:25 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-load-symbol): Use `assoc' instead of
+	`member' to check if a file is in load-history.
+	(custom-load-symbol): Use `condition-case' around loads.
+
+Tue Jan 14 20:51:37 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (:custom-reset): Split into
+	:`custom-reset-current', `:custom-reset-saved', and
+	`:custom-reset-factory'. 
+	(custom-mode-menu): Ditto.
+	(custom-mode): Ditto.
+	(custom-variable): Ditto.
+	(custom-variable-menu): Ditto.
+	(custom-face): Ditto.
+	(custom-face-menu): Ditto.
+	(custom-group): Ditto.
+	(custom-group-menu): Ditto.
+	(custom-group-reset): Ditto.
+	(custom-reset-menu): New variable.
+	(custom-reset): Use it.
+	(custom-reset-current): New function.
+	(custom-reset-saved): New function.
+	(custom-reset-factory): New function.
+	(custom-buffer-create): Pass event to `custom-reset'.
+	(custom-variable-reset-saved): Renamed from
+	`custom-variable-default'. 
+	(custom-variable-reset-factory): Renamed from
+	`custom-variable-factory'. 
+	(custom-face-reset-saved): Renamed from `custom-face-default'.
+	(custom-face-reset-factory): Renamed from
+	`custom-face-reset-factory'. 
+
+Mon Jan 13 01:23:36 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.17 released.
+
+Mon Jan 13 00:19:35 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-face-format-handler): Missing "hide".
+	(custom-face-action): Show when hidden.
+
+	* custom.texi: (The State Button): Updated.
+
+Wed Jan  8 15:23:29 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-quote): Support `characterp'.  Patch
+	by Sudish Joseph <sudish@mindspring.com>. 
+
+	* custom-edit.el (custom-magic-alist): Refer to state button
+	instead of level button. 
+
+Sat Jan 04 21:34:12 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.16 released.
+
+Fri Jan  3 22:56:57 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-group): Group tags are no longer buttons.
+	(custom-group-action): Show when hidden.
+	(custom-magic-value-create): Added :help-echo.
+	(custom-manual): Ditto.
+	* widget-edit.el (link): Ditto.
+
+Fri Jan 03 00:00:37 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.15 released.
+
+Thu Jan  2 23:30:43 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-magic): Can now contain multiple buttons.
+	(custom-magic-alist): Add description element.
+	(custom-magic-show): New variable.
+	(custom-magic-show-button): New variable.
+	(custom-magic-value-create): Use them.
+	(custom): Ditto.
+	(custom-variable): Ditto.
+	(custom-face): Ditto.
+	(widget-face-value-create): Ditto.
+	(custom-group): Ditto.
+	(custom-variable-value-create): Don't create [show] button.
+	(custom-variable-factory): Only save when saved.
+	(custom-face-factory): Ditto.
+
+Sat Dec 28 18:54:38 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.14 released.
+
+Sat Dec 28 13:43:44 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el: (custom-changed-face): New face.
+	(custom-magic-alist): New `changed' state.
+	(custom-variable-state-set): Support `set' state.
+	(custom-save): Ditto.
+	(custom-variable-set): Ditto.
+	(custom-variable-save): Ditto.
+	(custom-variable-default): Ditto.
+	(custom-variable-factory): Ditto.
+	(custom-face-state-set): Ditto.
+	(custom-face-set): Ditto.
+	(custom-face-save): Ditto.
+	(custom-face-default): Ditto.
+	(custom-face-factory): Ditto.
+	(custom-group-save): Ditto.
+
+	* custom.texi (The State Button): Documented `changed' state.
+
+	* custom-edit.el: New terminology: `Set default' automatically
+	saves the new value and has been renamed `Save'.  `Apply' has been
+	renamed `Set'.  `Edit Default' has been renamed to `Edit Lisp'.
+	* custom.texi: Ditto.
+
+	* widget-edit.el (widget-move): New function.
+	(widget-forward): Use it.
+	(widget-backward): Ditto.
+
+Tue Dec 17 10:47:23 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-mode-menu): Added help item.
+
+	* custom.texi (Declarations): New section.  Documented `:tag'
+	keyword. 
+	(Declaring Groups): Documented `:prefix' keyword.
+
+	* custom-edit.el (custom-set-default): Also save.
+	(custom-buffer-create): Removed save button.
+
+Thu Dec 12 07:57:23 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-menu-max-size): Added `:group'.
+
+	* custom-edit.el (custom-display): Added support for `pm', `pc',
+	and `win32' window systems.
+
+	* widget-edit.el (widget-field-face): Do not require X.
+
+Tue Dec 10 13:28:22 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-documentation-face): Green by default.
+
+Mon Dec 09 12:28:10 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.13 released.
+
+Mon Dec  9 08:50:46 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-unlispify-tag-names): New variable.
+	(custom-unlispify-tag-name): New function.
+	(custom-variable-value-create): Use it.
+	(custom-group-value-create): Use it.
+	(:custom-prefixes): New keyword.
+	(custom-variable-value-create): Use it.
+	(custom-group-value-create): Use it.
+
+	* widget-edit.el (widget-item-convert-widget): Doc fix.
+
+	* custom-edit.el (custom-menu-create): Do not create menus for
+	groups with more than `widget-menu-max-size' members.
+
+Sun Dec 08 16:19:21 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.12 released.
+
+Sun Dec  8 14:38:42 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (:tag): New keyword.
+	(custom-handle-keyword): Accept it.
+
+	* custom.el (:prefix): New keyword.
+	(custom-declare-group): Handle it.
+	(customize): Use it.
+	* widget-edit.el (widgets): Use it.
+
+	* custom-edit.el (custom-prefix-list): New variable.
+	(custom-unlispify-menu-entries): New variable.
+	(custom-unlispify-menu-entry): New function.
+	(custom-face-menu-create): Use it.
+	(custom-variable-menu-create): Use it.
+	(boolean): Use it.
+	(custom-menu-create): Use it.
+
+	* custom-edit.el (custom-menu-create): New function.
+	(custom-group-menu-create): Use it.
+
+Thu Dec  5 14:00:04 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-opt.el: New file.
+
+Thu Dec 05 13:53:48 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.11 released.
+
+Thu Dec  5 13:22:31 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (:custom-menu): New keyword.
+	(custom-variable): Use it.
+	(custom-face): Ditto.
+	(custom-group): Ditto.
+	(boolean): Ditto.
+	(custom-menu-update): Ditto.
+	(custom-face-menu-create): New function.
+	(custom-variable-menu-create): New function.
+	(custom-group-menu-create): New function.
+	(custom-menu-create-entry): Removed.
+
+Tue Dec  3 09:28:19 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.texi (Utilities): Documented `custom-add-load'.
+
+Tue Dec 03 08:42:15 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.10 released.
+
+Tue Dec  3 00:42:14 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-menu-nesting): Moved from `custom.el'.
+	(custom-menu-create-entry): Ditto.
+	(custom-menu-update): Ditto.
+
+Mon Dec  2 22:48:14 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (:load): New keyword.
+	(custom-add-load): New function.
+	(custom-handle-keyword): Use them.
+	* custom.texi: Document it.
+	* custom-edit.el (custom-load-symbol): New function.
+	(custom-load-widget): New function.
+	(custom-group-value-create): Use it.
+	(custom-variable-value-create): Use it.
+	(custom-face-value-create): Use it.
+
+	* custom.el (custom-handle-keyword): New function.
+	(custom-declare-variable): Use it.
+	(custom-handle-all-keywords): New function.
+	(custom-declare-group): Use it.
+	(custom-declare-face): Use it.
+
+Sat Nov 30 01:37:07 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.09 released.
+
+Sat Nov 30 01:36:24 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-specify-field): Make terminating newline
+	writable under XEmacs.	
+
+Thu Nov 28 22:03:56 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.08 released.
+
+Thu Nov 28 21:46:30 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-hook-convert-widget): Make space part of
+	function instead of the editable-list.
+
+	* Version 1.07 released.
+
+Thu Nov 28 21:31:31 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-variable-state-set): Handle void
+	variables. 
+
+	* Version 1.06 released.
+
+Thu Nov 28 01:35:54 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-create-child-value): New function.
+	(widget-choice-value-create): Use it.
+	(widget-checklist-add-item): Ditto.
+	(widget-radio-add-item): Ditto.
+	(widget-editable-list-entry-create): Ditto
+	(widget-group-value-create): Ditto.
+
+	* widget-edit.el (widget-specify-field): Extend read-only extent.
+
+	* widget-edit.el (widget-create-child): Obey `:extra-offset'.
+
+	* custom-edit.el (custom-mode-hook): Added.
+
+Tue Nov 26 17:04:45 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el: More patches for support of old Emacsen from
+	William Perry <wmperry@aventail.com>. 
+
+	* Version 1.05 released.
+
+Tue Nov 26 15:05:36 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-make-intangible): New function.
+	(widget-specify-field): Use it.
+	(widget-after-change): Remove XEmacs workaround.
+	(widget-field-value-create): Ditto.
+	(widget-specify-text): Fully specify stickyness.
+
+Mon Nov 25 17:01:05 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-face-format-handler): Create face before
+	use under XEmacs. 
+
+	* Version 1.04 released.
+
+Mon Nov 25 01:14:13 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-facep): New function.
+	(custom-declare-face): Use it.
+	* custom-edit.el (customize-face): Ditto.
+	(customize-customized): Ditto.
+	(customize-apropos): Ditto.
+	(custom-save-faces): Ditto.
+
+	* custom.el (custom-declare-variable): Return symbol.  Suggested
+	by Lars Magne Ingebrigtsen <larsi@ifi.uio.no>.
+	(custom-declare-group): Ditto.
+	(custom-declare-face): Return face.
+
+	* widget-edit.el (widget-button-face): Removed :link.
+	(widget-mouse-face): Ditto.
+	(widget-field-face): Ditto.
+
+	* custom.el (emacs): Link to (emacs)Top, not (dir)Top.
+
+	* Version 1.03 released.
+
+Mon Nov 25 00:29:27 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widgets): Add links.
+	(widget-button-face): Add link.
+	(widget-mouse-face): Add link.
+	(widget-field-face): Add link.
+
+	* widget.texi (User Interface): Use `deffn Face' instead of
+	`defopt' for declaring faces.
+
+	* custom-edit.el (custom-manual): New widget.
+	(custom-format-handler): Support "%a" escape.
+	(custom-variable): Use it.
+	(custom-face): Use it.
+	(custom-group): Use it.
+
+	* custom.el (:link): New keyword.
+	(custom-declare-variable): Support it.
+	(custom-declare-face): Ditto.
+	(custom-declare-group): Ditto.
+	(emacs): Use it.
+	(customize): Ditto.
+	(custom-add-link): New function.
+
+	* custom.texi (Utilities): New section.  Document `custom-manual'
+	`custom-add-to-group', and `custom-add-link'. 
+
+	* widget.texi (url-link): New section.
+	(info-link): New section.  	
+
+Sat Nov 23 17:45:32 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.02 released.
+
+Sat Nov 23 17:42:31 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (set-face-font-family) New XEmacs function.
+	(custom-face-attributes): Added family support for XEmacs.
+
+Fri Nov 22 18:59:29 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.01 released.
+
+Fri Nov 22 16:29:08 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-display-match-frame): Use `frame-device' to
+	convert a frame to a device.
+
+	* widget-edit.el (widget-after-change): Avoid zero sized fields in
+	XEmacs.
+	(widget-field-value-create): Ditto.
+
+	* custom.el (custom-face-display-set): Removed call to
+	`make-face'.  Patch by David Moore <dmoore@UCSD.EDU>.
+	(custom-declare-variable): If there is a saved value, use it, even
+	if the variable is already bound.  Reported by Jens Lautenbacher
+	<jens@lemcbed.lem.uni-karlsruhe.de>. 
+	(custom-declare-face): If there is a saved face, use it, even
+	if the face is already made.
+	(custom-face-attributes): Added :size for XEmacs.  Thanks to
+	William Perry <wmperry@aventail.com> for part of the code.
+
+Wed Nov 20 16:40:53 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-variable-value-create): Use
+	`default-value' instead of `symbol-value'.
+	(custom-variable-state-set): Ditto.
+
+Tue Nov 19 17:11:27 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (custom):  Wrap require in `eval-and-compile'.
+
+Mon Nov 18 15:55:16 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.00 released.
+
+Sat Nov 16 20:58:01 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-help-menu): Renamed update entry to `Update
+	menu...'. 
+
+Thu Nov 14 23:16:53 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (customize-customized): Ignore uninitialized
+	faces and variables.
+
+Wed Nov 13 20:39:08 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.999 released.
+
+Wed Nov 13 12:21:56 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el: Added autolaod.
+
+	* custom.el: Added menu support.
+
+	* custom-edit.el (customize-customized): New command.
+	(custom-variable-default): Remember to evaluate default setting. 
+
+	* Version 0.998 released.
+
+Mon Nov 11 19:30:24 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-at): New function by William Perry
+	<wmperry@aventail.com>. 
+	(widget-echo-help): Use it.
+
+Fri Nov  8 20:34:59 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-checklist-match-up): Cleaned up.
+	(function-item): Removed :match and :value-delete properties. 
+	(variable-item): Ditto.
+
+	* custom.el (custom-add-option): Only add option if not already
+	there. 
+	(custom-declare-variable): Ditto.
+
+	* custom-edit.el (custom-buffer-create): Reset magic.
+
+Thu Nov 07 16:14:35 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.997 released.
+
+Thu Nov  7 14:24:33 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-split-regexp-maybe): New function.
+
+	* custom.el (x-color-values): Define if missing. 
+	(frame-property): Define if missing.
+	(custom-background-mode): Optimized.
+	(custom-display-match-frame): Use above.
+
+	* custom.el (custom-add-option): New function.
+
+Wed Nov 06 18:00:59 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.996 released.
+
+Wed Nov  6 09:42:33 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-children-value-delete): Renamed from
+	`widget-children-value-delete'. 
+	Updated all callers.
+	(widget-choice-convert-widget): Renamed from `'.
+
+	* custom-edit.el (widget-face-value-create): Add child to
+	`custom-options'.
+	(widget-face-value-delete): Added.
+
+	* widget-edit.el (widget-keymap): Added binding for [backtab].
+	Requested by Greg Stark <gsstark@mit.edu>.
+
+Sat Nov  2 13:40:49 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+
+	* custom.el (custom-set-variables): Accept `(SYMBOL VALUE [NOW])'
+	format. 
+	(custom-set-faces): Accept `(FACE SPEC [NOW])' format.
+	* custom-edit.el (custom-save-variables): Write in new format.
+	(custom-save-faces): Ditto.
+
+	* custom-edit.el (custom-format-handler): Handle `%L' escape. 
+	(custom-group): Add `%L' escape.
+	(custom-face-format-handler): Use the text "hide" for sample in
+	shown faces.
+	(custom-buffer-create): Show single option.
+
+Tue Oct 29 13:36:11 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.995 released.
+
+Tue Oct 29 12:21:57 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-display-match-frame): Fixed bug for
+	`display-type'.  
+
+	* custom.el (custom-background-mode): Memorized
+	`custom-background-mode' as suggested by David Moore
+	<dmoore@UCSD.EDU>. 
+
+	* widget-edit.el (widget-specify-button): Make a button non-sticky
+	on XEmacs.
+
+Sun Oct 20 20:16:05 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (easymenu): Added require.
+
+Mon Oct 14 15:09:43 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el: Removed `eval-and-compile' around compatibility
+	code. 
+
+Sat Oct 12 21:15:04 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.994 released.
+
+Sat Oct 12 20:11:19 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (:options): New keyword.
+
+	* widget-edit.el (hook): Removed widget.
+	(function): Allow any sexp.
+
+	* custom-edit.el (hook): Added widget.
+	(custom-hook-convert-widget): New function.
+
+	* custom.el (custom-declare-face): Check that facep is defined.
+	reported by Enami Tsugutomo <enami@ba2.so-net.or.jp>
+
+Wed Oct 09 01:41:55 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.993 released.
+
+Tue Oct  8 01:48:02 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-set-face-bold): Removed condition-case.
+	(custom-set-face-italic): Ditto.
+	(custom-face-attribites-set): Added condition-case.
+	(custom-set-variables): Do not bind symbol here.
+	(custom-set-faces): Do not create face here.
+	(custom-declare-variable): Use saved-value property, if is exists.
+
+	* custom-edit.el (custom-face-format-handler): Changed `sample' to
+	`show'.
+
+	* custom.el (custom-declare-face): Do not overwrite an existing
+	face. 
+
+Sat Oct 05 01:23:27 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.992 released.
+
+Fri Oct  4 23:54:54 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (character): New widget.
+	(widget-specify-field): Allow use of newline in format to hide
+	space. 
+
+Wed Oct  2 19:06:17 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.texi (menu-choice): Document `:case-fold'.
+
+Wed Oct 02 19:02:45 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.991 released.
+
+Wed Oct  2 18:54:53 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-choice-action): Use :case-fold.
+	(menu-choice): Initialize :case-fold.
+
+	* widget.el (:case-fold): New keyword, patch by David Byers
+	<davby@ida.liu.se>. 
+
+Mon Sep 30 20:26:59 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* lpath.el (maybe-fbind): New function.
+	Shut up byte compiler under XEmacs.
+
+	* custom-edit.el (custom-format-handler): Removed unused binding.
+	(custom-variable-apply): Added missing argument to error.
+	(custom-variable-set-default): Ditto.
+
+	* widget-edit.el (regexp): Add `:tag'.
+
+	* custom-edit.el (custom-variable-factory): Evaluate factory
+	setting before applying.
+
+Sun Sep 29 01:24:31 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.99 released.
+
+Sun Sep 29 00:16:31 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-color-action): Notify parent.
+	(widget-field-action): Ditto.
+	(widget-choice-action): Ditto.
+	(widget-file-action): Ditto.
+
+	* custom-edit.el (custom-magic-alist): Changed `item' to `const'. 
+	(face): Fixed formatting.
+	(widget-face-value-create): Ditto.
+	(widget-face-action): Notify parent.
+
+	* widget-edit.el (widget-field-value-get): Don't strip trailing
+	spaces from zero-sized fields.  Requested by David Byers
+	<davby@ida.liu.se>. 
+
+Sat Sep 28 00:31:54 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el (custom-save-needed-p): New variable.
+	(kill-emacs-hook): Add `custom-save-maybe'.
+	(custom-save-maybe): New function.
+	(custom-variable-set-default): Set `custom-save-needed-p'.
+	(custom-variable-factory): Ditto.
+	(custom-save): Ditto.
+	(custom-unimplemented): Deleted.
+
+	* Version 0.98 released.
+
+Sat Sep 28 00:04:58 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-choice-action): Got validate wrong, once
+	again. 
+
+	* widget.texi (Basic Types): Documented `%h'.
+
+Fri Sep 27 00:32:14 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-field-action): Set value directly.
+
+	* custom-edit.el (custom-format-handler): Use default format
+	handler. 
+
+	* widget-edit.el (widget-cons-match): Parameters in wrong order. 
+	(text): Parent should be `editable-field'.
+	(widget-field-action): Call `widget-setup' after modification.
+	(symbol): Make multiple convertion kludge more robust.
+	(integer): Ditto.
+	(number): Ditto.
+	(widget-echo-help): New function, patch by William Perry
+	<wmperry@aventail.com>.
+	(widget-forward): Use it
+	(widget-echo-help-mouse): New function.
+	(repeat): Don't highlight tag.
+	(set): Ditto.
+	(widget-editable-list-format-handler): Default to help format
+	handler.
+	(function-item): Use default format handler.
+	(variable-item): Ditto.
+	(widget-help-format-handler): Rename to and merge with
+	`widget-default-format-handler'.
+
+Wed Sep 25 22:44:45 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.97 released.
+
+Wed Sep 25 00:12:09 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (url-link): New widget.
+
+	* custom-edit.el (custom-variable-set-default): Also set current
+	value. 
+
+	* lpath.el: Added dummy definitions to really shut up the byte
+	compiler. 
+
+	* custom-edit.el (custom-buffer-create): Create a help button.
+
+	* widget-edit.el (info-link): New widget.
+
+Tue Sep 24 23:52:07 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.texi (The Customization Buffer): Exanded a lot.
+
+Mon Sep 23 18:27:55 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Makefile (FTPDIR): New variable.
+	(dist): Use it.
+
+	* Version 0.96 released.
+
+Mon Sep 23 13:30:08 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.texi (editable-field): Added explanation of
+	:hide-front-space and :hide-rear-space.
+
+	* widget-edit.el (widget-specify-field): Make front and rear
+	spaces intangible only when the :format string says it is safe, or
+	the user has explictly requested it.
+
+	* widget.el (:hide-front-space): New keyword.
+	(:hide-rear-space): New keyword.
+
+	* widget-edit.el (widget-field-value-create): Don't insert space
+	for empty values.
+	(widget-specify-field-update): Make null sized field have a face
+	that extents to the end of the line.
+	(widget-after-change): Make sure face is updated after extending a
+	fixed size field.
+
+Sun Sep 22 21:07:56 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.95 released.
+
+Sun Sep 22 13:44:02 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (symbol): Kludge allowing multiple conversions. 
+	(widget-field-value-create): Don't append spaces unless empty.
+	Suggested by David Byers <davby@ida.liu.se>.
+	(widget-field-value-get): Don't remove trailing spacesfor variable
+	sized fields.  Suggested by David Byers <davby@ida.liu.se>. 
+
+	* custom-edit.el (custom-show): New function.
+	(custom-variable-value-create): Use it.
+	(editable-field): Only show when value has no newlines and is
+	shorter than 40 characters.
+	(custom-buffer-create): Use `switch-to-buffer' instead of
+	`switch-to-buffer-other-window'. 
+
+	* widget-edit.el: Added hack to make `widget-edit.el' useful even
+	with the old custom library.  Suggested by David Byers
+	<davby@ida.liu.se>. 
+
+	* custom-edit.el (custom-help): Delete widget.
+	(custom-help-action): Delete function.
+	(:custom-doc): Delete keyword.
+	(:custom-documentation-property): Delete keyword.
+	(custom-format-handler): Leave `h' to `widget-help-format-handler'.
+	(custom): Replace `:custom-documentation-property' with
+	`:documentation-property'. 
+	(custom-variable): Ditto.
+	(custom-face): Ditto.
+	(custom-group): Ditto.
+
+	* widget-edit.el (widget-help): New widget.
+	(widget-help-action): New function.
+	(widget-help-format-handler): New function.
+	(function-item): New widget.
+	(variable-item): New widget.
+	(hook): New widget.
+
+	* widget.el (:documentation-property): New keyword.
+	(:widget-doc): New keyword. 
+
+	* custom-edit.el (custom-variable-state-set): Compare value to
+	evaluted defaults. 
+
+	* widget-edit.el (radio): New sexp widget.
+
+	* lpath.el (custom): Add require.
+
+	* custom.el: (custom-face-empty): Test for `(boundp 'make-face)'.
+	Reported by enami tsugutomo <enami@ba2.so-net.or.jp>.
+	(custom-face-display-set): Ditto.
+
+	* lpath.el: Removed byte compiler kludge.
+
+Sun Sep 22 11:48:02 1996  Lars Magne Ingebrigtsen  <larsi@hler.ifi.uio.no>
+
+	* custom.el (defcustom): Eval and compile.
+	* widget.el (define-widget-keywords): Ditto.
+
+Sat Sep 21 23:17:22 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 0.94 released.
+
+Sat Sep 21 13:26:15 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el: Added `:custom-apply', `:custom-set-default',
+	and `:custom-reset' keywords. 
+	(custom-variable): Bind above.
+	(custom-face): Ditto.
+	(custom-group): Ditto.
+	(custom-group-menu): Activate functions below.
+	(custom-group-apply): New function.
+	(custom-group-set-default): New function.
+	(custom-group-reset): New function.
+	(custom-mode-menu): New menu.
+	(custom-mode): Describe all commands.
+	(custom-mode): Added `custom-mode-hook' hook.
+	(custom-apply): New command.
+	(custom-set-default): New command.
+	(custom-reset): New command.
+	(custom-buffer-create): Set `custom-options' properly.
+	(custom-buffer-create): Add `apply', `Set Default', and `Reset'
+	butons. 
+
+	* custom.texi (Wishlist): Remove implemented items from the
+	wishlist. 
+
+	* widget.texi (atoms): Document `boolean' widget.
+	(composite): Document `choice', `set', and `repeat' widgets. 
+
+	* widget-edit.el (boolean): New sexp widget.
+
+	* Version 0.93 released.
+
+Sat Sep 21 00:57:14 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* lpath.el Disable byte compiler hacking on XEmacs.
+
+	* Version 0.92 released.
+
+Fri Sep 20 03:04:53 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Added support for automatic indentation of nested widgets.
+
+	* Made code and internal API creation of nested widget more
+	clear and less buggy.
+
+	* Version 0.91 released.
+
+Thu Sep 19 19:30:46 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* lpath.el: Add code to shut up the compiler.
+
+	* widget.el (define-widget-keywords): Use this to shut up the
+	bytecompiler. 
+
+	* widget-edit.el: (widget-field-action): New function.
+	(field): Added.
+	(string, list, vector, cons): Added tag.
+
+	* custom-edit.el (custom-magic): New widget.
+	Most other widgets and functions updated to support it.
+	(custom-notify): New function.
+	(custom): Use it.
+	(customize-apropos): Less greedy.  Thanks Ilya
+	Zakharevich <ilya@math.ohio-state.edu>.
+
+	* widget-edit.el (pp-to-string): Added autoload.  Thanks Ilya
+	Zakharevich <ilya@math.ohio-state.edu>.
+
+Wed Sep 18 19:24:03 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-documentation-face): New face.
+	(widget-specify-doc): Use it.
+
+Tue Sep 17 00:57:02 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (item): Add "%d" to format.
+	(function): New widget.
+	(variable): New widget.
+	(regexp): New widget.
+
+	* custom.el (custom-x-color-values): Stolen from Gnus.
+	(custom-background-mode): Stolen from Gnus.
+	(custom-display-match-frame): Should now work on XEmacs.
+
+	* custom-edit.el: Minor cleanups in organization.
+	(custom-variable-value-create): Handle case where the value of a
+	variable does not match the type gracefully.
+	(custom-redraw): Renamed from `custom-reset'.
+
+	* Version 0.9 released.
+
+Tue Sep 17 00:21:01 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget-edit.el (widget-color-action): Use `read-prompt' in
+	XEmacs and `read-string' on a tty.
+
+	* custom-edit.el (customize-apropos): Don't match undocumented
+	variables. 
+
+Mon Sep 16 15:44:34 1996  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom-edit.el: Added help text to many widgets.
+
+	* widget-edit.el (color-item): Made it a choice-item.
+
+	* custom-edit.el (custom-level): New widget.
+	(custom-help): New widget.
+	(custom): New widget.
+	(custom-variable): Derive widget from `custom'.
+	(custom-face): Ditto.
+	(custom-group): Ditto.
+
+	* widget-edit.el (widget-choose): Do not reverse the items here. 
+	(widget-choice-action): Reverese the items here instead.
+
+	* custom.el (keywords): Only define the keywords used by
+	declarations here.
+
+	* widget-edit.el (toggle): Removed `:void' property. 
+
+	* custom.texi (Declaring Groups): Use proper defuns.
+
+	* Makefile (TEXT): Added `ChangeLog' and `custom.texi'.
+	(dist): Add release to `ChangeLog'.

lisp/custom/custom-edit.el

 ;;; custom-edit.el --- Tools for customization Emacs.
 ;;
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.30
+;; Version: 1.40
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
   (setq major-mode 'custom-mode
 	mode-name "Custom")
   (use-local-map custom-mode-map)
+  (easy-menu-add custom-mode-menu)
   (make-local-variable 'custom-options)
   (run-hooks 'custom-mode-hook))
 
   (widget-insert " ")
   (widget-create 'push-button
 		 :tag "Reset"
-		 :help-echo "Push me to undo all modifications.."
+		 :help-echo "Push me to undo all modifications."
 		 :action (lambda (widget &optional event)
 			   (custom-reset event)))
+  (widget-insert " ")
+  (widget-create 'push-button
+		 :tag "Done"
+		 :help-echo "Push me to bury the buffer."
+		 :action (lambda (widget &optional event)
+			   (bury-buffer)))
   (widget-insert "\n")
   (widget-setup))
 
 
 (defun custom-redraw (widget)
   "Redraw WIDGET with current settings."
-  (widget-value-set widget (widget-value widget))
-  (custom-redraw-magic widget))
+  (let ((pos (point))
+	(from (marker-position (widget-get widget :from)))
+	(to (marker-position (widget-get widget :to))))
+    (save-excursion
+      (widget-value-set widget (widget-value widget))
+      (custom-redraw-magic widget))
+    (when (and (>= pos from) (<= pos to))
+      (goto-char pos))))
 
 (defun custom-redraw-magic (widget)
   "Redraw WIDGET state with current settings."
 		       (if (condition-case nil
 			       (equal value (eval (car tmp)))
 			     (error nil))
-			   'saved
-			 'set))
+			   'set
+			 'changed))
 		      ((setq tmp (get symbol 'saved-value))
 		       (if (condition-case nil
 			       (equal value (eval (car tmp)))
 			     (error nil))
 			   'saved
-			 'set))
+			 'changed))
 		      ((setq tmp (get symbol 'factory-value))
 		       (if (condition-case nil
 			       (equal value (eval (car tmp)))
 			     (error nil))
 			   'factory
-			 'set))
+			 'changed))
 		      (t 'rogue))))
     (widget-put widget :custom-state state)))
 
 	(widget-put widget :custom-state 'unknown)
 	(custom-redraw widget))
     (let* ((completion-ignore-case t)
-	   (answer (widget-choose (symbol-name (widget-get widget :value))
+	   (answer (widget-choose (capitalize
+				   (symbol-name (widget-get widget :value)))
 				  custom-variable-menu
 				  event)))
       (if answer
 	   (set symbol (eval (setq val (widget-value child))))
 	   (put symbol 'customized-value (list val)))
 	  (t
-	   (set symbol (widget-value child))
+	   (set symbol (setq val (widget-value child)))
 	   (put symbol 'customized-value (list (custom-quote val)))))
     (custom-variable-state-set widget)
     (custom-redraw-magic widget)))
 	(custom-redraw widget))
     (let* ((completion-ignore-case t)
 	   (symbol (widget-get widget :value))
-	   (answer (widget-choose (symbol-name symbol)
+	   (answer (widget-choose (capitalize (symbol-name symbol))
 				  custom-face-menu event)))
       (if answer
 	  (funcall answer widget)))))
 	(widget-put widget :custom-state 'unknown)
 	(custom-redraw widget))
     (let* ((completion-ignore-case t)
-	   (answer (widget-choose (symbol-name (widget-get widget :value))
+	   (answer (widget-choose (capitalize
+				   (symbol-name (widget-get widget :value)))
 				  custom-group-menu
 				  event)))
       (if answer

lisp/custom/custom.el

 ;;; custom.el -- Tools for declaring and initializing options.
 ;;
-;; Copyright (C) 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.30
+;; Version: 1.40
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
 (define-widget-keywords :prefix :tag :load :link :options :type :group)
 
 ;; These autoloads should be deleted when the file is added to Emacs
+
 (unless (fboundp 'load-gc)
   (autoload 'customize "custom-edit" nil t)
   (autoload 'customize-variable "custom-edit" nil t)
 
 ;;; The `defcustom' Macro.
 
-;;; Don't ;;;###autoload
 (defun custom-declare-variable (symbol value doc &rest args)
   "Like `defcustom', but SYMBOL and VALUE are evaluated as notmal arguments."
   (unless (and (default-boundp symbol)
   (run-hooks 'custom-define-hook)
   symbol)
 
-;;; Don't ;;;###autoload
 (defmacro defcustom (symbol value doc &rest args)
   "Declare SYMBOL as a customizable variable that defaults to VALUE.
 DOC is the variable documentation.
 
 ;;; The `defface' Macro.
 
-;;; Don't ;;;###autoload
 (defun custom-declare-face (face spec doc &rest args)
   "Like `defface', but FACE is evaluated as a normal argument."
   (put face 'factory-face spec)
   (run-hooks 'custom-define-hook)
   face)
 
-;;; Don't ;;;###autoload
 (defmacro defface (face spec doc &rest args)
   "Declare FACE as a customizable face that defaults to SPEC.
 FACE does not need to be quoted.
 
 ;;; The `defgroup' Macro.
 
-;;; Don't ;;;###autoload
 (defun custom-declare-group (symbol members doc &rest args)
   "Like `defgroup', but SYMBOL is evaluated as a normal argument."
   (put symbol 'custom-group (nconc members (get symbol 'custom-group)))
   (run-hooks 'custom-define-hook)
   symbol)
 
-;;; Don't ;;;###autoload
 (defmacro defgroup (symbol members doc &rest args)
   "Declare SYMBOL as a customization group containing MEMBERS.
 SYMBOL does not need to be quoted.
 information."
   `(custom-declare-group (quote ,symbol) ,members ,doc ,@args))
 
-;;; Don't ;;;###autoload
 (defun custom-add-to-group (group option widget)
   "To existing GROUP add a new OPTION of type WIDGET,
 If there already is an entry for that option, overwrite it."
       (make-face-italic face frame)
     (make-face-unitalic face frame)))
 
-;;; Don't ;;;###autoload
 (defun custom-initialize-faces (&optional frame)
   "Initialize all custom faces for FRAME.
 If FRAME is nil or omitted, initialize them for all frames."
 
 ;;; Initializing.
 
-;;; Don't ;;;###autoload
 (defun custom-set-variables (&rest args)
   "Initialize variables according to user preferences.  
 
 	  (put symbol 'saved-value (list value)))
 	(setq args (cdr (cdr args)))))))
 
-;;; Don't ;;;###autoload
 (defun custom-set-faces (&rest args)
   "Initialize faces according to user preferences.
 The arguments should be a list where each entry has the form:

lisp/custom/widget-browse.el

+;;; widget-browse.el --- Functions for browsing widgets.
+;;
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+;;
+;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
+;; Keywords: extensions
+;; Version: 1.40
+;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
+
+;;; Commentary:
+;;
+;; Widget browser.  See `widget.el'.
+
+;;; Code:
+
+(require 'easymenu)
+(require 'custom)
+(require 'widget-edit)
+(require 'cl)
+
+(defgroup widget-browse nil
+  "Customization support for browsing widgets."
+  :group 'widgets)
+
+;;; The Mode.
+
+(defvar widget-browse-mode-map nil
+  "Keymap for `widget-browse-mode'.")
+  
+(unless widget-browse-mode-map
+  (setq widget-browse-mode-map (make-sparse-keymap))
+  (set-keymap-parent widget-browse-mode-map widget-keymap))
+
+(easy-menu-define widget-browse-mode-menu 
+    widget-browse-mode-map
+  "Menu used in widget browser buffers."
+  '("Widget"
+    ["Browse" widget-browse t]
+    ["Browse At" widget-browse-at t]))
+
+(defcustom widget-browse-mode-hook nil
+  "Hook called when entering widget-browse-mode."
+  :type 'hook
+  :group 'widget-browse)
+
+(defun widget-browse-mode ()
+  "Major mode for widget browser buffers.
+
+The following commands are available:
+
+\\[widget-forward]		Move to next button or editable field.
+\\[widget-backward]		Move to previous button or editable field.
+\\[widget-button-click]		Activate button under the mouse pointer.
+\\[widget-button-press]		Activate button under point.
+
+Entry to this mode calls the value of `widget-browse-mode-hook'
+if that value is non-nil."
+  (kill-all-local-variables)
+  (setq major-mode 'widget-browse-mode