emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 9f1dd2a 3/3: Use lexical-binding in copyright.el and add tests


From: Stefan Kangas
Subject: master 9f1dd2a 3/3: Use lexical-binding in copyright.el and add tests
Date: Sat, 24 Oct 2020 07:43:30 -0400 (EDT)

branch: master
commit 9f1dd2a7d51e20c76b7916db76a2e90c86356b3d
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Use lexical-binding in copyright.el and add tests
    
    * lisp/emacs-lisp/copyright.el: Use lexical-binding.  Remove
    redundant :group args.
    * test/lisp/emacs-lisp/copyright-tests.el: New file.
---
 lisp/emacs-lisp/copyright.el            |  9 +-----
 test/lisp/emacs-lisp/copyright-tests.el | 50 +++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 8 deletions(-)

diff --git a/lisp/emacs-lisp/copyright.el b/lisp/emacs-lisp/copyright.el
index 6fa51c3..9828ca6 100644
--- a/lisp/emacs-lisp/copyright.el
+++ b/lisp/emacs-lisp/copyright.el
@@ -1,4 +1,4 @@
-;;; copyright.el --- update the copyright notice in current buffer
+;;; copyright.el --- update the copyright notice in current buffer  -*- 
lexical-binding: t -*-
 
 ;; Copyright (C) 1991-1995, 1998, 2001-2020 Free Software Foundation,
 ;; Inc.
@@ -37,14 +37,12 @@
 (defcustom copyright-limit 2000
   "Don't try to update copyright beyond this position unless interactive.
 A value of nil means to search whole buffer."
-  :group 'copyright
   :type '(choice (integer :tag "Limit")
                 (const :tag "No limit")))
 
 (defcustom copyright-at-end-flag nil
   "Non-nil means to search backwards from the end of the buffer for copyright.
 This is useful for ChangeLogs."
-  :group 'copyright
   :type 'boolean
   :version "23.1")
 ;;;###autoload(put 'copyright-at-end-flag 'safe-local-variable 'booleanp)
@@ -56,7 +54,6 @@ This is useful for ChangeLogs."
 \\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
   "What your copyright notice looks like.
 The second \\( \\) construct must match the years."
-  :group 'copyright
   :type 'regexp)
 
 (defcustom copyright-names-regexp ""
@@ -64,7 +61,6 @@ The second \\( \\) construct must match the years."
 Only copyright lines where the name matches this regexp will be updated.
 This allows you to avoid adding years to a copyright notice belonging to
 someone else or to a group for which you do not work."
-  :group 'copyright
   :type 'regexp)
 
 ;; The worst that can happen is a malicious regexp that overflows in
@@ -76,7 +72,6 @@ someone else or to a group for which you do not work."
  "\\(\\s *\\)\\([1-9]\\([-0-9, ';/*%#\n\t]\\|\\s<\\|\\s>\\)*[0-9]+\\)"
   "Match additional copyright notice years.
 The second \\( \\) construct must match the years."
-  :group 'copyright
   :type 'regexp)
 
 ;; See "Copyright Notices" in maintain.info.
@@ -87,7 +82,6 @@ The second \\( \\) construct must match the years."
 For example: 2005, 2006, 2007, 2008 might be replaced with 2005-2008.
 If you use ranges, you should add an explanatory note in a README file.
 The function `copyright-fix-years' respects this variable."
-  :group 'copyright
   :type 'boolean
   :version "24.1")
 
@@ -96,7 +90,6 @@ The function `copyright-fix-years' respects this variable."
 (defcustom copyright-query 'function
   "If non-nil, ask user before changing copyright.
 When this is `function', only ask when called non-interactively."
-  :group 'copyright
   :type '(choice (const :tag "Do not ask")
                 (const :tag "Ask unless interactive" function)
                 (other :tag "Ask" t)))
diff --git a/test/lisp/emacs-lisp/copyright-tests.el 
b/test/lisp/emacs-lisp/copyright-tests.el
new file mode 100644
index 0000000..77b9e05
--- /dev/null
+++ b/test/lisp/emacs-lisp/copyright-tests.el
@@ -0,0 +1,50 @@
+;;; copyright-tests.el --- tests for copyright.el  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2020 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; 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/>.
+
+;;; Code:
+
+(require 'ert)
+(require 'cl-lib)
+(require 'copyright)
+
+(defmacro with-copyright-test (orig result)
+  `(cl-letf (((symbol-function 'format-time-string) (lambda (&rest _) "2019")))
+     (let ((copyright-query nil)
+           (copyright-current-year 2019))
+       (with-temp-buffer
+         (insert ,orig)
+         (copyright-update)
+         (should (equal (buffer-string) ,result))))))
+
+(defvar copyright-tests--data
+  '((";; Copyright (C) 2017 Free Software Foundation, Inc."
+     . ";; Copyright (C) 2017, 2019 Free Software Foundation, Inc.")
+    (";; Copyright (C) 2017-2018 Free Software Foundation, Inc."
+     . ";; Copyright (C) 2017-2019 Free Software Foundation, Inc.")
+    (";; Copyright (C) 2005-2006, 2015, 2017-2018 Free Software Foundation, 
Inc."
+     . ";; Copyright (C) 2005-2006, 2015, 2017-2019 Free Software Foundation, 
Inc.")
+    (";; copyright '18 FSF"
+     . ";; copyright '18, '19 FSF")))
+
+(ert-deftest test-copyright-update ()
+  (dolist (test copyright-tests--data)
+    (with-copyright-test (car test) (cdr test))))
+
+(provide 'copyright-tests)
+;;; copyright-tests.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]