]> code.delx.au - gnu-emacs/blobdiff - lisp/mail/reporter.el
(makeinfo-compile): Use `compilation-start'. Set `next-error-function'
[gnu-emacs] / lisp / mail / reporter.el
index cd9ff426c6b936344f1c5fef6ea95cd1daa96b45..058d0a83f23de7b22f0beaf780fa762e807520c4 100644 (file)
@@ -1,12 +1,11 @@
 ;;; reporter.el --- customizable bug reporting of lisp programs
 
-;; Copyright (C) 1993,1994,1995,1996,1997,1998 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
+;;   2005 Free Software Foundation, Inc.
 
 ;; Author:          1993-1998 Barry A. Warsaw
-;; Maintainer:      tools-help@python.org
+;; Maintainer:      FSF
 ;; Created:         19-Apr-1993
-;; Version:         3.34
-;; Last Modified:   1998/03/19 17:21:16
 ;; Keywords: maint mail tools
 
 ;; This file is part of GNU Emacs.
@@ -23,8 +22,8 @@
 
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
 
 ;;         ;; ...
 ;;         'mypkg-variable-last)))
 
-;; Reporter Users
-;; ==============
-;; Packages that currently use reporter are: CC Mode, supercite, elp,
-;; tcl, ediff, crypt++ (crypt), dired-x, rmailgen, mode-line, vm,
-;; mh-e, edebug, archie, viper, w3-mode, framepop, hl319, hilit19,
-;; pgp, eos, hm--html, efs, webster19.
-;;
-;; If you know of others, please email me!
-
 ;;; Code:
 
 \f
@@ -86,7 +76,7 @@ brief summary of the problem, and puts this summary on the Subject:
 line.  If this variable is a string, that string is used as the prompt
 string.
 
-Default behavior is to not prompt (i.e. nil). If you want reporter to
+Default behavior is to not prompt (i.e. nil).  If you want reporter to
 prompt, you should `let' bind this variable before calling
 `reporter-submit-bug-report'.  Note that this variable is not
 buffer-local so you should never just `setq' it.")
@@ -114,9 +104,6 @@ This is necessary to properly support the printing of buffer-local
 variables.  Current buffer will always be the mail buffer being
 composed.")
 
-(defconst reporter-version "3.34"
-  "Reporter version number.")
-
 (defvar reporter-initial-text nil
   "The automatically created initial text of a bug report.")
 (make-variable-buffer-local 'reporter-initial-text)
@@ -128,7 +115,7 @@ composed.")
 (defvar reporter-status-count nil)
 
 (defun reporter-update-status ()
-  ;; periodically output a status message
+  "Periodically output a status message."
   (if (zerop (% reporter-status-count 10))
       (progn
        (message reporter-status-message)
@@ -138,7 +125,7 @@ composed.")
 \f
 ;; dumping/pretty printing of values
 (defun reporter-beautify-list (maxwidth compact-p)
-  ;; pretty print a list
+  "Pretty print a list."
   (reporter-update-status)
   (let ((move t)
        linebreak indent-enclosing-p indent-p here)
@@ -176,14 +163,14 @@ composed.")
       (error indent-enclosing-p))))
 
 (defun reporter-lisp-indent (indent-point state)
-  ;; a better lisp indentation style for bug reporting
+  "A better lisp indentation style for bug reporting."
   (save-excursion
     (goto-char (1+ (nth 1 state)))
     (current-column)))
 
 (defun reporter-dump-variable (varsym mailbuf)
-  ;; Pretty-print the value of the variable in symbol VARSYM.  MAILBUF
-  ;; is the mail buffer being composed
+  "Pretty-print the value of the variable in symbol VARSYM.
+MAILBUF is the mail buffer being composed."
   (reporter-update-status)
   (condition-case nil
       (let ((val (save-excursion
@@ -222,29 +209,29 @@ composed.")
      (error ""))))
 
 (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
-  ;; report (you must explicitly concat any version numbers).
-
-  ;; VARLIST is the list of variables to dump.  Each element in
-  ;; VARLIST can be a variable symbol, or a cons cell.  If a symbol,
-  ;; this will be passed to `reporter-dump-variable' for insertion
-  ;; into the mail buffer.  If a cons cell, the car must be a variable
-  ;; symbol and the cdr must be a function which will be `funcall'd
-  ;; with arguments the symbol and the mail buffer being composed. Use
-  ;; this to write your own custom variable value printers for
-  ;; specific variables.
-
-  ;; Note that the global variable `reporter-eval-buffer' will be bound to
-  ;; the buffer in which `reporter-submit-bug-report' was invoked.  If you
-  ;; want to print the value of a buffer local variable, you should wrap
-  ;; the `eval' call in your custom printer inside a `set-buffer' (and
-  ;; probably a `save-excursion'). `reporter-dump-variable' handles this
-  ;; 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.
+  "Dump the state of the mode specific variables.
+PKGNAME contains the name of the mode as it will appear in the bug
+report (you must explicitly concat any version numbers).
+
+VARLIST is the list of variables to dump.  Each element in
+VARLIST can be a variable symbol, or a cons cell.  If a symbol,
+this will be passed to `reporter-dump-variable' for insertion
+into the mail buffer.  If a cons cell, the car must be a variable
+symbol and the cdr must be a function which will be `funcall'd
+with arguments the symbol and the mail buffer being composed.  Use
+this to write your own custom variable value printers for
+specific variables.
+
+Note that the global variable `reporter-eval-buffer' will be bound to
+the buffer in which `reporter-submit-bug-report' was invoked.  If you
+want to print the value of a buffer local variable, you should wrap
+the `eval' call in your custom printer inside a `set-buffer' (and
+probably a `save-excursion').  `reporter-dump-variable' handles this
+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")
@@ -277,7 +264,7 @@ composed.")
               varlist)
              (lisp-indent-line)
              (insert ")\n"))
-           (insert-buffer elbuf))
+           (insert-buffer-substring elbuf))
        (error
         (insert "State could not be dumped due to the following error:\n\n"
                 (format "%s" fault)
@@ -287,9 +274,10 @@ composed.")
 
 \f
 (defun reporter-compose-outgoing ()
-  ;; compose the outgoing mail buffer, and return the selected
-  ;; paradigm, with the current-buffer tacked onto the beginning of
-  ;; the list.
+  "Compose the outgoing mail buffer.
+
+Return the selected paradigm, with the current buffer tacked onto the
+beginning of the list."
   (let* ((agent mail-user-agent)
         (compose (get mail-user-agent 'composefunc)))
     ;; Sanity check.  If this fails then we'll try to use the SENDMAIL
@@ -316,6 +304,9 @@ composed.")
 ADDRESS is the email address for the package's maintainer.  PKGNAME is
 the name of the package (if you want to include version numbers,
 you must put them into PKGNAME before calling this function).
+Optional PRE-HOOKS and POST-HOOKS are passed to `reporter-dump-state'.
+Optional SALUTATION is inserted at the top of the mail buffer,
+and point is left after the salutation.
 
 VARLIST is the list of variables to dump (see `reporter-dump-state'
 for details).  The optional argument PRE-HOOKS and POST-HOOKS are
@@ -327,8 +318,8 @@ This function prompts for a summary if `reporter-prompt-for-summary-p'
 is non-nil.
 
 This function does not send a message; it uses the given information
-to initialize a a messagem, which the user can then edit and finally send
-(or decline to send).  The variable `mail-user-agent' controls which
+to initialize a message, which the user can then edit and finally send
+\(or decline to send).  The variable `mail-user-agent' controls which
 mail-sending package is used for editing and sending the message."
   (let ((reporter-eval-buffer (current-buffer))
        final-resting-place
@@ -380,9 +371,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))
-       (progn
-         (make-variable-buffer-local hookvar)
-         (add-hook hookvar 'reporter-bug-hook)))
+       (add-hook hookvar 'reporter-bug-hook nil t))
 
     ;; compose the minibuf message and display this.
     (let* ((sendkey-whereis (where-is-internal
@@ -401,7 +390,7 @@ mail-sending package is used for editing and sending the message."
     ))
 
 (defun reporter-bug-hook ()
-  ;; prohibit sending mail if empty bug report
+  "Prohibit sending mail if empty bug report."
   (let ((after-sep-pos
         (save-excursion
           (rfc822-goto-eoh)
@@ -419,4 +408,6 @@ mail-sending package is used for editing and sending the message."
 
 \f
 (provide 'reporter)
+
+;;; arch-tag: 33612ff4-fbbc-4be2-b183-560ce9e0199b
 ;;; reporter.el ends here