]> git.eshelyaron.com Git - emacs.git/commitdiff
ls-lisp: Add an unload function and enable lexical binding
authorTino Calancha <tino.calancha@gmail.com>
Tue, 25 Jul 2017 05:53:44 +0000 (14:53 +0900)
committerTino Calancha <tino.calancha@gmail.com>
Tue, 25 Jul 2017 05:53:44 +0000 (14:53 +0900)
Enable lexical binding.
* lisp/ls-lisp.el (ls-lisp-unload-function): New defun.
* test/lisp/ls-lisp.el (ls-lisp-unload): Add test.

lisp/ls-lisp.el
test/lisp/ls-lisp.el [new file with mode: 0644]

index b368efbbc95b27fcb01dbe1c821a6bb80b93af57..730ba26c6c85f5532fd1ccca37b50d04a44f5e33 100644 (file)
@@ -1,4 +1,4 @@
-;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp
+;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp  -*- lexical-binding: t -*-
 
 ;; Copyright (C) 1992, 1994, 2000-2017 Free Software Foundation, Inc.
 
@@ -866,6 +866,12 @@ All ls time options, namely c, t and u, are handled."
              file-size)
     (format " %6s" (file-size-human-readable file-size))))
 
+(defun ls-lisp-unload-function ()
+  "Unload ls-lisp library."
+  (advice-remove 'insert-directory #'ls-lisp--insert-directory)
+  ;; Continue standard unloading.
+  nil)
+
 (provide 'ls-lisp)
 
 ;;; ls-lisp.el ends here
diff --git a/test/lisp/ls-lisp.el b/test/lisp/ls-lisp.el
new file mode 100644 (file)
index 0000000..5ef7c78
--- /dev/null
@@ -0,0 +1,37 @@
+;;; ls-lisp-tests.el --- tests for ls-lisp.el  -*- lexical-binding: t-*-
+
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+
+;; Author: Tino Calacha <tino.calancha@gmail.com>
+;; Keywords:
+
+;; 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 <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+\f
+;;; Code:
+(require 'ert)
+
+(ert-deftest ls-lisp-unload ()
+  "Test for http://debbugs.gnu.org/xxxxx ."
+  (require 'ls-lisp)
+  (should (advice-member-p 'ls-lisp--insert-directory 'insert-directory))
+  (unload-feature 'ls-lisp 'force)
+  (should-not (advice-member-p 'ls-lisp--insert-directory 'insert-directory)))
+
+(provide 'ls-lisp-tests)
+;;; ls-lisp-tests.el ends here