;;; 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.
+;; Copyright (C) 1985-1987, 1994-1995, 1998, 2000-2011
+;; Free Software Foundation, Inc.
;; Author: Charlie Martin <crm@cs.duke.edu>
;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org>
"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
: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)
: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)
(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")
_ "\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)
@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
;; 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
;; 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
(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
(provide 'autoinsert)
-;; arch-tag: 5b6630ac-c735-43cf-b097-b78c622af909
;;; autoinsert.el ends here