]> git.eshelyaron.com Git - emacs.git/commitdiff
elide-head: Make GPL regexp more forgiving
authorStefan Kangas <stefan@marxist.se>
Mon, 3 Jan 2022 08:02:29 +0000 (09:02 +0100)
committerStefan Kangas <stefan@marxist.se>
Mon, 3 Jan 2022 08:04:09 +0000 (09:04 +0100)
* lisp/elide-head.el (elide-head-headers-to-hide): Make GPL regexp
more forgiving.
* test/lisp/elide-head-tests.el (elide-head--add-test): New macro.
(elide-head--test-headers-to-hide/gpl2-1)
(elide-head--test-headers-to-hide/gpl3-1)
(elide-head--test-headers-to-hide/gpl3-2)
(elide-head--test-headers-to-hide/gpl3-3)
(elide-head--test-headers-to-hide/gpl3-4): New tests.

lisp/elide-head.el
test/lisp/elide-head-tests.el

index 619d350c803100a2f1f6ff0d3a0cebe63216def1..dab51cabc4160c3bd75583d5c05d3114cf3c8e0b 100644 (file)
 (defcustom elide-head-headers-to-hide
   `(;; GNU GPL
     ("is free software[:;] you can redistribute it" .
-     "\\(If not, see <https?://www\\.gnu\\.org/licenses/>\\|\
-Boston, MA 0211\\(1-1307\\|0-1301\\), USA\\|\
-675 Mass Ave, Cambridge, MA 02139, USA\\)\\.")
+     ,(rx (or (seq "If not, see " (? "<")
+                   "http" (? "s") "://www.gnu.org/licenses/"
+                   (? ">") (? " "))
+              (seq "Boston, MA " (? " ")
+                   "0211" (or "1-1307" "0-1301")
+                   (or "  " ", ") "USA")
+              "675 Mass Ave, Cambridge, MA 02139, USA")
+          (? ".")))
     ;; FreeBSD license / Modified BSD license (3-clause)
     (,(rx (or "The Regents of the University of California.  All rights reserved."
               "Redistribution and use in source and binary"))
index 7c820db97586f9451e92b066701db393ad644171..804617f48ff4da9736334cb97a89feeff0e4af76 100644 (file)
       (elide-head-show)
       (should-not (overlays-at 14)))))
 
+(defmacro elide-head--add-test (name text search-str)
+  `(ert-deftest ,(intern (format "elide-head--test-headers-to-hide/%s" name)) ()
+     (with-temp-buffer
+       (insert ,text)
+       (elide-head)
+       (goto-char (point-min))
+       (re-search-forward ,search-str)
+       (let ((o (car (overlays-at (match-beginning 0)))))
+         (should (overlayp o))
+         (should (overlay-get o 'invisible))
+         (should (overlay-get o 'evaporate))))))
+
+\f
+;;; GPLv3
+
+;; from Emacs
+(elide-head--add-test gpl3-1 "\
+;; 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 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
+;; 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 GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+" "GNU Emacs is distributed in the hope that")
+
+;; from libtorrent
+(elide-head--add-test gpl3-2 "\
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library 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
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+" "This library is distributed in the hope that")
+
+;; from notmuch
+(elide-head--add-test gpl3-3 "\
+ * This program 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 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program.  If not, see https://www.gnu.org/licenses/ .
+" "This program is distributed in the hope that")
+
+;; from fribok
+(elide-head--add-test gpl3-4 "\
+/***************************************************************************
+ *   Copyright (C) 2007, 2009 by J. Random Hacker <jrh@example.org>        *
+ *                                                                         *
+ *   This program 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 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program 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 this program.  If not, see <http://www.gnu.org/licenses/>  *.
+ *                                                                         *
+ ***************************************************************************/
+" "This program is distributed in the hope that")
+
+\f
+;;; GPLv2
+
+;; from jackmeter
+(elide-head--add-test gpl2-1 "\
+        This program 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.
+
+        This program 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 this program; if not, write to the Free Software
+        Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+" "This program is distributed in the hope that")
+
 (provide 'elide-head-tests)
 ;;; elide-head-tests.el ends here