emacs-diffs
[Top][All Lists]
Advanced

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

master a79e1a8: * lisp/mail/reporter.el: Use lexical-binding


From: Stefan Monnier
Subject: master a79e1a8: * lisp/mail/reporter.el: Use lexical-binding
Date: Mon, 4 Jan 2021 15:32:05 -0500 (EST)

branch: master
commit a79e1a85f8f20911be3bbac883ee7bdffcfbe7a0
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    * lisp/mail/reporter.el: Use lexical-binding
    
    (reporter--run-functions): New function.
    (reporter-dump-state): Use it and simplify the code.
---
 lisp/mail/reporter.el | 82 ++++++++++++++++++++++++++-------------------------
 1 file changed, 42 insertions(+), 40 deletions(-)

diff --git a/lisp/mail/reporter.el b/lisp/mail/reporter.el
index f4de299..2e583a4 100644
--- a/lisp/mail/reporter.el
+++ b/lisp/mail/reporter.el
@@ -1,4 +1,4 @@
-;;; reporter.el --- customizable bug reporting of lisp programs
+;;; reporter.el --- customizable bug reporting of lisp programs  -*- 
lexical-binding: t; -*-
 
 ;; Copyright (C) 1993-1998, 2001-2021 Free Software Foundation, Inc.
 
@@ -158,7 +158,7 @@ composed.")
          t)
       (error indent-enclosing-p))))
 
-(defun reporter-lisp-indent (indent-point state)
+(defun reporter-lisp-indent (_indent-point state)
   "A better lisp indentation style for bug reporting."
   (save-excursion
     (goto-char (1+ (nth 1 state)))
@@ -193,7 +193,7 @@ MAILBUF is the mail buffer being composed."
                 (<= maxwidth (current-column)))
            (save-excursion
              (let ((compact-p (not (memq varsym reporter-dont-compact-list)))
-                   (lisp-indent-function 'reporter-lisp-indent))
+                   (lisp-indent-function #'reporter-lisp-indent))
                (goto-char here)
                (reporter-beautify-list maxwidth compact-p))))
        (insert "\n"))
@@ -206,6 +206,11 @@ MAILBUF is the mail buffer being composed."
     (error
      (error ""))))
 
+(defun reporter--run-functions (funs)
+  (if (functionp funs)
+      (funcall funs)
+    (mapc #'funcall funs)))
+
 (defun reporter-dump-state (pkgname varlist pre-hooks post-hooks)
   "Dump the state of the mode specific variables.
 PKGNAME contains the name of the mode as it will appear in the bug
@@ -230,42 +235,39 @@ properly.
 PRE-HOOKS is run after the Emacs version and PKGNAME are inserted, but
 before the VARLIST is dumped.  POST-HOOKS is run after the VARLIST is
 dumped."
-  (let ((buffer (current-buffer)))
-    (set-buffer buffer)
-    (insert "Emacs  : " (emacs-version) "\n")
-    (and pkgname
-        (insert "Package: " pkgname "\n"))
-    (run-hooks 'pre-hooks)
-    (if (not varlist)
-       nil
-      (insert "\ncurrent state:\n==============\n")
-      ;; create an emacs-lisp-mode buffer to contain the output, which
-      ;; we'll later insert into the mail buffer
-      (condition-case fault
-         (let ((mailbuf (current-buffer))
-               (elbuf (get-buffer-create " *tmp-reporter-buffer*")))
-           (with-current-buffer elbuf
-             (emacs-lisp-mode)
-             (erase-buffer)
-             (insert "(setq\n")
-             (lisp-indent-line)
-             (mapc
-               (lambda (varsym-or-cons-cell)
-                 (let ((varsym (or (car-safe varsym-or-cons-cell)
-                                   varsym-or-cons-cell))
-                       (printer (or (cdr-safe varsym-or-cons-cell)
-                                    'reporter-dump-variable)))
-                   (funcall printer varsym mailbuf)))
-              varlist)
-             (lisp-indent-line)
-             (insert ")\n"))
-           (insert-buffer-substring elbuf))
-       (error
-        (insert "State could not be dumped due to the following error:\n\n"
-                (format "%s" fault)
-                "\n\nYou should still send this bug report."))))
-    (run-hooks 'post-hooks)
-    ))
+  (insert "Emacs  : " (emacs-version) "\n")
+  (and pkgname
+       (insert "Package: " pkgname "\n"))
+  (reporter--run-functions pre-hooks)
+  (if (not varlist)
+      nil
+    (insert "\ncurrent state:\n==============\n")
+    ;; create an emacs-lisp-mode buffer to contain the output, which
+    ;; we'll later insert into the mail buffer
+    (condition-case fault
+       (let ((mailbuf (current-buffer))
+             (elbuf (get-buffer-create " *tmp-reporter-buffer*")))
+         (with-current-buffer elbuf
+           (emacs-lisp-mode)
+           (erase-buffer)
+           (insert "(setq\n")
+           (lisp-indent-line)
+           (mapc
+             (lambda (varsym-or-cons-cell)
+               (let ((varsym (or (car-safe varsym-or-cons-cell)
+                                 varsym-or-cons-cell))
+                     (printer (or (cdr-safe varsym-or-cons-cell)
+                                  'reporter-dump-variable)))
+                 (funcall printer varsym mailbuf)))
+            varlist)
+           (lisp-indent-line)
+           (insert ")\n"))
+         (insert-buffer-substring elbuf))
+      (error
+       (insert "State could not be dumped due to the following error:\n\n"
+              (format "%s" fault)
+              "\n\nYou should still send this bug report."))))
+  (reporter--run-functions post-hooks))
 
 
 (defun reporter-compose-outgoing ()
@@ -365,7 +367,7 @@ mail-sending package is used for editing and sending the 
message."
       (skip-chars-backward " \t\n")
       (setq reporter-initial-text (buffer-substring after-sep-pos (point))))
     (if (setq hookvar (get agent 'hookvar))
-       (add-hook hookvar 'reporter-bug-hook nil t))
+       (add-hook hookvar #'reporter-bug-hook nil t))
 
     ;; compose the minibuf message and display this.
     (let* ((sendkey-whereis (where-is-internal



reply via email to

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