elide-head: Make GPL regexp more forgiving

* 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.
This commit is contained in:
Stefan Kangas 2022-01-03 09:02:29 +01:00
parent 61c35e415c
commit bd9a09bb6b
2 changed files with 113 additions and 3 deletions

View file

@ -52,9 +52,14 @@
(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"))

View file

@ -58,5 +58,110 @@
(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))))))
;;; 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")
;;; 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