From 6d349e29736243c07a523dd546afc0d70dd1da22 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 18 Dec 2011 16:12:29 +0000 Subject: [PATCH] skelrc: Apply comment-block prefix to licence texts programmatically. This makes them look better, and also makes it easier for Emacs to parse them. We still need a few (previously missing) escapes in order to help Emacs find the ends of the strings properly, but it's much easier to read now. --- skelrc | 186 ++++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 102 insertions(+), 84 deletions(-) diff --git a/skelrc b/skelrc index d23c96b..3248571 100644 --- a/skelrc +++ b/skelrc @@ -54,95 +54,113 @@ its chosen major-mode before calling `skel-include'." (let ((val (assq key alist))) (and val (cdr val)))) +(defun skelrc-prefix-lines (prefix lines) + "Return LINES, each with PREFIX prepended to the beginning. + +If the LINES end with a newline character, there is not considered to be a +final empty line. When prepended to an empty line, trailing whitespace in +the PREFIX is removed." + (with-temp-buffer + (insert lines) + (goto-char (point-min)) + (while (< (point) (point-max)) + (insert prefix) + (and (looking-at "\n") + (delete-horizontal-space t)) + (forward-line)) + (buffer-string))) + (defun skelrc-component () + "Return a suitable a `This file is part of ...' line." (if (assq 'full-title skel-alist) "[[cont-comment]] This file is part of [[full-title]]. -[[cont-comment]]\n" +\[[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.") +(setq skelrc-gpl (skelrc-prefix-lines "[[cont-comment]] " +"[[Program-name]] 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 2 of the License, or +\(at your option) any later version. + +\[[Program-name]] is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with [[program-name]]; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.")) + +(setq skelrc-wide-gpl (skelrc-prefix-lines "[[cont-comment]] " +;;Version for wide program names +"[[Program-name]] 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 2 of the License, or +\(at your option) any later version. + +\[[Program-name]] is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with [[program-name]]; if not, write to the Free +Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA.")) + +(setq skelrc-lgpl (skelrc-prefix-lines "[[cont-comment]] " +"[[Library-name]] is free software; you can redistribute it and/or modify +it under the terms of the GNU Library General Public License as +published by the Free Software Foundation; either version 2 of the +License, or (at your option) any later version. + +\[[Library-name]] is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with [[library-name]]; if not, write to the Free +Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA.")) + +(setq skelrc-bsd (skelrc-prefix-lines "[[cont-comment]] " +"Copyright (c) [[year]] [[author]] +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2, Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The name of the authors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +\(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +Instead of accepting the above terms, you may redistribute and/or modify +this software under the terms of either the GNU General Public License, +or the GNU Library General Public License, published by the Free +Software Foundation; either version 2 of the License, or (at your +option) any later version.")) (defun skel-basename () (file-name-sans-extension (file-name-nondirectory buffer-file-name))) -- 2.11.0