I am going to change a bunch of packages to conform with the new Behaviors
interface. I will probably commit this in a week or so. I have cc'ed the
people listed as direct maintainers of the packages affected and would
appreciate it if they could integrate these changes in the upstream version.
Thanks,
Ben
From the xemacs-patches post:
From Ben Mon Jan 31 15:42:51 -0600 2005
Date: Mon, 31 Jan 2005
15:42:51 -0600
Message-Id: <zmyp8eck.fsf(a)xemacs.org>
From: Ben Wing <ben(a)xemacs.org>
To: xemacs-patches(a)xemacs.org, viteno(a)xemacs.org
Subject: [PATCH] Pre-behavior-ws changes, PLEASE REVIEW
X-Generated-By: Patcher version 3.6.2
PLEASE REVIEW!
This is a repost of a prior posting. Before integrating my workspace that
implements behaviors, I want to put in the necessary package changes.
Some of these changes are to packages that are externally maintained, but
I'm not exactly sure which, or who I should mail the changes to, or other
procedural-related stuff.
Norbert, could you comment?
NB This is minus the pending-del patch that caused controversy last time;
that is in a separate post.
Here is what I wrote before:
----------------------------
This contains patches from an old package ws. Most of them add support for
define-behavior, which I have heavily modified in another ws of mine. They
conditionalize on define-behavior-group, since the old version of
define-behavior doesn't allow arbitrary keywords and hence will break with
the new defns. (define-behavior-group exists only in the new ws.)
The idea is that the Tools menu is replaced with a menu generated by
behavior.el, where each behavior can specify the way to enable/disable,
other commands, a doc string, etc. Variables can also be frobbed because
the same ws adds support for auto-generated custom-defines.el, which
specifies all the vars of a package without the need to load the whole
package. A few changes have been added to make this work better.
One side effect of this is that PACKAGES MAY NO LONGER MODIFY MENUS
THEMSELVES. I've been trying to get package maintainers to be more
well-behaved about this for awhile (and have encountered some resistance),
but it really must happen now that the Tools menu has totally changed.
Some packages have been forcibly hacked in this patch; obviously this won't
go in without the consent of the package maintainer.
Similarly, I've put in some hacks to fix up some of the remaining packages
that illegally set themselves up upon loading. With the behavior interface
there is a consistent way to enable/disable packages in any case.
mule-packages/skk/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* skk-foreword.el:
Autoload for custom-defines.
unsupported/simon/epop3/ChangeLog addition:
2003-03-09 Ben Wing <ben(a)xemacs.org>
* Makefile:
Delete explicit compile:: and binkit: rules.
Don't add custom-load.elc to the list of generated elc's.
xemacs-packages/calendar/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* calendar.el:
* calendar.el ('calendar): New.
Add define-behavior.
xemacs-packages/cookie/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* yow.el:
* yow.el ('yow): New.
Add define-behavior.
xemacs-packages/debug/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* dbx.el:
* dbx.el ('dbx): New.
* gdb.el:
* gdb.el ('gdb): New.
Add define-behavior.
xemacs-packages/ediff/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* ediff-hook.el:
* ediff-hook.el (progn):
Do not modify Tools menu when define-behavior is set; this is not
allowed, as the Behavior system controls the Tools menu completely.
Tools menu mods incorporated info define-behavior support.
* ediff-hook.el ('ediff): New.
Add define-behavior.
xemacs-packages/edit-utils/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* avoid.el:
* avoid.el ('avoid): New.
* avoid.el (avoid):
* balloon-help.el:
* balloon-help.el ('balloon-help): New.
* balloon-help.el (balloon-help):
* blink-cursor.el:
* blink-cursor.el ('blink-cursor): New.
* blink-paren.el:
* blink-paren.el ('blink-paren): New.
* completion.el:
* completion.el ('completion): New.
* completion.el (completion):
* dabbrev.el:
* dabbrev.el ('dabbrev): New.
* dabbrev.el (dabbrev):
* desktop.el:
* desktop.el ('desktop): New.
* desktop.el (desktop):
Add define-behavior support.
* edit-faces.el:
* edit-faces.el ('edit-faces): New.
* edit-toolbar.el:
* edit-toolbar.el ('edit-toolbar): New.
* edit-toolbar.el (edit-toolbar):
* fast-lock.el:
* fast-lock.el ('fast-lock): New.
* fast-lock.el (fast-lock):
* file-part.el:
* file-part.el ('file-part): New.
* file-part.el (file-part):
* floating-toolbar.el:
* floating-toolbar.el ('floating-toolbar): New.
* floating-toolbar.el (floating-toolbar):
* flow-ctrl.el:
* flow-ctrl.el ('flow-control): New.
* flow-ctrl.el (flow-control):
* func-menu.el:
* func-menu.el ('func-menu): New.
* hippie-exp.el:
* hippie-exp.el ('hippie-expand): New.
* hippie-exp.el (hippie-expand):
* id-select.el:
* id-select.el ('id-select): New.
* id-select.el (id-select):
* iswitchb.el:
* iswitchb.el ('iswitchb): New.
* iswitchb.el (iswitchb):
* lazy-lock.el:
* lazy-lock.el ('lazy-lock): New.
* lazy-lock.el (lazy-lock):
* page-ext.el:
* page-ext.el ('page-ext): New.
* page-ext.el (page-ext):
* paren.el:
* paren.el ('paren): New.
* paren.el (paren):
* permanent-buffers.el:
* permanent-buffers.el ('permanent-buffers): New.
* permanent-buffers.el (permanent-buffers):
* popper.el:
* popper.el ('popper): New.
* popper.el (popper):
* power-macros.el:
* power-macros.el ('power-macros): New.
* power-macros.el (power-macros):
* recent-files.el:
* recent-files.el ('recent-files): New.
* recent-files.el (recent-files):
* redo.el:
* redo.el ('redo): New.
* redo.el (redo):
* reportmail.el:
* reportmail.el ('reportmail): New.
* reportmail.el (reportmail):
* resume.el:
* resume.el ('resume): New.
* resume.el (resume):
* rsz-minibuf.el:
* rsz-minibuf.el ('resize-minibuffer): New.
* rsz-minibuf.el (resize-minibuffer):
* saveconf.el:
* saveconf.el ('save-context): New.
* saveconf.el (save-context):
* savehist.el:
* savehist.el ('save-history): New.
* savehist.el (save-history):
* scroll-in-place.el:
* scroll-in-place.el ('scroll-in-place): New.
* scroll-in-place.el (scroll-in-place):
* setnu.el:
* setnu.el ('setnu): New.
* toolbar-utils.el:
* toolbar-utils.el ('toolbar-utils): New.
* toolbar-utils.el (toolbar-utils):
* toolbar-utils.el ('toolbar-add-exec-macro): New.
* toolbar-utils.el (toolbar-add-exec-macro):
* uniquify.el:
* uniquify.el ('uniquify): New.
* vertical-mode.el:
* vertical-mode.el ('vertical-mode): New.
* where-was-i-db.el:
* where-was-i-db.el ('where-was-i-db): New.
* where-was-i-db.el (where-was-i-db):
* winring.el:
* winring.el ('winring): New.
* winring.el (winring):
Add define-behavior support.
* detached-minibuf.el:
* detached-minibuf.el (add-minibuf-options): Removed.
* detached-minibuf.el ('detached-minibuffer): New.
* detached-minibuf.el (toggle-minibuf): New.
Do not modify Options menu when define-behavior is set; not allowed.
Add define-behavior support. Delete `add-minibuf-options'.
Move minibuffer options to the behavior commands submenu.
* foldout.el:
* foldout.el (foldout-inhibit-key-bindings): Removed.
* foldout.el (foldout-install): New.
* foldout.el ('foldout): New.
* foldout.el (foldout):
Remove option to modify key bindings when loaded. Packages should
never do anything when loaded. Create an install function to do it
instead. Add define-behavior support and incorporate install
function.
* lazy-shot.el:
* lazy-shot.el ('lazy-shot): New.
* lazy-shot.el (lazy-shot):
Add define-behavior support.
* live-icon.el:
* live-icon.el ('live-icon): New.
* saveplace.el:
* saveplace.el ('save-place): New.
* shell-font.el:
* shell-font.el (shell-font):
* shell-font.el ('shell-font): New.
Add define-behavior support.
Don't auto-install upon load.
xemacs-packages/efs/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* efs.el:
* efs.el ('efs): New.
* efs.el (efs):
Add define-behavior support.
xemacs-packages/eudc/ChangeLog addition:
2004-11-07 Ben Wing <ben(a)xemacs.org>
* eudc.el:
* eudc.el (eudc-menu): New.
* eudc.el (not):
* eudc.el ('eudc): New.
Add define-behavior support.
Do not modify Tools menu when define-behavior is set; this is not
allowed, as the Behavior system controls the Tools menu completely.
Tools menu mods incorporated info define-behavior support.
xemacs-packages/footnote/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* footnote.el:
* footnote.el (footnote-mode):
* footnote.el ('footnote): New.
xemacs-packages/games/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* gamegrid.el:
* gamegrid.el (gamegrid): New.
* snake.el:
* snake.el (snake): New.
* sokoban.el:
* sokoban.el (sokoban): New.
* tetris.el:
* tetris.el (tetris): New.
Define a custom group for each of these.
* sokoban.el ('sokoban): New.
* tetris.el ('tetris): New.
Add define-behavior support.
xemacs-packages/ispell/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* ispell.el:
* ispell.el ('ispell): New.
Add define-behavior support.
xemacs-packages/mh-e/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* mh-e.el:
* mh-e.el ('mh): New.
Add define-behavior support.
xemacs-packages/mine/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* xmine.el:
* xmine.el ('xmine): New.
Add define-behavior support.
xemacs-packages/misc-games/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* NeXTify.el:
* NeXTify.el (NeXTify): New.
* advocacy.el:
* advocacy.el (advocacy): New.
* blackbox.el:
* blackbox.el (blackbox): New.
* conx.el:
* conx.el (conx): New.
* decipher.el:
* decipher.el (decipher): New.
* dissociate.el:
* dissociate.el (dissociate): New.
* doctor.el:
* doctor.el (doctor): New.
* dunnet.el:
* dunnet.el (dunnet): New.
* flame.el:
* flame.el (flame): New.
* gomoku.el (gomoku): New.
* hanoi.el:
* hanoi.el (hanoi): New.
* life.el:
* life.el (life): New.
* morse.el:
* morse.el (morse): New.
* mpuz.el:
* mpuz.el (mpuz): New.
* rot13.el:
* rot13.el (rot13): New.
* studly.el:
* studly.el (studly): New.
Define a custom group for each of these.
* doctor.el ('doctor): New.
* dunnet.el ('dunnet): New.
* flame.el ('flame): New.
* hanoi.el ('hanoi): New.
* life.el ('life): New.
* mpuz.el ('mpuz): New.
Add define-behavior support.
xemacs-packages/os-utils/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* jka-compr.el:
* jka-compr.el ('jka-compr): New.
Add define-behavior support.
xemacs-packages/pcl-cvs/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* pcl-cvs-defs.el (progn):
Do not modify Tools menu when define-behavior is set; this is not
allowed, as the Behavior system controls the Tools menu completely.
Tools menu mods incorporated info define-behavior support.
* pcl-cvs.el:
* pcl-cvs.el ('pcl-cvs): New.
Add define-behavior support.
xemacs-packages/ps-print/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* ps-mule.el:
Add custom-define cookie for custom-defines.el support.
xemacs-packages/psgml/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* psgml-html.el (html-mode):
Clean up font-lock setup. XEmacs has done it the FSF way
for time immemorial.
xemacs-packages/text-modes/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* filladapt.el:
* filladapt.el ('filladapt): New.
* filladapt.el (filladapt):
Add define-behavior support.
* flyspell.el:
Add custom-define cookie for flyspell-emacs.
xemacs-packages/vc/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* vc-hooks.el:
* vc-hooks.el (featurep):
* vc-hooks.el ('vc): New.
Add autoload cookie for custom-defines.
Add define-behavior support.
Do not modify Tools menu when define-behavior is set; this is not
allowed, as the Behavior system controls the Tools menu completely.
Tools menu mods incorporated info define-behavior support.
xemacs-packages/vm/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* vm-version.el:
* vm-version.el ('vm): New.
Add define-behavior support.
xemacs-packages/w3/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* lisp/w3.el:
* lisp/w3.el ('w3): New.
Add define-behavior support.
xemacs-packages/xemacs-base/ChangeLog addition:
2004-11-08 Ben Wing <ben(a)xemacs.org>
* compile.el:
* compile.el ('grep): New.
* compile.el ('compile): New.
Add define-behavior support for compile and grep.
* shell.el:
* shell.el ('shell): New.
Add define-behavior support.