;;; reporter.el --- customizable bug reporting of lisp programs
-;; Copyright (C) 1993
1994 1995 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1993199419951996 Free Software Foundation, Inc.
-;; Author: 1993-1996 Barry A. Warsaw
+;; Author: 1993-1998 Barry A. Warsaw
+;; Maintainer: firstname.lastname@example.org
-;; Last Modified: 1996/07/02 00:39:09
+;; Last Modified: 1998/03/19 17:21:16
;; Keywords: maint mail tools
-;; This file is part of
+;; This file is part of Emacs.
XEmacs is free software; you can redistribute it and/or modify
+;; 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 2, or (at your option)
XEmacs is distributed in the hope that it will be useful,
+;; 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
XEmacs; see the file COPYING. If not, write to the
+;; along with Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
-;;; Synched up with: FSF 19.34.
;; The variable `mail-user-agent' contains a symbol indicating which
;; Emacs mail package end users would like to use to compose outgoing
-;; mail. See that variable for details.
-;; Mail Package Interface
-;; Mail package authors can configure reporter to support their
-;; package by calling the function `define-mail-user-agent' See that
-;; function for details.
+;; mail. See that variable for details (it is no longer defined in
-;; Reporter was written primarily for Emacs Lisp package authors so
-;; that their users can easily report bugs. When invoked,
-;; reporter-submit-bug-report will set up an outgoing mail buffer with
-;; the appropriate bug report address, including a lisp expression the
-;; maintainer of the package can eval to completely reproduce the
-;; environment in which the bug was observed (e.g. by using
-;; eval-last-sexp). This package proved especially useful during my
-;; development of cc-mode, which is highly dependent on its
+;; reporter.el was written primarily for Emacs Lisp package authors so
+;; that their users can more easily report bugs. When invoked,
+;; `reporter-submit-bug-report' will set up an outgoing mail buffer
+;; with the appropriate bug report address, including a lisp
+;; expression the maintainer of the package can evaluate to completely
+;; reproduce the environment in which the bug was observed (e.g. by
+;; using `eval-last-sexp'). This package proved especially useful
+;; during my development of CC Mode, which is highly dependent on its
;; configuration variables.
;; Do a "C-h f reporter-submit-bug-report" for more information.
;;(defun mypkg-submit-bug-report ()
;; "Submit via mail a bug report on mypkg"
;; (concat "mypkg.el " mypkg-version)
-;; I've set up a Majordomo mailing list to report bugs or suggest
-;; enhancements, etc. This list's intended audience is elisp package
-;; authors who are using reporter and want to stay current with
-;; releases. Here are the relevant addresses:
-;; Administrivia: email@example.com
-;; Submissions: firstname.lastname@example.org
-;; Packages that currently use reporter are: cc-mode, supercite, elp,
+;; 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.
+;; pgp, eos, hm--html, efs.
;; If you know of others, please email me!
;; Package author interface variables
(defvar reporter-prompt-for-summary-p nil
variables. Current buffer will always be the mail buffer being
-(defconst reporter-version "3.
+(defconst reporter-version "3."
"Reporter version number.")
(defvar reporter-initial-text nil
(defun reporter-beautify-list (maxwidth compact-p)
- (let (linebreak indent-enclosing-p indent-p here)
+ linebreak indent-enclosing-p indent-p here)
(condition-case nil ;loop exit
(setq indent-enclosing-p t)
+ ;; The following line is how we break out of the while
+ ;; loop, in one of two ways. Either we've hit the end of
+ ;; the buffer, in which case scan-sexps returns nil, or
+ ;; we've crossed unbalanced parens and it will raise an
+ ;; error we're expecting to catch.
+ (setq move (scan-sexps (point) 1))
(if (<= maxwidth (current-column))
(setq agent 'sendmail-user-agent
compose (get agent 'composefunc))
(if (not (and compose (fboundp compose)))
- (error "Could not find a valid `mail-user-agent'
+ (error "Could not find a valid `mail-user-agent'")
- (message "`%s' is an invalid `mail-user-agent'; using `sendmail-user-agent'
+ (message "`%s' is an invalid `mail-user-agent'; using `sendmail-user-agent'"
;; Just in case the original buffer is not visible now, bring it
- (display-buffer reporter-eval-buffer))
+ (display-buffer reporter-eval-buffer))
;; different mailers use different separators, some may not even
;; use mail-header-separator, but sendmail.el stuff must have this
(string= (buffer-substring after-sep-pos (point))
- (error "Empty bug report cannot be sent
+ (error "Empty bug report cannot be sent"))
;;; reporter.el ends here