;;; -*-emacs-lisp-*- (defun skelrc-banner (title &optional block) (let* ((start (skel-lookup 'block-start)) (end (skel-lookup (if block 'block-banner-knob 'block-banner-end))) (barlen (- 77 (length (concat start end " ----- " title))))) (concat start "----- " title " " (make-string barlen ?-) end))) (defvar skelrc-forced-major-mode 0) (defun skelrc-force-mode (new-mode &optional priority) (or priority (setq priority 1)) (if (> priority skelrc-forced-major-mode) (progn (or (eq new-mode major-mode) (let ((old-skel-alist skel-alist)) (funcall new-mode) (make-variable-buffer-local 'skel-alist) (setq skel-alist old-skel-alist))) (make-variable-buffer-local 'skelrc-forced-major-mode) (setq skelrc-forced-major-mode priority)))) (defun skelrc-decode-major-mode () (let* ((name (symbol-name major-mode)) (endind (string-match "-mode$" name))) (if endind (substring name 0 endind) (name)))) (defun skelrc-assq (key list) (let ((val (assq key list))) (and val (cdr val)))) (defun skelrc-component () (if (assq 'full-title skel-alist) "[[cont-comment]] This file is part of [[full-title]]. [[cont-comment]]\n" "")) (setq skelrc-gpl "[[cont-comment]] [[Program-name]] is free software; you can redistribute it and/or modify [[cont-comment]] it under the terms of the GNU General Public License as published by [[cont-comment]] the Free Software Foundation; either version 2 of the License, or [[cont-comment]] (at your option) any later version. [[cont-comment]] [[cont-comment]] [[Program-name]] is distributed in the hope that it will be useful, [[cont-comment]] but WITHOUT ANY WARRANTY; without even the implied warranty of [[cont-comment]] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [[cont-comment]] GNU General Public License for more details. [[cont-comment]] [[cont-comment]] You should have received a copy of the GNU General Public License [[cont-comment]] along with [[program-name]]; if not, write to the Free Software Foundation, [[cont-comment]] Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.") (setq skelrc-wide-gpl ;Version for wide program names "[[cont-comment]] [[Program-name]] is free software; you can redistribute it and/or modify [[cont-comment]] it under the terms of the GNU General Public License as published by [[cont-comment]] the Free Software Foundation; either version 2 of the License, or [[cont-comment]] (at your option) any later version. [[cont-comment]] [[cont-comment]] [[Program-name]] is distributed in the hope that it will be useful, [[cont-comment]] but WITHOUT ANY WARRANTY; without even the implied warranty of [[cont-comment]] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [[cont-comment]] GNU General Public License for more details. [[cont-comment]] [[cont-comment]] You should have received a copy of the GNU General Public License [[cont-comment]] along with [[program-name]]; if not, write to the Free [[cont-comment]] Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, [[cont-comment]] MA 02111-1307, USA.") (setq skelrc-lgpl "[[cont-comment]] [[Library-name]] is free software; you can redistribute it and/or modify [[cont-comment]] it under the terms of the GNU Library General Public License as [[cont-comment]] published by the Free Software Foundation; either version 2 of the [[cont-comment]] License, or (at your option) any later version. [[cont-comment]] [[cont-comment]] [[Library-name]] is distributed in the hope that it will be useful, [[cont-comment]] but WITHOUT ANY WARRANTY; without even the implied warranty of [[cont-comment]] MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [[cont-comment]] GNU Library General Public License for more details. [[cont-comment]] [[cont-comment]] You should have received a copy of the GNU Library General Public [[cont-comment]] License along with [[library-name]]; if not, write to the Free [[cont-comment]] Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, [[cont-comment]] MA 02111-1307, USA.") (setq skelrc-bsd "[[cont-comment]] Copyright (c) [[year]] [[author]] [[cont-comment]] All rights reserved. [[cont-comment]] [[cont-comment]] Redistribution and use in source and binary forms, with or without [[cont-comment]] modification, are permitted provided that the following conditions are [[cont-comment]] met: [[cont-comment]] [[cont-comment]] 1. Redistributions of source code must retain the above copyright [[cont-comment]] notice, this list of conditions and the following disclaimer. [[cont-comment]] [[cont-comment]] 2, Redistributions in binary form must reproduce the above copyright [[cont-comment]] notice, this list of conditions and the following disclaimer in the [[cont-comment]] documentation and/or other materials provided with the distribution. [[cont-comment]] [[cont-comment]] 3. The name of the authors may not be used to endorse or promote [[cont-comment]] products derived from this software without specific prior written [[cont-comment]] permission. [[cont-comment]] [[cont-comment]] THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED [[cont-comment]] WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF [[cont-comment]] MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN [[cont-comment]] NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, [[cont-comment]] INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES [[cont-comment]] (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR [[cont-comment]] SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) [[cont-comment]] HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, [[cont-comment]] STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN [[cont-comment]] ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE [[cont-comment]] POSSIBILITY OF SUCH DAMAGE. [[cont-comment]] [[cont-comment]] Instead of accepting the above terms, you may redistribute and/or modify [[cont-comment]] this software under the terms of either the GNU General Public License, [[cont-comment]] or the GNU Library General Public License, published by the Free [[cont-comment]] Software Foundation; either version 2 of the License, or (at your [[cont-comment]] option) any later version.") (defun skel-basename () (file-name-sans-extension (file-name-nondirectory buffer-file-name))) (setq skel-alist (append '((emacs-mode . (skelrc-decode-major-mode)) (year . (substring (current-time-string) 20 24)) (header . "[[licence]][[revisions]][[preamble]]") (basename . (skel-basename)) (licence . "[[licence-banner]]\n[[cont-comment]]\n[[component]][[licence-text]][[block-end]]\n\n") (licence-banner . (skelrc-banner "Licensing notice" t)) (component . (skelrc-component)) (licence-text . "[[gpl]]") (Program-name . (or (skelrc-assq 'Program skel-alist) (skelrc-assq 'program skel-alist) "This program")) (program-name . (or (skelrc-assq 'program skel-alist) "this program")) (Library-name . (or (skelrc-assq 'Library skel-alist) (skelrc-assq 'library skel-alist) (skelrc-assq 'Program skel-alist) (skelrc-assq 'program skel-alist) "This library")) (library-name . (or (skelrc-assq 'library skel-alist) (skelrc-assq 'program skel-alist) "this library")) (gpl . skelrc-gpl) (wide-gpl . skelrc-wide-gpl) (lgpl . skelrc-lgpl) (bsd . skelrc-bsd) (revisions . "[[revision-banner]]\n[[cont-comment]]\n[[cont-comment]] $Log$[[block-end]]\n\n") (revision-banner . (skelrc-banner "Revision history" t)) (preamble . "") (trailer . "[[tag-line]]\n[[postamble]]") (postamble . "") (tag-line . (skelrc-banner "That's all, folks")) (block-start . (skel-lookup 'new-comment)) (block-banner-knob . "") (block-banner-end . "") (block-end . "")) skel-alist))