;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:39:07 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/emacs-lisp/easy-mmode.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`easy-mmode.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@123 Turn the symbol MODE into a string intended for the user.
If provided LIGHTER will be used to help choose capitalization.
(defalias 'easy-mmode-pretty-mode-name #[(mode &optional lighter) "\304\305\306\307\310\305\311\312\313	!#!#\314P;\204 \n\202( \305\315\312#\305\211\n\304\211%*\207" [case-fold-search mode name lighter t replace-regexp-in-string "-Minor" " minor" capitalize "-mode\\'" "" symbol-name " mode" "\\`\\s-+\\|\\-s+\\'"] 9 (#$ . 634)])
(defalias 'easy-mmode-define-minor-mode 'define-minor-mode)
#@1258 Define a new minor mode MODE.
This function defines the associated control variable MODE, keymap MODE-map,
toggle command MODE, and hook MODE-hook.

DOC is the documentation for the mode toggle command.
Optional INIT-VALUE is the initial value of the mode's variable.
Optional LIGHTER is displayed in the modeline when the mode is on.
Optional KEYMAP is the default (defvar) keymap bound to the mode keymap.
  If it is a list, it is passed to `easy-mmode-define-keymap'
  in order to build a valid keymap.  It's generally better to use
  a separate MODE-map variable than to use this argument.
The above three arguments can be skipped if keyword arguments are
used (see below).

BODY contains code that will be executed each time the mode is (dis)activated.
  It will be executed after any toggling but before running the hooks.
  BODY can start with a list of CL-style keys specifying additional arguments.
  The following keyword arguments are supported:
:group   Followed by the group name to use for any generated `defcustom'.
:global  If non-nil specifies that the minor mode is not meant to be
         buffer-local.  By default, the variable is made buffer-local.
:init-value  Same as the INIT-VALUE argument.
:lighter  Same as the LIGHTER argument.
(defalias 'define-minor-mode '(macro . #[(mode doc &optional init-value lighter keymap &rest body) "\306!\203 	\nBBB\307\307\307\2026 \306	!\203* 	\nBB\307\307\2026 \306\n!\2036 \nB\307\310\f!\311\f	\"@\307A\312B\307C\307D\n\203Y \n9\203Y \n\202^ \313\314P!E\313\315P!F\313\316P!G\313\317P!H\306@!\203\344 \211A@\211I\320=\203\222 \211A@\202\340 I\321=\203\242 \211A@\202\340 I\322=\203\263 \211A@A\202\340 I\323=\203\304 \211A@D\202\340 I\324=\203\332 C\324\211A@D\244C\202\340 \211A@\210)\202u C\204\366 \324\325\313\326\327\330#!DDC	;\203\331\332\333	#\204\331\332\302	#\204\334	\333J\335\336%\337A\204.\337\340\f\341\342@\f#F\343\325\fDDE\202j\344\345!\2039%\206;KL\346\f\341\347@\f\211$\350\351\352\353\354C\355L\205`\356\325\313\357\360L!!!DD#)BBBBBBBB\361\f\362\363DBBM\206\207\341\364B?\205\200\365\366Q@E#\367\370\f\371\363\372B\203\230\373\fD\202\231\312FE\354\374\325FD\371\f\325GD\325HDFE\371\375\376\341\377@\"\371\f\201O BBEE\201P \fF\"BBBBBB\201Q \346F\307\341\201R \"\324C\211NA@)\201S BBBBBB\n9?\205\340E\201T \201U \nDC\201V \201W \201X \312\201Y \201Z \nEDFE\341\201[ \"F\201\\ \325\fD\325	D\n\203*E\202:\371\344\325EDD\201] \325EDDEFA\205]\371\201^ \201K \f\201_ BBB\201` \201K \325\f\201a BDEE\257.\n\207" [init-value lighter keymap body mode mode-name keywordp nil symbol-name easy-mmode-pretty-mode-name t intern "-map" "-hook" "-on-hook" "-off-hook" :init-value :lighter :global :extra-args :group quote replace-regexp-in-string "-mode\\'" "" get-text-property 0 local-map propertize help-echo "mouse-3: minor mode menu" progn defvar format "Non-nil if %s is enabled.\nUse the command `%s' to change this variable." make-variable-buffer-local boundp byte-compile-current-file defcustom "Non-nil if %s is enabled.\nSee the command `%s' for a description of this minor-mode.\nSetting this variable directly does not take effect;\nuse either \\[customize] or the function `%s'." :set (lambda (symbol value) (funcall symbol (or value 0))) :initialize 'custom-initialize-default append (:type 'boolean) :require file-name-nondirectory file-name-sans-extension defun &optional arg "Toggle %s on or off.\nInteractively, with no prefix argument, toggle the mode.\nWith universal prefix ARG " "(or if ARG is nil) " "turn mode on.\nWith zero or negative ARG turn mode off.\n\\{%s}" (interactive) setq if (> (prefix-numeric-value arg) 0) not run-hooks (interactive-p) message "%s %%sabled" pretty-name globalp togglep group extra-args keymap-sym hook hook-on hook-off #1=#:G97269 mode-line-minor-mode-keymap load-file-name curfile doc x ("en" "dis") (force-mode-line-update) :autoload-end "Hook run at the end of function `%s'." (:type 'hook) let m cond ((keymapp m) m) ((listp m) (easy-mmode-define-keymap m)) error "Invalid keymap %S" "Keymap for `%s'." add-minor-mode symbol-value and ((not purify-flag)) eval-after-load (1)] 19 (#$ . 1161)]))
#@276 Make GLOBAL-MODE out of the buffer-local minor MODE.
TURN-ON is a function that will be called with no args in every buffer
  and that should try to turn MODE on if applicable for that buffer.
KEYS is a list of CL-style keyword arguments:
:group to specify the custom group.
(defalias 'easy-mmode-define-global-mode '(macro . #[(global-mode mode turn-on &rest keys) "\306!\307\n!\307!\310\3103\311	\312P!4\311	\313P!5\3146@!\203a 6\211A6@\2117\315=\203B 6\211A6@3\202] 7\316=\203X \3166\211A6@D\244\202] 6A6)\202 \204s \316\317\311\320\321\322\306\n!#!DD\323\324\325\326\f8%\327\330\3153\331\332\323\333\334\3174DE\333\335\3175DEE\336\337\3174DE\336\340\3175DE\257\341\342\343\344\3328C\345\n\211\346BEFEED\"BBBBBBB\347\3504\351BB\3524\310\336\353\3174DE\3544\355\344\3564DDC\345\357\343\3448CEEEE\257\3525\310\360\3174D\361BB\333\362\3174DE\257\257.\207" [global-mode global-mode-name mode pretty-name pretty-global-name group symbol-name easy-mmode-pretty-mode-name nil intern "-buffers" "-cmmh" keywordp :extra-args :group quote replace-regexp-in-string "-mode\\'" "" progn define-minor-mode format "Toggle %s in every buffer.\nWith prefix ARG, turn %s on if and only if ARG is positive.\n%s is actually not turned on in every buffer but only in those\nin which `%s' turns it on." :global t append if add-hook 'find-file-hooks 'change-major-mode-hook remove-hook 'find-file-hooks 'change-major-mode-hook dolist (buf (buffer-list)) with-current-buffer buf when (-1) :autoload-end defvar (nil) defun 'post-command-hook while let pop (buffer-live-p buf) add-to-list ((current-buffer)) 'post-command-hook extra-args buffers cmmh keys #1=#:G97270 turn-on] 23 (#$ . 5398)]))
(byte-code "\300\301!\203 \302\303\301\"\210\202 \303\304M\210\300\207" [fboundp set-keymap-parents defalias easy-mmode-set-keymap-parents #[(m parents) "\302	:\204 	\202$ 	A\204 	@\202$ \303	\211A@!\304	\"\210)\"\207" [m parents set-keymap-parent copy-keymap easy-mmode-set-keymap-parents] 5]] 3)
#@283 Return a keymap built from bindings BS.
BS must be a list of (KEY . BINDING) where
KEY and BINDINGS are suitable for `define-key'.
Optional NAME is passed to `make-sparse-keymap'.
Optional map M can be used to modify an existing map.
ARGS is a list of additional keyword arguments.
(defalias 'easy-mmode-define-keymap #[(bs &optional name m args) "\306\211\211\203G \211A@\211A@\211\307=\203\" \f\202C \310=\203- \f\202C \311=\2038 \f\202C \312=\204C \313\314\"\210*\202 \315!\204g \316\"	\203a \317!\202e \320!\306\211\203\372 @\211@A\211:\203\212 \202\215 C\306\211\203\360 @\2119\203\253 \321$\210\202\347 \204\305 \315\322\"!\204\347 \323#\210\202\347 \322\"\211 ?\206\333  \247\206\333  \324=)\203\347 \323#\210A\211\204\225 ,A\211\204r *\315\n!\203\n\325\n\"\210\202\n:\203\326\n\"\210+\207" [suppress dense inherit args val key nil :name :dense :inherit :group message "Unknown argument %s in defmap" keymapp append make-keymap make-sparse-keymap substitute-key-definition lookup-key define-key undefined set-keymap-parent easy-mmode-set-keymap-parents name m bs b #1=#:--dolist-temp--97271 binding keys #2=#:--dolist-temp--97272 global-map o] 8 (#$ . 7437)])
(defalias 'easy-mmode-defmap '(macro . #[(m bs doc &rest args) "\304\305	\306\307\310\311DDE\312\nB\257F\207" [m bs args doc defconst easy-mmode-define-keymap nil if boundp quote list] 9]))
(defalias 'easy-mmode-define-syntax #[(css args) "\306\307\310\"!\307\311\"\312\211\203? @\211@\fA\313!\203/ \314\315\"\210\2027 \316\n#\210*A\211\204 *	\203S \317\n	9\203P 	J\202Q 	\"\210\n*\207" [args parent st css cs #1=#:--dolist-temp--97273 make-syntax-table plist-get :copy :inherit nil sequencep mapcar #[(c) "\303	\n#\207" [c syntax st modify-syntax-entry] 4] modify-syntax-entry set-char-table-parent syntax char] 5])
#@113 Define variable ST as a syntax-table.
CSS contains a list of syntax specifications of the form (CHAR . SYNTAX).
(defalias 'easy-mmode-defsyntax '(macro . #[(st css doc &rest args) "\304\305\306\307	\310\nBEFE\207" [st css args doc progn (autoload 'easy-mmode-define-syntax "easy-mmode") defconst easy-mmode-define-syntax list] 8 (#$ . 9364)]))
#@488 Define BASE-next and BASE-prev to navigate in the buffer.
RE determines the places the commands should move point to.
NAME should describe the entities matched by RE.  It is used to build
  the docstrings of the two functions.
BASE-next also tries to make sure that the whole entry is visible by
  searching for its end (by calling ENDFUN if provided or by looking for
  the next entry) and recentering if necessary.
ENDFUN should return the end position (with or without moving point).
(defalias 'easy-mmode-define-navigation '(macro . #[(base re &optional name endfun) "\306!\307	\310P!\307	\311P!\f\204 \306	!\312\313\314\315\316\f!PE\317\320\321\322\f\"\323\324\325\326\n\327B\325\330D\331BB\325\332\333\334BBD\325\330D\335\3365\205L 5C\337BBD\340\321\341\f\"DF\342\343\344\345\346\336\3475\203i 5C\202n \333\350BBD\351BBDC\352BBE\257\257\257\317\n\353\321\354\f\206\210 	\"\355\356\325\357\360B\361\362\363BB\340\321\364\f\"DEF\257F+\207" [base base-name prev-sym next-sym name re symbol-name intern "-prev" "-next" progn add-to-list 'debug-ignored-errors "^No \\(previous\\|next\\) " regexp-quote defun (&optional count) format "Go to the next COUNT'th %s." (interactive) (unless count (setq count 1)) if (< count 0) ((- count)) looking-at ((incf count)) not re-search-forward (nil t count) goto-char or ((point-max)) error "No next %s" (goto-char (match-beginning 0)) when (and (eq (current-buffer) (window-buffer (selected-window))) (interactive-p)) let endpt save-excursion (nil t 2) ((point-max)) ((unless (pos-visible-in-window-p endpt nil t) (recenter '(0)))) (&optional count) "Go to the previous COUNT'th %s" (interactive) (unless count (setq count 1)) (< count 0) ((- count)) unless re-search-backward (nil t count) "No previous %s" endfun] 25 (#$ . 9717)]))
(provide 'easy-mmode)
