;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Thu Jan 18 01:46:09 1996 ;;; from file /gd/gnu/emacs/19.0/lisp/autoinsert.el ;;; emacs version 19.30.70.7. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`autoinsert.el' was compiled for Emacs 19.29 or later")) #@506 *Controls automatic insertion into newly found empty files: nil do nothing t insert if possible other insert if possible, but mark as unmodified. Insertion is possible when something appropriate is found in `auto-insert-alist'. When the insertion is marked as unmodified, you can save it with \[write-file] RET. This variable is used when `auto-insert' is called as a function, e.g. when you do (add-hook 'find-file-hooks 'auto-insert). With \[auto-insert], this is always treated as if it were `t'. (defvar auto-insert (quote not-modified) (#$ . -480)) #@113 *If non-`nil', ask user before auto-inserting. When this is `function', only ask when called non-interactively. (defvar auto-insert-query (quote function) (#$ . -1046)) #@121 *Prompt to use when querying whether to auto-insert. If this contains a %s, that will be replaced by the matching rule. (defvar auto-insert-prompt "Perform %s auto-insertion? " (#$ . -1222)) #@686 A list specifying text to insert by default into a new file. Elements look like (CONDITION . ACTION) or ((CONDITION . DESCRIPTION) . ACTION). CONDITION maybe a regexp that must match the new file's name, or it may be a symbol that must match the major mode for this element to apply. Only the first matching element is effective. Optional DESCRIPTION is a string for filling `auto-insert-prompt'. ACTION may be a skeleton to insert (see `skeleton-insert'), an absolute file-name or one relative to `auto-insert-directory' or a function to call. ACTION may also be a vector containing several successive single actions as described above, e.g. ["header.insert" date-and-author-update]. (defvar auto-insert-alist (quote ((("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header") (upcase (concat (file-name-nondirectory (substring buffer-file-name 0 (match-beginning 0))) "_" (substring buffer-file-name (1+ (match-beginning 0))))) "#ifndef " str n "#define " str "\n\n" _ "\n\n#endif") (("\\.\\([Cc]\\|cc\\|cpp\\)\\'" . "C / C++ program") nil "#include \"" (and (fboundp (quote c-companion-file)) (file-name-nondirectory (c-companion-file (quote name)))) & 34 | -10) ("[Mm]akefile\\'" . "makefile.inc") (html-mode lambda nil (sgml-tag "html")) (plain-tex-mode . "tex-insert.tex") (bibtex-mode . "tex-insert.tex") (latex-mode "options, RET: " "\\documentstyle[" str & 93 | -1 123 (read-string "class: ") "}\n" ("package, %s: " "\\usepackage[" (read-string "options, RET: ") & 93 | -1 123 str "}\n") _ "\n\\begin{document}\n" _ "\n\\end{document}") (("/bin/.*[^/]\\'" . "Shell-Script mode magic number") lambda nil (if (eq major-mode default-major-mode) (sh-mode))) (ada-mode . ada-header) (("\\.el\\'" . "Emacs Lisp header") "Short description: " ";;; " (file-name-nondirectory (buffer-file-name)) " --- " str "\n\n;; Copyright (C) " (substring (current-time-string) -4) " by " (getenv "ORGANIZATION") | "Free Software Foundation, Inc." "\n\n;; Author: " (user-full-name) (quote (if (search-backward "&" (save-excursion (beginning-of-line 1) (point)) t) (replace-match (capitalize (user-login-name)) t t))) (quote (end-of-line 1)) " <" (user-login-name) 64 (system-name) ">\n;; Keywords: " (quote (require (quote finder))) (quote (setq v1 (mapcar (lambda (x) (list (symbol-name (car x)))) finder-known-keywords) v2 (mapconcat (lambda (x) (format "%10.0s: %s" (car x) (cdr x))) finder-known-keywords "\n"))) ((let ((minibuffer-help-form v2)) (completing-read "Keyword, C-h: " v1 nil t)) str ", ") & -2 "\n\n;; This file is part of GNU Emacs.\n\n;; GNU Emacs is free software; you can redistribute it and/or modify\n;; it under the terms of the GNU General Public License as published by\n;; the Free Software Foundation; either version 2, or (at your option)\n;; any later version.\n\n;; GNU Emacs is distributed in the hope that it will be useful,\n;; but WITHOUT ANY WARRANTY; without even the implied warranty of\n;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n;; GNU General Public License for more details.\n\n;; You should have received a copy of the GNU General Public License\n;; along with GNU Emacs; see the file COPYING. If not, write to\n;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n;; Boston, MA 02111-1307, USA.\n\n;;; Commentary:\n\n;; " _ "\n\n;;; Code:\n\n\n\n;;; " (file-name-nondirectory (buffer-file-name)) " ends here"))) (#$ . 1420)) #@54 *Directory from which auto-inserted files are taken. (defvar auto-insert-directory "~/insert/" (#$ . -4817)) #@145 Insert default contents into a new file if `auto-insert' is non-nil. Matches the visited file name against the elements of `auto-insert-alist'. (defalias 'auto-insert #[nil "?…Ï Â=„\n…Ïo…Ïm…Ï Ä‰‰‰ Êbˆ ƒu @@‰:„?‚IA@9ƒW =‚]Ì \"ƒl @Aĉ ‚* A‰ „- ƒ½ ;ƒ‡Î P!‚ˆÐƒ½ƒ¨Ò=ƒ Â=„¬ÓÔ\"!‚©Ðƒ½Öר !ƒ¸ ‚»Ù !\"ˆÚ …Î Â=?…ÎÛ\nÐ=!-‡" [buffer-read-only this-command auto-insert auto-insert-alist nil action desc cond case-fold-search alist 1 major-mode string-match buffer-file-name file-readable-p auto-insert-directory t auto-insert-query function y-or-n-p format auto-insert-prompt mapcar #[(action) ";ƒÁ\nP‰!…Ã!‡Ä‹‡" [action file-readable-p auto-insert-directory insert-file-contents ((byte-code "Àp!ˆ :ƒ @Â=„à !‡ ‡" [switch-to-buffer action lambda skeleton-insert] 2))] 3] vectorp vector buffer-modified-p set-buffer-modified-p] 6 (#$ . 4933) nil]) #@210 Associate CONDITION with (additional) ACTION in `auto-insert-alist'. Optional AFTER means to insert action after all existing actions for CONDITION, or if CONDITION had no actions, after all other CONDITIONs. (defalias 'define-auto-insert #[(key action &optional after) "À \n\"‰ƒM Ä A!ƒ5Å… AÄ!ƒ%‚)È!?…1 A#‚IƒCÈ A\"‚IÈ A\"¡‚dƒ\\\n BC¤‚d B\nB‰)‡" [assoc key auto-insert-alist elt vectorp vconcat after action vector] 6 (#$ . 5861)])