X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/08861c5cb87e91e83e5b0bf53cb53c1377434c8f..e1ef0dac0866570df62f96fb004de896f6e82397:/lisp/autoinsert.el diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 845014f9ab..a5634dde5a 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -1,7 +1,7 @@ ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files ;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2001, 2002, -;; 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ;; Author: Charlie Martin ;; Adapted-By: Daniel Pfeiffer @@ -10,10 +10,10 @@ ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -21,9 +21,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -55,11 +53,12 @@ "Automatic mode-dependent insertion of text into new files." :prefix "auto-insert-" :group 'files - :group 'convenience) + :group 'convenience + :link '(custom-manual "(autotype) Autoinserting")) (defcustom auto-insert 'not-modified - "*Controls automatic insertion into newly found empty files. + "Controls automatic insertion into newly found empty files. Possible values: nil do nothing t insert if possible @@ -77,7 +76,7 @@ With \\[auto-insert], this is always treated as if it were t." :group 'auto-insert) (defcustom auto-insert-query 'function - "*Non-nil means ask user before auto-inserting. + "Non-nil means ask user before auto-inserting. When this is `function', only ask when called non-interactively." :type '(choice (const :tag "Don't ask" nil) (const :tag "Ask if called non-interactively" function) @@ -85,7 +84,7 @@ When this is `function', only ask when called non-interactively." :group 'auto-insert) (defcustom auto-insert-prompt "Perform %s auto-insertion? " - "*Prompt to use when querying whether to auto-insert. + "Prompt to use when querying whether to auto-insert. If this contains a %s, that will be replaced by the matching rule." :type 'string :group 'auto-insert) @@ -94,9 +93,9 @@ If this contains a %s, that will be replaced by the matching rule." (defcustom auto-insert-alist '((("\\.\\([Hh]\\|hh\\|hpp\\)\\'" . "C / C++ header") (upcase (concat (file-name-nondirectory - (substring buffer-file-name 0 (match-beginning 0))) + (file-name-sans-extension buffer-file-name)) "_" - (substring buffer-file-name (1+ (match-beginning 0))))) + (file-name-extension buffer-file-name))) "#ifndef " str \n "#define " str "\n\n" _ "\n\n#endif") @@ -127,10 +126,10 @@ If this contains a %s, that will be replaced by the matching rule." _ "\n\\begin{document}\n" _ "\n\\end{document}") - (("/bin/.*[^/]\\'" . "Shell-Script mode magic number") - lambda () - (if (eq major-mode default-major-mode) - (sh-mode))) + (("/bin/.*[^/]\\'" . "Shell-Script mode magic number") . + (lambda () + (if (eq major-mode (default-value 'major-mode)) + (sh-mode)))) (ada-mode . ada-header) @@ -228,10 +227,10 @@ If this contains a %s, that will be replaced by the matching rule." @quotation Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 +under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover -Texts. A copy of the license is included in the section entitled ``GNU +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +A copy of the license is included in the section entitled ``GNU Free Documentation License''. A copy of the license is also available from the Free Software @@ -309,7 +308,7 @@ described above, e.g. [\"header.insert\" date-and-author-update]." ;; Establish a default value for auto-insert-directory (defcustom auto-insert-directory "~/insert/" - "*Directory from which auto-inserted files are taken. + "Directory from which auto-inserted files are taken. The value must be an absolute directory name; thus, on a GNU or Unix system, it must end in a slash." :type 'directory @@ -344,19 +343,19 @@ Matches the visited file name against the elements of `auto-insert-alist'." ;; Now, if we found something, do it (and action - (if (stringp action) - (file-readable-p (concat auto-insert-directory action)) - t) - (if auto-insert-query - (or (if (eq auto-insert-query 'function) - (eq this-command 'auto-insert)) - (y-or-n-p (format auto-insert-prompt desc))) - t) + (or (not (stringp action)) + (file-readable-p (expand-file-name + action auto-insert-directory))) + (or (not auto-insert-query) + (if (eq auto-insert-query 'function) + (eq this-command 'auto-insert)) + (y-or-n-p (format auto-insert-prompt desc))) (mapc (lambda (action) (if (stringp action) (if (file-readable-p - (setq action (concat auto-insert-directory action))) + (setq action (expand-file-name + action auto-insert-directory))) (insert-file-contents action)) (save-window-excursion ;; make buffer visible before skeleton or function @@ -394,8 +393,7 @@ or if CONDITION had no actions, after all other CONDITIONs." (vector action (cdr elt))))) (if after (nconc auto-insert-alist (list (cons condition action))) - (setq auto-insert-alist (cons (cons condition action) - auto-insert-alist)))))) + (push (cons condition action) auto-insert-alist))))) ;;;###autoload (define-minor-mode auto-insert-mode @@ -412,5 +410,4 @@ insert a template for the file depending on the mode of the buffer." (provide 'autoinsert) -;; arch-tag: 5b6630ac-c735-43cf-b097-b78c622af909 ;;; autoinsert.el ends here