annotate lisp/mail/emacsbug.el @ 30408:e3e2c9051c5f

Got rid of all byte-compiler warnings on Emacs. Add to the menu when the file is loaded, not in ada-mode-hook. Add -toolbar to the default ddd command Switches moved from ada-prj-default-comp-cmd and ada-prj-default-make-cmd to ada-prj-default-comp-opt (ada-add-ada-menu): Remove the map and name parameters Add the Ada Reference Manual to the menu (ada-check-current): rewritten as a call to ada-compile-current (ada-compile): Removed. (ada-compile-application, ada-compile-current, ada-check-current): Set the compilation-search-path so that compile.el automatically finds the sources in src_dir. Automatic scrollong of the compilation buffer. C-uC-cC-c asks for confirmation before compiling (ada-compile-current): New parameter, prj-field (ada-complete-identifier): Load the .ali file before doing processing (ada-find-ali-file-in-dir): prepend build_dir to obj_dir to conform to gnatmake's behavior. (ada-find-file-in-dir): New function (ada-find-references): Set the environment variables for gnatfind (ada-find-src-file-in-dir): New function. (ada-first-non-nil): Removed (ada-gdb-application): Add support for jdb, the java debugger. (ada-get-ada-file-name): Load the original-file first if not done yet. (ada-get-all-references): Handles the new ali syntax (parent types are found between <>). (ada-initialize-runtime-library): New function (ada-mode-hook): Always load a project file when a file is opened, so that the casing exceptions are correctly read. (ada-operator-re): Add all missing operators ("abs", "rem", "**"). (ada-parse-prj-file): Use find-file-noselect instead of find-file to open the project file, since the latter does not work with speedbar Get default values before loading the prj file, or the default executable file name is wrong. Use the absolute value of src_dir to initialize ada-search-directories and compilation-search-path,... Add the standard runtime library to the search path for find-file. (ada-prj-default-debugger): Was missing an opening '{' (ada-prj-default-bind-opt, ada-prj-default-link-opt): New variables. (ada-prj-default-gnatmake-opt): New variable (ada-prj-find-prj-file): Handles non-file buffers For non-Ada buffers, the project file is the default one Save the windows configuration before displaying the menu. (ada-prj-src-dir, ada-prj-obj-dir, ada-prj-comp-opt,...): Removed (ada-read-identifier): Fix xrefs on operators (for "mod", "and", ...) regexp-quote identifiers names to support operators +, -,... in regexps. (ada-remote): New function. (ada-run-application): Erase the output buffer before starting the run Support remote execution of the application. Use call-process, or the arguments are incorrectly parsed (ada-set-default-project-file): Reread the content of the active project file, not the one from the current buffer When a project file is set as the default project, all directories are automatically associated with it. (ada-set-environment): New function (ada-treat-cmd-string): New special variable ${current} (ada-treat-cmd-string): Revised. The substitution is now done for any ${...} substring (ada-xref-current): If no body was found, compiles the spec instead. Setup ADA_{SOURCE,OBJECTS}_PATH before running the compiler to get rid of command line length limitations. (ada-xref-get-project-field): New function (ada-xref-project-files): New variable (ada-xref-runtime-library-specs-path) (ada-xref-runtime-library-ali-path): New variables (ada-xref-set-default-prj-values): Default run command now does a cd to the build directory. New field: main_unit Provide a default file name even if the current buffer has no prj file.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 24 Jul 2000 11:13:11 +0000
parents 386e14726b59
children 65726622c836
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 474
diff changeset
1 ;;; emacsbug.el --- command to report Emacs bugs to appropriate mailing list.
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 474
diff changeset
2
21360
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
3 ;; Copyright (C) 1985, 1994, 1997, 1998 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 794
diff changeset
5 ;; Author: K. Shane Hartman
794
2598c08c91c2 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
6 ;; Maintainer: FSF
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
7 ;; Keywords: maint mail
794
2598c08c91c2 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
8
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9 ;; Not fully installed because it can work only on Internet hosts.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
11
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 794
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15 ;; any later version.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13816
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13816
diff changeset
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 13816
diff changeset
25 ;; Boston, MA 02111-1307, USA.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
26
2307
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
27 ;;; Commentary:
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
28
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
29 ;; `M-x report-emacs-bug ' starts an email note to the Emacs maintainers
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
30 ;; describing a problem. Here's how it's done...
10e417efb12a Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2247
diff changeset
31
794
2598c08c91c2 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 662
diff changeset
32 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
33
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
34 ;; >> This should be an address which is accessible to your machine,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
35 ;; >> otherwise you can't use this file. It will only work on the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
36 ;; >> internet with this address.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
37
6971
90859715093d (report-emacs-bug): Insert at separator, not at end.
Karl Heuer <kwzh@gnu.org>
parents: 2348
diff changeset
38 (require 'sendmail)
90859715093d (report-emacs-bug): Insert at separator, not at end.
Karl Heuer <kwzh@gnu.org>
parents: 2348
diff changeset
39
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
40 (defgroup emacsbug nil
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
41 "Sending Emacs bug reports."
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
42 :group 'maint
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
43 :group 'mail)
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
44
21360
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
45 (defcustom report-emacs-bug-address "bug-gnu-emacs@gnu.org"
20797
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
46 "*Address of mailing list for GNU Emacs bugs."
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
47 :group 'emacsbug
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
48 :type 'string)
14815
4a742f2d5328 (report-emacs-bug): Use a different address for pretest versions.
Richard M. Stallman <rms@gnu.org>
parents: 14280
diff changeset
49
21360
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
50 (defcustom report-emacs-bug-pretest-address "emacs-pretest-bug@gnu.org"
20797
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
51 "*Address of mailing list for GNU Emacs pretest bugs."
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
52 :group 'emacsbug
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
53 :type 'string)
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
54
8130
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
55 (defvar report-emacs-bug-orig-text nil
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
56 "The automatically-created initial text of bug report.")
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
57
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
58 (defcustom report-emacs-bug-no-confirmation nil
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
59 "*If non-nil, suppress the confirmations asked for the sake of novice users."
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
60 :group 'emacsbug
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
61 :type 'boolean)
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
62
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
63 (defcustom report-emacs-bug-no-explanations nil
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
64 "*If non-nil, suppress the explanations given for the sake of novice users."
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
65 :group 'emacsbug
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
66 :type 'boolean)
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
67
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
68 ;;;###autoload
16576
a04c1653a37c (report-emacs-bug): Reorder arguments.
Erik Naggum <erik@naggum.no>
parents: 16572
diff changeset
69 (defun report-emacs-bug (topic &optional recent-keys)
474
c3bbd755b7da *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 201
diff changeset
70 "Report a bug in GNU Emacs.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
71 Prompts for bug subject. Leaves you in a mail buffer."
16576
a04c1653a37c (report-emacs-bug): Reorder arguments.
Erik Naggum <erik@naggum.no>
parents: 16572
diff changeset
72 ;; This strange form ensures that (recent-keys) is the value before
a04c1653a37c (report-emacs-bug): Reorder arguments.
Erik Naggum <erik@naggum.no>
parents: 16572
diff changeset
73 ;; the bug subject string is read.
a04c1653a37c (report-emacs-bug): Reorder arguments.
Erik Naggum <erik@naggum.no>
parents: 16572
diff changeset
74 (interactive (reverse (list (recent-keys) (read-string "Bug Subject: "))))
20052
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
75 (let (user-point message-end-point)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
76 (setq message-end-point
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
77 (with-current-buffer (get-buffer "*Messages*")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
78 (point-max-marker)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
79 (compose-mail (if (string-match "\\..*\\..*\\." emacs-version)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
80 ;; If there are four numbers in emacs-version,
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
81 ;; this is a pretest version.
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
82 report-emacs-bug-pretest-address
20797
5941b5298627 (report-emacs-bug-address):
Richard M. Stallman <rms@gnu.org>
parents: 20774
diff changeset
83 report-emacs-bug-address)
20052
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
84 topic)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
85 ;; The rest of this does not execute
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
86 ;; if the user was asked to confirm and said no.
21869
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
87 (rfc822-goto-eoh)
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
88 (forward-line 1)
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
89
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
90 (let ((signature (buffer-substring (point) (point-max))))
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
91 ;; Discourage users to write non-English text.
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
92 (set-buffer-multibyte nil)
0f8ca1599a5a (report-emacs-bug): Use rfc822-goto-eoh.
Richard M. Stallman <rms@gnu.org>
parents: 21498
diff changeset
93 (delete-region (point) (point-max))
21974
42b308d86213 (report-emacs-bug): After reinserting
Richard M. Stallman <rms@gnu.org>
parents: 21869
diff changeset
94 (insert signature)
42b308d86213 (report-emacs-bug): After reinserting
Richard M. Stallman <rms@gnu.org>
parents: 21869
diff changeset
95 (backward-char (length signature)))
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
96 (unless report-emacs-bug-no-explanations
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
97 ;; Insert warnings for novice users.
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
98 (insert "This bug report will be sent to the Free Software Foundation,\n")
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
99 (let ((pos (point)))
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
100 (insert " not to your local site managers!!")
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
101 (put-text-property pos (point) 'face 'highlight))
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
102 (insert "\nPlease write in ")
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
103 (let ((pos (point)))
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
104 (insert "English")
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
105 (put-text-property pos (point) 'face 'highlight))
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
106 (insert ", because the Emacs maintainers do not have
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
107 translators to read other languages for them.\n\n"))
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
108
20052
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
109 (insert "In " (emacs-version) "\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
110 (if (and system-configuration-options
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
111 (not (equal system-configuration-options "")))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
112 (insert "configured using `configure "
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
113 system-configuration-options "'\n"))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
114 (insert "\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
115 (insert "Please describe exactly what actions triggered the bug\n"
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
116 "and the precise symptoms of the bug:\n\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
117 (setq user-point (point))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
118 (insert "\n\n\n"
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
119 "Recent input:\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
120 (let ((before-keys (point)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
121 (insert (mapconcat (lambda (key)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
122 (if (or (integerp key)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
123 (symbolp key)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
124 (listp key))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
125 (single-key-description key)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
126 (prin1-to-string key nil)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
127 (or recent-keys (recent-keys))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
128 " "))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
129 (save-restriction
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
130 (narrow-to-region before-keys (point))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
131 (goto-char before-keys)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
132 (while (progn (move-to-column 50) (not (eobp)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
133 (search-forward " " nil t)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
134 (insert "\n"))))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
135 (let ((message-buf (get-buffer "*Messages*")))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
136 (if message-buf
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
137 (let (beg-pos
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
138 (end-pos message-end-point))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
139 (with-current-buffer message-buf
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
140 (goto-char end-pos)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
141 (forward-line -10)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
142 (setq beg-pos (point)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
143 (insert "\n\nRecent messages:\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
144 (insert-buffer-substring message-buf beg-pos end-pos))))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
145 ;; This is so the user has to type something
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
146 ;; in order to send easily.
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
147 (use-local-map (nconc (make-sparse-keymap) (current-local-map)))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
148 (define-key (current-local-map) "\C-c\C-i" 'report-emacs-bug-info)
21975
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
149 (unless report-emacs-bug-no-explanations
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
150 (with-output-to-temp-buffer "*Bug Help*"
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
151 (if (eq mail-user-agent 'sendmail-user-agent)
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
152 (princ (substitute-command-keys
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
153 "Type \\[mail-send-and-exit] to send the bug report.\n")))
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
154 (princ (substitute-command-keys
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
155 "Type \\[kill-buffer] RET to cancel (don't send it).\n"))
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
156 (terpri)
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
157 (princ (substitute-command-keys
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
158 "Type \\[report-emacs-bug-info] to visit in Info the Emacs Manual section
12155
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
159 about when and how to write a bug report,
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
160 and what information to supply so that the bug can be fixed.
21975
386e14726b59 (report-emacs-bug): Don't display *Bug Help* if
Richard M. Stallman <rms@gnu.org>
parents: 21974
diff changeset
161 Type SPC to scroll through this section and its subsections."))))
20052
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
162 ;; Make it less likely people will send empty messages.
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
163 (make-local-variable 'mail-send-hook)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
164 (add-hook 'mail-send-hook 'report-emacs-bug-hook)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
165 (save-excursion
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
166 (goto-char (point-max))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
167 (skip-chars-backward " \t\n")
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
168 (make-local-variable 'report-emacs-bug-orig-text)
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
169 (setq report-emacs-bug-orig-text (buffer-substring (point-min) (point))))
38942e2dfffa (report-emacs-bug): Delete the condition-case.
Karl Heuer <kwzh@gnu.org>
parents: 18827
diff changeset
170 (goto-char user-point)))
8130
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
171
12155
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
172 (defun report-emacs-bug-info ()
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
173 "Go to the Info node on reporting Emacs bugs."
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
174 (interactive)
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
175 (info)
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
176 (Info-directory)
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
177 (Info-menu "emacs")
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
178 (Info-goto-node "Bugs"))
63887def546f (report-emacs-bug-info): New command.
Karl Heuer <kwzh@gnu.org>
parents: 8921
diff changeset
179
8130
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
180 (defun report-emacs-bug-hook ()
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
181 (save-excursion
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
182 (goto-char (point-max))
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
183 (skip-chars-backward " \t\n")
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
184 (if (and (= (- (point) (point-min))
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
185 (length report-emacs-bug-orig-text))
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
186 (equal (buffer-substring (point-min) (point))
c84ecb24316c (report-emacs-bug-hook): Error if user has added no text.
Richard M. Stallman <rms@gnu.org>
parents: 7300
diff changeset
187 report-emacs-bug-orig-text))
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
188 (error "No text entered in bug report"))
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
189
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
190 ;; Check the buffer contents and reject non-English letters.
21360
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
191 (save-excursion
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
192 (goto-char (point-min))
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
193 (skip-chars-forward "\0-\177")
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
194 (if (not (eobp))
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
195 (if (or report-emacs-bug-no-confirmation
18826
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
196 (y-or-n-p "Convert non-ASCII letters to hexadecimal? "))
21360
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
197 (while (progn (skip-chars-forward "\0-\177")
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
198 (not (eobp)))
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
199 (let ((ch (following-char)))
238c1cd70a27 (report-emacs-bug-hook): Use skip-chars-forward
Richard M. Stallman <rms@gnu.org>
parents: 21353
diff changeset
200 (delete-char 1)
21498
e69604162c2b (report-emacs-bug-hook): Don't absolutely
Karl Heuer <kwzh@gnu.org>
parents: 21360
diff changeset
201 (insert (format "=%02x" ch)))))))
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
202
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
203 ;; The last warning for novice users.
20774
d56dca77717a (emacsbug): Customized.
Richard M. Stallman <rms@gnu.org>
parents: 20052
diff changeset
204 (if (or report-emacs-bug-no-confirmation
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
205 (yes-or-no-p
18826
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
206 "Send this bug report to the Emacs maintainers? "))
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
207 ;; Just send the current mail.
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
208 nil
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
209 (goto-char (point-min))
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
210 (if (search-forward "To: ")
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
211 (let ((pos (point)))
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
212 (end-of-line)
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
213 (delete-region pos (point))))
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
214 (kill-local-variable 'mail-send-hook)
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
215 (with-output-to-temp-buffer "*Bug Help*"
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
216 (princ (substitute-command-keys "\
18826
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
217 You invoked the command M-x report-emacs-bug,
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
218 but you decided not to mail the bug report to the Emacs maintainers.
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
219
18826
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
220 If you want to mail it to someone else instead,
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
221 please insert the proper e-mail address after \"To: \",
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
222 and send the mail again using \\[mail-send-and-exit].")))
cb22b83e1bf8 Improve text of messages.
Richard M. Stallman <rms@gnu.org>
parents: 18795
diff changeset
223 (error "M-x report-emacs-bug was cancelled, please read *Bug Help* buffer"))
18795
3446ea06d63f (report-emacs-bug-run-tersely): New variable
Kenichi Handa <handa@m17n.org>
parents: 18608
diff changeset
224 ))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
225
2348
581cda633215 Added a (provide 'emacsbug); lisp-mnt.el needs this.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
226 (provide 'emacsbug)
581cda633215 Added a (provide 'emacsbug); lisp-mnt.el needs this.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2307
diff changeset
227
662
8a533acedb77 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 474
diff changeset
228 ;;; emacsbug.el ends here