1 |
;;; filesets.el --- handle group of files |
;;; filesets.el --- handle group of files |
2 |
|
|
3 |
;; Copyright (C) 2002 Free Software Foundation, Inc. |
;; Copyright (C) 2002, 2005 Free Software Foundation, Inc. |
4 |
|
|
5 |
;; Author: Thomas Link <t.link@gmx.at> |
;; Author: Thomas Link <t.link@gmx.at> |
6 |
;; Maintainer: FSF |
;; Maintainer: FSF |
304 |
:type 'sexp |
:type 'sexp |
305 |
:group 'filesets) |
:group 'filesets) |
306 |
|
|
307 |
(if filesets-running-xemacs |
(defcustom filesets-menu-path nil |
308 |
(progn |
"*The menu under which the filesets menu should be inserted. |
309 |
(defcustom filesets-menu-path nil |
See `add-submenu' for documentation." |
310 |
"*The menu under which the filesets menu should be inserted. |
:set (function filesets-set-default) |
311 |
XEmacs specific; see `add-submenu' for documentation." |
:type 'sexp |
312 |
:set (function filesets-set-default) |
:group 'filesets) |
313 |
:type 'sexp |
|
314 |
:group 'filesets) |
(defcustom filesets-menu-before "File" |
315 |
|
"*The name of a menu before which this menu should be added. |
316 |
(defcustom filesets-menu-before "File" |
See `add-submenu' for documentation." |
317 |
"*The name of a menu before which this menu should be added. |
:set (function filesets-set-default) |
318 |
XEmacs specific; see `add-submenu' for documentation." |
:type 'sexp |
319 |
:set (function filesets-set-default) |
:group 'filesets) |
320 |
:type 'sexp |
|
321 |
:group 'filesets) |
(defcustom filesets-menu-in-menu nil |
322 |
|
"*Use that instead of `current-menubar' as the menu to change. |
323 |
(defcustom filesets-menu-in-menu nil |
See `add-submenu' for documentation." |
324 |
"*Use that instead of `current-menubar' as the menu to change. |
:set (function filesets-set-default) |
325 |
XEmacs specific; see `add-submenu' for documentation." |
:type 'sexp |
326 |
:set (function filesets-set-default) |
:group 'filesets) |
|
:type 'sexp |
|
|
:group 'filesets)) |
|
|
(defvar filesets-menu-path nil) |
|
|
(defvar filesets-menu-before nil) |
|
|
(defvar filesets-menu-in-menu nil)) |
|
327 |
|
|
328 |
(defcustom filesets-menu-shortcuts-flag t |
(defcustom filesets-menu-shortcuts-flag t |
329 |
"*Non-nil means to prepend menus with hopefully unique shortcuts." |
"*Non-nil means to prepend menus with hopefully unique shortcuts." |
346 |
(defcustom filesets-menu-cache-file |
(defcustom filesets-menu-cache-file |
347 |
(if filesets-running-xemacs |
(if filesets-running-xemacs |
348 |
"~/.xemacs/filesets-cache.el" |
"~/.xemacs/filesets-cache.el" |
349 |
"~/.filesets-cache.el") |
"~/.emacs.d/filesets-cache.el") |
350 |
"*File to be used for saving the filesets menu between sessions. |
"*File to be used for saving the filesets menu between sessions. |
351 |
Set this to \"\", to disable caching of menus. |
Set this to \"\", to disable caching of menus. |
352 |
Don't forget to check out `filesets-menu-ensure-use-cached'." |
Don't forget to check out `filesets-menu-ensure-use-cached'." |
1065 |
;;; Emacs compatibility |
;;; Emacs compatibility |
1066 |
(eval-and-compile |
(eval-and-compile |
1067 |
(if filesets-running-xemacs |
(if filesets-running-xemacs |
1068 |
(progn |
(fset 'filesets-error 'error) |
|
(fset 'filesets-error 'error) |
|
|
(fset 'filesets-add-submenu 'add-submenu)) |
|
1069 |
|
|
1070 |
(require 'easymenu) |
(require 'easymenu) |
1071 |
|
|
1073 |
"`error' wrapper." |
"`error' wrapper." |
1074 |
(error (mapconcat 'identity args " "))) |
(error (mapconcat 'identity args " "))) |
1075 |
|
|
|
;; This should work for 21.1 Emacs |
|
|
(defun filesets-add-submenu (menu-path submenu &optional |
|
|
before in-menu) |
|
|
"`easy-menu-define' wrapper." |
|
|
(easy-menu-define |
|
|
filesets-submenu global-map "Filesets menu" submenu)) |
|
1076 |
)) |
)) |
1077 |
|
|
1078 |
(defun filesets-filter-dir-names (lst &optional negative) |
(defun filesets-filter-dir-names (lst &optional negative) |
2326 |
(filesets-menu-cache-file-save-maybe))) |
(filesets-menu-cache-file-save-maybe))) |
2327 |
(let ((cb (current-buffer))) |
(let ((cb (current-buffer))) |
2328 |
(when (not (member cb filesets-updated-buffers)) |
(when (not (member cb filesets-updated-buffers)) |
2329 |
(filesets-add-submenu |
(add-submenu |
2330 |
filesets-menu-path |
filesets-menu-path |
2331 |
`(,filesets-menu-name |
`(,filesets-menu-name |
2332 |
("# Filesets" |
("# Filesets" |