summaryrefslogtreecommitdiff
path: root/lisp/mail/emacsbug.el
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1997-07-15 08:23:58 +0000
committerKenichi Handa <handa@m17n.org>1997-07-15 08:23:58 +0000
commitfe1d8b33cbeadad8cd9c186553ecf87b8bbf314d (patch)
treef86335f0aecc8664db8e85cb52dee56d352e111e /lisp/mail/emacsbug.el
parent8881c1abb94774604aa82aac81ab796639cbdbcd (diff)
downloademacs-fe1d8b33cbeadad8cd9c186553ecf87b8bbf314d.tar.gz
(report-emacs-bug-run-tersely): New variable
(report-emacs-bug): Insert warnings for novice usres in *mail* buffer. Set enable-multibyte-characters to nil. (report-emacs-bug-hook): Check non-English letters. Confirm about sending a report to FSF.
Diffstat (limited to 'lisp/mail/emacsbug.el')
-rw-r--r--lisp/mail/emacsbug.el59
1 files changed, 58 insertions, 1 deletions
diff --git a/lisp/mail/emacsbug.el b/lisp/mail/emacsbug.el
index b2497478d02..774ca1b86bb 100644
--- a/lisp/mail/emacsbug.el
+++ b/lisp/mail/emacsbug.el
@@ -47,6 +47,10 @@
"The automatically-created initial text of bug report.")
;;;###autoload
+(defvar report-emacs-bug-run-tersely nil
+ "*If non-nil, suppress confirmations for novice users.")
+
+;;;###autoload
(defun report-emacs-bug (topic &optional recent-keys)
"Report a bug in GNU Emacs.
Prompts for bug subject. Leaves you in a mail buffer."
@@ -68,6 +72,17 @@ Prompts for bug subject. Leaves you in a mail buffer."
;; if the user was asked to confirm and said no.
(goto-char (point-min))
(re-search-forward (concat "^" (regexp-quote mail-header-separator) "\n"))
+ ;; Insert warnings for novice users.
+ (insert "This mail is sent to Free Software Foundation, ")
+ (let ((pos (point)))
+ (insert "NOT TO YOUR SITE MANAGERS!!")
+ (put-text-property pos (point) 'face 'highlight))
+ (insert "\nPlease write in ")
+ (let ((pos (point)))
+ (insert "ENGLISH ONLY")
+ (put-text-property pos (point) 'face 'highlight))
+ (insert ", recipients are not yet fully multilingualized.\n\n")
+
(insert "In " (emacs-version) "\n")
(if (and system-configuration-options
(not (equal system-configuration-options "")))
@@ -123,6 +138,8 @@ Type SPC to scroll through this section and its subsections.")))
;; Make it less likely people will send empty messages.
(make-local-variable 'mail-send-hook)
(add-hook 'mail-send-hook 'report-emacs-bug-hook)
+ ;; Discourage users to write non-English text.
+ (setq enable-multibyte-characters nil)
(save-excursion
(goto-char (point-max))
(skip-chars-backward " \t\n")
@@ -147,7 +164,47 @@ Type SPC to scroll through this section and its subsections.")))
(length report-emacs-bug-orig-text))
(equal (buffer-substring (point-min) (point))
report-emacs-bug-orig-text))
- (error "No text entered in bug report"))))
+ (error "No text entered in bug report"))
+
+ ;; Check the buffer contents and reject non-English letters.
+ (let ((charsets (delq 'ascii
+ (find-charset-region (point-min) (point-max)))))
+ (if charsets
+ (if (or report-emacs-bug-run-tersely
+ (y-or-n-p "Convert Non-English letters to hexadecimal? "))
+ (save-excursion
+ (goto-char (point-min))
+ (let ((enable-multibyte-characters nil)
+ (pattern (format "[%c-%c]" 128 255))
+ ch)
+ (while (re-search-forward pattern nil t)
+ (setq ch (preceding-char))
+ (delete-char -1)
+ (insert (format "=%02x" ch)))))
+ (error "Please delete non-English chars by yourself"))))
+
+ ;; The last warning for novice users.
+ (if (or report-emacs-bug-run-tersely
+ (yes-or-no-p
+ "Do you surely send this mail to Free Software Foundation? "))
+ ;; Just send the current mail.
+ nil
+ (goto-char (point-min))
+ (if (search-forward "To: ")
+ (let ((pos (point)))
+ (end-of-line)
+ (delete-region pos (point))))
+ (kill-local-variable 'mail-send-hook)
+ (with-output-to-temp-buffer "*Bug Help*"
+ (princ (substitute-command-keys "\
+You invoked the command report-emacs-bug (\\[report-emacs-bug]),
+but refused to send an e-mail report to Free Software Foundation.
+
+If you want to send the mail to someone else,
+please insert the actual e-mail address after \"To: \",
+and send the mail again by \\[mail-send-and-exit].")))
+ (error "Report-emacs-bug was cancelled, please read *Bug Help* buffer"))
+ ))
(provide 'emacsbug)