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.
packages2 source patch:
Diff command: bash -ci "cvs-diff --show-c-function -no-changelog "
Files affected: xemacs-packages/xemacs-base/shell.el
xemacs-packages/xemacs-base/compile.el xemacs-packages/w3/lisp/w3.el
xemacs-packages/vm/vm-version.el xemacs-packages/vc/vc-hooks.el
xemacs-packages/text-modes/flyspell.el xemacs-packages/text-modes/filladapt.el
xemacs-packages/psgml/psgml-html.el xemacs-packages/ps-print/ps-mule.el
xemacs-packages/pcl-cvs/pcl-cvs.el xemacs-packages/pcl-cvs/pcl-cvs-defs.el
xemacs-packages/pc/pending-del.el xemacs-packages/os-utils/jka-compr.el
xemacs-packages/misc-games/studly.el xemacs-packages/misc-games/rot13.el
xemacs-packages/misc-games/mpuz.el xemacs-packages/misc-games/morse.el
xemacs-packages/misc-games/life.el xemacs-packages/misc-games/hanoi.el
xemacs-packages/misc-games/gomoku.el xemacs-packages/misc-games/flame.el
xemacs-packages/misc-games/dunnet.el xemacs-packages/misc-games/doctor.el
xemacs-packages/misc-games/dissociate.el xemacs-packages/misc-games/decipher.el
xemacs-packages/misc-games/conx.el xemacs-packages/misc-games/b!
lackbox.el xemacs-packages/misc-games/advocacy.el xemacs-packages/misc-games/NeXTify.el
xemacs-packages/mine/xmine.el xemacs-packages/mh-e/mh-e.el
xemacs-packages/ispell/ispell.el xemacs-packages/games/tetris.el
xemacs-packages/games/sokoban.el xemacs-packages/games/snake.el
xemacs-packages/games/gamegrid.el xemacs-packages/footnote/footnote.el
xemacs-packages/eudc/eudc.el xemacs-packages/efs/efs.el
xemacs-packages/edit-utils/winring.el xemacs-packages/edit-utils/where-was-i-db.el
xemacs-packages/edit-utils/vertical-mode.el xemacs-packages/edit-utils/uniquify.el
xemacs-packages/edit-utils/toolbar-utils.el xemacs-packages/edit-utils/shell-font.el
xemacs-packages/edit-utils/setnu.el xemacs-packages/edit-utils/scroll-in-place.el
xemacs-packages/edit-utils/saveplace.el xemacs-packages/edit-utils/savehist.el
xemacs-packages/edit-utils/saveconf.el xemacs-packages/edit-utils/rsz-minibuf.el
xemacs-packages/edit-utils/resume.el xemacs-packages/edit-utils/reportmail.el
xemacs-package!
s/edit-utils/redo.el xemacs-packages/edit-utils/recent-files.e!
l xemacs
-packages/edit-utils/power-macros.el xemacs-packages/edit-utils/popper.el
xemacs-packages/edit-utils/permanent-buffers.el xemacs-packages/edit-utils/paren.el
xemacs-packages/edit-utils/page-ext.el xemacs-packages/edit-utils/live-icon.el
xemacs-packages/edit-utils/lazy-shot.el xemacs-packages/edit-utils/lazy-lock.el
xemacs-packages/edit-utils/iswitchb.el xemacs-packages/edit-utils/id-select.el
xemacs-packages/edit-utils/hippie-exp.el xemacs-packages/edit-utils/func-menu.el
xemacs-packages/edit-utils/foldout.el xemacs-packages/edit-utils/flow-ctrl.el
xemacs-packages/edit-utils/floating-toolbar.el xemacs-packages/edit-utils/file-part.el
xemacs-packages/edit-utils/fast-lock.el xemacs-packages/edit-utils/edit-toolbar.el
xemacs-packages/edit-utils/edit-faces.el xemacs-packages/edit-utils/detached-minibuf.el
xemacs-packages/edit-utils/desktop.el xemacs-packages/edit-utils/dabbrev.el
xemacs-packages/edit-utils/completion.el xemacs-packages/edit-utils/blink-paren.el
xemacs-packages/e!
dit-utils/blink-cursor.el xemacs-packages/edit-utils/balloon-help.el
xemacs-packages/edit-utils/avoid.el xemacs-packages/ediff/ediff-hook.el
xemacs-packages/debug/gdb.el xemacs-packages/debug/dbx.el xemacs-packages/cookie/yow.el
xemacs-packages/calendar/calendar.el mule-packages/skk/skk-foreword.el
cvs server: Diffing .
cvs server: Diffing mule-packages
cvs server: Diffing mule-packages/edict
cvs server: Diffing mule-packages/egg-its
cvs server: Diffing mule-packages/latin-unity
cvs server: Diffing mule-packages/leim
cvs server: Diffing mule-packages/leim/quail
cvs server: Diffing mule-packages/locale
cvs server: Diffing mule-packages/locale/app-defaults
cvs server: Diffing mule-packages/locale/app-defaults/de
cvs server: Diffing mule-packages/locale/app-defaults/fr
cvs server: Diffing mule-packages/locale/app-defaults/ja
cvs server: Diffing mule-packages/locale/app-defaults/ro
cvs server: Diffing mule-packages/locale/start-files
cvs server: Diffing mule-packages/locale/start-files/fr
cvs server: Diffing mule-packages/locale/start-files/ja
cvs server: Diffing mule-packages/locale/start-files/ro
cvs server: Diffing mule-packages/lookup
cvs server: Diffing mule-packages/lookup/etc
cvs server: Diffing mule-packages/lookup/lisp
cvs server: Diffing mule-packages/lookup/packages
cvs server: Diffing mule-packages/lookup/packages/dict-misc
cvs server: Diffing mule-packages/lookup/packages/jitenban97
cvs server: Diffing mule-packages/lookup/texi
cvs server: Diffing mule-packages/mule-base
Index: mule-packages/skk/skk-foreword.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/mule-packages/skk/skk-foreword.el,v
retrieving revision 1.5
diff -u -p -r1.5 skk-foreword.el
--- mule-packages/skk/skk-foreword.el 2002/04/28 07:12:27 1.5
+++ mule-packages/skk/skk-foreword.el 2005/01/31 20:55:38
@@ -453,6 +453,8 @@
(define-obsolete-function-alias 'skk-isearch-backward 'isearch-backward)
(define-obsolete-function-alias 'skk-isearch-backward-regexp
'isearch-backward-regexp)
+;; XEmacs: this must autoload, for custom-defines
+;;;###autoload
(defconst skk-background-mode
;; from font-lock-make-faces of font-lock.el Welcome!
(cond
cvs server: Diffing mule-packages/skk/etc
cvs server: Diffing mule-packages/skk/texi
cvs server: Diffing unsupported
cvs server: Diffing unsupported/rendhalver
cvs server: Diffing unsupported/scop
cvs server: Diffing unsupported/scop/antlr-mode
cvs server: Diffing unsupported/scop/antlr-mode/lisp
cvs server: Diffing unsupported/scop/cogre
cvs server: Diffing unsupported/scop/ecb
cvs server: Diffing unsupported/scop/ede
cvs server: Diffing unsupported/scop/generic-modes
cvs server: Diffing unsupported/scop/vc
cvs server: Diffing unsupported/simon
cvs server: Diffing unsupported/simon/asn1
cvs server: Diffing unsupported/simon/epop3
cvs server: Diffing unsupported/simon/flim
cvs server: Diffing unsupported/simon/flim/tests
cvs server: Diffing unsupported/stephen
cvs server: Diffing unsupported/stephen/synfl
cvs server: Diffing unsupported/stephen/synfl/doc
cvs server: Diffing xemacs-packages
cvs server: Diffing xemacs-packages/Sun
cvs server: Diffing xemacs-packages/ada
cvs server: Diffing xemacs-packages/apel
cvs server: Diffing xemacs-packages/auctex
cvs server: Diffing xemacs-packages/auctex/etc
cvs server: Diffing xemacs-packages/auctex/images
cvs server: Diffing xemacs-packages/auctex/texi
cvs server: Diffing xemacs-packages/bbdb
cvs server: Diffing xemacs-packages/bbdb/lisp
cvs server: Diffing xemacs-packages/bbdb/misc
cvs server: Diffing xemacs-packages/bbdb/tex
cvs server: Diffing xemacs-packages/bbdb/texinfo
cvs server: Diffing xemacs-packages/bbdb/utils
cvs server: Diffing xemacs-packages/build
cvs server: Diffing xemacs-packages/c-support
cvs server: Diffing xemacs-packages/calc
cvs server: Diffing xemacs-packages/calendar
Index: xemacs-packages/calendar/calendar.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/calendar/calendar.el,v
retrieving revision 1.7
diff -u -p -r1.7 calendar.el
--- xemacs-packages/calendar/calendar.el 2003/08/28 06:57:28 1.7
+++ xemacs-packages/calendar/calendar.el 2005/01/31 20:55:39
@@ -2629,6 +2629,21 @@ Defaults to today's date if DATE is not
(run-hooks 'calendar-load-hook)
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'calendar
+ "Not documented."
+:group 'editing ;; #### ?? Where does this go ??
+:commands
+ '(["%_3-Month Calendar" calendar]
+ ["%_Diary" diary]
+ ["%_Holidays" holidays]
+ ;; we're all pagans at heart ...
+ ["%_Phases of the Moon" phases-of-moon]
+ ["%_Sunrise/Sunset" sunrise-sunset])
+))
+
(provide 'calendar)
;;; Local variables:
cvs server: Diffing xemacs-packages/cc-mode
cvs server: Diffing xemacs-packages/clearcase
cvs server: Diffing xemacs-packages/cookie
Index: xemacs-packages/cookie/yow.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/cookie/yow.el,v
retrieving revision 1.2
diff -u -p -r1.2 yow.el
--- xemacs-packages/cookie/yow.el 2002/03/22 17:58:54 1.2
+++ xemacs-packages/cookie/yow.el 2005/01/31 20:55:40
@@ -134,6 +134,17 @@ If called interactively, display a list
(doctor-ret-or-read 1)
(doctor-ret-or-read 1)))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'yow
+ "Not documented."
+:group 'games
+:commands
+ '(["Quote from %_Zippy" yow]
+ ["Ps%_ychoanalyze Zippy!" psychoanalyze-pinhead]))
+)
+
(provide 'yow)
;;; yow.el ends here
cvs server: Diffing xemacs-packages/crisp
cvs server: Diffing xemacs-packages/debug
Index: xemacs-packages/debug/dbx.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/debug/dbx.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 dbx.el
--- xemacs-packages/debug/dbx.el 1998/01/14 06:44:09 1.1.1.1
+++ xemacs-packages/debug/dbx.el 2005/01/31 20:55:40
@@ -168,6 +168,18 @@ BEGIN bounds the search. If QUIET, just
(process-send-string dbx-process
(concat "stop at \"" file-name "\":" line
"\n"))))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'dbx
+ "Not documented."
+:short-doc "DBX"
+:group 'programming
+:commands
+ '(["%_DBX..." dbx]))
+)
+
(provide 'dbx)
;;; dbx.el ends here
Index: xemacs-packages/debug/gdb.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/debug/gdb.el,v
retrieving revision 1.5
diff -u -p -r1.5 gdb.el
--- xemacs-packages/debug/gdb.el 2002/09/24 05:52:56 1.5
+++ xemacs-packages/debug/gdb.el 2005/01/31 20:55:40
@@ -711,6 +711,17 @@ It is for customization by you.")
(set-buffer (find-file-noselect (car gdb-last-frame)))
(gdb-clear)))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'gdb
+ "Not documented."
+:short-doc "GDB"
+:group 'programming
+:commands
+ '(["%_GDB..." gdb]))
+)
+
(provide 'gdb)
;;; gdb.el ends here
cvs server: Diffing xemacs-packages/dictionary
cvs server: Diffing xemacs-packages/dictionary/debian
cvs server: Diffing xemacs-packages/dired
cvs server: Diffing xemacs-packages/docbookide
cvs server: Diffing xemacs-packages/ecb
cvs server: Diffing xemacs-packages/ecb/ecb-images
cvs server: Diffing xemacs-packages/ecb/ecb-images/default
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-10
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-14
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-15
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-16
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-17
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-18
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-19
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-20
cvs server: Diffing xemacs-packages/ecb/ecb-images/default/height-21
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-10
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-14
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-15
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-16
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-17
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-18
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-19
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-20
cvs server: Diffing xemacs-packages/ecb/ecb-images/directories/height-21
cvs server: Diffing xemacs-packages/ecb/ecb-images/methods
cvs server: Diffing xemacs-packages/ecb/ecb-images/methods/height-14_to_21
cvs server: Diffing xemacs-packages/ecb/ecb-images/sources
cvs server: Diffing xemacs-packages/ecb/ecb-images/sources/height-14_to_21
cvs server: Diffing xemacs-packages/ecrypto
cvs server: Diffing xemacs-packages/edebug
cvs server: Diffing xemacs-packages/ediff
Index: xemacs-packages/ediff/ediff-hook.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/ediff/ediff-hook.el,v
retrieving revision 1.11
diff -u -p -r1.11 ediff-hook.el
--- xemacs-packages/ediff/ediff-hook.el 2003/05/18 17:49:46 1.11
+++ xemacs-packages/ediff/ediff-hook.el 2005/01/31 20:55:41
@@ -149,8 +149,10 @@
))
;; put these menus before Object-Oriented-Browser in Tools menu
+ ;; Sorry, this is not allowed in 21.5.
(if (and (featurep 'menubar) (not (featurep 'infodock))
- (not (featurep 'ediff-hook)))
+ (not (featurep 'ediff-hook))
+ (not (fboundp 'define-behavior-group)))
(ediff-xemacs-init-menus)))
;; Emacs--only if menu-bar is loaded
@@ -367,6 +369,14 @@
) ; if purify-flag
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'ediff
+"Not documented."
+:group 'files
+:commands (list ediff-menu ediff-merge-menu epatch-menu ediff-misc-menu))
+)
(provide 'ediff-hook)
cvs server: Diffing xemacs-packages/ediff/etc
cvs server: Diffing xemacs-packages/edit-utils
Index: xemacs-packages/edit-utils/avoid.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/avoid.el,v
retrieving revision 1.6
diff -u -p -r1.6 avoid.el
--- xemacs-packages/edit-utils/avoid.el 2002/04/10 23:35:37 1.6
+++ xemacs-packages/edit-utils/avoid.el 2005/01/31 20:55:41
@@ -404,4 +404,37 @@ definition of \"random distance\".)"
;;;###autoload
(add-minor-mode 'mouse-avoidance-mode 'mouse-avoidance-mode-line-string)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'avoid
+"For those who are annoyed by the mouse pointer obscuring text,
+this mode moves the mouse pointer - either just a little out of
+the way, or all the way to the corner of the frame.
+
+Customize `mouse-avoidance-mode' to one of the symbols `banish',
+`exile', `jump', `animate', `cat-and-mouse', `proteus', or
`none'.
+
+Effects of the different modes:
+ * banish: Move the mouse to the upper-right corner on any keypress.
+ * exile: Move the mouse to the corner only if the cursor gets too close,
+ and allow it to return once the cursor is out of the way.
+ * jump: If the cursor gets too close to the mouse, displace the mouse
+ a random distance & direction.
+ * animate: As `jump', but shows steps along the way for illusion of motion.
+ * cat-and-mouse: Same as `animate'.
+ * proteus: As `animate', but changes the shape of the mouse pointer too.
+
+Whenever the mouse is moved, the frame is also raised.
+
+\(see `mouse-avoidance-threshold' for definition of \"too close\",
+and `mouse-avoidance-nudge-dist' and `mouse-avoidance-nudge-var' for
+definition of \"random distance\".)"
+:short-doc "Keep mouse away from cursor"
+:enable #'(lambda ()
+ (mouse-avoidance-mode 'animate))
+:disable #'(lambda ()
+ (mouse-avoidance-mode 'none)))
+)
+
;;; avoid.el ends here
Index: xemacs-packages/edit-utils/balloon-help.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/balloon-help.el,v
retrieving revision 1.6
diff -u -p -r1.6 balloon-help.el
--- xemacs-packages/edit-utils/balloon-help.el 2002/01/22 14:22:56 1.6
+++ xemacs-packages/edit-utils/balloon-help.el 2005/01/31 20:55:42
@@ -586,3 +586,52 @@ This command must be bound to a mouse ev
(add-hook 'pre-command-hook 'balloon-help-pre-command-hook)
(add-hook 'mouse-leave-frame-hook 'balloon-help-mouse-leave-frame-hook)
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'balloon-help
+"With Balloon Help enabled, a small frame is displayed whenever
+the mouse rests on an object that has a help property of some
+kind. The text of that help property is displayed in the frame.
+
+If you want Balloon Help mode enabled in some buffers only, use
+`balloon-help-minor-mode' instead.
+
+For extents, the 'balloon-help' property is checked.
+
+For toolbar buttons, the help-string slot of the toolbar button
+is checked.
+
+If the value is a string, it is used as the help message.
+
+If the property's value is a symbol, it is assumed to be the name
+of a function and it will be called with one argument, the object
+under the mouse, and the return value of that function will be
+used as the help message.
+
+The balloon-help frame is a transient window that is not
+normally decorated by window managers, so the following
+window manager directives may not be needed. But if they
+are:
+
+For ol[v]wm use this in .Xdefaults:
+ olvwm.NoDecor: balloon-help
+ or
+ olwm.MinimalDecor: balloon-help
+
+For fvvm version 1 use this in your .fvwmrc:
+ NoTitle balloon-help
+or
+ Style \"balloon-help\" NoTitle, NoHandles, BorderWidth 0
+
+For twm use this in your .twmrc:
+ NoTitle { \"balloon-help\" }
+"
+:short-doc "Balloon help"
+:group 'display
+:enable #'(lambda ()
+ (balloon-help-mode 1))
+:disable #'(lambda ()
+ (balloon-help-mode 0)))
+)
Index: xemacs-packages/edit-utils/blink-cursor.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/blink-cursor.el,v
retrieving revision 1.4
diff -u -p -r1.4 blink-cursor.el
--- xemacs-packages/edit-utils/blink-cursor.el 2001/12/04 02:15:32 1.4
+++ xemacs-packages/edit-utils/blink-cursor.el 2005/01/31 20:55:42
@@ -134,6 +134,19 @@ each TIMEOUT secs (can be a float)."
(if (not last-input-time)
(setq last-input-time (cons 0 0))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'blink-cursor
+"Enable or disable a blinking cursor."
+:short-doc "Make cursor blink"
+:group 'keyboard
+:enable #'(lambda ()
+ (blink-cursor-mode 1))
+:disable #'(lambda ()
+ (blink-cursor-mode 0)))
+)
+
(provide 'blink-cursor)
;;; blink-cursor.el ends here
Index: xemacs-packages/edit-utils/blink-paren.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/blink-paren.el,v
retrieving revision 1.2
diff -u -p -r1.2 blink-paren.el
--- xemacs-packages/edit-utils/blink-paren.el 2000/10/06 09:08:00 1.2
+++ xemacs-packages/edit-utils/blink-paren.el 2005/01/31 20:55:42
@@ -176,6 +176,19 @@ With a non-positive argument, turns it o
(interactive)
(blink-paren 1))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'blink-paren
+"Blink the matching paren."
+:short-doc "Blink the matching paren"
+:group 'display
+:enable #'(lambda ()
+ (blink-paren 1))
+:disable #'(lambda ()
+ (blink-paren 0)))
+)
+
(provide 'blink-paren)
(blink-paren 1)
Index: xemacs-packages/edit-utils/completion.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/completion.el,v
retrieving revision 1.4
diff -u -p -r1.4 completion.el
--- xemacs-packages/edit-utils/completion.el 2004/06/18 05:43:55 1.4
+++ xemacs-packages/edit-utils/completion.el 2005/01/31 20:55:42
@@ -2722,6 +2722,180 @@ TYPE is the type of the wrapper to be ad
(cmpl-statistics-block
(record-completion-file-loaded))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'completion
+"After you type a few characters, pressing the \"complete\" key inserts
+the rest of the word you are likely to type.
+
+This watches all the words that you type and remembers them. When
+typing a new word, pressing \"complete\" (meta-return) \"completes\"
the
+word by inserting the most recently used word that begins with the
+same characters. If you press meta-return repeatedly, it cycles
+through all the words it knows about.
+
+ If you like the completion then just continue typing, it is as if you
+entered the text by hand. If you want the inserted extra characters
+to go away, type control-w or delete. More options are described below.
+
+ The guesses are made in the order of the most recently \"used\". Typing
+in a word and then typing a separator character (such as a space) \"uses\"
+the word. So does moving a cursor over the word. If no words are found,
+it uses an extended version of the dabbrev style completion.
+
+ You automatically save the completions you use to a file between
+sessions.
+
+ Completion enables programmers to enter longer, more descriptive
+variable names while typing fewer keystrokes than they normally would.
+
+
+Full documentation
+--------------------
+
+ A \"word\" is any string containing characters with either word or symbol
+syntax. [E.G. Any alphanumeric string with hyphens, underscores, etc.]
+Unless you change the constants, you must type at least three characters
+for the word to be recognized. Only words longer than 6 characters are
+saved.
+
+ When you load this file, completion will be on. I suggest you use the
+compiled version (because it is noticeably faster).
+
+ M-X completion-mode toggles whether or not new words are added to the
+database by changing the value of enable-completion.
+
+ SAVING/LOADING COMPLETIONS
+ Completions are automatically saved from one session to another
+(unless save-completions-flag or enable-completion is nil).
+Loading this file (or calling initialize-completions) causes EMACS
+to load a completions database for a saved completions file
+(default: ~/.completions). When you exit, EMACS saves a copy of the
+completions that you
+often use. When you next start, EMACS loads in the saved completion file.
+
+ The number of completions saved depends loosely on
+*saved-completions-decay-factor*. Completions that have never been
+inserted via \"complete\" are not saved. You are encouraged to experiment
+with different functions (see compute-completion-min-num-uses).
+
+ Some completions are permanent and are always saved out. These
+completions have their num-uses slot set to T. Use
+add-permanent-completion to do this
+
+ Completions are saved only if enable-completion is T. The number of old
+versions kept of the saved completions file is controlled by
+completions-file-versions-kept.
+
+COMPLETE KEY OPTIONS
+ The complete function takes a numeric arguments.
+ control-u :: leave the point at the beginning of the completion rather
+ than the middle.
+ a number :: rotate through the possible completions by that amount
+ `-' :: same as -1 (insert previous completion)
+
+HOW THE DATABASE IS MAINTAINED
+ <write>
+
+UPDATING THE DATABASE MANUALLY
+ m-x kill-completion
+ kills the completion at point.
+ m-x add-completion
+ m-x add-permanent-completion
+
+UPDATING THE DATABASE FROM A SOURCE CODE FILE
+ m-x add-completions-from-buffer
+ Parses all the definition names from a C or LISP mode buffer and
+ adds them to the completion database.
+
+ m-x add-completions-from-lisp-file
+ Parses all the definition names from a C or Lisp mode file and
+ adds them to the completion database.
+
+UPDATING THE DATABASE FROM A TAGS TABLE
+ m-x add-completions-from-tags-table
+ Adds completions from the current tags-table-buffer.
+
+HOW A COMPLETION IS FOUND
+ <write>
+
+STRING CASING
+ Completion is string case independent if case-fold-search has its
+ normal default of T. Also when the completion is inserted the case of the
+ entry is coerced appropriately.
+ [E.G. APP --> APPROPRIATELY app --> appropriately
+ App --> Appropriately]
+
+INITIALIZATION
+ The form `(initialize-completions)' initializes the completion system by
+trying to load in the user's completions. After the first cal, further
+calls have no effect so one should be careful not to put the form in a
+site's standard site-init file.
+
+--------------------------------------------------------------------------
+
+
+
+--------------------------------------------------------------------------
+Functions you might like to call
+--------------------------------------------------------------------------
+
+ add-completion string &optional num-uses
+ Adds a new string to the database
+
+ add-permanent-completion string
+ Adds a new string to the database with num-uses = T
+
+
+ kill-completion string
+ Kills the completion from the database.
+
+ clear-all-completions
+ Clears the database
+
+ list-all-completions
+ Returns a list of all completions.
+
+
+ next-completion string &optional index
+ Returns a completion entry that starts with string.
+
+ find-exact-completion string
+ Returns a completion entry that exactly matches string.
+
+ complete
+ Inserts a completion at point
+
+ initialize-completions
+ Loads the completions file and sets up so that exiting emacs will
+ save them.
+
+ save-completions-to-file &optional filename
+ load-completions-from-file &optional filename
+
+----------------------------------------------
+Other functions
+----------------------------------------------
+
+ get-completion-list string
+
+These things are for manipulating the structure
+ make-completion string num-uses
+ completion-num-uses completion
+ completion-string completion
+ set-completion-num-uses completion num-uses
+ set-completion-string completion string
+"
+:group 'editing
+:short-doc "Dynamic word completion"
+:require 'completion
+:enable #'(lambda ()
+ (initialize-completion))
+ ;; can't :disable
+ )
+)
+
(provide 'completion)
;;; completion.el ends here
Index: xemacs-packages/edit-utils/dabbrev.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/dabbrev.el,v
retrieving revision 1.4
diff -u -p -r1.4 dabbrev.el
--- xemacs-packages/edit-utils/dabbrev.el 2004/11/09 04:19:58 1.4
+++ xemacs-packages/edit-utils/dabbrev.el 2005/01/31 20:55:43
@@ -1055,6 +1055,61 @@ Leaves point at the location of the star
"^No possible abbreviation preceding point$"))
(add-to-list 'debug-ignored-errors mess))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'dabbrev
+"The purpose with this package is to let you write just a few
+characters of words you've written earlier to be able to expand
+them.
+
+To expand a word, just put the point right after the word and press
+M-/ (dabbrev-expand) or M-C-/ (dabbrev-completion).
+
+Check out the customizable variables below to learn about all the
+features of this package.
+
+ Hints and tips for major modes writers:
+
+Recommended values C/Lisp etc text
+dabbrev-case-fold-search nil t
+dabbrev-case-replace nil t
+
+Set the variables you want special for your mode like this:
+(set (make-local-variable 'dabbrev-case-replace) nil)
+Then you don't interfere with other modes.
+
+If your mode handles buffers that refers to other buffers
+(i.e. compilation-mode, gud-mode), then try to set
+`dabbrev-select-buffers-function' or `dabbrev-friend-buffer-function'
+to a function that point out those buffers.
+
+Same goes for major-modes that are connected to other modes. There
+are for instance a number of mail-modes. One for reading, one for
+creating a new mail etc. Maybe those should be connected.
+
+Example for GNUS (when we write a reply, we want dabbrev to look in
+the article for expansion):
+(set (make-local-variable 'dabbrev-friend-buffer-function)
+ (lambda (buffer)
+ (save-excursion
+ (set-buffer buffer)
+ (memq major-mode '(news-reply-mode gnus-article-mode)))))
+
+
+Known bugs and limitations.
+- Possible to do several levels of `dabbrev-completion' in the
+ minibuffer.
+- dabbrev-completion doesn't handle resetting the globals variables
+ right. It resets them after finding the abbrev."
+:short-doc "dynamic abbreviation package"
+:group 'editing
+:commands '(["Expand previous word \"dynamically\""
dabbrev-expand])
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
(provide 'dabbrev)
;; dabbrev.el ends here
Index: xemacs-packages/edit-utils/desktop.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/desktop.el,v
retrieving revision 1.8
diff -u -p -r1.8 desktop.el
--- xemacs-packages/edit-utils/desktop.el 2004/06/17 11:09:39 1.8
+++ xemacs-packages/edit-utils/desktop.el 2005/01/31 20:55:43
@@ -796,6 +796,77 @@ to provide correct modes for autoloaded
(desktop-load-default)
(desktop-read))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'desktop
+"Save the Desktop, i.e.,
+ - some global variables
+ - the list of buffers with associated files. For each buffer also
+ - the major mode
+ - the default directory
+ - the point
+ - the mark & mark-active
+ - buffer-read-only
+ - some local variables
+
+To use this, first put these two lines in the bottom of your .emacs
+file (the later the better):
+
+ (desktop-load-default)
+ (desktop-read)
+
+Between these two lines you may wish to add something that updates the
+variables `desktop-globals-to-save' and/or `desktop-locals-to-save'. If
+for instance you want to save the local variable `foobar' for every buffer
+in which it is local, you could add the line
+
+ (setq desktop-locals-to-save (cons 'foobar desktop-locals-to-save))
+
+To avoid saving excessive amounts of data you may also wish to add
+something like the following
+
+ (add-hook 'kill-emacs-hook
+ '(lambda ()
+ (desktop-truncate search-ring 3)
+ (desktop-truncate regexp-search-ring 3)))
+
+which will make sure that no more than three search items are saved. You
+must place this line *after* the `(desktop-load-default)' line. See also
+the variable `desktop-save-hook'.
+
+Start Emacs in the root directory of your \"project\"
+. The desktop saver
+is inactive by default. You activate it by M-x desktop-save RET. When
+you exit the next time the above data will be saved. This ensures that
+all the files you were editing will be reloaded the next time you start
+Emacs from the same directory and that points will be set where you
+left them. If you save a desktop file in your home directory it will
+act as a default desktop when you start Emacs from a directory that
+doesn't have its own. I never do this, but you may want to.
+
+Some words on minor modes: Most minor modes are controlled by
+buffer-local variables, which have a standard save / restore
+mechanism. To handle all minor modes, we take the following
+approach: (1) check whether the variable name from
+`minor-mode-alist' is also a function; and (2) use translation
+table `desktop-minor-mode-table' in the case where the two names
+are not the same.
+
+By the way: don't use desktop.el to customize Emacs -- the file .emacs
+in your home directory is used for that. Saving global default values
+for buffers is an example of misuse.
+
+PLEASE NOTE: The kill ring can be saved as specified by the variable
+`desktop-globals-to-save' (by default it isn't). This may result in saving
+things you did not mean to keep. Use M-x desktop-clear RET."
+:short-doc "save partial status of Emacs when killed"
+:group 'editing
+;; #### Write the hooks correctly so they don't require manual modification
+;; of init.el.
+ )
+)
+
(provide 'desktop)
;;; desktop.el ends here
Index: xemacs-packages/edit-utils/detached-minibuf.el
===================================================================
RCS file:
/pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/detached-minibuf.el,v
retrieving revision 1.2
diff -u -p -r1.2 detached-minibuf.el
--- xemacs-packages/edit-utils/detached-minibuf.el 2001/01/15 05:54:31 1.2
+++ xemacs-packages/edit-utils/detached-minibuf.el 2005/01/31 20:55:43
@@ -42,11 +42,11 @@
:group 'frames)
-(defcustom add-minibuf-options t
- "*If nil, prevent minibuffer options from being added to the Options menu.\
-This must be set before detached-minibuf is loaded."
-:type 'boolean
-:group 'detached-minibuf)
+; (defcustom add-minibuf-options t
+; "*If nil, prevent minibuffer options from being added to the Options menu.\
+; This must be set before detached-minibuf is loaded."
+;:type 'boolean
+;:group 'detached-minibuf)
(defcustom minibuf-frame-height 1
"*The height in lines of the minibuffer frame created by
make-detached-minibuf"
:type 'integer
@@ -64,72 +64,31 @@ This must be set before detached-minibuf
:type 'integer
:group 'detached-minibuf)
-;;
-;; Add minibuffer options to the Options menu
-(if add-minibuf-options
- (progn
- (defun toggle-minibuf ()
- (interactive)
- (if (equal (frame-property (selected-frame) 'minibuffer) t)
-
- ;; This frame already has a minibuffer, so remove the minibuffer.
- ;; Unfortunately, we must delete and redraw the frame
- (let ((fp (frame-properties (selected-frame)))
- (buf (current-buffer))
- (orig (selected-frame)))
-
- ;; Create and select the new frame;
- ;; we have to do this before we delete the old frame.
- (setq fp (plist-remprop fp 'window-id)
- fp (plist-remprop fp 'minibuffer))
- (select-frame
- (make-frame (plist-put fp 'minibuffer nil)))
- (switch-to-buffer buf)
-
- (set-frame-properties
- orig (list 'minibuffer default-minibuffer-frame))
- (delete-frame orig t))
-
- ;; This frame does not have a minibuffer, so add one
- (set-frame-property (selected-frame) 'minibuffer t)))
-
- ;; The menu structure is different before XEmacs 21.2.
- ;; Under 21.1 and previous, add menu items to
- ;; Options/Frame Appearance. Under 21.2+, add the
- ;; menu items to Options/Display.
- (let ((entry-name (if (fboundp 'purecopy-menubar)
- '("Options" "Frame Appearance")
- '("Options" "Display"))))
- (add-menu-button entry-name
- "------"
- nil)
- (add-menu-button entry-name
- ["Toggle minibuffer"
- (toggle-minibuf)
- :style toggle
- :active (not (equal (selected-frame)
- default-minibuffer-frame))
- :selected (equal
- (frame-property (selected-frame) 'minibuffer)
- t)]
- nil)
- (add-menu-button entry-name
- ["Default minibuffer here"
- (setq default-minibuffer-frame (selected-frame))
- :style toggle
- :active (let ((mbf (frame-property
- (selected-frame) 'minibuffer)))
- (or (equal mbf (selected-frame))
- (equal mbf t)))
- :selected (equal (selected-frame)
- default-minibuffer-frame)]
- nil)
- (add-menu-button entry-name
- ["Make a detached minibuffer"
- (make-detached-minibuf)
- :style nil]
- nil))))
+(defun toggle-minibuf ()
+ "Toggle whether the minibuffer exists in the current frame."
+ (interactive)
+ (if (equal (frame-property (selected-frame) 'minibuffer) t)
+ ;; This frame already has a minibuffer, so remove the minibuffer.
+ ;; Unfortunately, we must delete and redraw the frame
+ (let ((fp (frame-properties (selected-frame)))
+ (buf (current-buffer))
+ (orig (selected-frame)))
+
+ ;; Create and select the new frame;
+ ;; we have to do this before we delete the old frame.
+ (setq fp (plist-remprop fp 'window-id)
+ fp (plist-remprop fp 'minibuffer))
+ (select-frame
+ (make-frame (plist-put fp 'minibuffer nil)))
+ (switch-to-buffer buf)
+
+ (set-frame-properties
+ orig (list 'minibuffer default-minibuffer-frame))
+ (delete-frame orig t))
+
+ ;; This frame does not have a minibuffer, so add one
+ (set-frame-property (selected-frame) 'minibuffer t)))
;;
;; Create a minibuffer-only frame.
;;
@@ -163,6 +122,39 @@ This must be set before detached-minibuf
;; Bogus! But it avoids annoying screen flash at startup
(if (not command-line-args-left)
(frame-notice-user-settings)))))
+
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'detached-minibuffer
+"Support a detached minibuffer"
+:short-doc "Support a detached minibuffer"
+:group 'buffers-and-windows
+:commands '(["Toggle minibuffer"
+ (toggle-minibuf)
+ :style toggle
+ :active (not (equal (selected-frame)
+ default-minibuffer-frame))
+ :selected (equal
+ (frame-property (selected-frame) 'minibuffer)
+ t)]
+ ["Default minibuffer here"
+ (setq default-minibuffer-frame (selected-frame))
+ :style toggle
+ :active (let ((mbf (frame-property
+ (selected-frame) 'minibuffer)))
+ (or (equal mbf (selected-frame))
+ (equal mbf t)))
+ :selected (equal (selected-frame)
+ default-minibuffer-frame)]
+ ["Make a detached minibuffer"
+ (make-detached-minibuf)
+ :style nil])
+ ;; no :enable
+ ;; no :disable
+ )
+)
(provide 'detached-minibuf)
Index: xemacs-packages/edit-utils/edit-faces.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/edit-faces.el,v
retrieving revision 1.4
diff -u -p -r1.4 edit-faces.el
--- xemacs-packages/edit-utils/edit-faces.el 1999/11/27 20:49:58 1.4
+++ xemacs-packages/edit-utils/edit-faces.el 2005/01/31 20:55:43
@@ -370,4 +370,21 @@ M-x edit-faces."
(delete-window))
(kill-buffer "*Edit Faces*"))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'edit-faces
+"This is the file that won't die. Even though we have otherwise completely
+converted to custom, there is still apparently a need to view a lot of
+faces in one buffer."
+:short-doc "Interactive face editing mode"
+:group 'display
+:commands '(["Edit faces" edit-faces]
+ )
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
;;; edit-faces.el ends here
Index: xemacs-packages/edit-utils/edit-toolbar.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/edit-toolbar.el,v
retrieving revision 1.3
diff -u -p -r1.3 edit-toolbar.el
--- xemacs-packages/edit-utils/edit-toolbar.el 2000/07/16 11:22:46 1.3
+++ xemacs-packages/edit-utils/edit-toolbar.el 2005/01/31 20:55:44
@@ -542,6 +542,29 @@ Alternatively, I can do this for you now
(or exists (edit-toolbar-prompt-for-initialization))))
(set-buffer-modified-p nil))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'edit-toolbar
+"To use edit-toolbar.el, simply type M-x edit-toolbar RET
+
+For help on the various commands you can type ? in a edit-toolbar
+buffer. To save a modified toolbar type C-x C-s in an edit-toolbar
+buffer. If you want to use a saved toolbar in your future XEmacs
+sessions, add the following line of code to your .emacs file:
+
+ (load \"~/.xemacs/.toolbar\")
+"
+:short-doc "Interactive toolbar editing mode"
+:group 'toolbars
+:commands '(["Edit toolbar" edit-toolbar]
+ )
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
(provide 'edit-toolbar)
;;; edit-toolbar.el ends here
Index: xemacs-packages/edit-utils/fast-lock.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/fast-lock.el,v
retrieving revision 1.3
diff -u -p -r1.3 fast-lock.el
--- xemacs-packages/edit-utils/fast-lock.el 2000/04/07 08:47:40 1.3
+++ xemacs-packages/edit-utils/fast-lock.el 2005/01/31 20:55:44
@@ -766,6 +766,55 @@ See `fast-lock-get-face-properties' for
(unless (assq 'fast-lock-mode minor-mode-alist)
(setq minor-mode-alist (append minor-mode-alist '((fast-lock-mode nil)))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'fast-lock
+"Fast Lock mode is a Font Lock support mode.
+It makes visiting a file in Font Lock mode faster by restoring its face text
+properties from automatically saved associated Font Lock cache files.
+
+See also the lazy-lock package. (But don't use the two at the same time!)
+
+When you visit a file (which has `font-lock-mode' enabled) that has a
+corresponding Font Lock cache file associated with it, the Font Lock cache
+will be loaded from that file instead of being generated by Font Lock code.
+
+Caveats:
+
+A cache will be saved when visiting a compressed file using crypt++, but not
+be read. This is a \"feature\"/\"consequence\"/\"bug\" of
crypt++.
+
+Version control packages are likely to stamp all over file modification
+times. Therefore the act of checking out may invalidate a cache.
+
+More specifically:
+
+If Fast Lock mode is enabled, and the current buffer does not contain any text
+properties, any associated Font Lock cache is used if its timestamp matches the
+buffer's file, and its `font-lock-keywords' match those that you are using.
+
+Font Lock caches may be saved:
+- When you save the file's buffer.
+- When you kill an unmodified file's buffer.
+- When you exit Emacs, for all unmodified or saved buffers.
+Depending on the value of `fast-lock-save-events'.
+See also the commands `fast-lock-read-cache' and `fast-lock-save-cache'.
+
+Use \\[font-lock-fontify-buffer] to fontify the buffer if the cache is bad.
+
+Various methods of control are provided for the Font Lock cache. In general,
+see variable `fast-lock-cache-directories' and function `fast-lock-cache-name'.
+For saving, see variables `fast-lock-minimum-size', `fast-lock-save-events',
+`fast-lock-save-others' and `fast-lock-save-faces'."
+:short-doc "Automagic text properties caching for fast Font Lock mode"
+:group 'display
+:enable #'(lambda ()
+ (add-hook 'font-lock-mode-hook 'turn-on-fast-lock))
+:disable #'(lambda ()
+ (remove-hook 'font-lock-mode-hook 'turn-on-fast-lock))
+ )
+)
;; Provide ourselves:
(provide 'fast-lock)
Index: xemacs-packages/edit-utils/file-part.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/file-part.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 file-part.el
--- xemacs-packages/edit-utils/file-part.el 1998/01/14 06:36:17 1.1.1.1
+++ xemacs-packages/edit-utils/file-part.el 2005/01/31 20:55:44
@@ -271,3 +271,28 @@ Marks the master buffer as modified."
(set-buffer (extent-buffer x))
(set-buffer-modified-p t)))))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'file-part
+"Treat a section of a buffer as a separate file.
+
+Commands:
+
+`make-file-part'
+
+ Make a file part on buffer BUFFER out of the region. Call it NAME.
+This command creates a new buffer containing the contents of the
+region and marks the buffer as referring to the specified buffer,
+called the `master buffer'. When the file-part buffer is saved,
+its changes are integrated back into the master buffer. When the
+master buffer is deleted, all file parts are deleted with it.
+"
+:short-doc "treat a section of a buffer as a separate file"
+:group 'files
+:commands '(["Make file part" make-file-part])
+ ;; no :enable
+ ;; no :disable
+ )
+)
Index: xemacs-packages/edit-utils/floating-toolbar.el
===================================================================
RCS file:
/pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/floating-toolbar.el,v
retrieving revision 1.3
diff -u -p -r1.3 floating-toolbar.el
--- xemacs-packages/edit-utils/floating-toolbar.el 2000/10/06 09:08:01 1.3
+++ xemacs-packages/edit-utils/floating-toolbar.el 2005/01/31 20:55:44
@@ -382,4 +382,63 @@ extent local toolbar."
(not (eq (device-type) 'x))
(setq floating-toolbar-frame (floating-toolbar-make-toolbar-frame 0 0)))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'floating-toolbar
+"The command `floating-toolbar' pops up a small frame
+containing a toolbar. The command should be bound to a
+button-press event. If the mouse press happens over an
+extent that has a non-nil 'floating-toolbar property, the
+value of that property is the toolbar instantiator that will
+be displayed. Otherwise the toolbar displayed is taken from
+the variable `floating-toolbar'. This variable can be made
+buffer local to produce buffer local floating toolbars.
+
+`floating-toolbar-or-popup-mode-menu' works like `floating-toolbar'
+except that if no toolbar is found, `popup-mode-menu' is called.
+
+`floating-toolbar-from-extent-or-popup-mode-menu' works like
+`floating-toolbar-or-popup-mode-menu' except only extent local
+toolbars are used; the value of floating-toolbar is not used.
+
+Installation:
+
+You will also need to bind a mouse click to `floating-toolbar' or to
+`floating-toolbar-or-popup-mode-menu'.
+
+For 19.12 users:
+ If you are using fvwm, [tv]twm or ol[v]wm, you can also add
+ the following lines to various configuration file to use
+ minimal decorations on the toolbar frame.
+
+ In .emacs:
+ (setq floating-toolbar-frame-name \"floating-toolbar\")
+
+ For ol[v]wm use this in .Xdefaults:
+ olvwm.NoDecor: floating-toolbar
+ or
+ olwm.MinimalDecor: floating-toolbar
+
+ For fvvm use this in your .fvwmrc:
+ NoTitle floating-toolbar
+ or
+ Style \"floating-toolbar\" NoTitle, NoHandles, BorderWidth 0
+
+ For twm use this in your .twmrc:
+ NoTitle { \"floating-toolbar\" }
+
+Under 19.13 and later versions the floating-toolbar frame uses a
+transient window that is not normally decorated by window
+managers. So the window manager directives should not be
+needed for XEmacs 19.13 and beyond."
+:short-doc "popup toolbar support for XEmacs"
+:group 'toolbars
+:commands '(["Pop up floating toolbar" floating-toolbar])
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
;;; floating-toolbar.el ends here
Index: xemacs-packages/edit-utils/flow-ctrl.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/flow-ctrl.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 flow-ctrl.el
--- xemacs-packages/edit-utils/flow-ctrl.el 1998/01/14 06:36:15 1.1.1.1
+++ xemacs-packages/edit-utils/flow-ctrl.el 2005/01/31 20:55:44
@@ -115,6 +115,35 @@ value of \"vt100-nam\" is treated the sa
(if term
(enable-flow-control))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'flow-control
+"Terminals that use XON/XOFF flow control can cause problems with
+GNU Emacs users. This file contains Emacs Lisp code that makes it
+easy for a user to deal with this problem, when using such a
+terminal.
+
+To invoke these adjustments, a user need only invoke the function
+enable-flow-control-on with a list of terminal types in his/her own
+.emacs file. As arguments, give it the names of one or more terminal
+types in use by that user which require flow control adjustments.
+Here's an example:
+
+ (enable-flow-control-on \"vt200\" \"vt300\" \"vt101\"
\"vt131\")
+
+Portability note: This uses (getenv \"TERM\"), and therefore probably
+won't work outside of UNIX-like environments.
+"
+:short-doc "help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control"
+:group 'tty
+:enable #'(lambda ()
+ (enable-flow-control 1))
+:disable #'(lambda ()
+ (enable-flow-control -1))
+ )
+)
+
(provide 'flow-ctrl)
;;; flow-ctrl.el ends here
Index: xemacs-packages/edit-utils/foldout.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/foldout.el,v
retrieving revision 1.2
diff -u -p -r1.2 foldout.el
--- xemacs-packages/edit-utils/foldout.el 2000/04/07 09:15:56 1.2
+++ xemacs-packages/edit-utils/foldout.el 2005/01/31 20:55:44
@@ -101,11 +101,11 @@
;; To use foldout, put this in your .emacs:-
;;
-;; (require 'foldout)
+;; (foldout-install)
;;
;; If you don't want it loaded until you need it, try this instead:-
;;
-;; (eval-after-load "outline" '(require 'foldout))
+;; (eval-after-load "outline" '(foldout-install))
;;; Advertisements:
@@ -518,9 +518,6 @@ if the event didn't occur on a heading."
;;; Keymaps:
-(defvar foldout-inhibit-key-bindings nil
- "Set non-NIL before loading foldout to inhibit key bindings.")
-
(defvar foldout-mouse-modifiers '(meta control)
"List of modifier keys to apply to foldout's mouse events.
@@ -544,8 +541,9 @@ Valid modifiers are shift, control, meta
((eq button 3)
(funcall 'foldout-mouse-hide-or-exit event click-count))))))
-(if foldout-inhibit-key-bindings
- ()
+;;;###autoload
+(defun foldout-install ()
+ "Install foldout."
(define-key outline-mode-map "\C-c\C-z" 'foldout-zoom-subtree)
(define-key outline-mode-map "\C-c\C-x" 'foldout-exit-fold)
(define-key outline-minor-mode-map
@@ -574,6 +572,86 @@ Valid modifiers are shift, control, meta
(define-key outline-minor-mode-map mouse-2 'mouse-track)
(define-key outline-minor-mode-map mouse-3 'mouse-track)
))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'foldout
+"This file provides folding editor extensions for outline-mode and
+outline-minor-mode buffers. What's a \"folding editor\"? Read on...
+
+Imagine you're in an outline-mode buffer and you've hidden all the text and
+subheadings under your level-1 headings. You now want to look at the stuff
+hidden under one of these headings. Normally you'd do C-c C-e (show-entry)
+to expose the body or C-c C-i to expose the child (level-2) headings.
+
+With foldout, you do C-c C-z (foldout-zoom-subtree). This exposes the body
+and child subheadings and narrows the buffer so that only the level-1
+heading, the body and the level-2 headings are visible. If you now want to
+look under one of the level-2 headings, position the cursor on it and do C-c
+C-z again. This exposes the level-2 body and its level-3 child subheadings
+and narrows the buffer again. You can keep on zooming in on successive
+subheadings as much as you like. A string in the modeline tells you how
+deep you've gone.
+
+When zooming in on a heading you might only want to see the child
+subheadings. You do this by specifying a numeric argument: C-u C-c C-z.
+You can specify the number of levels of children too (c.f. show-children):
+e.g. M-2 C-c C-z exposes two levels of child subheadings. Alternatively,
+you might only be interested in the body. You do this by specifying a
+negative argument: M-- C-c C-z. You can also cause the whole subtree to be
+expanded, similar to C-c C-s (show-subtree), by specifying a zero argument:
+M-0 C-c C-z.
+
+While you're zoomed in you can still use outline-mode's exposure and hiding
+functions. It won't upset foldout at all. Also, since the buffer is
+narrowed, \"global\" editing actions will only affect the stuff under the
+zoomed-in heading. This is useful for restricting changes to a particular
+chapter or section of your document.
+
+You unzoom (exit) a fold by doing C-c C-x (foldout-exit-fold). This hides
+all the text and subheadings under the top-level heading and returns you to
+the previous view of the buffer. Specifying a numeric argument exits that
+many folds. Specifying a zero argument exits *all* folds.
+
+You might want to exit a fold *without* hiding the text and subheadings.
+You do this by specifying a negative argument. For example, M--2 C-c C-x
+exits two folds and leaves the text and subheadings exposed.
+
+Foldout also provides mouse bindings for entering and exiting folds and for
+showing and hiding text. Hold down Meta and Control, then click a mouse
+button as follows:-
+
+ mouse-1 (foldout-mouse-zoom) zooms in on the heading clicked on:-
+
+ single click expose body
+ double click expose subheadings
+ triple click expose body and subheadings
+ quad click expose entire subtree
+
+ mouse-2 (foldout-mouse-show) exposes text under the heading clicked on:-
+
+ single click expose body
+ double click expose subheadings
+ triple click expose body and subheadings
+ quad click expose entire subtree
+
+ mouse-3 (foldout-mouse-hide-or-exit) hides text under the heading clicked
+ on or exits the fold:-
+
+ single click hide subtree
+ double click exit fold and hide text
+ triple click exit fold without hiding text
+ quad click exit all folds and hide text
+
+You can change the modifier keys used by setting `foldout-mouse-modifiers'.
+"
+:short-doc "Folding extensions for outline-mode"
+:group 'editing
+:require 'foldout
+:enable #'foldout-install
+ )
+)
(provide 'foldout)
Index: xemacs-packages/edit-utils/func-menu.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/func-menu.el,v
retrieving revision 1.28
diff -u -p -r1.28 func-menu.el
--- xemacs-packages/edit-utils/func-menu.el 2004/12/22 21:42:03 1.28
+++ xemacs-packages/edit-utils/func-menu.el 2005/01/31 20:55:45
@@ -2752,6 +2752,48 @@ and then kill it will not be slowed down
(set-buffer buffer)
(turn-on-fume-mode)))))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'func-menu
+ "Suppose you have a file with a lot of functions in it. Well, this
+package makes it easy to jump to any of those functions. The names of
+the functions in the current buffer are automatically put into menubar
+menu, you select one of the function-names and the point is moved to
+that very function. The mark is pushed on the mark-ring, so you can
+easily go back to where you were. Alternatively, you can use enter the
+name of the desired function via the minibuffer which offers
+completing read input. In addition, the name of the function before
+point is optionally displayed in the modeline."
+:short-doc "Add a menu of defined functions"
+:require 'func-menu
+:group 'menus
+:enable #'(lambda ()
+ (add-hook 'find-file-hooks 'fume-add-menubar-entry)
+ (mapc #'(lambda (buffer)
+ (with-current-buffer buffer
+ (setq fume-display-in-modeline-p t)
+ (fume-add-menubar-entry)))
+ (buffer-list)))
+:disable #'(lambda ()
+ (remove-hook 'find-file-hooks 'fume-add-menubar-entry)
+ (fset 'widen (symbol-function 'fume-widen))
+ (fset 'narrow-to-region (symbol-function 'narrow-to-region))
+ (mapc #'(lambda (buffer)
+ (with-current-buffer buffer
+ (fume-remove-menubar-entry)
+ (setq fume-display-in-modeline-p nil)
+ (fume-remove-post-command-hook
+ 'fume-tickle-modeline)
+ (fume-remove-post-command-hook
+ 'fume-maybe-install-modeline-feature)
+ (fume-remove-post-command-hook
+ 'fume-rescan-buffer-trigger)))
+ (buffer-list))))
+
+)
+
(provide 'func-menu)
;;; func-menu.el ends here
Index: xemacs-packages/edit-utils/hippie-exp.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/hippie-exp.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 hippie-exp.el
--- xemacs-packages/edit-utils/hippie-exp.el 1998/01/14 06:36:15 1.1.1.1
+++ xemacs-packages/edit-utils/hippie-exp.el 2005/01/31 20:55:46
@@ -1124,6 +1124,138 @@ string). It returns t if a new completi
(point)))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'hippie-expand
+"`hippie-expand' is a single function for a lot of different kinds
+of completions and expansions. Called repeatedly it tries all
+possible completions in succession.
+Which kinds of completions to try, and in which order, is
+determined by the contents of `hippie-expand-try-functions-list'.
+Much customization of `hippie-expand' can be made by changing the
+order of, removing, or inserting new functions in this list.
+Given a positive numeric argument, `hippie-expand' jumps directly
+ARG functions forward in this list. Given some other argument
+\(a negative argument or just Ctrl-U) it undoes the tried
+completion.
+
+If the variable `hippie-expand-verbose' is non-nil, `hippie-expand'
+outputs in a message which try-function in the list that is used
+currently (ie. was used currently and will be tried first the next
+time).
+The variable `hippie-expand-max-buffers' determines in how many
+buffers, apart from the current, to search for expansions in. It
+is used by the try-functions named \"-all-buffers\".
+The variable `hippie-expand-ignore-buffers' is a list of regexps
+matching buffer names (as strings) or major modes (as atoms) of
+buffers that should not be searched by the try-functions named
+\"-all-buffers\".
+See also the macro `make-hippie-expand-function' below.
+
+A short description of the current try-functions in this file:
+ `try-complete-file-name' : very convenient to have in any buffer,
+ and not just in the minibuffer or (some) shell-mode. It goes
+ through all possible completions instead of just completing as
+ much as is unique.
+ `try-complete-file-name-partially' : To insert in the list just
+ before `try-complete-file-name' for those who want first to get
+ a file name completed only as many characters as is unique.
+ `try-expand-all-abbrevs' : can be removed if you don't use abbrevs.
+ Otherwise it looks through all abbrev-tables, starting with
+ the local followed by the global.
+ `try-expand-line' : Searches the buffer for an entire line that
+ begins exactly as the current line. Convenient sometimes, for
+ example as a substitute for (or complement to) the history
+ list in shell-like buffers. At other times, only confusing.
+ `try-expand-line-all-buffers' : Like `try-expand-line' but searches
+ in all buffers (except the current). (This may be a little
+ slow, don't use it unless you are really fond of `hippie-expand'.)
+ `try-expand-list' : Tries to expand the text back to the nearest
+ open delimiter, to a whole list from the buffer. Convenient for
+ example when writing lisp or TeX.
+ `try-expand-list-all-buffers' : Like `try-expand-list' but searches
+ in all buffers (except the current).
+ `try-expand-dabbrev' : works exactly as dabbrev-expand (but of
+ course in a way compatible with the other try-functions).
+ `try-expand-dabbrev-all-buffers' : perhaps the most useful of them,
+ like `dabbrev-expand' but searches all Emacs buffers (except the
+ current) for matching words. (No, I don't find this one
+ particularly slow.)
+ `try-expand-dabbrev-visible': Searches the currently visible parts of
+ all windows. Can be put before `try-expand-dabbrev-all-buffers' to
+ first try the expansions you can see.
+ `try-expand-dabbrev-from-kill': Searches the kill ring for a suitable
+ completion of the word. Good to have, just in case the word was not
+ found elsewhere.
+ `try-expand-whole-kill' : Tries to complete text with a whole entry
+ from the kill ring. May be good if you don't know how far up in
+ the kill-ring the required entry is, and don't want to mess with
+ \"Choose Next Paste\".
+ `try-complete-lisp-symbol' : like `lisp-complete-symbol', but goes
+ through all possibilities instead of completing what is unique.
+ Might be tedious (usually a lot of possible completions) and
+ since its function is much like `lisp-complete-symbol', which
+ already has a key of its own, you might want to remove this.
+ `try-complete-lisp-symbol-partially' : To insert in the list just
+ before `try-complete-lisp-symbol' for those who first want to get
+ completion of what is unique in the name.
+
+Not all of the above functions are by default in
+`hippie-expand-try-functions-list'. This variable is better set
+in \".emacs\" to make `hippie-expand' behave maximally convenient
+according to personal taste. Also, instead of loading the
+variable with all kinds of try-functions above, it might be an
+idea to use `make-hippie-expand-function' to construct different
+`hippie-expand'-like functions, with different try-lists and bound
+to different keys. It is also possible to make
+`hippie-expand-try-functions-list' a buffer local variable, and
+let it depend on the mode (by setting it in the mode-hooks).
+
+To write new try-functions, consider the following:
+Each try-function takes one argument OLD which is nil the first
+time the function is called and true in succeeding calls for the
+same string to complete. The first time the function has to
+extract the string before point to complete, and substitute the
+first completion alternative for it. On following calls it has to
+substitute the next possible completion for the last tried string.
+The try-function is to return t as long as it finds new
+possible completions. When there are no more alternatives it has
+to restore the text before point to its original contents, and
+return nil (don't beep or message or anything).
+The try-function can (should) use the following functions:
+ `he-init-string' : Initializes the text to substitute to the
+ contents of the region BEGIN to END. Also sets the variable
+ `he-search-string' to the text to expand.
+ `he-substitute-string' : substitutes STR into the region
+ initialized with `he-init-string'. (An optional second argument
+ TRANS-CASE non-nil, means transfer of case from the abbreviation
+ to the expansion is ok if that is enabled in the buffer.)
+ `he-reset-string' : Resets the initialized region to its original
+ contents.
+There is also a variable: `he-tried-table' which is meant to contain
+all tried expansions so far. The try-function can check this
+variable to see whether an expansion has already been tried
+(hint: `he-string-member').
+
+Known bugs
+
+It may happen that some completion suggestion occurs twice, in
+spite of the use of `he-tried-table' to prevent that. This is
+because different try-functions may try to complete different
+lengths of text, and thus put different amounts of the
+text in `he-tried-table'. Anyway this seems to occur seldom enough
+not to be too disturbing. Also it should NOT be possible for the
+opposite situation to occur, that `hippie-expand' misses some
+suggestion because it thinks it has already tried it."
+:short-doc "expand text trying various ways to find its expansion"
+:group 'editing
+:commands '(["Hippie-expand text at point" hippie-expand])
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
(provide 'hippie-exp)
;;; hippie-exp.el ends here
Index: xemacs-packages/edit-utils/id-select.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/id-select.el,v
retrieving revision 1.5
diff -u -p -r1.5 id-select.el
--- xemacs-packages/edit-utils/id-select.el 2001/04/21 23:25:47 1.5
+++ xemacs-packages/edit-utils/id-select.el 2005/01/31 20:55:46
@@ -1285,6 +1285,75 @@ Ordering of entries is largely irrelevan
:type '(repeat (list (sexp :tag "Syntax-Char" function)))
:group 'id-select)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'id-select
+"This is a radically cool, drop in mouse and keyboard-based library for
+selecting successively bigger syntactical regions within a buffer.
+Simply load this library and you are ready to try it out by
+double-clicking on various kinds of characters in different buffer major
+modes. You'll quickly get the hang of it. (It also provides a command
+to jump between beginning and end tags within HTML and SGML buffers.)
+
+A great deal of smarts are built-in so that it does the right thing
+almost all of the time; many other attempts at similar behavior such as
+thing.el fail to deal with many file format complexities.
+
+Double clicks of the Selection Key (left mouse key) at the same point
+will select bigger and bigger regions with each successive use. The
+first double click selects a region based upon the character at the
+point of the click. For example, with the point over an opening or
+closing grouping character, such as { or }, the whole grouping is
+selected, e.g. a C function. When on an _ or - within a programming
+language variable name, the whole name is selected. The type of
+selection is displayed in the minibuffer as feedback. When using a
+language based mainly on indenting, like Bourne shell, a double click on
+the first alpha character of a line, such as an if statement, selects
+the whole statement.
+
+---------------
+
+This whole package is driven by a single function, available in mouse
+and keyboard forms, that first marks a region based on the syntax
+category of the character following point. Successive invocations mark
+larger and larger regions until the whole buffer is marked. See the
+documentation for the function, id-select-syntactical-region, for the
+kinds of syntax categories handled.
+
+Loading this package automatically installs its functionalty on
+double-clicks (or higher) of the left mouse key. (See the documentation
+for the variable, mouse-track-click-hook, for how this is done.) A
+single click of the left button will remove the region and reset point.
+
+The function, id-select-thing, may be bound to a key to provide the same
+syntax-driven region selection functionality. {C-c C-m} is a
+reasonable site-wide choice since this key is seldom used and it
+mnemonically indicates marking something. {C-c s} may be preferred as a
+personal binding.
+
+Use {C-g} to unmark the region when done. Use,
+id-select-thing-with-mouse, if you want to bind this to a mouse key and
+thereby use single clicks instead of double clicks.
+
+Three other commands are also provided:
+ id-select-and-copy-thing - mark and copy the syntactical unit to the
+ kill ring
+ id-select-and-kill-thing - kill the syntactical unit at point
+ id-select-goto-matching-tag - In HTML and SGML modes (actually any
+ listed in the variable, `id-select-markup-modes'), moves point to the
+ start of the tag paired with the closest tag that point is within or
+ which it precedes, so you can quickly jump back and forth between
+ open and close tags.
+"
+:short-doc "Syntactic region selection"
+:group 'editing
+:enable #'(lambda ()
+ (add-hook 'mouse-track-click-hook 'id-select-double-click-hook))
+:disable #'(lambda ()
+ (remove-hook 'mouse-track-click-hook 'id-select-double-click-hook))
+ )
+)
(provide 'id-select)
Index: xemacs-packages/edit-utils/iswitchb.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/iswitchb.el,v
retrieving revision 1.3
diff -u -p -r1.3 iswitchb.el
--- xemacs-packages/edit-utils/iswitchb.el 2001/07/20 14:09:12 1.3
+++ xemacs-packages/edit-utils/iswitchb.el 2005/01/31 20:55:47
@@ -1352,6 +1352,166 @@ This is an example function which can be
;;; HOOKS
(add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'iswitchb
+"As you type in a substring, the list of buffers currently matching
+the substring are displayed as you type. The list is ordered so
+that the most recent buffers visited come at the start of the list.
+The buffer at the start of the list will be the one visited when
+you press return. By typing more of the substring, the list is
+narrowed down so that gradually the buffer you want will be at the
+top of the list. Alternatively, you can use C-s an C-r to rotate
+buffer names in the list until the one you want is at the top of
+the list. Completion is also available so that you can see what is
+common to all of the matching buffers as you type.
+
+This code is similar to a couple of other packages. Michael R Cook
+<mcook(a)cognex.com> wrote a similar buffer switching package, but
+does exact matching rather than substring matching on buffer names.
+I also modified a couple of functions from icomplete.el to provide
+the completion feedback in the minibuffer.
+
+; Example
+
+If I have two buffers called \"123456\" and \"123\", with
\"123456\" the
+most recent, when I use iswitchb, I first of all get presented with
+the list of all the buffers
+
+ iswitch {123456,123}
+
+ If I then press 2:
+ iswitch 2[3]{123456,123}
+
+ The list in {} are the matching buffers, most recent first (buffers
+ visible in the current frame are put at the end of the list by
+ default). At any time I can select the item at the head of the
+ list by pressing RET. I can also bring the put the first element
+ at the end of the list by pressing C-s, or put the last element at
+ the head of the list by pressing C-r. The item in [] indicates
+ what can be added to my input by pressing TAB. In this case, I
+ will get \"3\" added to my input. So, press TAB:
+ iswitch 23{123456,123}
+
+ At this point, I still have two matching buffers.
+ If I want the first buffer in the list, I simply press RET. If I
+ wanted the second in the list, I could press C-s to move it to the
+ top of the list and then RET to select it.
+
+However, If I type 4, I only have one match left:
+ iswitch 234[123456] [Matched]
+
+Since there is only one matching buffer left, it is given in [] and we
+see the text [Matched] afterwards. I can now press TAB or RET to go
+to that buffer.
+
+ If however, I now type \"a\":
+ iswitch 234a [No match]
+ There are no matching buffers. If I press RET or TAB, I can be
+ prompted to create a new buffer called \"234a\".
+
+ Of course, where this function comes in really useful is when you
+ can specify the buffer using only a few keystrokes. In the above
+ example, the quickest way to get to the \"123456\" buffer would be
+ just to type 4 and then RET (assuming there isn't any newer buffer
+ with 4 in its name).
+
+ To see a full list of all matching buffers in a separate buffer,
+ hit ? or press TAB when there are no further completions to the
+ substring. Repeated TAB presses will scroll you through this
+ separate buffer.
+
+ The buffer at the head of the list can be killed by pressing C-k.
+ If the buffer needs saving, you will be queried before the buffer
+ is killed.
+
+ If you find that the file you are after is not in a buffer, you can
+ press C-x C-f to immediately drop into find-file.
+
+
+ See the doc string of iswitchb for full keybindings and features.
+ (describe-function 'iswitchb)
+
+; Customisation
+
+ See the User Variables section below for easy ways to change the
+ functionality of the program. These are accessible using the
+ custom package.
+ To modify the keybindings, use the hook provided. For example:
+\(add-hook 'iswitchb-define-mode-map-hook
+ 'iswitchb-my-keys)
+
+\(defun iswitchb-my-keys ()
+ \"Add my keybindings for iswitchb.\"
+ (define-key iswitchb-mode-map \" \" 'iswitchb-next-match)
+ )
+
+ Seeing all the matching buffers
+
+ If you have many matching buffers, they may not all fit onto one
+ line of the minibuffer. In this case, you should use rsz-mini
+ (resize-minibuffer-mode). You can also limit iswitchb so that it
+ only shows a certain number of lines -- see the documentation for
+ `iswitchb-minibuffer-setup-hook'.
+
+
+ Changing the list of buffers
+
+ By default, the list of current buffers is most recent first,
+ oldest last, with the exception that the buffers visible in the
+ current frame are put at the end of the list. A hook exists to
+ allow other functions to order the list. For example, if you add:
+
+ (add-hook 'iswitchb-make-buflist-hook 'iswitchb-summaries-to-end)
+
+ then all buffers matching \"Summary\" are moved to the end of the
+ list. (I find this handy for keeping the INBOX Summary and so on
+ out of the way.) It also moves buffers matching \"output\*$\" to the
+ end of the list (these are created by AUC TeX when compiling.)
+ Other functions could be made available which alter the list of
+ matching buffers (either deleting or rearranging elements.)
+
+ Font-Lock
+
+ If you have font-lock loaded, the first matching buffer is
+ highlighted. To switch this off, set (setq iswitchb-use-fonts nil)
+ I don't use font-lock that much, so I've hardcoded the faces. If
+ this is too harsh, let me know. Colouring of the matching buffer
+ name was suggested by Carsten Dominik (dominik(a)strw.leidenuniv.nl)
+
+
+ Replacement for read-buffer
+
+ iswitchb-read-buffer has been written to be a drop in replacement
+ for the normal buffer selection routine `read-buffer'. To use
+ iswitch for all buffer selections in Emacs, add:
+ (setq read-buffer-function 'iswitchb-read-buffer)
+ (This variable should be present in Emacs 20.3+)
+ XEmacs users can get the same behaviour by doing:
+ (defalias 'read-buffer 'iswitchb-read-buffer)
+ since `read-buffer' is defined in lisp.
+
+ Regexp matching
+
+ There is limited provision for regexp matching within iswitchb,
+ enabled through `iswitchb-regexp'. This allows you to type `c$'
+ for example and see all buffer names ending in `c'. This facility
+ is quite limited though in two respects. First, you can't
+ currently type in expressions like `[0-9]' directly -- you have to
+ type them in when iswitchb-regexp is nil and then toggle on the
+ regexp functionality. Likewise, don't enter an expression
+ containing `\' in regexp mode. If you try, iswitchb gets confused,
+ so just hit C-g and try again. Secondly, no completion mechanism
+ is currently offered when regexp searching."
+:short-doc "Dynamic buffer switching"
+:group 'keyboard
+:enable #'(lambda ()
+ (iswitchb-default-keybindings))
+ ;; No :disable
+ )
+)
+
(provide 'iswitchb)
;;; iswitchb.el ends here
Index: xemacs-packages/edit-utils/lazy-lock.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/lazy-lock.el,v
retrieving revision 1.11
diff -u -p -r1.11 lazy-lock.el
--- xemacs-packages/edit-utils/lazy-lock.el 2004/11/08 02:38:42 1.11
+++ xemacs-packages/edit-utils/lazy-lock.el 2005/01/31 20:55:47
@@ -1070,6 +1070,76 @@ will take place when text is fontified s
;;;###autoload
(add-minor-mode 'lazy-lock-mode 'lazy-lock-mode-line-string)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'lazy-lock
+
+"Make visiting buffers in `font-lock-mode' faster by making fontification
+be demand-driven and stealthy. Fontification only occurs when, and where,
+necessary. You can now use the so-called \"gaudier\" fontification regexps
+on big files without frustration.
+
+In a buffer (which has `font-lock-mode' enabled) which is at least
+`lazy-lock-minimum-size' characters long, only the visible portion of the
+buffer will be fontified. Motion around the buffer will fontify those
+visible portions that were not previous fontified.
+
+If stealth fontification is enabled, fontification will occur in invisible
+parts of the buffer after `lazy-lock-stealth-time' seconds of idle time.
+Caveats:
+
+Lazy Lock mode does not work efficiently with Outline mode. This is because
+when in Outline mode, although text may be hidden (not visible in the
+window), the text is visible to Emacs Lisp code (not surprisingly) and Lazy
+Lock fontifies it mercilessly. Hopefully this will be fixed one day.
+
+When Lazy Lock mode is enabled, fontification can be lazy in a number of ways:
+
+- Demand-driven buffer fontification if `lazy-lock-minimum-size' is non-nil.
+ This means initial fontification does not occur if the buffer is greater than
+ `lazy-lock-minimum-size' characters in length. Instead, fontification occurs
+ when necessary, such as when scrolling through the buffer would otherwise
+ reveal unfontified areas. This is useful if buffer fontification is too slow
+ for large buffers.
+
+- Deferred on-the-fly fontification if `lazy-lock-defer-on-the-fly' is non-nil.
+ This means on-the-fly fontification does not occur as you type. Instead,
+ fontification is deferred until after `lazy-lock-defer-time' seconds of Emacs
+ idle time, while Emacs remains idle. This is useful if fontification is too
+ slow to keep up with your typing.
+
+- Deferred context fontification if `lazy-lock-defer-contextually' is non-nil.
+ This means fontification updates the buffer corresponding to true syntactic
+ context, after `lazy-lock-defer-time' seconds of Emacs idle time, while Emacs
+ remains idle. Otherwise, fontification occurs on modified lines only, and
+ subsequent lines can remain fontified corresponding to previous syntactic
+ contexts. This is useful where strings or comments span lines.
+
+- Stealthy buffer fontification if `lazy-lock-stealth-time' is non-nil.
+ This means remaining unfontified areas of buffers are fontified if Emacs has
+ been idle for `lazy-lock-stealth-time' seconds, while Emacs remains idle.
+ This is useful if any buffer has any deferred fontification.
+
+Basic Font Lock mode on-the-fly fontification behaviour fontifies modified
+lines only. Thus, if `lazy-lock-defer-contextually' is non-nil, Lazy Lock mode
+on-the-fly fontification may fontify differently, albeit correctly. In any
+event, to refontify some lines you can use \\[font-lock-fontify-block].
+
+Stealth fontification only occurs while the system remains unloaded.
+If the system load rises above `lazy-lock-stealth-load' percent, stealth
+fontification is suspended. Stealth fontification intensity is controlled via
+the variable `lazy-lock-stealth-nice' and `lazy-lock-stealth-lines', and
+verbosity is controlled via the variable `lazy-lock-stealth-verbose'."
+:short-doc "Lazy demand-driven fontification for fast Font Lock mode"
+:group 'display
+:enable #'(lambda ()
+ (add-hook 'font-lock-mode-hook 'turn-on-lazy-lock))
+:disable #'(lambda ()
+ (remove-hook 'font-lock-mode-hook 'turn-on-lazy-lock))
+ )
+)
+
;; Provide ourselves:
(provide 'lazy-lock)
Index: xemacs-packages/edit-utils/lazy-shot.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/lazy-shot.el,v
retrieving revision 1.6
diff -u -p -r1.6 lazy-shot.el
--- xemacs-packages/edit-utils/lazy-shot.el 2002/11/28 18:55:08 1.6
+++ xemacs-packages/edit-utils/lazy-shot.el 2005/01/31 20:55:47
@@ -321,6 +321,30 @@ stealth locking functions."
(if font-lock-mode
(add-hook 'after-change-functions 'font-lock-after-change-function
nil t)))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'lazy-shot
+"This is an experimental demand based font-lock implemenation. It
+is almost equal in functionality and interface to lazy-lock 2.09
+Does somebody really need defer-locking?
+
+It is exprimental in the sense that it relies on C support from
+the redisplay engine, that is experimental. The code in this file
+is more or less finished. The C code support experimental because
+the current design is rumoured to be ugly. Secondly because
+XEmacs does actually display the \"un-font-locked\" parts of the
+buffer first, the user notices flashing as the buffer is repainted
+with color/fonts."
+:short-doc "Lazy font locking for XEmacs"
+:group 'display
+:enable #'(lambda ()
+ (add-hook 'font-lock-mode-hook 'turn-on-lazy-shot))
+:disable #'(lambda ()
+ (remove-hook 'font-lock-mode-hook 'turn-on-lazy-shot))
+ )
+)
(provide 'lazy-shot)
Index: xemacs-packages/edit-utils/live-icon.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/live-icon.el,v
retrieving revision 1.2
diff -u -p -r1.2 live-icon.el
--- xemacs-packages/edit-utils/live-icon.el 1999/11/27 20:49:59 1.2
+++ xemacs-packages/edit-utils/live-icon.el 2005/01/31 20:55:47
@@ -139,8 +139,23 @@
;; fr))
;; (frame-list)))
-(add-hook 'unmap-frame-hook 'live-icon-one-frame)
;;(start-itimer "live-icon" 'live-icon-all-frames 120 120)
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'live-icon
+"Make frame icons represent the current frame contents.
+Generates little pixmaps representing the contents of your frames."
+:short-doc "make frame icons represent the current frame contents"
+:group 'display
+:enable #'(lambda ()
+ (add-hook 'unmap-frame-hook 'live-icon-one-frame))
+:disable #'(lambda ()
+ (remove-hook 'unmap-frame-hook 'live-icon-one-frame))
+ )
+)
+
(provide 'live-icon)
;;; live-icon.el ends here
Index: xemacs-packages/edit-utils/page-ext.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/page-ext.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 page-ext.el
--- xemacs-packages/edit-utils/page-ext.el 1998/01/14 06:36:17 1.1.1.1
+++ xemacs-packages/edit-utils/page-ext.el 2005/01/31 20:55:48
@@ -785,6 +785,225 @@ to the same line in the pages buffer."
(make-local-variable 'pages-pos-list)
(make-local-variable 'pages-directory-buffer-narrowing-p))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'page-ext
+"You may use these commands to handle an address list or other
+small data base.
+
+ Summary
+
+The current page commands are:
+
+ forward-page C-x ]
+ backward-page C-x [
+ narrow-to-page C-x p
+ count-lines-page C-x l
+ mark-page C-x C-p (change this to C-x C-p C-m)
+ sort-pages not bound
+ what-page not bound
+
+The new page handling commands all use `C-x C-p' as a prefix. This
+means that the key binding for `mark-page' must be changed.
+Otherwise, no other changes are made to the current commands or
+their bindings.
+
+New page handling commands:
+
+ next-page C-x C-p C-n
+ previous-page C-x C-p C-p
+ search-pages C-x C-p C-s
+ add-new-page C-x C-p C-a
+ sort-pages-buffer C-x C-p s
+ set-page-delimiter C-x C-p C-l
+ pages-directory C-x C-p C-d
+ pages-directory-for-addresses C-x C-p d
+ pages-directory-goto C-c C-c
+
+
+ Using the page commands
+
+The page commands are helpful in several different contexts. For
+example, programmers often divide source files into sections using the
+`page-delimiter'; you can use the `pages-directory' command to list
+the sections.
+
+You may change the buffer local value of the `page-delimiter' with
+the `set-page-delimiter' command. This command is bound to `C-x C-p
+C-l' The command prompts you for a new value for the page-delimiter.
+Called with a prefix-arg, the command resets the value of the
+page-delimiter to its original value.
+
+You may set several user options:
+
+ The `pages-directory-buffer-narrowing-p' variable causes the
+ `pages-directory-goto' command to narrow to the destination page.
+
+ The `pages-directory-for-adding-page-narrowing-p' variable, causes the
+ `add-new-page' command to narrow to the new entry.
+
+ The `pages-directory-for-adding-new-page-before-current-page-p' variable
+ causes the `add-new-page' command to insert a new page before current
+ page.
+
+These variables are true by default.
+
+Additional, addresses-related user options are described in the next page
+of this file.
+
+
+ Handling an address list or small data base
+
+You may use the page commands to handle an address list or other
+small data base. Put each address or entry on its own page. The
+first line of text in each page is a `header line' and is listed by
+the `pages-directory' or `pages-directory-for-addresses' command.
+
+Specifically:
+
+ 1. Begin each entry with a `page-delimiter' (which is, by default,
+ `^L' at the beginning of the line).
+
+ 2. The first line of text in each entry is the `heading line'; it
+ will appear in the pages-directory-buffer which is constructed
+ using the `C-x C-p C-d' (pages-directory) command or the `C-x
+ C-p d' (pages-directory-for-addresses) command.
+
+ The heading line may be on the same line as the page-delimiter
+ or it may follow after. It is the first non-blank line on the
+ page. Conventionally, the heading line is placed on the line
+ immediately following the line containing page-delimiter.
+
+ 3. Follow the heading line with the body of the entry. The body
+ extends up to the next `page-delimiter'. The body may be of any
+ length. It is conventional to place a blank line after the last
+ line of the body.
+
+For example, a file might look like this:
+
+ FSF
+ Free Software Foundation
+ 59 Temple Place - Suite 330
+ Boston, MA 02111-1307 USA.
+ (617) 542-5942
+ gnu(a)gnu.org
+
+
+ House Subcommittee on Intellectual Property,
+ U.S. House of Representatives,
+ Washington, DC 20515
+
+ Congressional committee concerned with permitting or preventing
+ monopolistic restrictions on the use of software technology.
+
+
+ George Lakoff
+ ``Women, Fire, and Dangerous Things:
+ What Categories Reveal about the Mind''
+ 1987, Univ. of Chicago Press
+
+ About philosophy, Whorfian effects, and linguistics.
+
+
+ OBI (On line text collection.)
+ Open Book Initiative
+ c/o Software Tool & Die
+ 1330 Beacon St, Brookline, MA 02146 USA
+ (617) 739-0202
+ obi(a)world.std.com
+
+In this example, the heading lines are:
+
+ FSF
+ House Subcommittee on Intellectual Property
+ George Lakoff
+ OBI (On line text collection.)
+
+The `C-x C-p s' (sort-pages-buffer) command sorts the entries in the
+buffer alphabetically.
+
+You may use any of the page commands, including the `next-page',
+`previous-page', `add-new-page', `mark-page', and `search-pages'
+commands.
+
+You may use either the `C-x C-p d' (pages-directory-for-addresses)
+or the `C-x C-p C-d' (pages-directory) command to construct and
+display a directory of all the heading lines.
+
+In the directory, you may position the cursor over a heading line
+and type `C-c C-c' (pages-directory-goto) to go to the entry to
+which it refers in the pages buffer.
+
+You can type `C-c C-p C-a' (add-new-page) to add a new entry in the
+pages buffer or address file. This is the same command you use to
+add a new entry when you are in the pages buffer or address file.
+
+If you wish, you may create several different directories,
+one for each different buffer.
+
+`pages-directory-for-addresses' in detail
+
+The `pages-directory-for-addresses' assumes a default addresses
+file. You do not need to specify the addresses file but merely type
+`C-x C-p d' from any buffer. The command finds the file, constructs
+a directory for it, and switches you to the directory. If you call
+the command with a prefix arg, `C-u C-x C-p d', it prompts you for a
+file name.
+
+You may customize the addresses commands:
+
+ The `pages-addresses-file-name' variable determines the name of
+ the addresses file; by default it is \"~/addresses\".
+
+ The `pages-directory-for-addresses-goto-narrowing-p' variable
+ determines whether `pages-directory-goto' narrows the addresses
+ buffer to the entry, which it does by default.
+
+ The `pages-directory-for-addresses-buffer-keep-windows-p' variable
+ determines whether `pages-directory-for-addresses' deletes other
+ windows to show as many lines as possible on the screen or works
+ in the usual Emacs manner and keeps other windows. Default is to
+ keep other windows.
+
+ The `pages-directory-for-adding-addresses-narrowing-p' variable
+ determines whether `pages-directory-for-addresses' narrows the
+ addresses buffer to a new entry when you are adding that entry.
+ Default is to narrow to new entry, which means you see a blank
+ screen before you write the new entry.
+
+`pages-directory' in detail
+
+Call the `pages-directory' command from the buffer for which you
+want a directory created; it creates a directory for the buffer and
+pops you to the directory.
+
+The `pages-directory' command has several options:
+
+ Called with a prefix arg, `C-u C-x C-p C-d', the `pages-directory'
+ prompts you for a regular expression and only lists only those
+ header lines that are part of pages that contain matches to the
+ regexp. In the example above, `C-u C-x C-p C-d 617 RET' would
+ match the telephone area code of the first and fourth entries, so
+ only the header lines of those two entries would appear in the
+ pages-directory-buffer.
+
+ Called with a numeric argument, the `pages-directory' command
+ lists the number of lines in each page. This is helpful when you
+ are printing hardcopy.
+
+ Called with a negative numeric argument, the `pages-directory'
+ command lists the lengths of pages whose contents match a regexp.
+"
+:short-doc "Extended page handling commands"
+:require 'page-ext
+:custom-group 'pages
+:group 'editing
+:enable #'ignore
+ ;; No :disable
+ )
+)
+
;;; Place `provide' at end of file.
(provide 'page-ext)
Index: xemacs-packages/edit-utils/paren.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/paren.el,v
retrieving revision 1.3
diff -u -p -r1.3 paren.el
--- xemacs-packages/edit-utils/paren.el 1998/10/10 13:59:43 1.3
+++ xemacs-packages/edit-utils/paren.el 2005/01/31 20:55:48
@@ -391,6 +391,50 @@ See also `paren-mode' and `paren-highlig
(paren-set-mode (if (and (numberp arg) (> arg 0))
'blink-paren -1) t))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'paren
+"Purpose of this package:
+
+ This package highlights matching parens (or whole sexps) for easier
+ editing of source code, particularly lisp source code.
+
+The `paren-highlight' hook function runs after each command and
+checks to see if the cursor is at a parenthesis. If so, then it
+highlights, in one of several ways, the matching parenthesis.
+
+Priority is given to matching parentheses right before the cursor because
+that's what makes sense when you're typing a lot of closed parentheses.
+
+This is especially intuitive if you frequently use forward-sexp (M-C-f)
+and backward-sexp (M-C-b) to maneuver around in source code.
+
+Different faces are used for matching and mismatching parens so that it
+is easier to see mistakes as you type them. Audible feedback is optional.
+
+If a (mis)matching paren is offscreen, then a message is sent to the modeline.
+
+If paren-mode is `sexp', entire S-expressions are highlighted instead of
+just matching parens.
+"
+:short-doc "Highlight (un)matching parens and whole expressions"
+:custom-group 'paren-matching
+:group 'display
+:enable #'(lambda ()
+ (paren-set-mode (if (and (boundp 'highlight-paren-expression)
+ ;; bletcherous blink-paren no-naming-convention
+ highlight-paren-expression)
+ 'sexp
+ (if (device-on-window-system-p)
+ 'blink-paren
+ 'paren))
+ t))
+:disable #'(lambda ()
+ (paren-set-mode -1 t))
+ )
+)
+
(provide 'blink-paren)
(provide 'paren)
Index: xemacs-packages/edit-utils/permanent-buffers.el
===================================================================
RCS file:
/pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/permanent-buffers.el,v
retrieving revision 1.3
diff -u -p -r1.3 permanent-buffers.el
--- xemacs-packages/edit-utils/permanent-buffers.el 2000/10/06 09:08:01 1.3
+++ xemacs-packages/edit-utils/permanent-buffers.el 2005/01/31 20:55:48
@@ -223,6 +223,30 @@ regenerated fresh and empty. See also th
(interactive)
(message "permanent-buffers version %s" permanent-buffers-version))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'permanent-buffers
+"A permanent buffer is a buffer that you don't want to kill, mainly used for
+testing or temporary stuff. The *scratch* buffer is the most famous example
+of what could be a permanent buffer. This package allows you to define
+several permanent buffers (the scratch buffer can be one of them) that
+will never disapear. If you kill them or save their contents, they will be
+regenerated. You can also specify a set of lisp forms to eval in the buffer
+when it is (re)generated.
+
+The package is implemented in a minor-mode fashion. You can customize the
+default value of `permanent-buffers-mode' or use
+`turn-on-permanent-buffers' at startup. Within an XEmacs session, use
+`permanent-buffers-mode' or `tun-o[n|ff]-oermanent-buffers'. You might also
+want to customize `permanent-buffers-alist'."
+:short-doc "Permanent buffers management package"
+:group 'buffers-and-windows
+:enable #'turn-on-permanent-buffers
+:disable #'turn-off-permanent-buffers
+ )
+)
+
(provide 'permanent-buffers)
;;; permanent-buffers.el ends here
Index: xemacs-packages/edit-utils/popper.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/popper.el,v
retrieving revision 1.3
diff -u -p -r1.3 popper.el
--- xemacs-packages/edit-utils/popper.el 1998/10/02 06:10:33 1.3
+++ xemacs-packages/edit-utils/popper.el 2005/01/31 20:55:49
@@ -1807,6 +1807,213 @@ window is deleted, the display jump is a
(popper-install))
+;; XEmacs:
+
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'popper
+"\
+1. VERSION:
+
+This version of popper is based on version 2.40, which as far as I can
+tell is the last version distributed by Chris McConnell, the original
+author of popper. I have been unsuccessful at contacting him and so
+have decided to take over maintenance of the package for XEmacs. New
+versions distributed by me will be designated \"2.40 XEmacs X.Y\". This
+designation is not meant to imply that this is an XEmacs-specific
+version, only that it is the version distributed with XEmacs. This
+version incorporates significant bug fixes and changes with respect to
+the original. Overall it should work much better. Please let me know
+if you have any problems or suggestions.
+
+2. DESCRIPTION:
+
+This module provides a single shrink-wrapped window for displaying
+temporary text called the popper window. At any time there is at
+most one popper window on a given emacs frame. If there is an entry
+for the buffer being displayed on popper-min-heights, the size of
+the window will be from that entry. If the buffer is empty, the
+size of the window will be popper-empty-min. Otherwise its size
+will be the minimum of the number of lines of text being displayed
+and half the number of lines in the currently selected window when
+the popper window was created. It will work with any function that
+uses temporary windows or that has been wrapped with popper-wrap.
+The window can be scrolled or buried from any other window.
+
+When a buffer is displayed using the function
+with-output-to-temp-buffer, the text will be displayed in the
+popper window if the name of the buffer is in popper-pop-buffers
+or popper-pop-buffers is set to `t' and the name is not in
+popper-no-pop-buffers. If you have a buffer with a process, you
+can cause it to automatically scroll by setting
+popper-scroll-buffers to `t' or to a list of buffer names to
+scroll. Many kinds of completion and help information are
+displayed this way. In general any buffer with *'s around its
+name will be a temporary buffer. Some commands like shell-command
+do not use with-output-to-temp-buffer even though you might like
+to have their output be temporary. For commands like this, you
+can define a wrapper using the function popper-wrap.
+
+If popper-use-message-buffer is non-nil then popper output that is
+one line or less will be displayed in the minibuffer.
+
+The default binding for C-x o is changed so that when a buffer is
+displayed in a popper window, it will be skipped if it is in
+popper-buffers-to-skip or popper-buffers-to-skip is `t' and it is
+not in popper-buffers-no-skip.
+
+3. USAGE:
+
+Load this file, preferably after byte-compiling it. By default
+popper does not install itself unless the variable
+`popper-install-when-load' has been set non-nil before it is loaded.
+To manually install popper, type the command M-x popper-install. If
+you later decide popper is not your cup-o-tea, you may un-install it
+using the command M-x popper-unstall.
+
+Once installed, all temporary windows will be handled by popper by
+default. If you do not define custom key bindings using the
+popper-load-hook, the bindings for manipulating the popper temporary
+window will be:
+
+ * C-z C-z, C-z z, C-z 1 : popper-bury-output
+ Alternately hide or show the temporary pop-up window.
+
+ * C-z C-v, C-z v : popper-scroll-output
+ Scroll the popper output window.
+
+ * C-z M-v, C-z V : popper-scroll-output-back
+ Scroll the popper output window backwards.
+
+ * C-z < : popper-beginning-of-buffer
+ Scroll the popper output window to the beginning of the buffer.
+
+ * C-z > : popper-end-of-buffer
+ Scroll the popper output window to the end of the buffer.
+
+ * C-z C-j, C-z j, C-z C-o, C-z o : popper-jump-to-popper
+ Select the popper window, or jump back to the previous window
+ if the popper window is already selected. With a C-u argument,
+ show the popper window first if necessary.
+
+ * C-z C-s : popper-isearch-forward
+ Do incremental search forward in the popper buffer.
+
+ * C-z C-r : popper-isearch-backward
+ Do incremental search backward in the popper buffer.
+
+ * C-z C-M-s : popper-isearch-forward-regexp
+ Do regexp incremental search forward in the popper buffer.
+
+ * C-z C-M-r : popper-isearch-backward-regexp
+ Do regexp incremental search backward in the popper buffer.
+
+ * C-z g : popper-grow-output
+ Grow the popper output window.
+
+ * C-z G, C-z M-g : popper-shrink-output
+ Shrink the popper output window.
+
+ * C-z C-b, C-z b : popper-switch-buffer
+ Prompt for a different popper temporary buffer to show.
+
+ * C-z C-k, C-z k : popper-kill
+ Kill or bury the current popper buffer and drop it off of the
+ stack of popper buffers for this frame. If the stack of popper
+ buffers (for the selected frame) is not empty, show the new
+ top-most buffer. The buffer is killed if it has been saved with
+ `popper-save'; otherwise it is just buried.
+
+ * C-z C-x, C-z x : popper-cycle
+ Cycle through all popper buffers (for the selected frame) by
+ dropping the current popper buffer to bottom of the stack.
+
+ * C-z s : popper-save
+ Save the current popper buffer by renaming it so that it won't be
+ overwritten.
+
+ * C-x o : popper-other-window
+ Like other-window, but (by default) skips the popper window.
+ Use a C-u prefix to select the popper window. See the variables
+ `popper-buffers-to-skip' and `popper-buffers-no-skip'.
+
+ * C-x 0 : popper-delete-window
+ Like delete-window, but hides and re-shows the popper window
+ around the call to delete-window. Also, the variable
+ `popper-delete-window-can-delete-frame' can be set to nil to
+ prevent deletion of the frame if the user attempts to delete the
+ last window.
+
+Note that \"C-z\" is the popper-prefix, and that many bindings in the
+popper map are chosen by analogy to a similar command in the \"C-x\"
+map. If you have suggestions for more intuitive or easily typed
+bindings, or additional user commands that would be nice, please let
+me know.
+
+4. USER CUSTOMIZATION:
+
+See the section `Popper user variables' below for configurable
+variables. Here is a sample load hook for your .emacs:
+
+\(defun gk:popper-load-hook ()
+ (setq popper-install-when-load t) ; Hooray!
+ (setq popper-mode-line-text \" Popper\") ; I know the key bindings
+ (setq popper-no-pop-buffers '(\"^Man: \")) ; don't pop manual
buffers
+ (setq popper-max-heights '((\".*\" . (40)))) ; use at most 40%
+ (setq popper-delete-window-can-delete-frame nil) ; extremely losing...
+ )
+\(add-hook 'popper-load-hook 'gk:popper-load-hook)
+\(require 'popper)
+
+Once popper is installed, you may wrap a command that does not use
+`with-output-to-temp-buffer' so that it will work with popper as
+follows:
+
+\(popper-wrap command \"*Command Output*\")
+
+This may not yet work in all cases. It is known not to work for
+M-x compile at this time (See the TODO list below).
+
+When loaded, popper checks the values of certain user variable for
+possible problems, unless `popper-inhibit-warnings' is non-nil. In
+addition, if `popper-fix-incompatible-settings' has been set non-nil,
+popper will set these variables to values known to work best.
+See also the variable `popper-suggested-settings'.
+
+5. WARNINGS:
+
+This package redefines the value of `temp-buffer-show-function'.
+It also advises the functions `split-window' and `pop-to-buffer'
+so that the popper window is buried before calling the old
+definition. The macro `popper-wrap' uses defadvice.
+"
+:short-doc "Shrink-wrapped temporary windows for Emacs"
+:group 'buffers-and-windows
+;;; (defun gk:popper-load-hook ()
+;;; (setq popper-install-when-load t) ; Hooray!
+;;; (setq popper-mode-line-text " Popper") ; I know the key bindings
+;;; (setq popper-no-pop-buffers '("^Man: ")) ; don't pop manual
buffers
+;;; (setq popper-max-heights '((".*" . (40)))) ; use at most 40%
+;;; (setq popper-delete-window-can-delete-frame nil) ; extremely losing...
+;;; )
+
+:enable #'(lambda ()
+ (unless (fboundp 'behavior-popper-load-hook)
+ (defun behavior-popper-load-hook ()
+ ;; I know the key bindings
+ (setq popper-mode-line-text " Popper")
+ ;; don't pop manual buffers
+ (setq popper-no-pop-buffers '("^Man: "))
+ ;; use at most 40%
+ (setq popper-max-heights '((".*" . (40))))
+ ;; extremely losing...
+ (setq popper-delete-window-can-delete-frame nil)))
+ (add-hook 'popper-load-hook 'behavior-popper-load-hook)
+ (popper-install))
+:disable #'(lambda ()
+ (popper-unstall))
+ )
+)
;;;
;;; Finally, provide the feature
;;;
Index: xemacs-packages/edit-utils/power-macros.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/power-macros.el,v
retrieving revision 1.1
diff -u -p -r1.1 power-macros.el
--- xemacs-packages/edit-utils/power-macros.el 2000/10/18 17:54:30 1.1
+++ xemacs-packages/edit-utils/power-macros.el 2005/01/31 20:55:49
@@ -1926,6 +1926,37 @@ The buffer is created if it doesn't exis
;;}}}
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'power-macros
+"Keyboard Macros are a very powerful tool, if you know how to use them
+the right way! Without this extension it is, however, a bit difficult in
+Emacs to define and maintain several macros at a time. This problem is
+solved with this package.
+
+When you have loaded this package Emacs will, upon completion of
+macro definition, ask you which key you want to assign this macro
+to and ask for a description of the macro.
+If something is already bound to this key, Emacs will ask you
+whether you want to override this binding. Furthermore, this
+package also takes care of saving the macro to your .emacs file
+for later Emacs sessions.
+
+The description for all the defined macros may be obtained with the
+function `pm-manage-macros'. Using this function you can also
+manage you power-macros. You execute this function by pressing `M-x' and
+typing `pm-manage-macros'."
+:short-doc "Easy multiple macro maintenance"
+:group 'editing
+:require 'power-macros
+:enable #'ignore
+ ;; no :disable
+ )
+)
+
+
(provide 'power-macros)
(message "Loading power-macros...done")
Index: xemacs-packages/edit-utils/recent-files.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/recent-files.el,v
retrieving revision 1.9
diff -u -p -r1.9 recent-files.el
--- xemacs-packages/edit-utils/recent-files.el 2004/11/08 02:38:42 1.9
+++ xemacs-packages/edit-utils/recent-files.el 2005/01/31 20:55:49
@@ -766,4 +766,162 @@ with a prefix argument, you will be prom
(read-coding-system "Coding system: ")
nil)))
(find-file filename codesys))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'recent-files
+"Recent-files adds the menu \"Recent Files\" (or whatever name you
+choose, see \"Customization:\" below) to Emacs's menubar. Its
+entries are the files (and directories) that have recently been
+opened by Emacs. You can open one of these files again by
+selecting its entry in the \"Recent Files\" menu. The list of file
+entries in this menu is preserved from one Emacs session to
+another. You can prevent Emacs from saving this list by selecting
+\"Don't save recent-files list on exit\" from the menu. If you have
+disabled saving, you can re-enable it by selecting \"Save
+recent-files list on exit\".
+
+The menu has permanent and non-permanent entries. Permanent
+entries are marked with an asterisk in front of the filename. The
+non-permanent entries are hidden in a submenu.
+
+Each time you open a file in Emacs, it is added as a non-permanent
+entry to the menu. The value of `recent-files-number-of-entries'
+determines how many non-permanent entries are held in the
+menu. When the number of non-permanent entries reaches this value,
+the least recently added non-permanent entry is removed from the
+menu when another non-permanent entry is added. It is not removed
+from the list, though; it may reappear when entries are deleted
+from the list. The number of entries saved to disk is the value of
+the variable `recent-files-number-of-saved-entries'.
+
+Permanent entries are not removed from the menu. You can make a
+file entry permanent by selecting \"Make <buffer> permanent\" (where
+<buffer> is the name of the current buffer) when the current
+buffer holds this file. \"Make <buffer> non-permanent\" makes the
+file entry of the current buffer non-permanent.
+
+The command \"Kill buffer <buffer> and delete entry\" is handy when
+you have accidently opened a file but want to keep neither the
+buffer nor the entry.
+
+You can erase the list of non-permanent entries by selecting
+\"Erase non-permanent entries\" from the menu.
+
+Customization:
+
+There are lots of variables to control the behaviour of
+recent-files. You do not have to change any of them if you like it
+as it comes out of the box. However, you may want to look at these
+options to make it behave different.
+
+`recent-files-number-of-entries'
+ Controls how many non-permanent entries are shown in the
+ recent-files list. The default is 15.
+
+`recent-files-number-of-saved-entries'
+ Controls how many non-permanent entries are saved to disk when
+ Emacs exits or recent-files-save-the-list is called. The
+ default is 50.
+
+`recent-files-save-file'
+ The name of the file where the recent-files list is saved
+ between Emacs session. You probably don't need to change this.
+ The default is \".recent-files.el\" in your home directory.
+
+`recent-files-dont-include'
+ A list of regular expressions for files that should not be
+ included into the recent-files list. This list is empty by
+ default. For instance, a list to exclude all .newsrc
+ files, all auto-save-files, and all files in the /tmp
+ directory (but not the /tmp directory itself) would look
+ like this:
+ (setq recent-files-dont-include
+ '(\"/\\.newsrc\" \"~$\" \"^/tmp/.\"))
+ The default is empty.
+
+`recent-files-use-full-names'
+ If the value of this variable is non-nil, the full pathnames of
+ the files are shown in the recent-files menu. Otherwise only
+ the filename part (or the last name component if it is a
+ directory) is shown in the menu. The default it t, i.e. show
+ full names.
+
+`recent-files-filename-replacements'
+ This is a list of pairs of regular expressions and replacement
+ strings. If a filename matches one of the regular expressions,
+ the matching part is replaced by the replacement string for
+ display in the recent-files menu.
+ Example: My home directory is \"/users/mmc/nickel/\". I want to
+ replace it with \"~/\". I also want to replace the directory
+ \"/imports/teleservices/mmc/avc2/\", where I work a lot, with
+ \".../avc2/\". The list then looks like
+ (setq recent-files-filename-replacements
+ '((\"/users/mmc/nickel/\" . \"~/\")
+ (\"/imports/teleservices/mmc/avc2/\" .
\".../avc2/\")))
+ Only the first match is replaced. So, if you have several
+ entries in this list that may match a filename simultaneously,
+ put the one you want to match (usually the most special) in
+ front of the others. The default is to replace the home
+ directory with \"~\".
+
+`recent-files-sort-function'
+ Contains a function symbol to sort the display of filenames in
+ the recent-files menu. Supplied are two functions,
+ 'recent-files-dont-sort and 'recent-files-sort-alphabetically.
+ The first, which is the default, preserves the order of \"most
+ recent on top\".
+
+`recent-files-permanent-submenu'
+ If this variable is non-nil, the permanent entries are put into
+ a separate submenu of the recent-files menu. The default is
+ nil.
+
+`recent-files-non-permanent-submenu'
+ If this variable is non-nil, the non-permanent entries are put
+ into a separate submenu of the recent-files menu. The default
+ is nil. (You can set both `recent-files-permanent-submenu' and
+ `recent-files-non-permanent-submenu' to t to have both lists in
+ separate submenus.)
+
+`recent-files-commands-submenu'
+ If this variable is non-nil, the commands if recent-files are
+ placed in a submenu of the recent-files menu. The default is
+ nil.
+
+`recent-files-commands-submenu-title'
+ If the commands are placed in a submenu, this string is used as
+ the title of the submenu. The default is \"Commands...\".
+
+`recent-files-actions-on-top'
+ If this variable is non-nil, the \"action\" menu entries (\"Make
+ <buffer> permanent\" etc.) are put on top of the menu. Otherwise
+ they appear below the file entries or submenus. The default is
+ nil.
+
+`recent-files-permanent-first'
+ If this variable is t, the permanent entries are put first in
+ the recent-files menu, i.e. above the non-permanent entries. If
+ the value is nil, non-permanent entries appear first. If the
+ value is neither t nor nil, the entries are sorted according to
+ recent-files-sort-function. The default is 'sort.
+
+`recent-files-find-file-command'
+ This variable contains to commandto execute when a file entry
+ is selected from the menu. Usually this will be `find-file',
+ which is the default.
+
+KNOWN BUG:
+ - recent-files overwrites the recent-files-save-file
+ unconditionally when Emacs exits. If you have two Emacs
+ processes running, the one exiting later will overwrite the
+ file without merging in the new entries from the other Emacs
+ process. This can be avoided by disabling the save on exit from
+ the menu."
+:short-doc "`Recent Files' menu"
+:group 'menus
+:enable 'recent-files-initialize)
+)
+
;;; EOF
Index: xemacs-packages/edit-utils/redo.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/redo.el,v
retrieving revision 1.2
diff -u -p -r1.2 redo.el
--- xemacs-packages/edit-utils/redo.el 2000/11/16 14:11:57 1.2
+++ xemacs-packages/edit-utils/redo.el 2005/01/31 20:55:50
@@ -200,4 +200,34 @@ A numeric argument serves as a repeat co
(message "Undo!"))
(setq last-buffer-undo-list buffer-undo-list))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'redo
+"XEmacs' normal undo system allows you to undo an arbitrary
+number of buffer changes. These undos are recorded as ordinary
+buffer changes themselves. So when you break the chain of
+undos by issuing some other command, you can then undo all
+the undos. The chain of recorded buffer modifications
+therefore grows without bound, truncated only at garbage
+collection time.
+
+The redo/undo system is different in two ways:
+ 1. The undo/redo command chain is only broken by a buffer
+ modification. You can move around the buffer or switch
+ buffers and still come back and do more undos or redos.
+ 2. The `redo' command rescinds the most recent undo without
+ recording the change as a _new_ buffer change. It
+ completely reverses the effect of the undo, which
+ includes making the chain of buffer modification records
+ shorter by one, to counteract the effect of the undo
+ command making the record list longer by one."
+:short-doc "Standard undo/redo commands"
+:group 'editing
+:require 'redo
+:enable #'identity
+ ;; no :disable
+)
+)
+
;;; redo.el ends here
Index: xemacs-packages/edit-utils/reportmail.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/reportmail.el,v
retrieving revision 1.3
diff -u -p -r1.3 reportmail.el
--- xemacs-packages/edit-utils/reportmail.el 1999/12/01 08:30:51 1.3
+++ xemacs-packages/edit-utils/reportmail.el 2005/01/31 20:55:50
@@ -994,4 +994,97 @@ non-nil, always match using regexps."
(progn (message "Reportmail: %s" mesg)
(sit-for display-time-debugging-delay)))))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'reportmail
+"When new mail arrives, a brief blurb about it will be displayed in the
+mode line, and a more verbose message will be printed in the echo area.
+But unlike most echo-area messages, this message will not go away at
+the next keystroke - it doesn't go away until the next extended-command
+is used. This is cool because that means you won't miss seeing the
+subject of the newly-arrived mail because you happened to be typing when
+it arrived.
+
+But if you set the variable `display-time-flush-echo-area' to t, then this
+message will be cleared every `display-time-interval' seconds. This means
+the message will be around for at most 30 seconds or so, which you may
+prefer.
+
+Site Configuration
+------------------
+
+The variables display-time-incoming-mail-file and
+display-time-message-separator identify the location and format of
+your waiting messages. If you are in the CMU SCS environment, or
+are on a generic BSD unix system, this code should work right away.
+Otherwise, you might need to modify the values of these to make things
+work.
+
+Junk Mail
+---------
+
+The reportmail package has a notion of \"junk mail,\" which can be used to
+reduce the frequency of irritating interruptions by reporting only the
+arrival of messages that seem to be interesting. If you're on a lot
+of high-volume mailing lists, this can be quite convenient. To use
+this facility, add something like the following to your .emacs file:
+
+ ;; The value of this variable is a list of lists, where the first
+ ;; element in each list is the name of a header field and the
+ ;; remaining elements are various elements of the value of this
+ ;; header field that signal the junkiness of a message.
+ (setq display-time-junk-mail-checklist
+ '((\"From\" \"bcp\" \"Benjamin Pierce\"
\"Benjamin.Pierce\"
+ \"Mail Delivery Subsystem\" \"network\"
\"daemon@bartok\")
+ (\"To\" \"sml-request\"
\"sml-redistribution-request\"
+ \"scheme\" \"TeXhax-Distribution-list\")
+ (\"Resent-From\" \"Benjamin.Pierce\")
+ (\"Sender\" \"WRITERS\" \"Haskell\" \"Electronic
Music Digest\" \"NEW-LIST\")))
+
+By default, the entries in this list are matched exactly as
+substrings of the given header fields. If an entry begins with
+the character ^ it will be matched as a regular expression. If the
+variable display-time-match-using-regexps is set, then all entries
+will be matched as regular expressions.
+
+Note that elements of display-time-my-addresses are NOT automatically
+included in display-time-junk-mail-checklist. If you want mail from
+yourself to be considered junkmail, you must add your addresses to
+display-time-junk-mail-checklist too.
+
+
+Xbiff Interface
+---------------
+
+If you normally keep your emacs window iconified, reportmail can
+maintain an xbiff or xbiff++ display as well. The xbiff window will only
+be highlighted when non-junk mail is waiting to be read. For example:
+
+ (if window-system-version
+ (setq display-time-use-xbiff t))
+ (setq display-time-xbiff-arg-list '(\"-update\" \"30\"
\"-geometry\" \"+0+0\"))
+ (setq display-time-xbiff-program \"xbiff++\")
+"
+:short-doc "Display time, load, new mail in mode line"
+:group 'display
+:require 'reportmail
+:enable #'(lambda ()
+ (setq display-time-my-addresses
+ (nconc
+ (and user-mail-address user-mail-address)
+ (and user-mail-address (string-match "^\\(.*\\)@"
+ user-mail-address)
+ (match-string 1))
+ (list (user-full-name) (user-login-name))))
+
+ ;; By default, mail arrival is reported with a message but no
+ ;; beep
+ (setq display-time-mail-ring-bell t)
+
+ (display-time))
+ ;; no :disable
+ )
+)
+
(provide 'reportmail)
Index: xemacs-packages/edit-utils/resume.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/resume.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 resume.el
--- xemacs-packages/edit-utils/resume.el 1998/01/14 06:36:17 1.1.1.1
+++ xemacs-packages/edit-utils/resume.el 2005/01/31 20:55:50
@@ -126,6 +126,32 @@
(write-region (point-min) (point-max) file nil 'quiet))
(set-buffer-modified-p nil)))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'resume
+"The purpose of this library is to handle command line arguments
+when you resume an existing Emacs job.
+
+You can't get the benefit of this library by using the `xemacs' command,
+since that always starts a new Emacs job. Instead you must use a
+command called `edit' which knows how to resume an existing Emacs job
+if you have one, or start a new Emacs job if you don't have one.
+
+To define the `edit' command, run the script etc/emacs.csh (if you use CSH),
+or etc/emacs.bash if you use BASH. You would normally do this in your
+login script."
+:short-doc "Process command line args from within a suspended XEmacs job"
+:group 'processes
+:enable #'(lambda ()
+ (add-hook 'suspend-hook 'resume-suspend-hook)
+ (add-hook 'suspend-resume-hook 'resume-process-args))
+:disable #'(lambda ()
+ (remove-hook 'suspend-hook 'resume-suspend-hook)
+ (remove-hook 'suspend-resume-hook 'resume-process-args))
+ )
+)
+
(provide 'resume)
;;; resume.el ends here
Index: xemacs-packages/edit-utils/rsz-minibuf.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/rsz-minibuf.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 rsz-minibuf.el
--- xemacs-packages/edit-utils/rsz-minibuf.el 1998/01/14 06:36:14 1.1.1.1
+++ xemacs-packages/edit-utils/rsz-minibuf.el 2005/01/31 20:55:50
@@ -225,6 +225,55 @@ respectively."
(set-frame-size (selected-frame) (frame-width)
(plist-get minibuffer-frame-plist 'height)))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'resize-minibuffer
+"This package allows the entire contents (or as much as possible) of the
+minibuffer to be visible at once when typing. As the end of a line is
+reached, the minibuffer will resize itself. When the user is done
+typing, the minibuffer will return to its original size.
+
+In window systems where it is possible to have a frame in which the
+minibuffer is the only window, the frame itself can be resized.
+
+\[[ NOTE: The code to resize frames has not been tested under Lucid Emacs,
+because detached minibuffers are broken. ]] not accurate.
+
+Note that the minibuffer and echo area are not the same! They simply
+happen to occupy roughly the same place on the frame. Messages put in
+the echo area will not cause any resizing by this package.
+
+This package is considered a minor mode but it doesn't put anything in
+minor-mode-alist because this mode is specific to the minibuffer, which
+has no modeline.
+
+When this behavior is enabled, the minibuffer is dynamically resized to
+contain the entire region of text put in it as you type.
+
+The maximum height to which the minibuffer can grow is controlled by the
+variable `resize-minibuffer-window-max-height'.
+
+The variable `resize-minibuffer-window-exactly' determines whether the
+minibuffer window should ever be shrunk to make it no larger than needed to
+display its contents.
+
+When using a window system, it is possible for a minibuffer to be the sole
+window in a frame. Since that window is already its maximum size, the only
+way to make more text visible at once is to increase the size of the frame.
+The variable `resize-minibuffer-frame' controls whether this should be
+done. The variables `resize-minibuffer-frame-max-height' and
+`resize-minibuffer-frame-exactly' are analogous to their window
+counterparts."
+:short-doc "Dynamically resize minibuffer to display entire contents"
+:group 'buffers-and-windows
+:enable #'(lambda ()
+ (resize-minibuffer-mode 1))
+:disable #'(lambda ()
+ (resize-minibuffer-mode -1))
+ )
+)
+
(provide 'rsz-minibuf)
Index: xemacs-packages/edit-utils/saveconf.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/saveconf.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 saveconf.el
--- xemacs-packages/edit-utils/saveconf.el 1998/01/14 06:36:17 1.1.1.1
+++ xemacs-packages/edit-utils/saveconf.el 2005/01/31 20:55:50
@@ -282,3 +282,60 @@ point is set in each window to what is w
(save-excursion
(set-buffer (get-buffer-create "*scratch*"))
default-directory))
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'save-context
+"This package of functions gives Emacs the ability to remember which
+files were being visited, the windows that were on them, and the
+value of point in their buffers the last Emacs session in the same
+directory. This is an emulation of an old Gosling Emacs feature.
+
+The relevant commands are save-context and recover-context.
+
+Most of the time you'll want an Emacs session's context saved even if
+you choose not to recover it later. To avoid having to manually
+M-x save-context at each emacs exit, put the line:
+ (setq auto-save-and-recover-context t)
+in your .emacs or in default.el in the lisp directory of the Emacs
+distribution. The context will then automatically be saved when
+Emacs exits.
+
+By default only the contexts of visible buffers (buffers with windows
+on them) are saved. Setting the variable save-buffer-context to t
+causes the contexts of all buffers to be saved.
+
+Put this file in the \"lisp\" directory of the emacs distribution in a
+file called saveconf.el. Byte-compile it.
+
+There are two ways to use this package.
+ 1) Put the line
+ (require 'saveconf)
+ in the file site-init.el in the lisp directory of the Emacs
+ directory and rebuild Emacs. If you get the \"Pure Lisp storage
+ exhausted\" error message when rebuilding Emacs, increase PURESIZE
+ in src/config.h by about 30000 bytes and try again. It's almost
+ certain that this will happen to you so you might as well increase
+ PURESIZE beforehand.
+
+ This is the preferred mode of operation because it allows the
+ package to become part of Emacs' startup sequence and automatically
+ restore context in a directory if Emacs is invoked without any
+ command line arguments.
+
+ 2) Put these lines
+ (require 'saveconf)
+ (if (null (cdr command-line-args))
+ (setq inihibit-startup-message (recover-context)))
+ at the end of your .emacs file or the default.el file in the
+ lisp directory of the Emacs distribution. This causes the
+ context saved in the current directory to be recovered whenever
+ Emacs is invoked without any arguments.
+"
+:short-doc "Save buffer and window configs between editing sessions"
+:group 'buffers-and-windows
+;; #### Write the hooks correctly so they don't require manual modification
+;; of init.el.
+ )
+)
Index: xemacs-packages/edit-utils/savehist.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/savehist.el,v
retrieving revision 1.2
diff -u -p -r1.2 savehist.el
--- xemacs-packages/edit-utils/savehist.el 1999/11/27 20:49:59 1.2
+++ xemacs-packages/edit-utils/savehist.el 2005/01/31 20:55:50
@@ -200,6 +200,33 @@ A variable will be saved if it is bound
(subseq arg 0 n)
arg))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'save-history
+"Many editors (e.g. Vim) have the feature of saving minibuffer
+history to an external file after exit. This package provides the
+same feature in Emacs. When Emacs is about the exit,
+`savehist-save' will dump the contents of various minibuffer
+histories (as determined by `savehist-history-variables') to a save
+file (`~/.emacs-history' by default). Although the package was
+designed for saving the minibuffer histories, any variables can be
+saved that way.
+
+To use savehist, put the following to `~/.emacs':
+
+\(require 'savehist)
+\(savehist-load)
+
+Be sure to have `savehist.el' in a directory that is in your
+load-path, and byte-compile it."
+:short-doc "Save minibuffer history"
+:group 'editing
+;; #### Write the hooks correctly so they don't require manual modification
+;; of init.el.
+ )
+)
+
(provide 'savehist)
;;; savehist.el ends here
Index: xemacs-packages/edit-utils/saveplace.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/saveplace.el,v
retrieving revision 1.2
diff -u -p -r1.2 saveplace.el
--- xemacs-packages/edit-utils/saveplace.el 2002/10/19 20:18:07 1.2
+++ xemacs-packages/edit-utils/saveplace.el 2005/01/31 20:55:50
@@ -232,11 +232,28 @@ To save places automatically in all file
(if save-place-loaded
(save-place-alist-to-file)))
-(add-hook 'find-file-hooks 'save-place-find-file-hook t)
-
-(add-hook 'kill-emacs-hook 'save-place-kill-emacs-hook)
-
-(add-hook 'kill-buffer-hook 'save-place-to-alist)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'save-place
+"Automatically save place in files, so that visiting them later
+\(even during a different Emacs session) automatically moves point
+to the saved position, when the file is first found. Uses the
+value of buffer-local variable save-place to determine whether to
+save position or not."
+:short-doc "Automatically save place in files"
+:require 'saveplace
+:group 'buffers-and-windows
+:enable #'(lambda ()
+ (add-hook 'find-file-hooks 'save-place-find-file-hook t)
+ (add-hook 'kill-emacs-hook 'save-place-kill-emacs-hook)
+ (add-hook 'kill-buffer-hook 'save-place-to-alist))
+:disable #'(lambda ()
+ (remove-hook 'find-file-hooks 'save-place-find-file-hook t)
+ (remove-hook 'kill-emacs-hook 'save-place-kill-emacs-hook)
+ (remove-hook 'kill-buffer-hook 'save-place-to-alist))
+ )
+)
(provide 'saveplace) ; why not...
Index: xemacs-packages/edit-utils/scroll-in-place.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/scroll-in-place.el,v
retrieving revision 1.4
diff -u -p -r1.4 scroll-in-place.el
--- xemacs-packages/edit-utils/scroll-in-place.el 2002/05/11 05:41:23 1.4
+++ xemacs-packages/edit-utils/scroll-in-place.el 2005/01/31 20:55:51
@@ -1575,6 +1575,156 @@ call this function from other code."
;; This doesn't work with Red Gnus
;; (add-hook 'gnus-article-mode-hook 'turn-off-scroll-in-place)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'scroll-in-place
+"This package provides improved vertical scrolling commands for XEmacs.
+These new commands offer the following features:
+
++ When a scrolling command is executed, XEmacs tries to keep point as
+ close as possible to its original window position (window line and
+ column). This is what \"scroll in place\" means: point stays \"in
place\"
+ within the window. (There are times when point must be moved from its
+ original window position in order to execute the scroll; see below.)
+
+ The variable `scroll-in-place', which is true by default, determines
+ whether or not the standard XEmacs scrolling commands (`scroll-down',
+ `scroll-up', `scroll-other-window-down', and `scroll-other-window') use
+ the \"in place\" features listed here. When `scroll-in-place' is
`nil'
+ the standard XEmacs scrolling commands essentially just call the
+ original versions of themselves. (Note that even when `scroll-in-place'
+ is `nil' the new versions of `scroll-down' and `scroll-up' have slightly
+ different behavior when a minibuffer window is the selected window. See
+ below.)
+
+ It is possible to turn off (or turn on) \"in place\" scrolling for certain
+ buffers by making buffer-local bindings of the variable `scroll-in-
+ place' for those buffers. The variable `scroll-in-place' is not usually
+ buffer-local, but you can make it so if you desire.
+
++ Because the improved scrolling commands keep point at its original
+ window position, these scrolling commands are \"reversible.\" The
+ `scroll-up' command undoes the effect of the immediately previous
+ `scroll-down' command (if any) and vice versa. In other words, if you
+ scroll up and then immediately scroll back down, the window config-
+ uration is restored to its exact original state. This allows you to
+ browse through a buffer more easily, as you can always get back to the
+ original configuration.
+
+ Note, however, that the improved scrolling commands are guaranteed to be
+ reversible only if there are no intervening non-scrolling commands.
+ Also, if you give a prefix argument to a scrolling command (in order to
+ specify the number of lines to scroll by), previous scrolling commands
+ may no longer be reversible. More specifically, if the new prefix
+ argument has a different magnitude than the previous scrolling distance,
+ then any previous scrolling commands are not reversible. The new prefix
+ argument takes precedence.
+
+ You might find it useful to think of the scrolling commands as forming
+ \"chains.\" A scrolling command either starts or continues a chain. By
+ issuing a non-scrolling command or by changing the number of lines to be
+ scrolled, you break the chain. (Note that simply changing the scrolling
+ direction won't break the chain; changing the absolute number of lines
+ to be scrolled is what breaks the chain.) Scrolling commands are
+ guaranteed to be reversible only within the current chain. Hopefully
+ that's clear enough.
+
++ When a scrolling command is given a prefix argument (which specifies the
+ number of lines to scroll by), then that argument becomes the default
+ scrolling distance for all immediately subsequent scrolling commands.
+ This means that you can easily set the scrolling distance for a chain
+ of scrolling commands. Note that a new prefix argument or any non-
+ scrolling command breaks the chain (as described above), and any further
+ scrolling commands will use the usual defaults (or the prefix argument
+ you specify at that time, of course).
+
+ However, there are cases in which one doesn't want the current scrolling
+ command to use the default scrolling distance that was set by the
+ previous scrolling command. For example, suppose that you had special
+ commands that scrolled one line up and one line down. When you invoke
+ one of these commands, the \"in place\" scrolling routines set the default
+ scrolling distance to be just one line. Now suppose that you use one of
+ your special commands and then immediately invoke `scroll-up' (`C-v'),
+ expecting it to scroll by a near windowful of text. You would be
+ disappointed --- because the previous command set the default scrolling
+ distance to be just one line, `scroll-up' just scrolls by one line.
+
+ To solve this problem, \"scroll-in-place\" allows you to divide scrolling
+ commands into separate \"groups.\" Commands in a group can only form
+ chains with (and therefore, inherit defaults from) commands in the same
+ group. (Note that no command can be in more than one group.) If you
+ invoke a scrolling command that is not in the same group as that of the
+ immediately previous scrolling command, then the previous chain is
+ broken and you start a new chain --- with a new set of defaults.
+
+ So to solve the problem described above, you could put your one-line
+ scrolling commands in their own group. Once that is done, the standard
+ scrolling commands will not form chains with your one-line scrolling
+ commands, and therefore will not use the default scrolling distance set
+ by those commands. Problem solved!
+
+ By default, all \"in place\" scrolling commands are in a single group. If
+ you want to partition some commands into separate groups, you must do
+ that yourself *before* any \"in place\" commands are invoked. For more
+ information about grouping commands, see the documentation for the
+ variables `scroll-command-groups' and `scroll-default-command-group'.
+
++ The improved scrolling commands will avoid displaying empty lines past
+ the end of the buffer when possible. In other words, just as you can't
+ see \"dead space\" before the beginning of the buffer text, the new
+ scrolling commands try to avoid displaying \"dead space\" past the end of
+ the buffer text. This behavior is somewhat configurable; see the
+ documentation for the variable `scroll-allow-blank-lines-past-eob'.
+
+ Dead space will be displayed if it is necessary in order to make a
+ previous scrolling action reversible, however.
+
++ If the scrolling commands cannot keep point at its initial window
+ position (because a buffer boundary is on screen and the window can't be
+ scrolled as far as necessary to keep point at the right place), point is
+ allowed to temporarily stray from its initial window position. That is,
+ point moves the correct number of window lines, even if it means that it
+ has to stray from its desired window position. This straying is undone
+ when (and if) the scrolling action is reversed.
+
++ If a scrolling command tries to move point past a buffer boundary, point
+ is instead moved to the boundary (the beginning or the end of the buffer
+ as appropriate) and an appropriate message is displayed. This motion is
+ reversible, of course.
+
+ However, if point was already at the buffer boundary when the scrolling
+ command was invoked, the command signals an appropriate error instead.
+
++ When a minibuffer window is the selected window, the new versions of
+ `scroll-up' and `scroll-down' either scroll the window in the variable
+ `minibuffer-scroll-window' (which is usually the window of completions)
+ or the `next-window' if there is no `minibuffer-scroll-window'. This is
+ usually much more useful than scrolling the minibuffer itself. (Note
+ that this feature is available even when the variable `scroll-in-place'
+ is `nil'.)
+
++ When a scrolling command is scrolling a window other than the selected
+ window, it will signal an appropriate buffer boundary error if the
+ window cannot be scrolled (because the appropriate buffer boundary is
+ already visible). This means that an error is signalled even in cases
+ that would be allowed (by \"straying\" point or by moving it to the buffer
+ boundary) if the window were selected.
+
+ (If an error were not signalled in these cases, then there would be many
+ cases in which the last scroll in a particular direction would appear to
+ do nothing because only the point position would change --- the
+ displayed text would stay the same! To avoid these cases the scrolling
+ commands signal boundary errors \"prematurely\" when the window to be
+ scrolled is not selected.)"
+:short-doc "Keep cursor on same line when scrolling"
+:group 'editing
+:require 'scroll-in-place
+:enable #'turn-on-scroll-in-place
+:disable #'turn-off-scroll-in-place)
+)
+
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;
Index: xemacs-packages/edit-utils/setnu.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/setnu.el,v
retrieving revision 1.3
diff -u -p -r1.3 setnu.el
--- xemacs-packages/edit-utils/setnu.el 2002/07/24 18:36:50 1.3
+++ xemacs-packages/edit-utils/setnu.el 2005/01/31 20:55:51
@@ -447,3 +447,17 @@ it is created based on where the extent
(add-hook 'before-change-functions 'setnu-before-change-function)
(add-hook 'after-change-functions 'setnu-after-change-function)
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'setnu
+"vi-style line number mode for XEmacs"
+:short-doc "vi-style line number mode for XEmacs"
+:group 'display
+:enable #'(lambda ()
+ (setnu-mode 1))
+:disable #'(lambda ()
+ (setnu-mode -1))
+ )
+)
Index: xemacs-packages/edit-utils/shell-font.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/shell-font.el,v
retrieving revision 1.2
diff -u -p -r1.2 shell-font.el
--- xemacs-packages/edit-utils/shell-font.el 1998/04/23 11:12:00 1.2
+++ xemacs-packages/edit-utils/shell-font.el 2005/01/31 20:55:51
@@ -148,13 +148,31 @@ face-manipulation functions."
(set-process-filter proc 'shell-font-process-filter))
nil)
-(add-hook 'shell-mode-hook 'install-shell-fonts)
-(add-hook 'telnet-mode-hook 'install-shell-fonts)
-(add-hook 'gdb-mode-hook 'install-shell-fonts)
-
;; for compatibility with the 19.8 version
;(fset 'install-shell-font-prompt 'install-shell-fonts)
(make-obsolete 'install-shell-font-prompt 'install-shell-fonts)
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'shell-font
+"The prompt in your shell-buffers will appear bold-italic, process
+output will appear in normal face, and typein will appear in bold.
+
+The faces shell-prompt, shell-input and shell-output can be modified
+as desired, for example, (copy-face 'italic 'shell-prompt)."
+:short-doc "Decorate a shell buffer with fonts"
+:group 'display
+:enable #'(lambda ()
+ (add-hook 'shell-mode-hook 'install-shell-fonts)
+ (add-hook 'telnet-mode-hook 'install-shell-fonts)
+ (add-hook 'gdb-mode-hook 'install-shell-fonts))
+:disable #'(lambda ()
+ (remove-hook 'shell-mode-hook 'install-shell-fonts)
+ (remove-hook 'telnet-mode-hook 'install-shell-fonts)
+ (remove-hook 'gdb-mode-hook 'install-shell-fonts))
+ )
+)
(provide 'shell-font)
Index: xemacs-packages/edit-utils/toolbar-utils.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/toolbar-utils.el,v
retrieving revision 1.2
diff -u -p -r1.2 toolbar-utils.el
--- xemacs-packages/edit-utils/toolbar-utils.el 2002/12/12 03:28:33 1.2
+++ xemacs-packages/edit-utils/toolbar-utils.el 2005/01/31 20:55:52
@@ -479,6 +479,61 @@ This function will not find spacers."
(setq pos (1+ pos)))
(if toolbar pos nil)))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'toolbar-utils
+"This contains utilities for managing XEmacs toolbars.
+
+`restore-initial-toolbar'
+
+Restores the default toolbar defined by initial-toolbar-spec.
+There is also a cache of killed buttons in `button-palette'.
+
+`toolbar-add-button-on-the-fly'
+
+Add an button at POSITION to the default toolbar of the selected window.
+
+`toolbar-add-kbd-macro'
+
+Add a button invoking a keyboard macro to the toolbar of the current buffer.
+The button is added at the end of the left group.
+
+`toolbar-add-execute-macro-button'
+
+Add a button to the global toolbar to execute the last keyboard macro."
+:short-doc "Toolbar utility functions"
+:group 'toolbars
+:commands '(["Add toolbar button on-the-fly"
toolbar-add-button-on-the-fly]
+ ["Add button for a macro to toolbar" toolbar-add-kbd-macro]
+ ["Add execute-last-macro button to toolbar"
toolbar-add-execute-macro-button]
+ ["Restore initial toolbar" restore-initial-toolbar])
+ ;; no :enable
+ ;; no :disable
+ )
+)
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'toolbar-add-exec-macro
+"Add a button to the global toolbar to execute the last keyboard macro.
+
+Unlike `toolbar-add-kbd-macro', this does not copy the macro. The macro
+executed will change with redefinitions.
+
+Due to a simple implementation, this button will not appear in buffers with
+local toolbars if invoked after the toolbar is installed. If you like this
+button, it's probably best to invoke this function in your init file.
+
+See also the `toolbar-utils' behavior."
+:short-doc "Add execute-macro button to the toolbar"
+:group 'toolbars
+:enable #'toolbar-add-execute-macro-button
+ ;; no :disable
+ )
+)
+
(provide 'toolbar-utils)
;;; toolbar-utils.el ends here
Index: xemacs-packages/edit-utils/uniquify.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/uniquify.el,v
retrieving revision 1.5
diff -u -p -r1.5 uniquify.el
--- xemacs-packages/edit-utils/uniquify.el 2001/12/27 00:47:21 1.5
+++ xemacs-packages/edit-utils/uniquify.el 2005/01/31 20:55:52
@@ -475,4 +475,27 @@ Meant to be called from the `uniquify-ig
(add-hook 'kill-buffer-hook 'delay-uniquify-rationalize-file-buffer-names)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'uniquify
+"Emacs's standard method for making buffer names unique adds <2>,
<3>,
+etc. to the end of (all but one of) the buffers. This file replaces
+that behavior, for buffers visiting files and dired buffers, with a
+uniquification that adds parts of the file name until the buffer names
+are unique. For instance, buffers visiting /u/mernst/tmp/Makefile and
+/usr/projects/zaphod/Makefile would be named Makefile|tmp and
+Makefile|zaphod, respectively (instead of Makefile and Makefile<2>).
+Other buffer name styles are also available."
+:short-doc "unique buffer names dependent on file name"
+:require 'uniquify
+:group 'buffers-and-windows
+:enable #'(lambda ()
+ (setq uniquify-buffer-name-style 'post-forward))
+:disable #'(lambda ()
+ (setq uniquify-buffer-name-style nil))
+ )
+)
+
+
;;; uniquify.el ends here
Index: xemacs-packages/edit-utils/vertical-mode.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/vertical-mode.el,v
retrieving revision 1.2
diff -u -p -r1.2 vertical-mode.el
--- xemacs-packages/edit-utils/vertical-mode.el 2002/03/24 20:52:50 1.2
+++ xemacs-packages/edit-utils/vertical-mode.el 2005/01/31 20:55:52
@@ -72,5 +72,23 @@
minor-mode-alist (cons
'(vertical-mode " Vertical") minor-mode-alist))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'vertical-mode
+"This minor mode allows you to conviently edit things that are oriented
+vertically (like tables in computer programs): after each action, cursor
+moves down. Therefore, to move block of text to the right, you simply enter
+vertical mode and then hold spacebar, waiting for autorepeat to do the job
+for you."
+:short-doc "edit vertical tables"
+:group 'editing
+:enable #'(lambda ()
+ (vertical-mode 1))
+:disable #'(lambda ()
+ (vertical-mode -1))
+ )
+)
+
(provide 'vertical-mode)
;;; vertical-mode.el ends here
Index: xemacs-packages/edit-utils/where-was-i-db.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/where-was-i-db.el,v
retrieving revision 1.5
diff -u -p -r1.5 where-was-i-db.el
--- xemacs-packages/edit-utils/where-was-i-db.el 2000/10/06 09:08:02 1.5
+++ xemacs-packages/edit-utils/where-was-i-db.el 2005/01/31 20:55:52
@@ -358,6 +358,108 @@ that, for obvious reasons. If it isn't
wwi-db))))
(put 'wwi-with-open-database 'lisp-indent-function 1)
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'where-was-i-db
+"This Good Thing will make XEmacs keep track of where you were last
+time you visited a file.
+
+It works by installing functions on the `find-file-hooks' and on
+the buffer-local `kill-buffer-hook'. When a buffer is killed, if
+it was visiting a file, and place saving has been enabled for it, a
+database entry is made, saving the location of `point'. When you
+visit a file, the database is queried, keyed on `buffer-file-name',
+and if an entry is found, point is set to the value retrieved, and
+place saving is enabled again for that buffer.
+
+There is a command, which is initially not bound to a keystroke in
+this incarnation; and may never be, since I think completion works
+well enough:
+
+`M-x toggle-where-was-i' aka `M-x tog[TAB]w[TAB]'
+
+... that will turn place saving on and off on a per-file, buffer-
+local basis. If `where-was-i-db' has been turned off in a buffer
+and then you kill it, or exit XEmacs, any record for that file will
+be purged from the database, and you'll start at the top of the
+file next time you open it, with place saving turned off there.
+
+Place saving is automatically still `on' when you visit a file you'd
+toggled it on for in a previous session or visitation. (That's the
+point of it, after all.)
+
+Toggling place saving on in a buffer visiting a file is all that is
+required to cause the `where-was-i-db' feature to be autoloaded, as
+`toggle-where-was-i' will call on `install-where-was-i' if the
+`wwi-ffh' has not yet been installed. That WILL NOT cause this
+feature to be automatically enabled in your next XEmacs invocation,
+however. For that, you must customize and save
+`wwi-auto-install-on-startup-flag'.
+There is more information about this in its docstring.
+
+ This feature can be unloaded with:
+
+`C-u M-x install-where-was-i'
+
+... this will call `unload-feature', as well as traverse the
+`buffer-list' removing the buffer-local `kill-buffer-hook'
+installed by this program. Note that any buffers that got place
+saving enabled by having had an entry in the database for them when
+they were first visited (thus restoring point to where it was the
+last time you had visited the file), will not have an updated entry
+made, nor the old entry removed (as would happen if you
+`toggle-where-was-i' to off in just that buffer), after you
+uninstall this feature like that.
+
+If you toggle it on again in a buffer visiting a file, then kill
+that buffer, the point will be saved for it. When you kill the
+other buffers that had place saving enabled before you uninstalled
+the feature with `C-u M-x install-where-was-i', no `where-was-i-db'
+database update will happen for them, since their buffer-local
+`kill-buffer-hook' will have been cleaned of the member
+`wwi-save-where-i-am', the function that writes the `point' entry
+to the database when a buffer is killed. If you then re-visit one
+of those files, point will get restored to the location it did the
+last time you visited that file with `where-was-i-db' installed.
+
+To remove a file from the place saving database, simply visit it,
+`M-x toggle-where-was-i' to switch `where-was-i-db' off, then kill
+that buffer. You can see how this works by looking at the
+definition of `wwi-save-where-i-am'. I dare you not to... (may as
+well use VI.)
+
+After a period of time, the database of saved file positions will
+become cluttered with the names of files that no longer exist. You
+may vacume out the crumbs using:
+
+`M-x wwi-vacume-where-was-i-db'
+
+... which will prompt you for an optional regular expression to
+match files you want records removed for. It will traverse the
+database and remove entries for file names that either match the
+regexp, or that are (not (file-exists-p file-name)). The main
+reason for this command is the removal of stale entries, for files
+that no longer exist on the filesystem.
+
+Note also that running `wwi-vacume-where-was-i-db' will cause EFS
+traffic, if you've saved your place in any remote files. Don't be
+surprised if your dialing daemon picks up the phone when you run
+the vacume function. You should be able to purge the database of
+all EFS entries with a simple regular expression passed to
+`wwi-vacume-where-was-i-db'. Of course, you might not want to do
+that, for obvious reasons. If it isn't obvious, use VI or PICO.
+"
+:short-doc "Keep persistent state in visited files"
+:group 'files
+:enable #'(lambda ()
+ (install-where-was-i 1))
+:enable #'(lambda ()
+ (install-where-was-i -1))
+ )
+)
+
(provide 'where-was-i-db)
Index: xemacs-packages/edit-utils/winring.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/edit-utils/winring.el,v
retrieving revision 1.2
diff -u -p -r1.2 winring.el
--- xemacs-packages/edit-utils/winring.el 2004/01/05 16:56:54 1.2
+++ xemacs-packages/edit-utils/winring.el 2005/01/31 20:55:52
@@ -588,6 +588,106 @@ in a timely way.\n\n")
;; ...and the init fence
(setq winring-initialized t)))
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'winring
+"This package provides lightweight support for circular rings of
+window configurations. A window configuration is the layout of
+windows and associated buffers within a frame. There is always at
+least one configuration on the ring, the current configuration.
+You can create new configurations and cycle through the layouts in
+either direction. You can also delete configurations from the ring
+\(except the last one of course!). Window configurations are named,
+and you can jump to and delete named configurations. Display of
+the current window configuration name in the mode line is only
+supported as of Emacs 20.3 and XEmacs 21.0.
+
+Window configuration rings are frame specific. That is, each frame
+has its own ring which can be cycled through independently of other
+frames. This is the way I like it.
+
+You are always looking at the current window configuration for each
+frame, which consists of the windows in the frame, the buffers in
+those windows, and point in the current buffer. As you run
+commands such as \"C-x 4 b\", \"C-x 2\", and \"C-x 0\" you
are modifying
+the current window configuration. When you jump to a new
+configuration, the layout that existed before the jump is captured,
+and the ring is rotated to the selected configuration. Window
+configurations are captured with `current-window-configuration',
+however winring also saves point for the current buffer.
+
+Note that by default, this binds the winring keymap to the C-x 7
+prefix, but you can change this by setting the value of
+`winring-keymap-prefix', before you call `winring-initialize'.
+Note that this is a change from previous versions of winring; the
+prefix used to be M-o but was changed on the suggestion of RMS.
+
+The following commands are defined:
+
+ C-x 7 n -- Create a new window configuration. The new
+ configuration will contain a single buffer, the one
+ named in the variable `winring-new-config-buffer-name'
+
+ With C-u, winring prompts for the name of the new
+ configuration. If you don't use C-u the function in
+ `winring-name-generator' will be called to get the
+ new configuration's name.
+
+ C-x 7 2 -- Create a duplicate of the current window
+ configuration. C-u has the same semantics as with
+ \"C-x 7 c\".
+
+ C-x 7 j -- Jump to a named configuration (prompts for the name).
+
+ C-x 7 0 -- Kill the current window configuration and rotate to the
+ previous layout on the ring. You cannot delete the
+ last configuration in the ring. With C-u, prompts
+ for the name of the configuration to kill.
+
+ C-x 7 o -- Go to the next configuration on the ring.
+
+ C-x 7 p -- Go to the previous configuration on the ring.
+
+ Note that the sequence `C-x 7 o C-x 7 p' is a no-op;
+ it leaves you in the same configuration you were in
+ before the sequence.
+
+ C-x 7 r -- Rename the current window configuration.
+
+ C-x 7 b -- Submit a bug report on winring.
+
+ C-x 7 v -- Echo the winring version.
+
+As mentioned, window configuration names can be displayed in the
+modeline, but this feature only works with Emacs 20.3 and XEmacs
+21.0. A patch for XEmacs 20.4 to support this feature is available
+at the URL below. Note that the default value of
+`winring-show-names' is currently nil by default because if your
+X/Emacs doesn't have the necessary support, ugly things can happen
+\(no you won't crash your X/Emacs -- it just won't do what you
+want).
+
+If your X/Emacs has the necessary support, you can turn on display
+of window configuration names by setting `winring-show-names' to
+t. If you don't like the position in the modeline where winring
+names are shown, you can change this by passing in your own
+modeline hacker function to `winring-initialize'.
+
+ Winring on the Web:
+
+The winring Web page (including the aforementioned XEmacs 20.4
+patch) is
+
+
http://www.python.org/emacs/winring/
+"
+:short-doc "Window configuration rings"
+:group 'buffers-and-windows
+:enable #'winring-initialize
+ ;; no :disable
+ )
+)
+
(provide 'winring)
cvs server: Diffing xemacs-packages/edt
cvs server: Diffing xemacs-packages/efs
Index: xemacs-packages/efs/efs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/efs/efs.el,v
retrieving revision 1.22
diff -u -p -r1.22 efs.el
--- xemacs-packages/efs/efs.el 2004/10/02 14:06:04 1.22
+++ xemacs-packages/efs/efs.el 2005/01/31 20:55:56
@@ -10837,6 +10837,39 @@ in file name expansion."
(put 'file-name-completion 'efs 'efs-file-name-completion)
(put 'file-name-all-completions 'efs 'efs-file-name-all-completions)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'efs
+"EFS is a system for transparent file-transfer between remote VMS, CMS,
+MTS, MVS, Twenex, Explorer (the last two are Lisp machines), TOPS-20,
+DOS (running the Distinct, Novell, FTP software, NCSA, Microsoft in both
+unix and DOS mode, Super TCP, and Hellsoft FTP servers), Windows NT
+\(running the Microsoft or Hummingbird ftp servers), Unix descriptive
+listings (dl), KA9Q, OS/2 hosts using FTP. This means that you can edit,
+copy and otherwise manipulate files on any machine you have access to
+from within Emacs as if it were a local file. EFS works by introducing
+an extended filename syntax, and overloading functions such as
+`insert-file-contents' so that accessing a remote file causes
+appropriate commands to be sent to an FTP process.
+
+The syntax to use is like this:
+
+\(for anonymous:) /ftp.xemacs.org:/pub/xemacs/
+\(for non-anonymous:) /ben@gwyn.tux.org:/etc/mail/xemacs/aliases-xemacs
+
+You can specify either a file or a directory (in the latter case,
+Dired will be brought up). All operations in XEmacs on such files
+should work exactly as on any other files, modulo the additional
+slowness."
+:short-doc "Transparent file access over FTP"
+:group 'internet
+:require 'efs-auto
+:enable #'ignore
+ ;; can't :disable
+ )
+)
+
;;;; ------------------------------------------------------------
;;;; Finally run any load-hooks.
;;;; ------------------------------------------------------------
cvs server: Diffing xemacs-packages/eicq
cvs server: Diffing xemacs-packages/eieio
cvs server: Diffing xemacs-packages/elib
cvs server: Diffing xemacs-packages/emerge
cvs server: Diffing xemacs-packages/erc
cvs server: Diffing xemacs-packages/escreen
cvs server: Diffing xemacs-packages/eshell
cvs server: Diffing xemacs-packages/ess
cvs server: Diffing xemacs-packages/ess/etc
cvs server: Diffing xemacs-packages/ess/etc/icons
cvs server: Diffing xemacs-packages/ess/lisp
cvs server: Diffing xemacs-packages/ess/texi
cvs server: Diffing xemacs-packages/eterm
cvs server: Diffing xemacs-packages/eterm/etc
cvs server: Diffing xemacs-packages/eterm/etc/e
cvs server: Diffing xemacs-packages/eudc
Index: xemacs-packages/eudc/eudc.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/eudc/eudc.el,v
retrieving revision 1.22
diff -u -p -r1.22 eudc.el
--- xemacs-packages/eudc/eudc.el 2001/08/17 12:31:41 1.22
+++ xemacs-packages/eudc/eudc.el 2005/01/31 20:55:57
@@ -1363,6 +1363,18 @@ This does nothing except loading eudc by
;;}}}
;;;###autoload
+(defvar eudc-menu
+ '("Directory Search"
+ ["Load Hotlist of Servers" eudc-load-eudc t]
+ ["New Server" eudc-set-server t]
+ "---"
+ ["Query with Form" eudc-query-form t]
+ ["Expand Inline Query" eudc-expand-inline t]
+ "---"
+ ["Get Email" eudc-get-email t]
+ ["Get Phone" eudc-get-phone t]))
+
+;;;###autoload
(cond ((not (string-match "XEmacs" emacs-version))
(defvar eudc-tools-menu (make-sparse-keymap "Directory Search"))
(fset 'eudc-tools-menu (symbol-value 'eudc-tools-menu))
@@ -1383,17 +1395,10 @@ This does nothing except loading eudc by
'("New Server" . eudc-set-server))
(define-key eudc-tools-menu [load]
'("Load Hotlist of Servers" . eudc-load-eudc)))
-
- (t
- (let ((menu '("Directory Search"
- ["Load Hotlist of Servers" eudc-load-eudc t]
- ["New Server" eudc-set-server t]
- "---"
- ["Query with Form" eudc-query-form t]
- ["Expand Inline Query" eudc-expand-inline t]
- "---"
- ["Get Email" eudc-get-email t]
- ["Get Phone" eudc-get-phone t])))
+
+ ;; Packages under XEmacs 21.5+ may not directly modify the menubar.
+ ((not (fboundp 'define-behavior-group))
+ (let ((menu eudc-menu))
(if (not (featurep 'eudc-autoloads))
(if (string-match "XEmacs" emacs-version)
(if (and (featurep 'menubar)
@@ -1414,6 +1419,16 @@ This does nothing except loading eudc by
(cdr menu)))))))))))
;;}}}
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'eudc
+"Not documented."
+:short-doc "Directory Search"
+:group 'internet
+:commands (cdr eudc-menu))
+)
(provide 'eudc)
cvs server: Diffing xemacs-packages/footnote
Index: xemacs-packages/footnote/footnote.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/footnote/footnote.el,v
retrieving revision 1.7
diff -u -p -r1.7 footnote.el
--- xemacs-packages/footnote/footnote.el 2002/04/23 20:35:26 1.7
+++ xemacs-packages/footnote/footnote.el 2005/01/31 20:55:58
@@ -788,22 +788,6 @@ being set it is automatically widened."
(define-key global-map footnote-prefix footnote-mode-map))
;;;###autoload
-(if (progn (condition-case () (require 'easymenu) (error nil))
- (fboundp 'easy-menu-add-item))
- (easy-menu-add-item nil '("Cmds")
- '("Footnotes"
- ["Add Footnote" Footnote-add-footnote t]
- ["Delete Footnote" Footnote-delete-footnote t]
- ["Goto Footnote" Footnote-goto-footnote t]
- ["Back to Message" Footnote-back-to-message t]
- ["Renumber Footnotes" Footnote-renumber-footnotes t]
- "--"
- ["Set Footnote Style" Footnote-set-style t]
- ["Cycle Footnote Style" Footnote-cycle-style t]
- )))
-
-
-;;;###autoload
(defun footnote-mode (&optional arg)
"Toggle footnote minor mode.
\\<message-mode-map>
@@ -860,6 +844,26 @@ key binding
(setq minor-mode-alist
(cons '(footnote-mode footnote-mode-line-string)
minor-mode-alist)))
+
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'footnote
+ "Not documented."
+:short-doc "Footnotes"
+:group 'editing
+:commands
+ '(["Add Footnote" Footnote-add-footnote]
+ ["Delete Footnote" Footnote-delete-footnote]
+ ["Goto Footnote" Footnote-goto-footnote]
+ ["Back to Message" Footnote-back-to-message]
+ ["Renumber Footnotes" Footnote-renumber-footnotes]
+ "--"
+ ["Set Footnote Style" Footnote-set-style]
+ ["Cycle Footnote Style" Footnote-cycle-style]
+ ))
+)
(provide 'footnote)
cvs server: Diffing xemacs-packages/forms
cvs server: Diffing xemacs-packages/fortran-modes
cvs server: Diffing xemacs-packages/frame-icon
cvs server: Diffing xemacs-packages/frame-icon/etc
cvs server: Diffing xemacs-packages/fsf-compat
cvs server: Diffing xemacs-packages/games
Index: xemacs-packages/games/gamegrid.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/games/gamegrid.el,v
retrieving revision 1.5
diff -u -p -r1.5 gamegrid.el
--- xemacs-packages/games/gamegrid.el 2003/06/14 18:48:26 1.5
+++ xemacs-packages/games/gamegrid.el 2005/01/31 20:55:58
@@ -1,4 +1,4 @@
-;;; gamegrid.el -- Library for implementing grid-based games on Emacs.
+;;; gamegrid.el --- Library for implementing grid-based games on Emacs.
;; Copyright (C) 1998 Free Software Foundation, Inc.
@@ -34,6 +34,10 @@
;; Modified: 2003-06-14, update email address, remove URL
;; Tested with XEmacs 20.3/4/5 and Emacs 19.34
+
+(defgroup gamegrid nil
+ "Library for implementing grid-based games on Emacs."
+:group 'games)
(eval-when-compile
(require 'cl))
Index: xemacs-packages/games/snake.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/games/snake.el,v
retrieving revision 1.4
diff -u -p -r1.4 snake.el
--- xemacs-packages/games/snake.el 2003/06/14 18:48:26 1.4
+++ xemacs-packages/games/snake.el 2005/01/31 20:55:58
@@ -40,6 +40,10 @@
(require 'gamegrid)
+(defgroup snake nil
+ "Implementation of Snake for Emacs"
+:group 'games)
+
;; ;;;;;;;;;;;;; customization variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar snake-use-glyphs t
Index: xemacs-packages/games/sokoban.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/games/sokoban.el,v
retrieving revision 1.7
diff -u -p -r1.7 sokoban.el
--- xemacs-packages/games/sokoban.el 2003/06/14 18:48:27 1.7
+++ xemacs-packages/games/sokoban.el 2005/01/31 20:55:58
@@ -1,4 +1,4 @@
-;;; sokoban.el -- Implementation of Sokoban for Emacs.
+;;; sokoban.el --- Implementation of Sokoban for Emacs.
;; Copyright (C) 1998 Free Software Foundation, Inc.
@@ -50,6 +50,10 @@
;; The levels and some of the pixmaps were
;; taken directly from XSokoban
+(defgroup sokoban nil
+ "Implementation of Sokoban for Emacs."
+:group 'games)
+
(eval-when-compile
(require 'cl))
@@ -754,6 +758,16 @@ sokoban-mode keybindings:
(gamegrid-kill-timer)
(sokoban-mode)
(sokoban-start-game))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'sokoban
+ "Not documented."
+:group 'games
+:commands
+ '(["Sokoban" sokoban]))
+)
(provide 'sokoban)
Index: xemacs-packages/games/tetris.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/games/tetris.el,v
retrieving revision 1.4
diff -u -p -r1.4 tetris.el
--- xemacs-packages/games/tetris.el 2003/06/14 18:48:27 1.4
+++ xemacs-packages/games/tetris.el 2005/01/31 20:55:59
@@ -1,4 +1,4 @@
-;;; tetris.el -- Implementation of Tetris for Emacs.
+;;; tetris.el --- Implementation of Tetris for Emacs.
;; Copyright (C) 1998 Free Software Foundation, Inc.
@@ -59,6 +59,10 @@
;; Tested with XEmacs 20.3/4/5, 21.4.13 and Emacs 19.34
+(defgroup tetris nil
+ "Implementation of Tetris for Emacs."
+:group 'games)
+
(eval-when-compile
(require 'cl))
@@ -806,6 +810,16 @@ tetris-mode keybindings:
(gamegrid-kill-timer)
(tetris-mode)
(tetris-start-game))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'tetris
+ "Not documented."
+:group 'games
+:commands
+ '(["Tetris" tetris]))
+)
(provide 'tetris)
cvs server: Diffing xemacs-packages/general-docs
cvs server: Diffing xemacs-packages/general-docs/texi
cvs server: Diffing xemacs-packages/general-docs/texi/packages
cvs server: Diffing xemacs-packages/general-docs/texi/xemacs
cvs server: Diffing xemacs-packages/gnats
cvs server: Diffing xemacs-packages/gnats/etc
cvs server: Diffing xemacs-packages/gnats/lib-src
cvs server: Diffing xemacs-packages/gnats/texi
cvs server: Diffing xemacs-packages/gnus
cvs server: Diffing xemacs-packages/gnus/etc
cvs server: Diffing xemacs-packages/gnus/etc/gnus
cvs server: Diffing xemacs-packages/gnus/etc/smilies
cvs server: Diffing xemacs-packages/gnus/etc/sounds
cvs server: Diffing xemacs-packages/gnus/gnus
cvs server: xemacs-packages/gnus/gnus/make.bat is a new entry, no comparison available
cvs server: Diffing xemacs-packages/gnus/gnus/lisp
cvs server: xemacs-packages/gnus/gnus/lisp/gnus.el is a new entry, no comparison
available
cvs server: Diffing xemacs-packages/gnus/gnus/texi
cvs server: Diffing xemacs-packages/gnus/lisp
cvs server: Diffing xemacs-packages/gnus/texi
cvs server: Diffing xemacs-packages/gnus/texi/etc
cvs server: Diffing xemacs-packages/gnus/texi/herds
cvs server: Diffing xemacs-packages/gnus/texi/misc
cvs server: Diffing xemacs-packages/gnus/texi/picons
cvs server: Diffing xemacs-packages/gnus/texi/ps
cvs server: Diffing xemacs-packages/gnus/texi/screen
cvs server: Diffing xemacs-packages/gnus/texi/smilies
cvs server: Diffing xemacs-packages/gnus/texi/xface
cvs server: Diffing xemacs-packages/haskell-mode
cvs server: Diffing xemacs-packages/hm--html-menus
cvs server: Diffing xemacs-packages/hm--html-menus/etc
cvs server: Diffing xemacs-packages/hm--html-menus/etc/idd
cvs server: Diffing xemacs-packages/hm--html-menus/etc/templates
cvs server: Diffing xemacs-packages/hyperbole
cvs server: Diffing xemacs-packages/hyperbole/kotl
cvs server: Diffing xemacs-packages/hyperbole/man
cvs server: Diffing xemacs-packages/ibuffer
cvs server: Diffing xemacs-packages/idlwave
cvs server: Diffing xemacs-packages/igrep
cvs server: Diffing xemacs-packages/ilisp
cvs server: Diffing xemacs-packages/ilisp/docs
cvs server: Diffing xemacs-packages/ilisp/extra
cvs server: Diffing xemacs-packages/ilisp/pictures
cvs server: Diffing xemacs-packages/ispell
Index: xemacs-packages/ispell/ispell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/ispell/ispell.el,v
retrieving revision 1.21
diff -u -p -r1.21 ispell.el
--- xemacs-packages/ispell/ispell.el 2005/01/23 13:50:55 1.21
+++ xemacs-packages/ispell/ispell.el 2005/01/31 20:56:03
@@ -3530,6 +3530,22 @@ Both should not be used to define a buff
(add-to-list 'debug-ignored-errors "^No word found to check!$")
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'ispell
+ "Not documented."
+:short-doc "Spell-Check"
+:group 'editing
+:commands
+ '(["%_Buffer" ispell-buffer]
+ "---"
+ ["%_Word" ispell-word]
+ ["%_Complete Word" ispell-complete-word]
+ ["%_Region" ispell-region :active (region-active-p)]
+ ))
+)
+
(provide 'ispell)
cvs server: Diffing xemacs-packages/jde
cvs server: Diffing xemacs-packages/jde/doc
cvs server: Diffing xemacs-packages/jde/doc/html
cvs server: Diffing xemacs-packages/jde/doc/html/bsh-ug
cvs server: Diffing xemacs-packages/jde/doc/html/bsh-ug/images
cvs server: Diffing xemacs-packages/jde/doc/html/css
cvs server: Diffing xemacs-packages/jde/doc/html/jdb-ug
cvs server: Diffing xemacs-packages/jde/doc/html/jdb-ug/images
cvs server: Diffing xemacs-packages/jde/doc/html/jde-ug
cvs server: Diffing xemacs-packages/jde/doc/html/jde-ug/images
cvs server: Diffing xemacs-packages/jde/doc/html/jdebug-ug
cvs server: Diffing xemacs-packages/jde/doc/html/jdebug-ug/images
cvs server: Diffing xemacs-packages/jde/doc/src
cvs server: Diffing xemacs-packages/jde/doc/src/css
cvs server: Diffing xemacs-packages/jde/doc/src/jde-ug
cvs server: Diffing xemacs-packages/jde/doc/src/jde-ug/images
cvs server: Diffing xemacs-packages/jde/doc/src/styles
cvs server: Diffing xemacs-packages/jde/doc/src/styles/html
cvs server: Diffing xemacs-packages/jde/doc/tli_rbl
cvs server: Diffing xemacs-packages/jde/doc/tli_rbl/au
cvs server: Diffing xemacs-packages/jde/doc/tli_rbl/img
cvs server: Diffing xemacs-packages/jde/doc/tli_rbl/txt
cvs server: Diffing xemacs-packages/jde/java
cvs server: Diffing xemacs-packages/jde/java/bsh-commands
cvs server: Diffing xemacs-packages/jde/java/bsh-commands/bsh
cvs server: Diffing xemacs-packages/jde/java/bsh-commands/bsh/commands
cvs server: Diffing xemacs-packages/jde/java/doc
cvs server: Diffing xemacs-packages/jde/java/doc/jde
cvs server: Diffing xemacs-packages/jde/java/doc/jde/debugger
cvs server: Diffing xemacs-packages/jde/java/lib
cvs server: Diffing xemacs-packages/jde/java/src
cvs server: Diffing xemacs-packages/jde/java/src/jde
cvs server: Diffing xemacs-packages/jde/java/src/jde/debugger
cvs server: Diffing xemacs-packages/jde/java/src/jde/debugger/command
cvs server: Diffing xemacs-packages/jde/java/src/jde/debugger/expr
cvs server: Diffing xemacs-packages/jde/java/src/jde/debugger/spec
cvs server: Diffing xemacs-packages/jde/java/src/jde/parser
cvs server: Diffing xemacs-packages/jde/java/src/jde/util
cvs server: Diffing xemacs-packages/jde/java/src/jde/wizards
cvs server: Diffing xemacs-packages/jde/lisp
cvs server: Diffing xemacs-packages/liece
cvs server: Diffing xemacs-packages/liece/dcc
cvs server: Diffing xemacs-packages/liece/doc
cvs server: Diffing xemacs-packages/liece/etc
cvs server: Diffing xemacs-packages/liece/etc/icons
cvs server: Diffing xemacs-packages/liece/etc/po
cvs server: Diffing xemacs-packages/liece/etc/styles
cvs server: Diffing xemacs-packages/liece/lisp
cvs server: Diffing xemacs-packages/mail-lib
cvs server: Diffing xemacs-packages/mailcrypt
cvs server: Diffing xemacs-packages/mew
cvs server: Diffing xemacs-packages/mew/mew
cvs server: Diffing xemacs-packages/mew/mew/OS2
cvs server: Diffing xemacs-packages/mew/mew/Win32
cvs server: Diffing xemacs-packages/mew/mew/bin
cvs server: Diffing xemacs-packages/mew/mew/contrib
cvs server: Diffing xemacs-packages/mew/mew/etc
cvs server: Diffing xemacs-packages/mew/mew/etc/etc
cvs server: Diffing xemacs-packages/mew/mew/info
cvs server: Diffing xemacs-packages/mh-e
Index: xemacs-packages/mh-e/mh-e.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/mh-e/mh-e.el,v
retrieving revision 1.7
diff -u -p -r1.7 mh-e.el
--- xemacs-packages/mh-e/mh-e.el 2003/09/02 23:39:26 1.7
+++ xemacs-packages/mh-e/mh-e.el 2005/01/31 20:56:04
@@ -2504,6 +2504,16 @@ well.")
"^There is no other window$"))
(add-to-list 'debug-ignored-errors mess))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'mh
+ "Not documented."
+:group 'internet
+:commands
+ '(["Read Mail (MH)..." (mh-rmail t)]))
+)
+
;;; Local Variables:
;;; indent-tabs-mode: nil
;;; sentence-end-double-space: nil
cvs server: Diffing xemacs-packages/mine
Index: xemacs-packages/mine/xmine.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/mine/xmine.el,v
retrieving revision 1.5
diff -u -p -r1.5 xmine.el
--- xemacs-packages/mine/xmine.el 2000/10/06 09:20:18 1.5
+++ xemacs-packages/mine/xmine.el 2005/01/31 20:56:04
@@ -865,5 +865,16 @@ We set up the XMine buffer, set up the k
(if ext (xmine-select-button ext)
(xmine-select-button (xmine-field-button-at xmine-width y)))))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'xmine
+ "Not documented."
+:short-doc "Mine game"
+:group 'games
+:commands
+ '(["Mine Game" xmine]))
+)
+
(provide 'xmine)
cvs server: Diffing xemacs-packages/mine/etc
cvs server: Diffing xemacs-packages/misc-games
Index: xemacs-packages/misc-games/NeXTify.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/NeXTify.el,v
retrieving revision 1.2
diff -u -p -r1.2 NeXTify.el
--- xemacs-packages/misc-games/NeXTify.el 1999/11/27 20:49:55 1.2
+++ xemacs-packages/misc-games/NeXTify.el 2005/01/31 20:56:04
@@ -28,6 +28,10 @@
;;; Code:
+(defgroup NeXTify nil
+ "Character insertion variation"
+:group 'games)
+
(defun SeLF-insert-command (arg)
"Insert the character you TyPE.
Whichever character you TyPE to run ThIS command is inserted."
Index: xemacs-packages/misc-games/advocacy.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/advocacy.el,v
retrieving revision 1.4
diff -u -p -r1.4 advocacy.el
--- xemacs-packages/misc-games/advocacy.el 1999/11/27 20:49:55 1.4
+++ xemacs-packages/misc-games/advocacy.el 2005/01/31 20:56:04
@@ -1,4 +1,4 @@
-;;; advocacy.el -- blatant XEmacs self promotion
+;;; advocacy.el --- blatant XEmacs self promotion
;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
;; Copyright (C) 1996 Chuck Thompson <cthomp(a)xemacs.org>
@@ -20,6 +20,10 @@
;; along with XEmacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
+
+(defgroup advocacy nil
+ "blatant XEmacs self promotion"
+:group 'games)
;;;###autoload
(defvar xemacs-praise-sound-file "im_so_happy"
Index: xemacs-packages/misc-games/blackbox.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/blackbox.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 blackbox.el
--- xemacs-packages/misc-games/blackbox.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/blackbox.el 2005/01/31 20:56:05
@@ -70,6 +70,10 @@
;;; Code:
+(defgroup blackbox nil
+ "blackbox game in Emacs Lisp"
+:group 'games)
+
(defvar blackbox-mode-map nil "")
(if blackbox-mode-map
Index: xemacs-packages/misc-games/conx.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/conx.el,v
retrieving revision 1.2
diff -u -p -r1.2 conx.el
--- xemacs-packages/misc-games/conx.el 1999/11/27 20:49:55 1.2
+++ xemacs-packages/misc-games/conx.el 2005/01/31 20:56:05
@@ -70,6 +70,10 @@
;;; o It could stand to be faster...
;;; Code:
+(defgroup conx nil
+ "Yet another dissociater"
+:group 'games)
+
(defconst conx-version "1.6, 6-may-94.")
(defvar conx-bounce 10) ; 1/x
Index: xemacs-packages/misc-games/decipher.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/decipher.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 decipher.el
--- xemacs-packages/misc-games/decipher.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/decipher.el 2005/01/31 20:56:05
@@ -93,6 +93,10 @@
(eval-when-compile
(require 'cl))
+(defgroup decipher nil
+ "Cryptanalyze monoalphabetic substitution ciphers"
+:group 'games)
+
(defvar decipher-force-uppercase t
"*Non-nil means to convert ciphertext to uppercase.
Nil means the case of the ciphertext is preserved.
Index: xemacs-packages/misc-games/dissociate.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/dissociate.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 dissociate.el
--- xemacs-packages/misc-games/dissociate.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/dissociate.el 2005/01/31 20:56:05
@@ -31,6 +31,10 @@
;;; Code:
+(defgroup dissociate nil
+ "scramble text amusingly for Emacs."
+:group 'games)
+
;;;###autoload
(defun dissociated-press (&optional arg)
"Dissociate the text of the current buffer.
Index: xemacs-packages/misc-games/doctor.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/doctor.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 doctor.el
--- xemacs-packages/misc-games/doctor.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/doctor.el 2005/01/31 20:56:06
@@ -44,6 +44,10 @@
;;; Code:
+(defgroup doctor nil
+ "psychological help for frustrated users."
+:group 'games)
+
(defun doctor-cadr (x) (car (cdr x)))
(defun doctor-caddr (x) (car (cdr (cdr x))))
(defun doctor-cddr (x) (cdr (cdr x)))
@@ -1637,5 +1641,17 @@ Hack on previous word, setting global va
(interactive)
(insert "Mein fuehrer!!\n")
(doctor-read-print))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'doctor
+ "Not documented."
+:group 'games
+:commands
+ '(["%_Psychoanalyst" doctor]))
+)
+
+
;;; doctor.el ends here
Index: xemacs-packages/misc-games/dunnet.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/dunnet.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 dunnet.el
--- xemacs-packages/misc-games/dunnet.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/dunnet.el 2005/01/31 20:56:07
@@ -36,6 +36,10 @@
;;; be writable by all.
+(defgroup dunnet nil
+ "Text adventure for Emacs"
+:group 'games)
+
(defvar dun-log-file "/usr/local/dunnet.score"
"Name of file to store score information for dunnet.")
@@ -3336,5 +3340,15 @@ File not found")))
(dun-mprinc "\n")
(setq dun-batch-mode t)
(dun-batch-loop))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'dunnet
+ "Not documented."
+:group 'games
+:commands
+ '(["Dunnet (Adventure)" dunnet]))
+)
;;; dunnet.el ends here
Index: xemacs-packages/misc-games/flame.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/flame.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 flame.el
--- xemacs-packages/misc-games/flame.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/flame.el 2005/01/31 20:56:07
@@ -40,6 +40,11 @@
;;;
;;; Code:
+
+(defgroup flame nil
+ "Automated insults"
+:group 'games)
+
(random t)
(defvar sentence
@@ -338,5 +343,15 @@
(flame2 (if (= (random 2) 0) 2 1))
(sit-for 0)
(doctor-ret-or-read 1)))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'flame
+ "Not documented."
+:group 'games
+:commands
+ '(["Random Flames" flame]))
+)
;;; flame.el ends here
Index: xemacs-packages/misc-games/gomoku.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/gomoku.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 gomoku.el
--- xemacs-packages/misc-games/gomoku.el 1998/01/14 06:30:53 1.1.1.1
+++ xemacs-packages/misc-games/gomoku.el 2005/01/31 20:56:07
@@ -74,6 +74,9 @@
;;; Code:
+(defgroup gomoku nil
+ "Gomoku game between you and Emacs"
+:group 'games)
;;;
;;; GOMOKU MODE AND KEYMAP.
;;;
Index: xemacs-packages/misc-games/hanoi.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/hanoi.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 hanoi.el
--- xemacs-packages/misc-games/hanoi.el 1998/01/14 06:30:54 1.1.1.1
+++ xemacs-packages/misc-games/hanoi.el 2005/01/31 20:56:07
@@ -58,6 +58,10 @@
;;; Code:
+(defgroup hanoi nil
+ "towers of hanoi in GNUmacs"
+:group 'games)
+
;;;
;;; hanoi-topos - direct cursor addressing
;;;
@@ -243,6 +247,16 @@
(progn
(backward-char (/ (+ len 1) 2))
(delete-char 1) (insert ?\|))))))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'hanoi
+ "Not documented."
+:group 'games
+:commands
+ '(["Towers of Hanoi" hanoi]))
+)
(provide 'hanoi)
Index: xemacs-packages/misc-games/life.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/life.el,v
retrieving revision 1.2
diff -u -p -r1.2 life.el
--- xemacs-packages/misc-games/life.el 2000/11/18 04:27:37 1.2
+++ xemacs-packages/misc-games/life.el 2005/01/31 20:56:08
@@ -32,6 +32,10 @@
;;; Code:
+(defgroup life nil
+ "John Horton Conway's `Life' game for GNU Emacs"
+:group 'games)
+
(defconst life-patterns
[("@@@" " @@" "@@@")
("@@@ @@@" "@@ @@ " "@@@ @@@")
@@ -283,6 +287,16 @@ generations (this defaults to 1)."
;; XEmacs change
(define-error 'life-extinct "All life has perished" 'quit)
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'life
+ "Not documented."
+:group 'games
+:commands
+ '(["Game of Life" life]))
+)
(provide 'life)
Index: xemacs-packages/misc-games/morse.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/morse.el,v
retrieving revision 1.2
diff -u -p -r1.2 morse.el
--- xemacs-packages/misc-games/morse.el 2002/11/18 22:11:45 1.2
+++ xemacs-packages/misc-games/morse.el 2005/01/31 20:56:08
@@ -24,10 +24,14 @@
;;; Commentary:
-;; Converts text to Morse code and back with M-x morese-region and
+;; Converts text to Morse code and back with M-x morse-region and
;; M-x unmorse-region (though Morse code is no longer official :-().
;;; Code:
+
+(defgroup morse nil
+ "convert text to morse code and back"
+:group 'games)
(defvar morse-code '(("a" . ".-")
("b" . "-...")
Index: xemacs-packages/misc-games/mpuz.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/mpuz.el,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 mpuz.el
--- xemacs-packages/misc-games/mpuz.el 1998/01/14 06:30:54 1.1.1.1
+++ xemacs-packages/misc-games/mpuz.el 2005/01/31 20:56:08
@@ -33,6 +33,10 @@
;;; Code:
+(defgroup mpuz nil
+ "multiplication puzzle for XEmacs"
+:group 'games)
+
(random t) ; randomize
(defvar mpuz-silent nil
@@ -441,5 +445,15 @@ You may abort a game by typing \\<mpuz-m
(or (mpuz-digit-solved-p digit)
(setq list (cons digit list))))
(mapcar 'mpuz-correct-guess list)))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'mpuz
+ "Not documented."
+:group 'games
+:commands
+ '(["Multiplication Puzzle" mpuz]))
+)
;;; mpuz.el ends here
Index: xemacs-packages/misc-games/rot13.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/rot13.el,v
retrieving revision 1.2
diff -u -p -r1.2 rot13.el
--- xemacs-packages/misc-games/rot13.el 2000/09/25 03:16:51 1.2
+++ xemacs-packages/misc-games/rot13.el 2005/01/31 20:56:08
@@ -35,6 +35,10 @@
;;; Code:
+(defgroup rot13 nil
+ "display a buffer in rot13."
+:group 'games)
+
(defvar rot13-display-table
(let ((i -1)
(a (char-to-int ?a))
Index: xemacs-packages/misc-games/studly.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/misc-games/studly.el,v
retrieving revision 1.2
diff -u -p -r1.2 studly.el
--- xemacs-packages/misc-games/studly.el 2003/09/20 20:26:31 1.2
+++ xemacs-packages/misc-games/studly.el 2005/01/31 20:56:08
@@ -32,6 +32,10 @@
;;; Code:
+(defgroup studly nil
+ "StudlyCaps (tm)(r)(c)(xxx)"
+:group 'games)
+
(defun studlify-region (begin end)
"Studlify-case the region"
(interactive "*r")
cvs server: Diffing xemacs-packages/mmm-mode
cvs server: Diffing xemacs-packages/net-utils
cvs server: Diffing xemacs-packages/ocaml
cvs server: Diffing xemacs-packages/oo-browser
cvs server: Diffing xemacs-packages/oo-browser/man
cvs server: Diffing xemacs-packages/oo-browser/man/im
cvs server: Diffing xemacs-packages/oo-browser/tree-w32
cvs server: Diffing xemacs-packages/oo-browser/tree-x
cvs server: Diffing xemacs-packages/os-utils
Index: xemacs-packages/os-utils/jka-compr.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/os-utils/jka-compr.el,v
retrieving revision 1.9
diff -u -p -r1.9 jka-compr.el
--- xemacs-packages/os-utils/jka-compr.el 2003/05/30 12:55:07 1.9
+++ xemacs-packages/os-utils/jka-compr.el 2005/01/31 20:56:08
@@ -983,6 +983,22 @@ The return value is the entry in `file-n
;; No no no no!
;(jka-compr-install)
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'jka-compr
+ "This package implements low-level support for reading, writing,
+and loading compressed files. It hooks into the low-level file
+I/O functions (including write-region and insert-file-contents) so
+that they automatically compress or uncompress a file if the file
+appears to need it (based on the extension of the file name).
+Packages like Rmail, VM, GNUS, and Info should be able to work
+with compressed files without modification."
+:short-doc "Transparently handle compressed files"
+:group 'files
+:enable #'jka-compr-install
+:disable #'jka-compr-uninstall)
+)
(provide 'jka-compr)
cvs server: Diffing xemacs-packages/pc
Index: xemacs-packages/pcl-cvs/pcl-cvs-defs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/pcl-cvs/pcl-cvs-defs.el,v
retrieving revision 2.4
diff -u -p -r2.4 pcl-cvs-defs.el
--- xemacs-packages/pcl-cvs/pcl-cvs-defs.el 2002/06/24 22:06:46 2.4
+++ xemacs-packages/pcl-cvs/pcl-cvs-defs.el 2005/01/31 20:56:09
@@ -466,7 +466,10 @@ It is expected to call the function.")
;;;###autoload
(if (progn (condition-case () (require 'easymenu) (error nil))
- (fboundp 'easy-menu-add-item))
+ (and (fboundp 'easy-menu-add-item)
+ ;; Packages under XEmacs 21.5+ may not directly modify the
+ ;; menubar.
+ (not (fboundp 'define-behavior-group))))
(easy-menu-add-item nil '("tools")
'("PCL CVS"
["Update Directory" cvs-update t]
Index: xemacs-packages/pcl-cvs/pcl-cvs.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/pcl-cvs/pcl-cvs.el,v
retrieving revision 2.41
diff -u -p -r2.41 pcl-cvs.el
--- xemacs-packages/pcl-cvs/pcl-cvs.el 2002/01/26 22:27:31 2.41
+++ xemacs-packages/pcl-cvs/pcl-cvs.el 2005/01/31 20:56:10
@@ -2112,6 +2112,20 @@ Anything else means to do it only if the
(when (eq major-mode 'cvs-mode)
(setq ad-return-value list-buffers-directory)))))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'pcl-cvs
+ "Not documented."
+:short-doc "PCL CVS"
+:group 'files
+:commands
+ '(["Update Directory" cvs-update t]
+ ["Examine Directory" cvs-examine t]
+ ["Status Directory" cvs-status t]
+ ["Checkout Module" cvs-checkout t]))
+)
+
;; provide this package
(run-hooks 'pcl-cvs-load-hook)
cvs server: Diffing xemacs-packages/pcomplete
cvs server: Diffing xemacs-packages/perl-modes
cvs server: Diffing xemacs-packages/pgg
cvs server: Diffing xemacs-packages/prog-modes
cvs server: Diffing xemacs-packages/ps-print
Index: xemacs-packages/ps-print/ps-mule.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/ps-print/ps-mule.el,v
retrieving revision 1.4
diff -u -p -r1.4 ps-mule.el
--- xemacs-packages/ps-print/ps-mule.el 2002/07/30 12:40:40 1.4
+++ xemacs-packages/ps-print/ps-mule.el 2005/01/31 20:56:10
@@ -298,6 +298,7 @@ font family.
See also the variable `ps-font-info-database'.")
+;;;###custom-define
(defconst ps-mule-font-info-database-latin
'((latin-iso8859-1
(normal nil nil iso-8859-1)))
cvs server: Diffing xemacs-packages/ps-print/etc
cvs server: Diffing xemacs-packages/ps-print/etc/ps-print
cvs server: Diffing xemacs-packages/ps-print-nomule
cvs server: Diffing xemacs-packages/psgml
Index: xemacs-packages/psgml/psgml-html.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/psgml/psgml-html.el,v
retrieving revision 1.18
diff -u -p -r1.18 psgml-html.el
--- xemacs-packages/psgml/psgml-html.el 2003/08/29 08:19:58 1.18
+++ xemacs-packages/psgml/psgml-html.el 2005/01/31 20:56:12
@@ -265,24 +265,8 @@ More specifically:
sgml-omittag t
sgml-shorttag t)
- ;; font-lock setup for various emacsen: XEmacs, Emacs 19.29+, Emacs <19.29.
- ;; By Ulrik Dickow <dickow(a)nbi.dk>. (Last update: 05-Sep-1995).
- (cond (running-xemacs ; XEmacs/Lucid
- (put major-mode 'font-lock-keywords-case-fold-search t))
- ;; XEmacs (19.13, at least) guesses the rest correctly.
- ;; If any older XEmacsen don't, then tell me.
- ;;
- ((string-lessp "19.28.89" emacs-version) ; Emacs 19.29 and later
- (make-local-variable 'font-lock-defaults)
- (setq font-lock-defaults '(html-font-lock-keywords t t)))
- ;;
- (t ; Emacs 19.28 and older
- (make-local-variable 'font-lock-keywords-case-fold-search)
- (make-local-variable 'font-lock-keywords)
- (make-local-variable 'font-lock-no-comments)
- (setq font-lock-keywords-case-fold-search t)
- (setq font-lock-keywords html-font-lock-keywords)
- (setq font-lock-no-comments t)))
+ (make-local-variable 'font-lock-defaults)
+ (setq font-lock-defaults '(html-font-lock-keywords t t))
(if html-helper-do-write-file-hooks
(add-hook 'local-write-file-hooks 'html-helper-update-timestamp))
cvs server: Diffing xemacs-packages/psgml-dtds
cvs server: Diffing xemacs-packages/psgml-dtds/etc
cvs server: Diffing xemacs-packages/psgml-dtds/etc/ISO_8879-1986
cvs server: Diffing xemacs-packages/psgml-dtds/etc/ISO_8879-1986/entities
cvs server: Diffing xemacs-packages/psgml-dtds/etc/cdtd
cvs server: Diffing xemacs-packages/python-modes
cvs server: Diffing xemacs-packages/reftex
cvs server: Diffing xemacs-packages/riece
cvs server: Diffing xemacs-packages/riece/doc
cvs server: Diffing xemacs-packages/riece/lisp
cvs server: Diffing xemacs-packages/riece/lisp/test
cvs server: Diffing xemacs-packages/rmail
cvs server: Diffing xemacs-packages/rmail/etc
cvs server: Diffing xemacs-packages/ruby-modes
cvs server: Diffing xemacs-packages/sasl
cvs server: Diffing xemacs-packages/scheme
cvs server: Diffing xemacs-packages/semantic
cvs server: Diffing xemacs-packages/sgml
cvs server: Diffing xemacs-packages/sh-script
cvs server: Diffing xemacs-packages/sieve
cvs server: Diffing xemacs-packages/slider
cvs server: Diffing xemacs-packages/slider/etc
cvs server: Diffing xemacs-packages/sml-mode
cvs server: Diffing xemacs-packages/sounds-au
cvs server: Diffing xemacs-packages/sounds-wav
cvs server: Diffing xemacs-packages/speedbar
cvs server: Diffing xemacs-packages/strokes
cvs server: Diffing xemacs-packages/supercite
cvs server: Diffing xemacs-packages/texinfo
cvs server: Diffing xemacs-packages/text-modes
Index: xemacs-packages/text-modes/filladapt.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/text-modes/filladapt.el,v
retrieving revision 1.5
diff -u -p -r1.5 filladapt.el
--- xemacs-packages/text-modes/filladapt.el 2002/10/29 12:27:58 1.5
+++ xemacs-packages/text-modes/filladapt.el 2005/01/31 20:56:13
@@ -986,3 +986,41 @@ See filladapt-adapt."
(while ei-list
(filladapt-set-extent-endpoints (car ei-list) 1 1)
(setq ei-list (cdr ei-list))))))))))
+
+
+;; XEmacs:
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'filladapt
+ "These functions enhance the default behavior of Emacs' Auto Fill
+mode and the commands `fill-paragraph', `lisp-fill-paragraph',
+`fill-region-as-paragraph' and `fill-region'.
+
+The chief improvement is that the beginning of a line to be
+filled is examined and, based on information gathered, an
+appropriate value for fill-prefix is constructed. Also the
+boundaries of the current paragraph are located. This occurs
+only if the fill prefix is not already non-nil.
+
+The net result of this is that blurbs of text that are offset
+from left margin by asterisks, dashes, and/or spaces, numbered
+examples, included text from USENET news articles, etc. are
+generally filled correctly with no fuss."
+:short-doc "Adaptive (smart) filling"
+:require 'filladapt
+:group 'editing
+:enable #'(lambda ()
+ (setq-default filladapt-mode t)
+ (mapc #'(lambda (buffer)
+ (with-current-buffer buffer
+ (unless filladapt-mode
+ (filladapt-mode 1))))
+ (buffer-list)))
+:disable #'(lambda ()
+ (setq-default filladapt-mode nil)
+ (mapc #'(lambda (buffer)
+ (with-current-buffer buffer
+ (when filladapt-mode
+ (filladapt-mode -1))))
+ (buffer-list))))
+)
\ No newline at end of file
Index: xemacs-packages/text-modes/flyspell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/text-modes/flyspell.el,v
retrieving revision 1.14
diff -u -p -r1.14 flyspell.el
--- xemacs-packages/text-modes/flyspell.el 2003/01/03 21:15:12 1.14
+++ xemacs-packages/text-modes/flyspell.el 2005/01/31 20:56:13
@@ -57,6 +57,7 @@
;*---------------------------------------------------------------------*/
;* Which emacs are we currently running */
;*---------------------------------------------------------------------*/
+;;;###custom-define
(defvar flyspell-emacs
(cond
((string-match "XEmacs" emacs-version)
cvs server: Diffing xemacs-packages/textools
cvs server: Diffing xemacs-packages/time
cvs server: Diffing xemacs-packages/time/etc
cvs server: Diffing xemacs-packages/tm
cvs server: Diffing xemacs-packages/tm/lib-src
cvs server: Diffing xemacs-packages/tm/texi
cvs server: Diffing xemacs-packages/tooltalk
cvs server: Diffing xemacs-packages/tpu
cvs server: Diffing xemacs-packages/tramp
cvs server: Diffing xemacs-packages/tramp/lisp
cvs server: Diffing xemacs-packages/tramp/test
cvs server: Diffing xemacs-packages/tramp/texi
cvs server: Diffing xemacs-packages/vc
Index: xemacs-packages/vc/vc-hooks.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/vc/vc-hooks.el,v
retrieving revision 1.12
diff -u -p -r1.12 vc-hooks.el
--- xemacs-packages/vc/vc-hooks.el 2003/10/27 15:09:55 1.12
+++ xemacs-packages/vc/vc-hooks.el 2005/01/31 20:56:14
@@ -1241,6 +1241,7 @@ Returns t if checkout was successful, ni
;(put 'vc-toggle-read-only 'menu-enable 'vc-mode)
;(put 'vc-register 'menu-enable '(and buffer-file-name (not vc-mode)))
+;;;###autoload
(defconst vc-menu
'("VC"
:filter vc-menu-filter
@@ -1318,6 +1319,7 @@ Returns t if checkout was successful, ni
result))
(and (featurep 'menubar)
+ (not (fboundp 'define-behavior-group))
current-menubar
(car (find-menu-item current-menubar '("Tools")))
(add-submenu '("Tools") vc-menu "Compare")
@@ -1338,7 +1340,8 @@ Returns t if checkout was successful, ni
;;;###autoload
(and (featurep 'menubar)
(featurep 'xemacs)
- (not (or (featurep 'vc-hooks) (featurep 'infodock)))
+ (not (or (featurep 'vc-hooks) (featurep 'infodock)
+ (fboundp 'define-behavior-group)))
current-menubar
(car (find-menu-item current-menubar '("Tools")))
(add-submenu '("Tools")
@@ -1346,5 +1349,15 @@ Returns t if checkout was successful, ni
["Load VC" vc-load-vc-hooks t])
"Compare"))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'vc
+ "Not documented."
+:short-doc "VC"
+:group 'files
+:enable 'vc-load-vc-hooks
+:commands (cdr vc-menu))
+)
;;; vc-hooks.el ends here
cvs server: Diffing xemacs-packages/vc-cc
cvs server: Diffing xemacs-packages/vhdl
cvs server: Diffing xemacs-packages/view-process
cvs server: Diffing xemacs-packages/viper
cvs server: Diffing xemacs-packages/viper/etc
cvs server: Diffing xemacs-packages/vm
Index: xemacs-packages/vm/vm-version.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/vm/vm-version.el,v
retrieving revision 1.28
diff -u -p -r1.28 vm-version.el
--- xemacs-packages/vm/vm-version.el 2003/09/03 00:43:45 1.28
+++ xemacs-packages/vm/vm-version.el 2005/01/31 20:56:14
@@ -106,5 +106,15 @@
(image-type-available-p type)
(or (featurep type) (eq type 'xbm))))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'vm
+ "Not documented."
+:group 'internet
+:commands
+ '(["Read Mail (VM)..." vm]))
+)
+
(provide 'vm)
(provide 'vm-version)
cvs server: Diffing xemacs-packages/vm/etc
cvs server: Diffing xemacs-packages/w3
Index: xemacs-packages/w3/lisp/w3.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/w3/lisp/w3.el,v
retrieving revision 1.7
diff -u -p -r1.7 w3.el
--- xemacs-packages/w3/lisp/w3.el 2000/10/06 09:15:23 1.7
+++ xemacs-packages/w3/lisp/w3.el 2005/01/31 20:56:17
@@ -2591,6 +2591,17 @@ Current keymap is:
(run-hooks 'w3-mode-hook)
(widget-setup))))
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'w3
+ "Not documented."
+:group 'internet
+:commands
+ '(["Browse the Web" w3]))
+)
+
(require 'mm)
(require 'url)
(require 'w3-parse)
cvs server: Diffing xemacs-packages/w3/texi
cvs server: Diffing xemacs-packages/x-symbol
cvs server: Diffing xemacs-packages/x-symbol/etc
cvs server: Diffing xemacs-packages/x-symbol/fonts
cvs server: Diffing xemacs-packages/x-symbol/lisp
cvs server: Diffing xemacs-packages/x-symbol/man
cvs server: Diffing xemacs-packages/x-symbol/origfonts
cvs server: Diffing xemacs-packages/xemacs-base
Index: xemacs-packages/xemacs-base/compile.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/xemacs-base/compile.el,v
retrieving revision 1.32
diff -u -p -r1.32 compile.el
--- xemacs-packages/xemacs-base/compile.el 2004/06/28 20:19:43 1.32
+++ xemacs-packages/xemacs-base/compile.el 2005/01/31 20:56:19
@@ -2345,6 +2345,170 @@ See variable `compilation-parse-errors-f
(substring dir (length parent-expanded)))))
dir)
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'grep
+ "See the Emacs user's manual."
+:short-doc "%_Grep"
+:group nil
+:commands
+ '(:filter
+ (lambda (menu)
+ (if (or (not (boundp 'grep-history)) (null grep-history))
+ menu
+ (let ((items
+ (submenu-generate-accelerator-spec
+ (mapcar #'(lambda (label-value)
+ (vector (first label-value)
+ (list 'grep (second label-value))))
+ (Menubar-items-truncate-history
+ grep-history 10 50)))))
+ (append menu '("---") items))))
+ ["%_Grep..." grep :active (fboundp 'grep)]
+ ["%_Kill Grep" kill-compilation
+:active (and (fboundp 'kill-compilation)
+ (fboundp 'compilation-find-buffer)
+ (let ((buffer (condition-case nil
+ (compilation-find-buffer)
+ (error nil))))
+ (and buffer (get-buffer-process buffer))))]
+ "---"
+ ["Grep %_All Files in Current Directory..."
+ grep-all-files-in-current-directory
+:active (fboundp 'grep-all-files-in-current-directory)]
+ ["Grep All Files in Current Directory %_Recursively..."
+ grep-all-files-in-current-directory-and-below
+:active (fboundp 'grep-all-files-in-current-directory-and-below)]
+ "---"
+ ["Grep %_C and C Header Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.[chCH]"
+ ; i wanted to also use *.cc and *.hh.
+ ; see long comment below under Perl.
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep C Hea%_der Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.[hH]"
+ ; i wanted to also use *.hh.
+ ; see long comment below under Perl.
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_E-Lisp Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.el")
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_Perl Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.pl"
+ ; i wanted to use this:
+ ; " *.pl *.pm *.am"
+ ; but grep complains if it can't
+ ; match anything in a glob, and
+ ; that screws other things up.
+ ; perhaps we need to first scan
+ ; each separate glob in the directory
+ ; to see if there are any files in
+ ; that glob, and if not, omit it.
+ )
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ ["Grep %_HTML Files in Current Directory..."
+ (progn
+ (require 'compile)
+ (let ((grep-command
+ (cons (concat grep-command " *.*htm*")
+ (length grep-command))))
+ (call-interactively 'grep)))
+:active (fboundp 'grep)]
+ "---"
+ ["%_Next Match" next-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["Pre%_vious Match" previous-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["%_First Match" first-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["G%_oto Match" compile-goto-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ "---"
+ ["%_Set Grep Command..."
+ (progn
+ (require 'compile)
+ (customize-set-variable
+ 'grep-command
+ (read-shell-command "Default Grep Command: " grep-command)))
+:active (fboundp 'grep)
+ ]
+ ))
+)
+
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'compile
+ "See the Emacs user's manual."
+:short-doc "%_Compile"
+:group nil
+:commands
+ '(:filter
+ (lambda (menu)
+ (if (or (not (boundp 'compile-history)) (null compile-history))
+ menu
+ (let ((items
+ (submenu-generate-accelerator-spec
+ (mapcar #'(lambda (label-value)
+ (vector (first label-value)
+ (list 'compile (second label-value))))
+ (Menubar-items-truncate-history
+ compile-history 10 50)))))
+ (append menu '("---") items))))
+ ["%_Compile..." compile :active (fboundp 'compile)]
+ ["%_Repeat Compilation" recompile :active (fboundp 'recompile)]
+ ["%_Kill Compilation" kill-compilation
+:active (and (fboundp 'kill-compilation)
+ (fboundp 'compilation-find-buffer)
+ (let ((buffer (condition-case nil
+ (compilation-find-buffer)
+ (error nil))))
+ (and buffer (get-buffer-process buffer))))]
+ "---"
+ ["%_Next Error" next-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["Pre%_vious Error" previous-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["%_First Error" first-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ["G%_oto Error" compile-goto-error
+:active (and (fboundp 'compilation-errors-exist-p)
+ (compilation-errors-exist-p))]
+ ))
+)
+
+
(provide 'compile)
;;; compile.el ends here
Index: xemacs-packages/xemacs-base/shell.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/xemacs-packages/xemacs-base/shell.el,v
retrieving revision 1.12
diff -u -p -r1.12 shell.el
--- xemacs-packages/xemacs-base/shell.el 2004/11/23 04:10:54 1.12
+++ xemacs-packages/xemacs-base/shell.el 2005/01/31 20:56:19
@@ -1192,6 +1192,22 @@ Returns t if successful."
(message "Directory item: %d" index)
t))))))
+;; XEmacs
+;;;###autoload
+(if (fboundp 'define-behavior-group)
+(define-behavior 'shell
+ "See the Emacs user's manual."
+:short-doc "Shell"
+:group 'processes
+:commands
+ '(["%_Shell" shell
+:active (fboundp 'shell)]
+ ["S%_hell Command..." shell-command
+:active (fboundp 'shell-command)]
+ ["Shell Command on %_Region..." shell-command-on-region
+:active (and (fboundp 'shell-command-on-region) (region-exists-p))]))
+)
+
(provide 'shell)
;;; shell.el ends here
cvs server: Diffing xemacs-packages/xemacs-base/etc
cvs server: Diffing xemacs-packages/xemacs-devel