Anonymous avatar Anonymous committed 489f57a

Import from CVS: tag r20-3b21

Comments (0)

Files changed (146)

 							-*- indented-text -*-
+to 20.3 beta21 "Bern"
+-- Artificial event creation from Hrvoje Niksic
+-- cl-extra.elc and cl-seq.elc are now dumped with XEmacs
+-- custom-1.9958 Courtesy of Per Abrahamsen
+-- W3-3.0.104 Courtesy of William Perry
+-- one-shot extent hooks added -- someone please send me the current
+   shotlock.el
+-- Custom initialization rework from Hrvoje Niksic
+-- cc-mode-5.18 courtesy of Barry Warsaw
+-- VM-6.34 courtesy of Kyle Jones
+-- Miscellaneous clean up patches from Hrvoje Niksic
+-- Miscellaneous bug fixes
+
 to 20.3 beta20 "Tirana"
 -- Miscellaneous patches from Martin and Hrvoje
 -- tetris.el-1.8
+1997-09-16  SL Baur  <steve@altair.xemacs.org>
+
+	* XEmacs 20.3-beta21 is released.
+
+	* XEmacs 19.16-pre2 is released.
+
 1997-09-13  SL Baur  <steve@altair.xemacs.org>
 
 	* XEmacs 20.3-beta20 is released.
 * Changes in XEmacs 20.3
 ========================
 
+** Startup file additions.
+
+By default XEmacs now loads the user file ~/.xemacs if it exists.  If
+there is no such file, it reads ~/.emacs as usual.  If both .xemacs
+and .emacs exist, XEmacs will only load .xemacs.
+
+Customizable options are now saved to ~/.xemacs-custom file, which is
+normally loaded after .emacs.
+
+** Quail input method is now available.
+
+Quail is a simple key-translation system which allows users to input
+any multilingual text from normal ASCII keyboard.  This means that
+XEmacs with Mule now supports a number of European languages.
+
+** XEmacs runs on Windows NT.
+
+Thanks to David Hobley <davidh@wr.com.au> and Marc Paquette
+<marcpa@cam.org>, XEmacs now runs on Windows NT.
+
+There are plans to hire contractors to do a native, professional
+port.  This might be over for the 20.3 final release.
+
+** Multiple TTY frames are now available.
+
+On consoles that display only one frame at a time (e.g. TTY consoles),
+creating a new frame with `C-x 5 2' also raises and selects that
+frame.  The behavior of window system frames is unchanged.
+
+** Zmacs region is not deactivated when an error is signaled.
+
+The behavior of the zmacs region can now be controlled in the event of
+a signaled error.  The new variable `errors-deactivate-region' may be
+set to nil to revert to the old behaviour.  As before, typing C-g
+deactivate the region.
+
 ** Info "dir" functionality merged from Emacs-19.34
 
 All of the directories on `Info-directory-list' will be searched for
 `Info-directory-list', which is initialized from `Info-default-
 directory-list', which you may customize through the Options menu.
 
-The first directory specified in `Info-default-directory-list' should
-contain a "dir" file that will become the toplevel dir which the
-others will be merged into.  A "localdir" may optionally contain a
-'* Menu:' section, or just entries like those in a menu section, but
-no subnodes or info header.  You can see what I'm talking about if you
-view the "dir" file that comes with XEmacs.  It has a header section
-that should not be in a "localdir" file.  The "localdir" should look
-like the `buffer-substring' of XEmacs' stock "dir" from just below
-"* Menu:" to the end of the file, optionally also containing the
-"* Menu:" line.
-
-The contents of each "localdir" file will be inserted into the
-toplevel "dir" file replacing a '* Locals:' line, OR alternatively,
-will insert it below a 'Local*' (that's a regexp) heading line.  If
-there's more than one "localdir" file, each will either consume a '*
-Locals:' line, be catenated to the end of the (dir)Top, or be inserted
-under the 'Local' topic header.
-
-There is a new variable, called `Info-additional-directory-list',
-which you may customize also, that can contain a list of directories
-in which to search for Info documents, but NOT to search in for "dir"
-or "localdir" files.  This is useful for things like the Calc package,
-which likes its info files in its lisp directory.  If you put that
-directory in the 'additional list', and a menu entry for it in one of
-your "dir" or "localdir" files, a click on a menu entry for it will be
-able to find the Info file.
-
-** Startup file additions.
-
-By default XEmacs now loads the user file ~/.xemacs if it exists.  If
-there is no such file, it reads ~/.emacs as usual.  If both .xemacs
-and .emacs exist, XEmacs will only load .xemacs.
-
-Customizable options are now saved to ~/.xemacs-custom file, which is
-normally loaded after .emacs.
-
-** Quail input method is now available.
-
-Quail is a simple key-translation system which allows users to input
-any multilingual text from normal ASCII keyboard.  This means that
-XEmacs with Mule now supports a number of European languages.
-
-** XEmacs runs on Windows NT.
-
-Thanks to David Hobley <davidh@wr.com.au> and Marc Paquette
-<marcpa@cam.org>, XEmacs now runs on Windows NT.
-
-There are plans to hire contractors to do a native, professional
-port.  This might be over for the 20.3 final release.
-
-** Multiple TTY frames are now available.
-
-On consoles that display only one frame at a time (e.g. TTY consoles),
-creating a new frame with `C-x 5 2' also raises and selects that
-frame.  The behavior of window system frames is unchanged.
-
-** Zmacs region is not deactivated when an error is signaled.
-
-The behavior of the zmacs region can now be controlled in the event of
-a signaled error.  The new variable `errors-deactivate-region' may be
-set to nil to revert to the old behaviour.  As before, typing C-g
-deactivate the region.
-
-** Pending-delete changes.
-
-*** Pending-delete is now a minor mode, with the normal minor-mode
-semantics and toggle functions.  Old functions are left for
-compatibility.
-
-*** Loading pending-del no longer turns on pending-delete mode.  In
-fact, it is no longer necessary to explicitly load pending-del.  All
-you need to do to turn on tpu-edt is run the tpu-edt function.  Here's
-how to run pending-delete instead of loading the file:
-
-  Within XEmacs:   Type      M-x pending-delete <ret>
-                    not      M-x load-library <ret> pending-delete <ret>
-  
-  In .emacs:       Use       (turn-on-pending-delete)
-                   not       (load "pending-del")
-
 ** Abbreviations can now contain non-word characters.
 
 This means that it is finally possible to do such simple things as
 `save-current-buffer' in Lisp mode, `call/cc' to
 `call-with-current-continuation' in Scheme mode, etc.
 
+** Customize now has a new `browser' mode of traversing
+customizations, which is in many ways easier to follow than the
+standard one.  Try it with `M-x customize-browse'.
+
 ** `C-x n d' now runs the new command `narrow-to-defun',
 which narrows the accessible parts of the buffer to just
 the current defun.
 previous echo area contents is restored (in case the command prints
 something useful.)
 
+** Pending-delete changes.
+
+*** Pending-delete is now a minor mode, with the normal minor-mode
+semantics and toggle functions.  Old functions are left for
+compatibility.
+
+*** Loading pending-del no longer turns on pending-delete mode.  In
+fact, it is no longer necessary to explicitly load pending-del.  All
+you need to do to turn on pending-delete is run the pending-delete
+function:
+
+  Within XEmacs:   Type      M-x pending-delete <ret>
+                    not      M-x load-library <ret> pending-delete <ret>
+  
+  In .emacs:       Use       (turn-on-pending-delete)
+                   not       (load "pending-del")
+
+** Package starting changes.
+
+*** Loading `paren.el' is no longer sufficient to enable
+paren-blinking.  Use `paren-set-mode' explicitly, or customize
+`paren-mode'.
+
+*** Loading `uniquify.el' is no longer sufficient to enable uniquify;
+you have to set `uniquify-buffer-name-style' to a legal value.
+
+*** Loading `time.el' is no longer sufficient to enable display time;
+you have to invoke `display-time' explicitly.
+
+*** Loading `jka-compr.el' is no longer sufficient to enable
+on-the-fly compression; you have to use `toggle-auto-compression'.
+
 ** XEmacs can now save the minibuffer histories from various
 minibuffers.  To use this feature, add the line:
 
 an interval is \{M,N\}, and it means to match the preceding expression
 at least M times and as many as N times.
 
+** Ada mode changes.
+
+*** There is now better support for using find-file.el with Ada mode.
+If you switch between spec and body, the cursor stays in the same
+procedure (modulo overloading).  If a spec has no body file yet, but
+you try to switch to its body file, Ada mode now generates procedure
+stubs.
+
+*** There are two new commands:
+ - `ada-make-local'   : invokes gnatmake on the current buffer
+ - `ada-check-syntax' : check syntax of current buffer.
+
+The user options `ada-compiler-make', `ada-make-options',
+`ada-language-version', `ada-compiler-syntax-check', and
+`ada-compile-options' are used within these commands. 
+
+*** Ada mode can now work with Outline minor mode.  The outline level
+is calculated from the indenting, not from syntactic contructs.
+Outlining does not work if your code is not correctly indented.
+
+*** The new function `ada-gnat-style' converts the buffer to the style of
+formatting used in GNAT.  It places two blanks after a comment start,
+places one blank between a word end and an opening '(', and puts one
+space between a comma and the beginning of a word.
+
 
 
 * Lisp and internal changes in XEmacs 20.3
 `debug-on-error' is t.  It has no effect when `debug-on-signal' is
 non-nil.
 
+** The function current-message returns the message currently displayed
+in the echo area, or nil if there is none.
+
+** File-access primitive functions no longer discard an extra redundant
+directory name from the beginning of the file name.  In other words,
+they no longer do anything special with // or /~.  The same goes for
+`expand-file-name'.  That conversion is now done only in
+`substitute-in-file-name'.
+
+This makes it possible for a Lisp program to open a file whose name
+begins with ~.
+
+** The new function regexp-opt returns an efficient regexp to match a
+string.  The arguments are STRINGS and (optionally) PAREN.  This
+function can be used where regexp matching or searching is intensively
+used and speed is important, e.g., in Font Lock mode.
+
 
 
 * Changes in XEmacs 20.2

Binary file added.

Binary file added.

 
 Packages:
 
-* AUCTeX::	Mode for editing TeX files.
 * 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
+1997-09-15  Karl M. Hegbloom  <karlheg@inetarena.com>
+
+	* packages/info.el (Info-mouse-track-double-click-hook): follow
+ 	the top menu item when double click in bottom 1/4 and middle 1/3
+
+1997-09-16  SL Baur  <steve@altair.xemacs.org>
+
+	* prim/about.el (about-hackers): Add new entry.
+
+Tue Sep 16 19:23:24 1997  Barry A. Warsaw  <cc-mode-help@python.org>
+
+	* cc-mode/Release 5.18
+
+Tue Sep 16 23:17:15 1997  Barry A. Warsaw  <cc-mode-help@python.org>
+
+	* cc-mode/cc-menus.el (cc-imenu-c-prototype-macro-regexp): New
+	variable.
+
+	(cc-imenu-c++-generic-expression): Patches to better match C++ code.
+	Given by jan.dubois@ibm.net (Jan Dubois)
+
+	* cc-mode/cc-menus.el (cc-imenu-java-generic-expression):
+	Removed test for declaration
+	statements.  Patch given by Ake Stenhoff <etxaksf@aom.ericsson.se>, as
+	forwarded to me by RMS.
+
+	* cc-mode/cc-menus.el:
+	Imenu support for Objective-C given by Masatake (jet) YAMATO.
+
+	* cc-mode/cc-mode.el (objc-mode): Bind imenu-create-index-function to
+	cc-imenu-objc-function to enable Imenu support for Objective-C.
+	Contributed by Masatake (jet) YAMATO.
+
+Mon Sep 15 23:21:51 1997  Barry A. Warsaw  <cc-mode-help@python.org>
+
+	* cc-mode/cc-styles.el (c-initialize-builtin-style):
+	Use existing copy-tree if it's defined.
+
+	copy-sequence doesn't work; the
+	c-offsets-alist must be copied recursively.  Use copy-tree solution
+	given by Simon Marshall.
+
+Fri Sep  5 04:47:03 1997  Barry A. Warsaw  <cc-mode-help@python.org>
+
+	* cc-mode/cc-cmds.el (c-beginning-of-statement):
+	Fixes in sentence movement to properly
+	handle M-e moving forward into a comment when looking at preceding
+	whitespace, and M-a moving backward into comment when looking at
+	following whitespace.
+
+	Uncommented the looking-at call in the
+	sentence-flag clause so that moving by forward-sentence when looking
+	at the beginning of a comment works again.  A previous log message in
+	cc-mode.el indicates this was commented out "because
+	c-beginning-of-statement-1 should do the right thing", but clearly it
+	doesn't.
+
+	I don't know if this breaks something else, because I can't figure out
+	why it was commented out in the first place.
+	
+	* cc-mode/cc-langs.el:
+	Define `/' in c-mode-base-map since all modes now support
+	c-electric-slash.
+
+	Define C-c C-e in mode-specific maps instead of c-mode-base-map since
+	c-expand-macro is meaningless in Java and IDL.
+
+	* cc-mode/cc-engine.el (c-end-of-statement-1):
+	Wrap backward-up-list in a c-safe call so no
+	error results when buffer contains only a comment and point is at
+	eob.
+
+1997-09-15  SL Baur  <steve@altair.xemacs.org>
+
+	* utils/autoload.el (customized-symbols): Use a hash table.
+
+	* prim/cus-load.el (custom-put): Restore.
+	Adapted from code by Hrvoje Niksic  <hniksic@srce.hr>
+
+	* x11/x-toolbar.el (initial-toolbar-spec): Remove news and mail
+	icons from default toolbar.
+
+1997-09-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* prim/packages.el (locate-data-directory): Return nil when
+	directory not found.
+	(locate-library): Reimplemented using `locate-file'.
+
+1997-09-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* prim/cus-dep.el: Provide `cus-dep'.
+
+	* packages/time.el (display-time-insinuate): New function; don't
+	insinuate upon loading.
+	(display-time): Use it.
+
+	* prim/loadup.el: Use it.
+
+	* prim/dumped-lisp.el (dumped-lisp-packages): Renamed to
+ 	`preloaded-file-list'.
+
+	* prim/cus-load.el: Updated the comment.
+
+	* prim/cus-dep.el (custom-make-dependencies): Unjunkify.
+
+	* modes/lisp-mode.el: Declare indentation of `with-temp-buffer'.
+
+	* prim/cus-dep.el (custom-make-dependencies): Allow optional
+	parameter; don't kill Emacs.
+
+	* modes/cl-indent.el: Minor customize changes.
+
+	* modes/asm-mode.el: Minor customize changes.
+
+	* modes/arc-mode.el: Customized.
+
+	* modes/ada-stmt.el: New file.
+
+	* modes/ada-mode.el: Synched with FSF (customized, etc.)
+
+1997-09-13  SL Baur  <steve@altair.xemacs.org>
+
+	* prim/files.el (switch-to-buffer-other-frame): Undo previous
+	change when focus-follows-mouse policy is in effect.
+
+1997-09-14  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* packages/recent-files.el: Minor customize changes.
+
+	* packages/man.el: Minor customize changes.
+	(Manual-use-rosetta-man): Moved the extensive info from docstring.
+
+	* packages/makeinfo.el: Minor customize changes.
+
+	* packages/info.el: Minor customize changes.
+
+	* packages/gopher.el: Minor customize changes.
+
+	* packages/func-menu.el: Minor customize changes.
+
+	* packages/etags.el (tags-delete): Use builtin `delete'.
+	(tags-remove-duplicates): Don't recurse.
+	Fixup customizations.
+
+	* packages/emerge.el: Use `with-current-buffer' instead of
+ 	`emerge-eval-in-buffer'; reindent.
+
+	* packages/compile.el: Minor customize changes.
+
+	* packages/bookmark.el: Customized.
+
+	* packages/avoid.el (mouse-avoidance-mode): Customized properly.
+
+	* packages/autoinsert.el: Customized.
+
+	* modes/xrdb-mode.el: Minor customize changes.
+
+	* modes/vrml-mode.el: Minor customize changes.
+
+	* modes/vhdl-mode.el: Customized.
+	(vhdl-emacs-features): Recognize XEmacs 20 correctly.
+
+	* modes/vhdl-mode.el: Require elp when compiling.
+
+	* modes/texinfo.el: Minor customize changes.
+
+	* modes/tcl.el: Minot customize changes.
+
+	* modes/strokes.el: Small fixes.
+	(strokes-mode): Don't signal error without window system; issue a
+ 	warning.
+	(strokes-insinuate): New function.  Don't defadvice upon loading.
+	(strokes-mode): Use it.
+	(strokes-char-face): Use `defface'.
+
+	* modes/simula.el: Customized.
+
+	* modes/scribe.el: Customized.
+	(scribe-envelop-word): Don't bind `noparens' (unused).
+
+	* modes/rsz-minibuf.el: Remove old lemacs support,
+	e.g. screen-vs-frame, etc.
+	(resize-minibuffer-min): Removed.
+
+	* modes/rsz-minibuf.el: Fix customizations.
+
+	* prim/subr.el: Moved string-to-foo functions to obsolete.el.
+
+	* prim/obsolete.el: Comments.
+
+1997-09-13  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* packages/filladapt.el: Added `:require' to filladapt-mode
+ 	customization.
+
+	* modes/whitespace-mode.el: Customize better.
+
+	* modes/hideshow.el: Customize.
+
+	* packages/icomplete.el: Don't turn on by default; customize
+ 	correctly.
+
+	* utils/uniquify.el: Don't invade Emacs by default.
+	(uniquify-buffer-name-style): Default to nil.
+
+	* utils/uniquify.el: Removed support for Emacs 18.
+
+	* packages/pending-del.el: Customize `pending-delete-mode'.
+
+	* modes/sh-script.el: Renamed `sh-script' customization group to `sh'.
+
+	* packages/balloon-help.el: Customize `balloon-help-mode'.
+
+	* packages/paren.el: Don't invade Emacs by default.
+	Finished customizing.
+
 1997-09-13  SL Baur  <steve@altair.xemacs.org>
 
 	* x11/x-toolbar.el (toolbar-paste-function): Remove reference to

lisp/calendar/custom-load.el

+(custom-put 'holidays 'custom-loads '("calendar"))
+(custom-put 'calendar 'custom-loads '("calendar"))
+(custom-put 'local 'custom-loads '("calendar"))
+(custom-put 'diary 'custom-loads '("calendar"))
 (custom-put 'appt 'custom-loads '("appt"))
-(custom-put 'holidays 'custom-loads '("calendar"))
-(custom-put 'diary 'custom-loads '("calendar"))

lisp/cc-mode/auto-autoloads.el

 
 (autoload 'java-mode "cc-mode" "\
 Major mode for editing Java code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
+To submit a problem report, enter `\\[c-submit-bug-report]' from a
 java-mode buffer.  This automatically sets up a mail buffer with
 version information already added.  You just need to add a description
 of the problem, including a reproducible test case and send the
 
 (autoload 'idl-mode "cc-mode" "\
 Major mode for editing CORBA's IDL code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
+To submit a problem report, enter `\\[c-submit-bug-report]' from a
 idl-mode buffer.  This automatically sets up a mail buffer with
 version information already added.  You just need to add a description
 of the problem, including a reproducible test case, and send the

lisp/cc-mode/cc-align.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-cmds.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-compat.el

 ;; Author:     1994-1997 Barry A. Warsaw
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    August 1994, split from cc-mode.el
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-defs.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-engine.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-langs.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/cc-menus.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.
 
 
 ;; imenu integration
+(defvar cc-imenu-c-prototype-macro-regexp nil
+  "RE matching macro names used to conditionally specify function prototypes.
+
+For example:
+
+    #ifdef __STDC__
+      #define _P(x) x
+    #else
+      #define _P(x) /*nothing*/
+    #endif
+
+    int main _P( (int argc, char *argv[]) )
+
+A sample value might look like: `\\(_P\\|_PROTO\\)'.")
+
 (defvar cc-imenu-c++-generic-expression
   (` 
-   ((nil
+   (
+    ;; Try to match ::operator definitions first. Otherwise `X::operator new ()'
+    ;; will be incorrectly recognised as function `new ()' because the regexps
+    ;; work by backtracking from the end of the definition.
+    (nil
      (, 
       (concat
-       "^"				      ; beginning of line is required
-       "\\(template[ \t]*<[^>]+>[ \t]*\\)?"   ; there may be a "template <...>"
-       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	      ; type specs; there can be no
-       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	      ; more than 3 tokens, right?
-        
-       "\\("				      ; last type spec including */&
-       "[a-zA-Z0-9_:]+"
-       "\\([ \t]*[*&]+[ \t]*\\|[ \t]+\\)"     ; either ptr/ref sign or ws
-       "\\)?"				      ; if there is a last type spec
-       "\\("				      ; name, take into the imenu entry
-       "[a-zA-Z0-9_:~]+"		      ; member func, ctor or dtor...
- 					      ; (may not contain * because then
- 					      ; "a::operator char*" would
-					      ; become "char*"!)
-       "\\|"
-       "\\([a-zA-Z0-9_:~]*::\\)?operator"
-       "[^a-zA-Z1-9_][^(]*"		      ; ...or operator
-       " \\)"
-       "[ \t]*([^)]*)[ \t\n]*[^		;]"   ; require something other than
-					      ; a `;' after the (...) to
-					      ; avoid prototypes.  Can't
-					      ; catch cases with () inside
-					      ; the parentheses surrounding
-					      ; the parameters.  e.g.:
-					      ; "int foo(int a=bar()) {...}"
-        
-       )) 6)    
+       "^\\<.*"
+       "[^a-zA-Z0-9_:<>~]"                    ; match any non-identifier char
+                                              ; (note: this can be `\n')
+       "\\("
+          "\\([a-zA-Z0-9_:<>~]*::\\)?"        ; match an operator
+          "operator\\>[ \t]*"
+          "\\(()\\|[^(]*\\)"                  ; special case for `()' operator
+       "\\)"
+
+       "[ \t]*([^)]*)[ \t]*[^ \t;]"           ; followed by ws, arg list,
+                                              ; require something other than
+                                              ; a `;' after the (...) to
+                                              ; avoid prototypes.  Can't
+                                              ; catch cases with () inside
+                                              ; the parentheses surrounding
+                                              ; the parameters.  e.g.:
+                                              ; `int foo(int a=bar()) {...}'
+       )) 1)
+    ;; Special case to match a line like `main() {}'
+    ;; e.g. no return type, not even on the previous line.
+    (nil
+     (, 
+      (concat
+       "^"
+       "\\([a-zA-Z_][a-zA-Z0-9_:<>~]*\\)"     ; match function name
+       "[ \t]*([^)]*)[ \t]*[^ \t;]"           ; see above
+       )) 1)
+    ;; Special case for definitions using phony prototype macros like:
+    ;; `int main _PROTO( (int argc,char *argv[]) )'.
+    ;; This case is only included if cc-imenu-c-prototype-macro-regexp is set.
+    ;; Only supported in c-code, so no `:<>~' chars in function name!
+    (,@ (if cc-imenu-c-prototype-macro-regexp
+            (` ((nil
+                 (,
+                  (concat
+                   "^\\<.*"                   ; line MUST start with word char
+                   "[^a-zA-Z0-9_]"            ; match any non-identifier char
+                   "\\([a-zA-Z_][a-zA-Z0-9_]*\\)"       ; match function name
+                   "[ \t]*"                   ; whitespace before macro name
+                   cc-imenu-c-prototype-macro-regexp
+                   "[ \t]*("                  ; ws followed by first paren.
+                   "[ \t]*([^)]*)[ \t]*[^ \t;]" ; see above
+                   )) 1)))))
+    ;; General function name regexp
+    (nil
+     (, 
+      (concat
+       "^\\<.*"                               ; line MUST start with word char
+       "[^a-zA-Z0-9_:<>~]"                    ; match any non-identifier char
+       "\\([a-zA-Z_][a-zA-Z0-9_:<>~]*\\)"     ; match function name
+       "[ \t]*([^)]*)[ \t]*[^ \t;]"           ; see above
+       )) 1)
+    ;; Class definitions
     ("Class" 
      (, (concat 
- 	 "^"				      ; beginning of line is required
- 	 "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a "template <...>"
- 	 "class[ \t]+"
- 	 "\\([a-zA-Z0-9_]+\\)"		      ; the string we want to get
- 	 "[ \t]*[:{]"
- 	 )) 2)))
+         "^"                                  ; beginning of line is required
+         "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a `template <...>'
+         "class[ \t]+"
+         "\\([a-zA-Z0-9_]+\\)"                ; the string we want to get
+         "[ \t]*[:{]"
+         )) 2)))
   "Imenu generic expression for C++ mode.  See `imenu-generic-expression'.")
  
 (defvar cc-imenu-c-generic-expression
   cc-imenu-c++-generic-expression
   "Imenu generic expression for C mode.  See `imenu-generic-expression'.")
 
-;(defvar cc-imenu-objc-generic-expression
-;  ())
-; Please contribute one!
-
 (defvar cc-imenu-java-generic-expression
   (`
    ((nil
        "\\([ \t]*\\)+("
        "\\([a-zA-Z,_1-9\n \t]*[[]?[]]?\\)*"   ; arguments
        ")[ \t]*"
-       "[^;(]"
+;       "[^;(]"
        "[,a-zA-Z_1-9\n \t]*{"               
        )) 6)))
   "Imenu generic expression for Java mode.  See `imenu-generic-expression'.")
 
+(defvar cc-imenu-objc-generic-expression 
+  (concat 
+   ;; For C 
+   ;; Pick a token by (match-string 6)
+   (car (cdr (car cc-imenu-c++-generic-expression))) 
+   ;; For Objective-C
+   ;; Pick a token by (match-string 8)
+   "\\|\\("					     
+   "^[-+][:a-zA-Z0-9()*_<>\n\t ]*[;{]"        ; Methods
+   "\\|" 
+   "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*:"  
+   "\\|" 
+   "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*([a-zA-Z0-9_]+)"
+   "\\|" 
+   ;; For NSObject, NSProxy and Object... They don't have super class.
+   "^@interface[\t ]+[a-zA-Z0-9_]+[\t ]*.*$"
+   "\\|" 
+   "^@implementation[\t ]+[a-zA-Z0-9_]+[\t ]*([a-zA-Z0-9_]+)"
+   "\\|" 
+   "^@implementation[\t ]+[a-zA-Z0-9_]+"
+   "\\|" 
+   "^@protocol[\t ]+[a-zA-Z0-9_]+" "\\)")
+  "Imenu generic expression for ObjC mode.  See `imenu-generic-expression'.")
+
+
+;; Imenu support for objective-c uses functions.
+(defsubst cc-imenu-objc-method-to-selector (method)
+  "Return the objc selector style string of METHOD.
+Example: 
+- perform: (SEL)aSelector withObject: object1 withObject: object2; /* METHOD */
+=>
+-perform:withObject:withObject:withObject: /* selector */"
+  (let ((return "")			; String to be returned
+	(p 0)				; Current scanning position in METHOD  
+	(pmax (length method))		; 
+	char				; Current scanning target
+	(betweenparen 0)		; CHAR is in parentheses.
+	argreq				; An argument is required.
+	inargvar)			; position of CHAR is in an argument variable.
+    (while (< p pmax)
+      (setq char (aref method p)
+	    p (1+ p))
+      (cond
+       ;; Is CHAR part of a objc token?
+       ((and (not inargvar)     ; Ignore if CHAR is part of an argument variable.
+	     (eq 0 betweenparen) ; Ignore if CHAR is in parentheses.
+	     (or (and (<= ?a char) (<= char ?z))
+		 (and (<= ?A char) (<= char ?Z))
+		 (and (<= ?0 char) (<= char ?9))
+		 (= ?_ char)))
+	(if argreq	
+	    (setq inargvar t
+		  argreq nil)
+	  (setq return (concat return (char-to-string char)))))
+       ;; Or a white space?
+       ((and inargvar (or (eq ?\  char) (eq ?\n char)) 
+	     (setq inargvar nil)))
+       ;; Or a method separator?
+       ;; If a method separator, the next token will be an argument variable.
+       ((eq ?: char)			
+	(setq argreq t			
+	      return (concat return (char-to-string char))))
+       ;; Or an open parentheses?
+       ((eq ?\( char)
+	(setq betweenparen (1+ betweenparen)))
+       ;; Or a close parentheses?
+       ((eq ?\) char)
+	(setq betweenparen (1- betweenparen)))))
+    return))
+
+(defun cc-imenu-objc-remove-white-space  (str)
+  "Remove all spaces and tabs from STR."
+  (let ((return "")
+	(p 0)
+	(max (length str)) 
+	char)
+    (while (< p max)
+      (setq char (aref str p))
+      (setq p (1+ p))
+      (if (or (= char ?\ ) (= char ?\t))
+	  ()
+	(setq return (concat return (char-to-string char)))))
+    return))
+
+(defun cc-imenu-objc-function ()
+  "imenu supports for objc-mode."
+  (let (methodlist
+	clist
+	(C 6)
+	(OBJC 8)
+	langnum
+	(classcount 0)
+	toplist
+	stupid
+	str
+	str2 
+	(intflen (length "@interface"))
+	(implen  (length "@implementation"))
+	(prtlen  (length "@protocol"))
+	bufsubst-fun)
+    ;;
+    ;; Does this emacs has buffer-substring-no-properties? 
+    ;;
+    (fset 'bufsubst-fun (if (fboundp 'buffer-substring-no-properties)
+			    (symbol-function 'buffer-substring-no-properties)
+			  (symbol-function 'buffer-substring)))
+    (goto-char (point-max)) 
+    (imenu-progress-message stupid 0)
+    ;;
+    (while (re-search-backward cc-imenu-objc-generic-expression nil t)
+      (imenu-progress-message stupid)
+      (setq langnum (if (match-beginning C) C OBJC))
+      (setq str (bufsubst-fun (match-beginning langnum) (match-end langnum)))
+      ;;
+      (cond 
+       ;;
+       ;; C
+       ;;
+       ((eq langnum C)
+	(setq clist (cons (cons str (match-beginning langnum)) clist)))
+       ;;
+       ;; ObjC
+       ;; 
+       ;; An instance Method
+       ((eq (aref str 0) ?-)
+	(setq str (concat "-" (cc-imenu-objc-method-to-selector str)))
+	(setq methodlist (cons (cons str
+			      (match-beginning langnum))
+			methodlist)))
+       ;; A factory Method
+       ((eq (aref str 0) ?+)
+	(setq str (concat "+" (cc-imenu-objc-method-to-selector str)))
+	(setq methodlist (cons (cons str
+			      (match-beginning langnum))
+			methodlist)))
+       ;; Interface or implementation or protocol 
+       ((eq (aref str 0) ?@)
+	(setq classcount (1+ classcount))
+	(cond 
+	 ((and (> (length str) implen)
+	       (string= (substring  str 0 implen) "@implementation"))
+	  (setq str (substring str implen)
+		str2 "@implementation"))
+	 ((string= (substring  str 0 intflen) "@interface")
+	  (setq str (substring str intflen)
+		str2 "@interface"))
+	 ((string= (substring  str 0 prtlen) "@protocol")
+	  (setq str (substring str prtlen)
+		str2 "@protocol")))
+	(setq str (cc-imenu-objc-remove-white-space str))
+	(setq methodlist (cons (cons str2
+			      (match-beginning langnum))
+			       methodlist))
+	(setq toplist (cons nil (cons (cons str
+					  methodlist) toplist))
+	      methodlist nil))))
+    ;; 
+    (imenu-progress-message stupid 100)
+    (if (eq (car toplist) nil)
+	(setq toplist (cdr toplist)))
+
+    ;; In this buffer, there is only one or zero @{interface|implementation|protocol}.
+    (if (< classcount 2)
+	(let ((classname (car (car toplist)))
+	      (p (cdr (car (cdr (car toplist)))))
+	      last)
+	  (setq toplist (cons (cons classname p) (cdr (cdr (car toplist)))))
+	  ;; Add C lang token
+	  (if clist
+	      (progn
+		(setq last toplist)
+		(while (cdr last)
+		  (setq last (cdr last)))
+		(setcdr last clist))))
+      ;; Add C lang tokens as a sub menu
+      (setq toplist (cons (cons "C" clist) toplist)))
+    ;;
+    toplist
+    ))
+
 
 (provide 'cc-menus)
 ;;; cc-menus.el ends here

lisp/cc-mode/cc-mode.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    a long, long, time ago. adapted from the original c-mode.el
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; NOTE: Read the commentary below for the right way to submit bug reports!
  	c-class-key c-ObjC-class-key
 	c-baseclass-key nil
 	c-access-key c-ObjC-access-key
-	c-method-key c-ObjC-method-key)
+	c-method-key c-ObjC-method-key
+	imenu-create-index-function 'cc-imenu-objc-function)
   (run-hooks 'c-mode-common-hook)
   (run-hooks 'objc-mode-hook)
   (c-update-modeline))
 ;;;###autoload
 (defun idl-mode ()
   "Major mode for editing CORBA's IDL code.
-To submit a problem report, enter `\\[c-submit-bug-report]' from an
+To submit a problem report, enter `\\[c-submit-bug-report]' from a
 idl-mode buffer.  This automatically sets up a mail buffer with
 version information already added.  You just need to add a description
 of the problem, including a reproducible test case, and send the
 
 
 ;; defuns for submitting bug reports
-(defconst c-version "5.17"
+(defconst c-version "5.18"
   "CC Mode version number.")
 
 (defconst c-mode-help-address

lisp/cc-mode/cc-styles.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.
   ;; variables first to the `cc-mode' style before instituting the new
   ;; style.  Only do this once!
   (or (assoc "cc-mode" c-style-alist)
-      (progn
+      (let (copyfunc)
+	;; use built-in copy-tree if its there.
+	(if (fboundp 'copy-tree)
+	    (setq copyfunc (symbol-function 'copy-tree))
+	  (setq copyfunc (lambda (tree)
+			    (if (consp tree)
+				(cons (funcall copyfunc (car tree))
+				      (funcall copyfunc (cdr tree)))
+			      tree))))
 	(c-add-style "cc-mode"
 		     (mapcar
 		      (function
 		       (lambda (var)
 			 (let ((val (symbol-value var)))
-			   (cons var (if (atom val) val
-				       (copy-sequence val)
+			   (cons var (if (atom val)
+					 val
+				       (funcall copyfunc val)
 				       ))
 			   )))
 		      '(c-backslash-column

lisp/cc-mode/cc-vars.el

 ;;             1985 Richard M. Stallman
 ;; Maintainer: cc-mode-help@python.org
 ;; Created:    22-Apr-1997 (split from cc-mode.el)
-;; Version:    5.17
+;; Version:    5.18
 ;; Keywords:   c languages oop
 
 ;; This file is part of GNU Emacs.

lisp/cc-mode/custom-load.el

+(custom-put 'c 'custom-loads '("cc-vars"))

lisp/cl/cl-defs.el

-
-;;;### (autoloads (cl-macroexpand-all cl-prettyexpand cl-progv-before hash-table-count hash-table-p cl-puthash cl-hash-lookup make-hash-table cl-do-remf cl-set-getf getf get* tailp list-length nreconc revappend notevery notany every some map cl-mapcar-many concatenate random-state-p make-random-state random* signum rem* mod* round* truncate* ceiling* floor* isqrt lcm gcd cl-float-limits cl-set-frame-visible-p cl-map-overlays cl-map-intervals cl-map-keymap-recursively cl-map-keymap mapcon mapcan mapl mapc maplist equalp coerce) "cl-extra" "cl/cl-extra.el" (12636 41267))
-;;; Generated autoloads from cl/cl-extra.el
+;;; cl-defs.el --- Manually maintained autoloads for cl
 
-(autoload 'coerce "cl-extra" "\
-Coerce OBJECT to type TYPE.
-TYPE is a Common Lisp type specifier." nil nil)
+;; Copyright (C) 1993, 1997 Free Software Foundation, Inc.
 
-(autoload 'equalp "cl-extra" "\
-T if two Lisp objects have similar structures and contents.
-This is like `equal', except that it accepts numerically equal
-numbers of different types (float vs. integer), and also compares
-strings case-insensitively." nil nil)
+;; Maintainer: XEmacs Development Team
+;; Keywords: extensions, lisp
 
-(autoload 'maplist "cl-extra" "\
-Map FUNC to each sublist of LIST or LISTS.
-Like `mapcar', except applies to lists and their cdr's rather than to
-the elements themselves." nil nil)
+;; This file is part of XEmacs.
 
-(autoload 'mapc "cl-extra" "\
-Like `mapcar', but does not accumulate values returned by the function." nil nil)
+;; XEmacs 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.
 
-(autoload 'mapl "cl-extra" "\
-Like `maplist', but does not accumulate values returned by the function." nil nil)
+;; XEmacs 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.
 
-(autoload 'mapcan "cl-extra" "\
-Like `mapcar', but nconc's together the values returned by the function." nil nil)
+;; You should have received a copy of the GNU General Public License
+;; along with XEmacs; see the file COPYING.  If not, write to the 
+;; Free Software Foundation, 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
 
-(autoload 'mapcon "cl-extra" "\
-Like `maplist', but nconc's together the values returned by the function." nil nil)
+;;; Synched up with: Not synched.
 
-(autoload 'cl-map-keymap "cl-extra" nil nil nil)
+;;; Commentary:
+ 
+;; At one time this file appears to have been generated by autoload.el.
 
-(autoload 'cl-map-keymap-recursively "cl-extra" nil nil nil)
-
-(autoload 'cl-map-intervals "cl-extra" nil nil nil)
-
-(autoload 'cl-map-overlays "cl-extra" nil nil nil)
-
-(autoload 'cl-set-frame-visible-p "cl-extra" nil nil nil)
-
-(autoload 'cl-float-limits "cl-extra" nil nil nil)
-
-(autoload 'gcd "cl-extra" "\
-Return the greatest common divisor of the arguments." nil nil)
-
-(autoload 'lcm "cl-extra" "\
-Return the least common multiple of the arguments." nil nil)
-
-(autoload 'isqrt "cl-extra" "\
-Return the integer square root of the argument." nil nil)
-
-(autoload 'floor* "cl-extra" "\
-Return a list of the floor of X and the fractional part of X.
-With two arguments, return floor and remainder of their quotient." nil nil)
-
-(autoload 'ceiling* "cl-extra" "\
-Return a list of the ceiling of X and the fractional part of X.
-With two arguments, return ceiling and remainder of their quotient." nil nil)
-
-(autoload 'truncate* "cl-extra" "\
-Return a list of the integer part of X and the fractional part of X.
-With two arguments, return truncation and remainder of their quotient." nil nil)
-
-(autoload 'round* "cl-extra" "\
-Return a list of X rounded to the nearest integer and the remainder.
-With two arguments, return rounding and remainder of their quotient." nil nil)
-
-(autoload 'mod* "cl-extra" "\
-The remainder of X divided by Y, with the same sign as Y." nil nil)
-
-(autoload 'rem* "cl-extra" "\
-The remainder of X divided by Y, with the same sign as X." nil nil)
-
-(autoload 'signum "cl-extra" "\
-Return 1 if A is positive, -1 if negative, 0 if zero." nil nil)
-
-(autoload 'random* "cl-extra" "\
-Return a random nonnegative number less than LIM, an integer or float.
-Optional second arg STATE is a random-state object." nil nil)
-
-(autoload 'make-random-state "cl-extra" "\
-Return a copy of random-state STATE, or of `*random-state*' if omitted.
-If STATE is t, return a new state object seeded from the time of day." nil nil)
-
-(autoload 'random-state-p "cl-extra" "\
-Return t if OBJECT is a random-state object." nil nil)
-
-(autoload 'concatenate "cl-extra" "\
-Concatenate, into a sequence of type TYPE, the argument SEQUENCES." nil nil)
-
-(autoload 'cl-mapcar-many "cl-extra" nil nil nil)
-
-(autoload 'map "cl-extra" "\
-Map a function across one or more sequences, returning a sequence.
-TYPE is the sequence type to return, FUNC is the function, and SEQS
-are the argument sequences." nil nil)
-
-(autoload 'some "cl-extra" "\
-Return true if PREDICATE is true of any element of SEQ or SEQs.
-If so, return the true (non-nil) value returned by PREDICATE." nil nil)
-
-(autoload 'every "cl-extra" "\
-Return true if PREDICATE is true of every element of SEQ or SEQs." nil nil)
-
-(autoload 'notany "cl-extra" "\
-Return true if PREDICATE is false of every element of SEQ or SEQs." nil nil)
-
-(autoload 'notevery "cl-extra" "\
-Return true if PREDICATE is false of some element of SEQ or SEQs." nil nil)
-
-(autoload 'revappend "cl-extra" "\
-Equivalent to (append (reverse X) Y)." nil nil)
-
-(autoload 'nreconc "cl-extra" "\
-Equivalent to (nconc (nreverse X) Y)." nil nil)
-
-(autoload 'list-length "cl-extra" "\
-Return the length of a list.  Return nil if list is circular." nil nil)
-
-(autoload 'tailp "cl-extra" "\
-Return true if SUBLIST is a tail of LIST." nil nil)
-
-(autoload 'get* "cl-extra" "\
-Return the value of SYMBOL's PROPNAME property, or DEFAULT if none." nil nil)
-
-(autoload 'getf "cl-extra" "\
-Search PROPLIST for property PROPNAME; return its value or DEFAULT.
-PROPLIST is a list of the sort returned by `symbol-plist'." nil nil)
-
-(autoload 'cl-set-getf "cl-extra" nil nil nil)
-
-(autoload 'cl-do-remf "cl-extra" nil nil nil)
-
-(autoload 'make-hash-table "cl-extra" "\
-Make an empty Common Lisp-style hash-table.
-If :test is `eq', this can use Lucid Emacs built-in hash-tables.
-In non-Lucid Emacs, or with non-`eq' test, this internally uses a-lists.
-Keywords supported:  :test :size
-The Common Lisp keywords :rehash-size and :rehash-threshold are ignored." nil nil)
-
-(autoload 'cl-hash-lookup "cl-extra" nil nil nil)
-
-(autoload 'cl-puthash "cl-extra" nil nil nil)
-
-(autoload 'hash-table-p "cl-extra" "\
-Return t if OBJECT is a hash table." nil nil)
-
-(autoload 'hash-table-count "cl-extra" "\
-Return the number of entries in HASH-TABLE." nil nil)
-
-(autoload 'cl-progv-before "cl-extra" nil nil nil)
-
-(autoload 'cl-prettyexpand "cl-extra" nil nil nil)
-
-(autoload 'cl-macroexpand-all "cl-extra" "\
-Expand all macro calls through a Lisp FORM.
-This also does some trivial optimizations to make the form prettier." nil nil)
-
-;;;***
-
-;;;### (autoloads (tree-equal nsublis sublis nsubst-if-not nsubst-if nsubst subst-if-not subst-if subsetp nset-exclusive-or set-exclusive-or nset-difference set-difference nintersection intersection nunion union rassoc-if-not rassoc-if rassoc* assoc-if-not assoc-if assoc* cl-adjoin member-if-not member-if member* merge stable-sort sort* search mismatch count-if-not count-if count position-if-not position-if position find-if-not find-if find nsubstitute-if-not nsubstitute-if nsubstitute substitute-if-not substitute-if substitute delete-duplicates remove-duplicates delete-if-not delete-if delete* remove-if-not remove-if remove* remove remq replace fill reduce) "cl-seq" "cl/cl-seq.el" (12559 39909))
-;;; Generated autoloads from cl/cl-seq.el
-
-(autoload 'reduce "cl-seq" "\
-Reduce two-argument FUNCTION across SEQUENCE.
-Keywords supported:  :start :end :from-end :initial-value :key" nil nil)
-
-(autoload 'fill "cl-seq" "\
-Fill the elements of SEQ with ITEM.
-Keywords supported:  :start :end" nil nil)
-
-(autoload 'replace "cl-seq" "\
-Replace the elements of SEQ1 with the elements of SEQ2.
-SEQ1 is destructively modified, then returned.
-Keywords supported:  :start1 :end1 :start2 :end2" nil nil)
-
-(autoload 'remq "cl-seq" nil nil nil)
-
-(autoload 'remove "cl-seq" nil nil nil)
-
-(autoload 'remove* "cl-seq" "\
-Remove all occurrences of ITEM in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :test :test-not :key :count :start :end :from-end" nil nil)
-
-(autoload 'remove-if "cl-seq" "\
-Remove all items satisfying PREDICATE in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'remove-if-not "cl-seq" "\
-Remove all items not satisfying PREDICATE in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'delete* "cl-seq" "\
-Remove all occurrences of ITEM in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :test :test-not :key :count :start :end :from-end" nil nil)
-
-(autoload 'delete-if "cl-seq" "\
-Remove all items satisfying PREDICATE in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'delete-if-not "cl-seq" "\
-Remove all items not satisfying PREDICATE in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'remove-duplicates "cl-seq" "\
-Return a copy of SEQ with all duplicate elements removed.
-Keywords supported:  :test :test-not :key :start :end :from-end" nil nil)
-
-(autoload 'delete-duplicates "cl-seq" "\
-Remove all duplicate elements from SEQ (destructively).
-Keywords supported:  :test :test-not :key :start :end :from-end" nil nil)
-
-(autoload 'substitute "cl-seq" "\
-Substitute NEW for OLD in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :test :test-not :key :count :start :end :from-end" nil nil)
-
-(autoload 'substitute-if "cl-seq" "\
-Substitute NEW for all items satisfying PREDICATE in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'substitute-if-not "cl-seq" "\
-Substitute NEW for all items not satisfying PREDICATE in SEQ.
-This is a non-destructive function; it makes a copy of SEQ if necessary
-to avoid corrupting the original SEQ.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'nsubstitute "cl-seq" "\
-Substitute NEW for OLD in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :test :test-not :key :count :start :end :from-end" nil nil)
-
-(autoload 'nsubstitute-if "cl-seq" "\
-Substitute NEW for all items satisfying PREDICATE in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'nsubstitute-if-not "cl-seq" "\
-Substitute NEW for all items not satisfying PREDICATE in SEQ.
-This is a destructive function; it reuses the storage of SEQ whenever possible.
-Keywords supported:  :key :count :start :end :from-end" nil nil)
-
-(autoload 'find "cl-seq" "\
-Find the first occurrence of ITEM in LIST.
-Return the matching ITEM, or nil if not found.
-Keywords supported:  :test :test-not :key :start :end :from-end" nil nil)
-
-(autoload 'find-if "cl-seq" "\
-Find the first item satisfying PREDICATE in LIST.
-Return the matching ITEM, or nil if not found.
-Keywords supported:  :key :start :end :from-end" nil nil)
-
-(autoload 'find-if-not "cl-seq" "\
-Find the first item not satisfying PREDICATE in LIST.
-Return the matching ITEM, or nil if not found.
-Keywords supported:  :key :start :end :from-end" nil nil)
-
-(autoload 'position "cl-seq" "\
-Find the first occurrence of ITEM in LIST.
-Return the index of the matching item, or nil if not found.
-Keywords supported:  :test :test-not :key :start :end :from-end" nil nil)
-
-(autoload 'position-if "cl-seq" "\
-Find the first item satisfying PREDICATE in LIST.
-Return the index of the matching item, or nil if not found.
-Keywords supported:  :key :start :end :from-end" nil nil)
-
-(autoload 'position-if-not "cl-seq" "\
-Find the first item not satisfying PREDICATE in LIST.
-Return the index of the matching item, or nil if not found.
-Keywords supported:  :key :start :end :from-end" nil nil)
-
-(autoload 'count "cl-seq" "\
-Count the number of occurrences of ITEM in LIST.
-Keywords supported:  :test :test-not :key :start :end" nil nil)
-
-(autoload 'count-if "cl-seq" "\
-Count the number of items satisfying PREDICATE in LIST.
-Keywords supported:  :key :start :end" nil nil)
-
-(autoload 'count-if-not "cl-seq" "\
-Count the number of items not satisfying PREDICATE in LIST.
-Keywords supported:  :key :start :end" nil nil)
-
-(autoload 'mismatch "cl-seq" "\
-Compare SEQ1 with SEQ2, return index of first mismatching element.
-Return nil if the sequences match.  If one sequence is a prefix of the
-other, the return value indicates the end of the shorted sequence.
-Keywords supported:  :test :test-not :key :start1 :end1 :start2 :end2 :from-end" nil nil)
-
-(autoload 'search "cl-seq" "\
-Search for SEQ1 as a subsequence of SEQ2.
-Return the index of the leftmost element of the first match found;
-return nil if there are no matches.
-Keywords supported:  :test :test-not :key :start1 :end1 :start2 :end2 :from-end" nil nil)
-
-(autoload 'sort* "cl-seq" "\
-Sort the argument SEQUENCE according to PREDICATE.
-This is a destructive function; it reuses the storage of SEQUENCE if possible.
-Keywords supported:  :key" nil nil)
-
-(autoload 'stable-sort "cl-seq" "\
-Sort the argument SEQUENCE stably according to PREDICATE.
-This is a destructive function; it reuses the storage of SEQUENCE if possible.
-Keywords supported:  :key" nil nil)
-
-(autoload 'merge "cl-seq" "\
-Destructively merge the two sequences to produce a new sequence.
-TYPE is the sequence type to return, SEQ1 and SEQ2 are the two
-argument sequences, and PRED is a `less-than' predicate on the elements.
-Keywords supported:  :key" nil nil)
-
-(autoload 'member* "cl-seq" "\
-Find the first occurrence of ITEM in LIST.
-Return the sublist of LIST whose car is ITEM.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'member-if "cl-seq" "\
-Find the first item satisfying PREDICATE in LIST.
-Return the sublist of LIST whose car matches.
-Keywords supported:  :key" nil nil)
-
-(autoload 'member-if-not "cl-seq" "\
-Find the first item not satisfying PREDICATE in LIST.
-Return the sublist of LIST whose car matches.
-Keywords supported:  :key" nil nil)
-
-(autoload 'cl-adjoin "cl-seq" nil nil nil)
-
-(autoload 'assoc* "cl-seq" "\
-Find the first item whose car matches ITEM in LIST.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'assoc-if "cl-seq" "\
-Find the first item whose car satisfies PREDICATE in LIST.
-Keywords supported:  :key" nil nil)
-
-(autoload 'assoc-if-not "cl-seq" "\
-Find the first item whose car does not satisfy PREDICATE in LIST.
-Keywords supported:  :key" nil nil)
-
-(autoload 'rassoc* "cl-seq" "\
-Find the first item whose cdr matches ITEM in LIST.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'rassoc-if "cl-seq" "\
-Find the first item whose cdr satisfies PREDICATE in LIST.
-Keywords supported:  :key" nil nil)
-
-(autoload 'rassoc-if-not "cl-seq" "\
-Find the first item whose cdr does not satisfy PREDICATE in LIST.
-Keywords supported:  :key" nil nil)
-
-(autoload 'union "cl-seq" "\
-Combine LIST1 and LIST2 using a set-union operation.
-The result list contains all items that appear in either LIST1 or LIST2.
-This is a non-destructive function; it makes a copy of the data if necessary
-to avoid corrupting the original LIST1 and LIST2.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nunion "cl-seq" "\
-Combine LIST1 and LIST2 using a set-union operation.
-The result list contains all items that appear in either LIST1 or LIST2.
-This is a destructive function; it reuses the storage of LIST1 and LIST2
-whenever possible.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'intersection "cl-seq" "\
-Combine LIST1 and LIST2 using a set-intersection operation.
-The result list contains all items that appear in both LIST1 and LIST2.
-This is a non-destructive function; it makes a copy of the data if necessary
-to avoid corrupting the original LIST1 and LIST2.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nintersection "cl-seq" "\
-Combine LIST1 and LIST2 using a set-intersection operation.
-The result list contains all items that appear in both LIST1 and LIST2.
-This is a destructive function; it reuses the storage of LIST1 and LIST2
-whenever possible.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'set-difference "cl-seq" "\
-Combine LIST1 and LIST2 using a set-difference operation.
-The result list contains all items that appear in LIST1 but not LIST2.
-This is a non-destructive function; it makes a copy of the data if necessary
-to avoid corrupting the original LIST1 and LIST2.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nset-difference "cl-seq" "\
-Combine LIST1 and LIST2 using a set-difference operation.
-The result list contains all items that appear in LIST1 but not LIST2.
-This is a destructive function; it reuses the storage of LIST1 and LIST2
-whenever possible.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'set-exclusive-or "cl-seq" "\
-Combine LIST1 and LIST2 using a set-exclusive-or operation.
-The result list contains all items that appear in exactly one of LIST1, LIST2.
-This is a non-destructive function; it makes a copy of the data if necessary
-to avoid corrupting the original LIST1 and LIST2.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nset-exclusive-or "cl-seq" "\
-Combine LIST1 and LIST2 using a set-exclusive-or operation.
-The result list contains all items that appear in exactly one of LIST1, LIST2.
-This is a destructive function; it reuses the storage of LIST1 and LIST2
-whenever possible.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'subsetp "cl-seq" "\
-True if LIST1 is a subset of LIST2.
-I.e., if every element of LIST1 also appears in LIST2.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'subst-if "cl-seq" "\
-Substitute NEW for elements matching PREDICATE in TREE (non-destructively).
-Return a copy of TREE with all matching elements replaced by NEW.
-Keywords supported:  :key" nil nil)
-
-(autoload 'subst-if-not "cl-seq" "\
-Substitute NEW for elts not matching PREDICATE in TREE (non-destructively).
-Return a copy of TREE with all non-matching elements replaced by NEW.
-Keywords supported:  :key" nil nil)
-
-(autoload 'nsubst "cl-seq" "\
-Substitute NEW for OLD everywhere in TREE (destructively).
-Any element of TREE which is `eql' to OLD is changed to NEW (via a call
-to `setcar').
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nsubst-if "cl-seq" "\
-Substitute NEW for elements matching PREDICATE in TREE (destructively).
-Any element of TREE which matches is changed to NEW (via a call to `setcar').
-Keywords supported:  :key" nil nil)
-
-(autoload 'nsubst-if-not "cl-seq" "\
-Substitute NEW for elements not matching PREDICATE in TREE (destructively).
-Any element of TREE which matches is changed to NEW (via a call to `setcar').
-Keywords supported:  :key" nil nil)
-
-(autoload 'sublis "cl-seq" "\
-Perform substitutions indicated by ALIST in TREE (non-destructively).
-Return a copy of TREE with all matching elements replaced.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'nsublis "cl-seq" "\
-Perform substitutions indicated by ALIST in TREE (destructively).
-Any matching element of TREE is changed via a call to `setcar'.
-Keywords supported:  :test :test-not :key" nil nil)
-
-(autoload 'tree-equal "cl-seq" "\
-T if trees X and Y have `eql' leaves.
-Atoms are compared by `eql'; cons cells are compared recursively.
-Keywords supported:  :test :test-not :key" nil nil)
+;;; Code:
 
 ;;;***
 
 and then returning foo." nil 'macro)
 
 ;;;***
+
+;;; cl-defs.el ends here

lisp/comint/custom-load.el

-(custom-put 'background 'custom-loads '("background"))
-(custom-put 'comint 'custom-loads '("comint-xemacs" "comint" "telnet"))
-(custom-put 'comint-completion 'custom-loads '("comint"))
-(custom-put 'comint-source 'custom-loads '("comint"))
-(custom-put 'rlogin 'custom-loads '("rlogin"))
-(custom-put 'shell 'custom-loads '("shell"))
-(custom-put 'shell-directories 'custom-loads '("shell"))
-(custom-put 'shell-faces 'custom-loads '("shell"))
 (custom-put 'ssh 'custom-loads '("ssh"))
 (custom-put 'telnet 'custom-loads '("telnet"))
+(custom-put 'shell 'custom-loads '("shell"))
+(custom-put 'comint-completion 'custom-loads '("comint"))
+(custom-put 'comint 'custom-loads '("comint" "telnet"))
+(custom-put 'rlogin 'custom-loads '("rlogin"))
+(custom-put 'shell-faces 'custom-loads '("shell"))
+(custom-put 'shell-directories 'custom-loads '("shell"))
+(custom-put 'comint-source 'custom-loads '("comint"))
+(custom-put 'processes 'custom-loads '("background" "comint" "rlogin" "shell" "ssh"))
+(custom-put 'background 'custom-loads '("background"))
+(custom-put 'unix 'custom-loads '("rlogin" "shell" "ssh"))

lisp/custom/ChangeLog

+Mon Sep 15 19:40:19 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.9958 released.
+
+Mon Sep 15 19:23:36 1997  Hrvoje Niksic  <hniksic@srce.hr>
+
+	* cus-edit.el (custom-menu-create): First load symbol
+ 	dependencies, then create menus.  
+	[ Patch modified by Per Abrahamsen ]
+
+Mon Sep 08 19:56:06 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.9957 released.
+
+Tue Aug 26 19:43:14 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-declare-variable): Changed default initializer
+	to `custom-initialize-reset'.
+
+	* cus-edit.el (custom-variable-save): Fixed doc string.
+
+Fri Aug 15 12:34:58 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-edit.el (custom-variable-menu): Make it clear that `Lisp
+	mode' edit the initial lisp expression.
+
 Wed Aug 13 13:04:36 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
 	* Version 1.9956 released.

lisp/custom/cus-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.
     ("Don't show as Lisp expression" custom-variable-edit 
      (lambda (widget)
        (eq (widget-get widget :custom-form) 'lisp)))
-    ("Show as Lisp expression" custom-variable-edit-lisp
+    ("Show initial Lisp expression" custom-variable-edit-lisp
      (lambda (widget)
        (eq (widget-get widget :custom-form) 'edit))))
   "Alist of actions for the `custom-variable' widget.
     (custom-redraw-magic widget)))
 
 (defun custom-variable-save (widget)
-  "Set the default value for the variable being edited by WIDGET."
+  "Set and save the value for the variable being edited by WIDGET."
   (let* ((form (widget-get widget :custom-form))
 	 (state (widget-get widget :custom-state))
 	 (child (car (widget-get widget :children)))
   (let* ((item (vector (custom-unlispify-menu-entry symbol)
 		       `(customize-group ',symbol)
 		       t)))
-    (if (and (or (not (boundp 'custom-menu-nesting))
-		 (>= custom-menu-nesting 0))
-	     (< (length (get symbol 'custom-group)) widget-menu-max-size))
-	(let ((custom-prefix-list (custom-prefix-add symbol
-						     custom-prefix-list))
-	      (members (custom-sort-items (get symbol 'custom-group)
-					  custom-menu-sort-alphabetically
-					  custom-menu-order-groups)))
-	  (custom-load-symbol symbol)
-	  `(,(custom-unlispify-menu-entry symbol t)
-	    ,item
-	    "--"
-	    ,@(mapcar (lambda (entry)
-			(widget-apply (if (listp (nth 1 entry))
-					  (nth 1 entry)
-					(list (nth 1 entry)))
-				      :custom-menu (nth 0 entry)))
-		      members)))
-      item)))
+    ;; Item is the entry for creating a menu buffer for SYMBOL.
+    (if (< custom-menu-nesting 0)
+	;; We don't nest any further.
+	item
+      ;; We may nest, if the menu is not too big.
+      (custom-load-symbol symbol)
+      (if (< (length (get symbol 'custom-group)) widget-menu-max-size)
+	  ;; The menu is not too big.
+	  (let ((custom-prefix-list (custom-prefix-add symbol
+						       custom-prefix-list))
+		(members (custom-sort-items (get symbol 'custom-group)
+					    custom-menu-sort-alphabetically
+					    custom-menu-order-groups)))
+	    ;; Create the menu.
+	    `(,(custom-unlispify-menu-entry symbol t)
+	      ,item
+	      "--"
+	      ,@(mapcar (lambda (entry)
+			  (widget-apply (if (listp (nth 1 entry))
+					    (nth 1 entry)
+					  (list (nth 1 entry)))
+					:custom-menu (nth 0 entry)))
+			members)))
+	;; The menu was too big.
+	item))))
 
 ;;;###autoload
 (defun customize-menu-create (symbol &optional name)

lisp/custom/cus-face.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:

lisp/custom/custom-load.el

+(custom-put 'extensions 'custom-loads '("wid-edit"))
+(custom-put 'custom-buffer 'custom-loads '("cus-edit"))
+(custom-put 'custom-faces 'custom-loads '("cus-edit"))
+(custom-put 'widgets 'custom-loads '("wid-browse" "wid-edit"))
+(custom-put 'environment 'custom-loads '("cus-edit"))
+(custom-put 'custom-menu 'custom-loads '("cus-edit"))
+(custom-put 'internal 'custom-loads '("cus-edit"))
+(custom-put 'hypermedia 'custom-loads '("wid-edit"))
+(custom-put 'applications 'custom-loads '("cus-edit"))
+(custom-put 'help 'custom-loads '("cus-edit"))
+(custom-put 'widget-browse 'custom-loads '("wid-browse"))
+(custom-put 'customize 'custom-loads '("wid-edit" "cus-edit" "cus-face"))
+(custom-put 'custom-browse 'custom-loads '("cus-edit"))
+(custom-put 'abbrev 'custom-loads '("cus-edit"))
+(custom-put 'programming 'custom-loads '("cus-edit"))
+(custom-put 'files 'custom-loads '("cus-edit"))
+(custom-put 'external 'custom-loads '("cus-edit"))
+(custom-put 'development 'custom-loads '("cus-edit"))
+(custom-put 'languages 'custom-loads '("cus-edit"))
+(custom-put 'faces 'custom-loads '("cus-edit" "wid-edit"))
 (custom-put 'emacs 'custom-loads '("cus-edit"))
+(custom-put 'processes 'custom-loads '("cus-edit"))
+(custom-put 'wp 'custom-loads '("cus-edit"))
 (custom-put 'editing 'custom-loads '("cus-edit"))
-(custom-put 'abbrev 'custom-loads '("cus-edit"))
-(custom-put 'matching 'custom-loads '())
-(custom-put 'mouse 'custom-loads '())
-(custom-put 'external 'custom-loads '("cus-edit"))
-(custom-put 'processes 'custom-loads '("cus-edit"))
-(custom-put 'programming 'custom-loads '("cus-edit"))
-(custom-put 'languages 'custom-loads '("cus-edit"))
-(custom-put 'lisp 'custom-loads '())
-(custom-put 'applications 'custom-loads '("cus-edit"))
-(custom-put 'calendar 'custom-loads '())
-(custom-put 'development 'custom-loads '("cus-edit"))
-(custom-put 'extensions 'custom-loads '("wid-edit"))
-(custom-put 'internal 'custom-loads '("cus-edit"))
-(custom-put 'maint 'custom-loads '())
-(custom-put 'environment 'custom-loads '("cus-edit"))
 (custom-put 'i18n 'custom-loads '("cus-edit"))
-(custom-put 'x 'custom-loads '())
-(custom-put 'frames 'custom-loads '())
-(custom-put 'data 'custom-loads '())
-(custom-put 'files 'custom-loads '("cus-edit"))
-(custom-put 'wp 'custom-loads '("cus-edit"))
-(custom-put 'faces 'custom-loads '("cus-edit" "wid-edit"))
-(custom-put 'hypermedia 'custom-loads '("wid-edit"))
-(custom-put 'help 'custom-loads '("cus-edit"))
-(custom-put 'local 'custom-loads '())
-(custom-put 'customize 'custom-loads '("cus-edit" "wid-edit" "cus-face"))
-(custom-put 'custom-faces 'custom-loads '("cus-edit"))
-(custom-put 'custom-browse 'custom-loads '("cus-edit"))
-(custom-put 'custom-buffer 'custom-loads '("cus-edit"))
-(custom-put 'custom-menu 'custom-loads '("cus-edit"))
-(custom-put 'alloc 'custom-loads '())
-(custom-put 'undo 'custom-loads '())
-(custom-put 'modeline 'custom-loads '())
-(custom-put 'fill 'custom-loads '())
-(custom-put 'editing-basics 'custom-loads '())
-(custom-put 'display 'custom-loads '())
-(custom-put 'execute 'custom-loads '())
-(custom-put 'dired 'custom-loads '())
-(custom-put 'limits 'custom-loads '())
-(custom-put 'debug 'custom-loads '())
-(custom-put 'minibuffer 'custom-loads '())
-(custom-put 'keyboard 'custom-loads '())
-(custom-put 'auto-save 'custom-loads '())
-(custom-put 'processes-basics 'custom-loads '())
-(custom-put 'windows 'custom-loads '())
-(custom-put 'custom-magic-faces 'custom-loads '("cus-edit"))
-(custom-put 'widget-browse 'custom-loads '("wid-browse"))
-(custom-put 'widgets 'custom-loads '("wid-browse" "wid-edit"))
-(custom-put 'widget-documentation 'custom-loads '("wid-edit"))
-(custom-put 'widget-faces 'custom-loads '("wid-edit"))
-(custom-put 'widget-button 'custom-loads '("wid-edit"))

lisp/custom/custom.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.
     (put symbol 'force-value nil))
   (when doc
     (put symbol 'variable-documentation doc))
-  (let ((initialize 'custom-initialize-set)
+  (let ((initialize 'custom-initialize-reset)
 	(requests nil))
     (while args 
       (let ((arg (car args)))

lisp/custom/wid-browse.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/custom/wid-edit.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/custom/widget-example.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 (require 'widget)

lisp/custom/widget.el

 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.9956
+;; Version: 1.9958
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;; This file is part of GNU Emacs.

lisp/edebug/custom-load.el

+(custom-put 'lisp 'custom-loads '("edebug"))
 (custom-put 'edebug 'custom-loads '("edebug"))

lisp/ediff/custom-load.el

-(custom-put 'ediff 'custom-loads '("ediff-diff" "ediff-merg" "ediff-mult" "ediff-ptch" "ediff-wind" "ediff" "ediff-init"))
+(custom-put 'tools 'custom-loads '("ediff"))
+(custom-put 'ediff-diff 'custom-loads '("ediff-diff"))
+(custom-put 'frames 'custom-loads '("ediff-wind"))
 (custom-put 'ediff-ptch 'custom-loads '("ediff-ptch"))
+(custom-put 'ediff-merge 'custom-loads '("ediff-merg"))
 (custom-put 'ediff-mult 'custom-loads '("ediff-mult"))
-(custom-put 'ediff-merge 'custom-loads '("ediff-merg"))
-(custom-put 'ediff-diff 'custom-loads '("ediff-diff"))
+(custom-put 'ediff 'custom-loads '("ediff-diff" "ediff-init" "ediff-merg" "ediff-mult" "ediff-ptch" "ediff-wind" "ediff"))

lisp/efs/auto-autoloads.el

 ;;; DO NOT MODIFY THIS FILE
-(if (featurep 'efs-autoloads) (error "Already loaded"))
+(if (featurep '-autoloads) (error "Already loaded"))
 
 ;;;### (autoloads nil "default-dir" "efs/default-dir.el")
 
 
 ;;;***
 
-(provide 'efs-autoloads)
+(provide '-autoloads)

lisp/efs/custom-load.el

+(custom-put 'environment 'custom-loads '("dired-faces"))
 (custom-put 'dired 'custom-loads '("dired-faces"))

lisp/emulators/custom-load.el

+(custom-put 'emulations 'custom-loads '("crisp"))
 (custom-put 'emulations-crisp 'custom-loads '("crisp"))

lisp/eterm/custom-load.el

 (custom-put 'term 'custom-loads '("term"))
+(custom-put 'processes 'custom-loads '("term"))
+(custom-put 'unix 'custom-loads '("term"))

lisp/games/custom-load.el

+(custom-put 'games 'custom-loads '("xmine"))
 (custom-put 'xmine 'custom-loads '("xmine"))

lisp/games/tetris.el

 ;; Modified: 1997-09-09, changed layout to work in a 22 line window
 ;; Modified: 1997-09-12
 ;;	fixed tetris-shift-down to deal with multiple rows correctly
+;; Modified: 1997-09-14, added tetris-setup-default-face
 ;; URL: ftp://sensei.co.uk/misc/tetris.el.gz
 ;; Tested with XEmacs 20.3-beta and Emacs 19.34
 ;; Reported to work with XEmacs 19.15 and 20.2
 			     nil 'remove-locale)
     (setq buffer-display-table tetris-display-table)))
 
+(defun tetris-setup-default-face ()
+  (cond ((eq tetris-display-mode 'glyph)
+	 (let* ((font-spec (face-property 'default 'font))
+		(name (font-name font-spec))
+		(glyph (aref tetris-display-table tetris-blank))
+		(height (glyph-height glyph)))
+	   (while (> (font-height font-spec) height)
+	     (setq name (x-find-smaller-font name))
+	     (add-spec-to-specifier font-spec name (current-buffer)))))))
+
 (defun tetris-hide-cursor ()
   (if (fboundp 'specifierp)
       (set-specifier text-cursor-visible-p nil (current-buffer))))
   (buffer-disable-undo (current-buffer))
 
   (tetris-initialize-display)
+  (tetris-setup-default-face)
   (tetris-set-display-table)
   (tetris-hide-cursor)
 

lisp/hm--html-menus/custom-load.el

-(custom-put 'tmpl-minor 'custom-loads '("tmpl-minor-mode"))
-(custom-put 'idd-drag-and-drop 'custom-loads '("internal-drag-and-drop"))
-(custom-put 'hm--html-indentation 'custom-loads '("hm--html-configuration"))
-(custom-put 'hm--html-hooks 'custom-loads '("hm--html-configuration"))
-(custom-put 'hm--html-display 'custom-loads '("hm--html-configuration"))
-(custom-put 'hm--html-keys 'custom-loads '("hm--html-configuration"))
-(custom-put 'hm--html-templates 'custom-loads '("hm--html-configuration"))
 (custom-put 'hm--html-links 'custom-loads '("hm--html-configuration"))
 (custom-put 'hm--html-menus 'custom-loads '("hm--html-configuration"))
+(custom-put 'mouse 'custom-loads '("internal-drag-and-drop"))
+(custom-put 'hm--html-display 'custom-loads '("hm--html-configuration"))
+(custom-put 'idd-drag-and-drop 'custom-loads '("internal-drag-and-drop"))
+(custom-put 'hypermedia 'custom-loads '("hm--html-configuration"))
+(custom-put 'hm--html-keys 'custom-loads '("hm--html-configuration"))
+(custom-put 'hm--html-indentation 'custom-loads '("hm--html-configuration"))
+(custom-put 'data 'custom-loads '("tmpl-minor-mode"))
+(custom-put 'hm--html-hooks 'custom-loads '("hm--html-configuration"))
 (custom-put 'hm--html-document-information 'custom-loads '("hm--html-configuration"))
+(custom-put 'hm--html 'custom-loads '("hm--html-configuration"))
+(custom-put 'hm--html-templates 'custom-loads '("hm--html-configuration"))
 (custom-put 'hm--html-files 'custom-loads '("hm--html-configuration"))
-(custom-put 'hm--html 'custom-loads '("hm--html-configuration"))
+(custom-put 'tmpl-minor 'custom-loads '("tmpl-minor-mode"))

lisp/hyperbole/auto-autoloads.el

 ;;; DO NOT MODIFY THIS FILE
-(if (featurep 'hyperbole-autoloads) (error "Already loaded"))
+(if (featurep '-autoloads) (error "Already loaded"))
 
 ;;;### (autoloads (hmail:compose) "hmail" "hyperbole/hmail.el")
 
 
 ;;;***
 
-(provide 'hyperbole-autoloads)
+(provide '-autoloads)

lisp/iso/auto-autoloads.el

 ;;; DO NOT MODIFY THIS FILE
 (if (featurep 'iso-autoloads) (error "Already loaded"))
-
 
 ;;;### (autoloads (iso-accents-mode) "iso-acc" "iso/iso-acc.el")
 

lisp/leim/auto-autoloads.el

 ;;; DO NOT MODIFY THIS FILE
 (if (featurep 'leim-autoloads) (error "Already loaded"))
-
 
 ;;;### (autoloads (quail-use-package) "quail" "leim/quail.el")
 

lisp/mh-e/custom-load.el

+(custom-put 'mail 'custom-loads '("mh-e"))
+(custom-put 'mh-hook 'custom-loads '("mh-e"))
 (custom-put 'mh-buffer 'custom-loads '("mh-utils"))
-(custom-put 'mh-hook 'custom-loads '("mh-e"))
+(custom-put 'mh-compose 'custom-loads '("mh-comp"))
 (custom-put 'mh 'custom-loads '("mh-comp" "mh-e" "mh-utils"))
-(custom-put 'mh-compose 'custom-loads '("mh-comp"))