X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/ea33ba739ac93e12a89d07c79a6653ef392c70e0..ff98122692e5f21e3dd91d2513c7b1897b6e7ac9:/lisp/mail/emacsbug.el diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el index c1cbc7b98e..c86c182726 100644 --- a/lisp/mail/emacsbug.el +++ b/lisp/mail/emacsbug.el @@ -1,6 +1,7 @@ ;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list -;; Copyright (C) 1985, 1994, 1997, 1998 Free Software Foundation, Inc. +;; Copyright (C) 1985, 1994, 1997, 1998, 2000, 2001, 2002 +;; Free Software Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: FSF @@ -26,7 +27,7 @@ ;;; Commentary: -;; `M-x report-emacs-bug ' starts an email note to the Emacs maintainers +;; `M-x report-emacs-bug' starts an email note to the Emacs maintainers ;; describing a problem. Here's how it's done... ;;; Code: @@ -55,6 +56,9 @@ (defvar report-emacs-bug-orig-text nil "The automatically-created initial text of bug report.") +(defvar report-emacs-bug-text-prompt nil + "The automatically-created initial prompt of bug report.") + (defcustom report-emacs-bug-no-confirmation nil "*If non-nil, suppress the confirmations asked for the sake of novice users." :group 'emacsbug @@ -75,7 +79,7 @@ Prompts for bug subject. Leaves you in a mail buffer." ;; If there are four numbers in emacs-version, this is a pretest ;; version. (let ((pretest-p (string-match "\\..*\\..*\\." emacs-version)) - user-point message-end-point) + user-point prompt-beg-point message-end-point) (setq message-end-point (with-current-buffer (get-buffer-create "*Messages*") (point-max-marker))) @@ -92,6 +96,7 @@ Prompts for bug subject. Leaves you in a mail buffer." (delete-region (point) (point-max)) (insert signature) (backward-char (length signature))) + (setq prompt-beg-point (point)) (unless report-emacs-bug-no-explanations ;; Insert warnings for novice users. (insert "This bug report will be sent to the Free Software Foundation,\n") @@ -102,8 +107,8 @@ Prompts for bug subject. Leaves you in a mail buffer." (let ((pos (point))) (insert "English") (put-text-property pos (point) 'face 'highlight)) - (insert ", because the Emacs maintainers do not have -translators to read other languages for them.\n\n") + (insert " if possible, because the Emacs maintainers +usually do not have translators to read other languages for them.\n\n") (insert (format "Your bug report will be posted to the %s mailing list" (if pretest-p report-emacs-bug-pretest-address @@ -112,11 +117,20 @@ translators to read other languages for them.\n\n") (insert ".\n\n") (insert ",\nand to the gnu.emacs.bug news group.\n\n"))) + (insert "Please describe exactly what actions triggered the bug\n" + "and the precise symptoms of the bug:") + (setq report-emacs-bug-text-prompt + (buffer-substring prompt-beg-point (point))) + + (insert "\n\n") + (setq user-point (point)) + (insert "\n\n\n") + (insert "In " (emacs-version) "\n") (if (and system-configuration-options (not (equal system-configuration-options ""))) (insert "configured using `configure " - system-configuration-options "'\n")) + system-configuration-options "'\n\n")) (insert "Important settings:\n") (mapcar '(lambda (var) @@ -127,11 +141,7 @@ translators to read other languages for them.\n\n") (insert (format " default-enable-multibyte-characters: %s\n" default-enable-multibyte-characters)) (insert "\n") - (insert "Please describe exactly what actions triggered the bug\n" - "and the precise symptoms of the bug:\n\n") - (setq user-point (point)) - (insert "\n\n\n" - "Recent input:\n") + (insert "Recent input:\n") (let ((before-keys (point))) (insert (mapconcat (lambda (key) (if (or (integerp key) @@ -194,13 +204,14 @@ Type SPC to scroll through this section and its subsections.")))) (defun report-emacs-bug-hook () (save-excursion - (goto-char (point-max)) - (skip-chars-backward " \t\n") - (if (and (= (- (point) (point-min)) - (length report-emacs-bug-orig-text)) - (equal (buffer-substring (point-min) (point)) - report-emacs-bug-orig-text)) - (error "No text entered in bug report")) + (save-excursion + (goto-char (point-max)) + (skip-chars-backward " \t\n") + (if (and (= (- (point) (point-min)) + (length report-emacs-bug-orig-text)) + (equal (buffer-substring (point-min) (point)) + report-emacs-bug-orig-text)) + (error "No text entered in bug report"))) ;; Check the buffer contents and reject non-English letters. (save-excursion @@ -239,12 +250,8 @@ and send the mail again using \\[mail-send-and-exit]."))) ;; Unclutter (mail-text) - (let ((p (point))) - (re-search-forward (concat "^In " (emacs-version))) - (delete-region p (match-beginning 0))) - (re-search-forward "Please describe.+\n.+precise symptoms.+bug:\n*" - (point-max) t) - (replace-match "Symptoms:\n"))) + (if (looking-at report-emacs-bug-text-prompt) + (replace-match "Symptoms:")))) (provide 'emacsbug)