[latex3-commits] [git/latex2e] master: drop old bug report generators no longer fitting the workflow with github (besides the aren't actually working right now) (8713f66)

Frank Mittelbach frank.mittelbach at latex-project.org
Sun Dec 10 21:52:00 CET 2017


Repository : https://github.com/latex3/latex2e
On branch  : master
Link       : https://github.com/latex3/latex2e/commit/8713f66e530c544e1c927c2dc56845f0684c0d71

>---------------------------------------------------------------

commit 8713f66e530c544e1c927c2dc56845f0684c0d71
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Sun Dec 10 21:52:00 2017 +0100

    drop old bug report generators no longer fitting the workflow with github
    (besides the aren't actually working right now)


>---------------------------------------------------------------

8713f66e530c544e1c927c2dc56845f0684c0d71
 base/latexbug.el  |  502 -------------------------------
 base/latexbug.tex |  853 -----------------------------------------------------
 2 files changed, 1355 deletions(-)

diff --git a/base/latexbug.el b/base/latexbug.el
deleted file mode 100644
index b297663..0000000
--- a/base/latexbug.el
+++ /dev/null
@@ -1,502 +0,0 @@
-;;; latexbug.el
-;;;
-;;; Version 0: `test of concept' 
-;;;            Don't look to closely at my lisp coding style...
-;;;
-;;;            David Carlisle
-;;;                            Version 0.1 1994/11/23
-;;;                            Version 0.2 1994/12/12
-;;;                            Version 0.3 1995/03/17
-;;;                            Version 0.4 1995/09/21
-;;;                            Version 0.5 1995/10/17
-;;;                            Version 0.6 1997/07/16
-;;;                            Version 0.7 1997/12/17
-;;;                            Version 0.8 1999/01/07
-;;;
-;;;
-;;; LOADING
-;;;;;;;;;;;
-;;;
-;;; To use this code, place the file in a directory searched by lisp
-;;; Add
-;;;
-;;; (autoload 'report-latex-bug "latexbug" 
-;;;               "LaTeX bug report generator" t)
-;;;
-;;; to your .emacs file (without the ;;;).
-;;;
-;;; Then if the impossible happens and you discover a bug in LaTeX,
-;;; or wish to suggest a change to LaTeX, type
-;;; M-x report-latex-bug
-;;;
-;;; and follow the instructions.
-;;;
-;;; A file latexbug.cfg can be used to customise
-;;; latexbug.tex as described in the comments in latexbug.tex.
-;;; or you can customise in your .emacs, as shown below.
-;;;
-;;; CUSTOMISATION
-;;;;;;;;;;;;;;;;;;
-;;;
-;;; The following variables may be set in your .emacs to customise this
-;;; file.
-;;;
-;;; (setq ltxbug-name "David Carlisle") ; your name
-;;; (setq ltxbug-address "dpc@,,,")     ; your email address
-;;;       If these two are not set here, or in the latexbug.cfg
-;;;       file. emacs will prompt for the values. The prompt
-;;;       will suggest default values based on standard emacs variables
-;;;       user-full-name and user-mail-address.
-;;;
-;;; (setq ltxbug-mail-headers "...") ; additional mail headers.
-;;;        For example (setq ltxbug-mail-headers "FCC: ~/Mail/sent")
-;;;        To log outgoing mail in a `sent' file.
-;;; 
-;;; (setq ltxbug-latex-command "...") ; latex command
-;;;        Set this if LaTeX is not called latex, eg it may be latex2e.
-;;;
-;;;
-;;; Perhaps I should have based this on gnat's send-pr.el but it seemed
-;;; easier to write it from scratch to work in latexbug.tex at the
-;;; required points.
-;;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(require 'sendmail)
-
-(defvar ltxbug-latex-command "latex"
- "Command name for Standard LaTeX (LaTeX2e)")
-
-(defvar ltxbug-directory nil
-"Directory in which to run LaTeX, should end with slash.
-Default, nil, means inherit directory from current buffer.")
-
-(defvar user-full-name nil); just needed on ancient emacs
-(defvar ltxbug-name nil
-"Your name.
-If this is nil, will be prompted if not set in latexbug.cfg.")
-
-(defvar user-mail-address nil); just needed on ancient emacs
-(defvar ltxbug-address nil
-"Your email-address.
-If this is nil, will be prompted if not set in latexbug.cfg.")
-
-(defvar ltxbug-mail-headers ""
-"Extra mail headers that will be added to the mail message.
-This is in addition to `To' and `Subject'.")
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(defvar ltxbug-categories 
-'(("latex") ("tools") ("graphics")
-       ("mfnfss") ("psnfss")  ("amslatex") ("babel") ("expl3") ("cyrillic"))
-"Valid GNATS categories")
-
-
-(defun report-latex-bug ()
-"LaTeX bug report generator"
-  (interactive)
-;;
-;; Locally turn off transient mark mode.
-  (let ((transient-mark-mode nil)
-	(current-default-directory default-directory))
-;;
-;; First produce one large window for the main message
-;; and a smaller help window below.
-  (delete-other-windows)
-;;  (setq ltxbug-msg (switch-to-buffer "*latex-bugs*")); not emacs18
-  (switch-to-buffer 
-       (setq ltxbug-msg (get-buffer-create "*latex-bugs*")))
-  (erase-buffer)
-  (setq default-directory 
-       (or ltxbug-directory current-default-directory))
-  (setq major-mode 'ltxbug)
-  (setq mode-name "LaTeX Bug Report")
-  (use-local-map ltxbug-map)      
-  (message "Running latex on latexbug.tex ....")
-  (split-window-vertically 
-;; -13 ;; old emacs's can't do this
-   (- (window-height) 13))
-  (switch-to-buffer-other-window 
-    (setq ltxbug-help (get-buffer-create "latexbugs help")))
-;;
-;; Initially fill the message buffer with the output from running
-;; latexbug.tex.
-  (erase-buffer)
-;;
-;; Use shell-command not start-process here so shell variables are
-;; initialised before calling LaTeX.
-;; Hope that is enough \\ to keep all the different shells happy...
-;; {} replaced by \\{\\}  in version 0.4 (fix for latex/1675)
-;; Use \@@input (v0.5)
-   (shell-command (concat
-               ltxbug-latex-command
-       " \\\\nonstopmode\\\\makeatletter\
-       \\\\def\\\\batch\\{\\}\\\\@@input latexbug ") t)   
-  (switch-to-buffer-other-window ltxbug-msg)
-  (goto-char (point-min))
-;;
-;; Change header to mention this latexbug.el file.
-  (if (re-search-forward "!"  (point-max) t)
-    (ltxbug-error)
-;; else
-    (ltxbug-do-report))))
-
-
-
-(defun ltxbug-do-report ()
-  (erase-buffer)
-;;
-;; Grab the template produced by latexbug.tex
-  (insert-file "latexbug.msg")
-;;
-;; Change header to mention this latexbug.el file.
-  (goto-char (point-min))
-  (re-search-forward "\\(by latexbug.\\)\\(tex\\)" (point-max) t)
-  (replace-match "\\1el")
-;;
-;; Grab email address into mail field.
-  (re-search-forward "Re.*email to \\(.*\\)[^Z]*=$"  (point-max) t)
-;;
-;; Put the synopsis template into the Subject field.
-;; Add the delimiter used by the mail-send function.
-  (goto-char (point-min))
-  (let ((temp 
-    (concat "To: "
-      (buffer-substring (match-beginning 1) (match-end 1)) "
-Subject: < SYNOPSIS >
-"
-       ltxbug-mail-headers
-       (if (not (equal "" ltxbug-mail-headers)) "
-")
-       "--text follows this line--
-"       )))
-;;
-;; Remove the rest of the banner from latexbug.tex
-  (goto-char (point-min))
-  (delete-region (match-beginning 0)  (match-end 0))
-;;
-;; insert the mail headers
-  (insert temp))
-;;
-;;
-;; Get the required category using minibuffer completion.
-  (set-buffer ltxbug-help)
-  (erase-buffer)
-  (insert "
-Several categories of files are supported,
-corresponding to directories in the standard LaTeX distribution:
-
-  latex:    The `base' format, and standard classes only (base).
-  tools:    Packages supported by the LaTeX3 project team (tools).
-  graphics: The color and graphics packages (graphics).
-  mfnfss:   Packages for using some MetaFont fonts (mfnfss).
-  psnfss:   Packages for using PostScript fonts LaTeX (psnfss).
-  amslatex: AMS supported Classes and Packages (amsfonts and amslatex).
-  babel:    Packages supporting many different languages (babel).
-  expl3:    Experimental packages for TeX programmers (expl3).
-  cyrillic: Packages for using Cyrillic fonts (cyrillic).
-")
-  (let* ((completion-ignore-case t)
-        (cat (completing-read "Which Category ? " 
-           ltxbug-categories  nil t )))
-    (set-buffer "*latex-bugs*")
-    (ltxbug-replace "< CATEGORY >" (if (equal cat "") "latex" cat)))
-;;
-;; Get the synopsis, make sure it is non empty, and not too long.
-  (set-buffer ltxbug-help)
-  (erase-buffer)
-  (insert "
- Please enter a One line Synopsis of the report.
- This should be < 50 characters.
-
- This text will be used as the mail header on all
- subsequent correspondence. Please use informative strings.
- For example:  \\mathit generates error in foobar environment
- rather than just `LaTeX Bug' or similar strings.
-")
-  (set-buffer ltxbug-msg)
-  (let ((syn (read-from-minibuffer "Synopsis ? " )))
-    (while (or (equal syn "") (> (length syn) 50))
-      (setq syn 
-        (read-from-minibuffer "Synopsis (0 < length < 50) ? " syn)))
-    (set-buffer "*latex-bugs*")
-    (ltxbug-replace "< SYNOPSIS >" syn))
-;;
-;; If latexbug.cfg has not already defined the name
-;; grab it from minibuffer
-  (goto-char (point-min))
-  (if (re-search-forward "< ENTER YOUR NAME >" (point-max) t)
-    (if ltxbug-name
-      (ltxbug-replace "< ENTER YOUR NAME >" ltxbug-name)
-;; else
-      (set-buffer ltxbug-help)
-      (erase-buffer)
-      (insert "
- Please enter Your Name
-")
-      (set-buffer ltxbug-msg)
-      (let ((temp (read-from-minibuffer "Your Name ? " user-full-name)))
-        (set-buffer "*latex-bugs*")
-        (ltxbug-replace "< ENTER YOUR NAME >" temp))))
-;;
-;; If latexbug.cfg has not already defined the email address
-;; grab it from minibuffer
-  (goto-char (point-min))
-  (if (re-search-forward "< ENTER YOUR EMAIL ADDRESS >" (point-max) t)
-    (if ltxbug-address
-      (ltxbug-replace "< ENTER YOUR EMAIL ADDRESS >" ltxbug-address)
-;; else
-      (set-buffer ltxbug-help)
-      (erase-buffer)
-      (insert "
- Please enter Your email address.
-")
-      (set-buffer ltxbug-msg)
-      (let ((temp (read-from-minibuffer "Your email address ? "
-					user-mail-address)))
-        (set-buffer "*latex-bugs*")
-        (ltxbug-replace "< ENTER YOUR EMAIL ADDRESS >" temp))))
-;;
-;; Grab file name.
-;; If this is empty, suggest changing the >Class
-  (set-buffer ltxbug-help)
-  (erase-buffer)
-  (insert "
-A bug report should be accompanied by a test file
-and a the log that the test generates.
-
-If a test file is not appropriate for this report
-Just hit <return>
-
-Otherwise please specify the file to include.
-")
-  (set-buffer ltxbug-msg)
-  (let ((temp (read-file-name "Test file ? " nil "" t)))
-    (if (equal temp "")
-      (progn
-        (ltxbug-update-field
-         "Class"
-          '(("sw-bug")("doc-bug")("change-request"))
-           "
-You have not offered a test file.
-
-Perhaps that this is not a bug report.
-The default class for messages is sw-bug.
-
-Possible classes of messages are:
-  sw-bug:          Message reporting a Bug in the software.
-  doc-bug:         Message reporting an error in the documentation.
-  change-request:  Message requesting a change to some LaTeX feature.")
-       (re-search-forward ">How-to-repeat")
-       (delete-region (match-beginning 0) (point-max)))
-;; else
-      (set-buffer ltxbug-msg)
-      (ltxbug-replace " < TEST FILE HERE " "")
-      (insert-file temp)
-      (let ((lines 0))
-        (while (re-search-forward "\n" (mark) t)
-          (setq lines (+ lines 1)))
-        (if (> lines 60)
-          (progn
-            (set-buffer ltxbug-help)
-            (erase-buffer)
-            (insert 
-(format "%s%d%s" "
-!!!!
-Your test file is " lines " lines long!!!
-
-Test files should be as short as possible, while still showing
-the behaviour. Please try to keep the file below 60 lines.
-"))
-           (set-buffer ltxbug-msg))))
-      (let* ((log1 
-              (concat 
-                (substring temp 0 (string-match "\\.[^\\.]*$" temp))
-                ".log"))
-            (log (read-file-name "Log file ? " "" log1 t  log1)))
-         (if (equal log "")
-           (message "WHY NO LOG ???")
-           (ltxbug-replace " < LOG FROM TEST FILE HERE >" "")
-           (insert-file log)))))
-;;
-;; Prompt for the message text.
-  (set-buffer ltxbug-help)
-  (erase-buffer)
-  (insert "
-Complete your bug report by giving the full description
-below the  `Description of bug:' header.
-
-There are other database fields you may wish to add,
-type C-c C-f to change or add an additional field.
-
-Once the report is complete, type C-c C-c to send the message.
-
-A saved copy of the report will be in the file
-latexbug.msg.
-")
-  (switch-to-buffer ltxbug-msg)
-  (ltxbug-replace " < ENTER BUG REPORT HERE >" "")
-  (auto-fill-mode 1)
-  (setq fill-column 72))
-
-
-(defun ltxbug-error ()
- (set-buffer ltxbug-help)
- (erase-buffer)
- (insert "
-LaTeX did not succesfully produce a bug report template."))
-
-(defun ltxbug-save-and-send ()
- (interactive)
- (write-file "latexbug.msg")
- (mail-send-and-exit nil))
-
-
-(defun ltxbug-replace (a b)
- "Replace the regexp a by the string b everywhere in the current buffer"
-  (goto-char (point-min))
-  (while (re-search-forward a (point-max) t)
-    (replace-match b t t)))
-
-(defvar ltxbug-map (make-sparse-keymap)
-  "Local keymap used in LaTeX bug buffer.")
-
-(define-key ltxbug-map "\C-c\C-c"    'ltxbug-save-and-send)
-(define-key ltxbug-map "\C-c\C-f"    'ltxbug-oneline-field)
-
-
-(defun ltxbug-update-field (field  values help)
-"Update FIELD using completion list VALUES and help text HELP.
- First entry in VALUES is the default."
-  (interactive)
-  (set-buffer ltxbug-help)
-  (erase-buffer)
-  (insert help)
-  (goto-char (point-min))
-  (set-buffer ltxbug-msg)
-  (goto-char (point-min))
-  (let ((temp ""))
-    (if (re-search-forward 
-          (concat"\n>" field ":\\( *\\)\\(.*\\)$") (point-max) t)
-;; if field already there
-      (progn
-        (setq temp (buffer-substring (match-beginning 2) (match-end 2)))
-        (delete-region  (match-beginning 1) (match-end 2)))
-;; else
-    (re-search-forward ">Category:.*$")
-    (insert (concat "\n>" field ":")))
- (insert " ")
- (let ((temp2 
-    (completing-read (concat field " ? ") values nil t temp)))
- (insert (if (equal temp2 "")
-            (car(car values)) temp2)))))
-
-
-(defun ltxbug-responsible ()
-  (interactive)
-  (ltxbug-update-field
-    "Responsible"
-;; Alphabetical order, which makes Alan the default...
-    '(("alan")("chris")("david")("frank")("johannes")
-      ("michael")("rainer"))
-"
- You may set the >Responsible field to a particular person.
- **Do not do this unless you have very good reason.**
- We may not appreciate having jobs allocated to us in this way:-)
- The possible values are:
-   alan     (Alan Jeffrey)
-   chris    (Chris Rowley)
-   david    (David Carlisle)
-   frank    (Frank Mittelbach)
-   johannes (Johannes Braams)
-   michael  (Michael Downes)
-   rainer   (Rainer Schoepf)
-"))
-
-(defun ltxbug-confidential ()
-  (interactive)
-  (ltxbug-update-field
-    "Confidential" 
-    '(("no")("yes"))
-"
- You may set the >Confidential field to yes.
-
- The report database is publicly searchable.
- See bugs.txt for details.
- Reports marked Confidential will not be made public.
- Possible values:
-   no   The default. Report may be made public.
-   yes  Report should only be seen by LaTeX maintainers.
-"))
-
-
-(defun ltxbug-priority ()
-  (interactive)
-  (ltxbug-update-field
-    "Priority"
-    '(("low")("medium")("high"))
-"
- Change the priority of the report from `high'
- Possible values:
-   low
-   medium
-   high
-"))
-
-(defun ltxbug-severity ()
-  (interactive)
-  (ltxbug-update-field
-    "Severity"
-    '(("non-critical")("serious")("critical"))
-"
- Classify the severity of the problem.'
- Possible values:
-   non-critical
-   serious
-   critical
-"))
-
-(defun ltxbug-class ()
-  (interactive)
-  (ltxbug-update-field
-    "Class"
-    '(("sw-bug")("doc-bug")("change-request"))
-"
- Classify the type of report.
- Possible values:
- sw-bug:         Message reporting a bug in the software.
- doc-bug:        Message reporting an error in the documentation.
- change-request: Message requesting a change to some LaTeX feature.
-"))
-
-(defun ltxbug-window-setup ()
-  (interactive)
-  (delete-other-windows)
-  (split-window-vertically -13)
-  (switch-to-buffer-other-window ltxbug-help))
-
-(defun ltxbug-oneline-field ()
-  (interactive)
-  (ltxbug-window-setup)
-  (erase-buffer)
-  (insert "
- You may wish to add or alter the following fields:
- Class          Class of this report.
- Confidential   Confidential (or not).
- Responsible    Assign to a member of the LaTeX maintenance team
- Severity       Severity of the bug.
- Priority       Priority of the report.
-")
- (set-buffer ltxbug-msg)
-  (let* ((completion-ignore-case t)
-        (field (completing-read "Which field ? " 
-         '(("Class")("Confidential")("Priority")("Severity")
-            ("Responsible"))
-         nil t)))
-  (cond
-   ((equal field "Class") (ltxbug-class))
-   ((equal field "Confidential") (ltxbug-confidential))
-   ((equal field "Responsible") (ltxbug-responsible))
-   ((equal field "Severity") (ltxbug-severity))
-   ((equal field "Priority") (ltxbug-priority)))))
diff --git a/base/latexbug.tex b/base/latexbug.tex
deleted file mode 100644
index 36706ca..0000000
--- a/base/latexbug.tex
+++ /dev/null
@@ -1,853 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright 1993-2017
-% The LaTeX3 Project and any individual authors listed elsewhere
-% in this file. 
-% 
-% This file is part of the LaTeX base system.
-% -------------------------------------------
-% 
-% It may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3c
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%    https://www.latex-project.org/lppl.txt
-% and version 1.3c or later is part of all distributions of LaTeX 
-% version 2005/12/01 or later.
-% 
-% This file has the LPPL maintenance status "maintained".
-% 
-% The list of all files belonging to the LaTeX base distribution is
-% given in the file `manifest.txt'. See also `legal.txt' for additional
-% information.
-% 
-% The list of derived (unpacked) files belonging to the distribution 
-% and covered by LPPL is defined by the unpacking scripts (with 
-% extension .ins) which are part of the distribution.
-% 
-% \fi
-%%% ====================================================================
-%%%  @LaTeX-file{
-%%%     author          = "David Carlisle",
-%%%     version         = "$Revision: 5652 $",
-%%%     date            = "$Date: 2017-01-27$",
-%%%     filename        = "latexbug.tex",
-%%%     email           = "latex-bugs at latex-project.org",
-%%%     codetable       = "ISO/ASCII",
-%%%     keywords        = "LaTeX, bugs, reporting",
-%%%     supported       = "yes",
-%%%     docstring       = "
-%%%
-%%%     LaTeX bug report generator.
-%%%     %%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%
-%%%     Processing this file with LaTeX should produce
-%%%     a file latexbug.msg in the current directory.
-%%%
-%%%     latexbug.msg may be used as a template for submitting bug
-%%%     reports concerning files in the standard LaTeX distribution.
-%%%
-%%%     * Any bug report should include a small LaTeX test file
-%%%       that shows the bug, and the log that LaTeX produces on the
-%%%       test file.
-%%%
-%%%     * Reports should be in English.
-%%%
-%%%     * Reports should be as short as possible.
-%%%
-%%%     Please check before submitting a bug report that your format
-%%%     is not more than two years old. New LaTeX releases occur at
-%%%     regular intervals, and so your bug may be fixed in a later
-%%%     release.
-%%%
-%%%     Completed bug report forms should be submitted to:
-%%%     latex-bugs at latex-project.org
-%%%
-%%%     Please:
-%%%     use the synopsis text as the `Subject' line of the message.
-%%%     ===========================================================
-%%%
-%%%     For example:
-%%%     Subject: \verb does not work inside \caption
-%%%
-%%%     So that your message has an identifying subject. 
-%%%     Do not use subject lines such as `LaTeX bug' as this does not
-%%%     help us to identify your message.
-%%%
-%%%     To follow up an existing report, include the bug reference, e.g.
-%%%     "latex/1234: ", preceding the subject text.
-%%%
-%%%     Configuring latexbug
-%%%     ====================
-%%%     If you often test early release of LaTeX packages, and feel that
-%%%     you may need to use this program often, you may create a file
-%%%     latexbug.cfg
-%%%     This should contain the answers of certain standard questions.
-%%%     (Such as your name and email address.)
-%%%
-%%%     Currently the responses that may be stored in latexbug.cfg are:
-%%%     name address organisation and interactive.
-%%%     (If organisation is not set in the .cfg file latexbug does not
-%%%     prompt for it, as this is not vital information.)
-%%%
-%%%     For example, a personal latexbug.cfg could look like
-%%%     
-%%%     \def\name{My Real Name}
-%%%     \def\address{name at some.place}
-%%%     \def\organisation{My Institution}
-%%%     \def\interactive{y}
-%%%     
-%%%     A site latexbug.cfg might just set the \organisation, leaving
-%%%     the personal details to be filled in interactively by the user.
-%%%     
-%%%  }
-%%% ====================================================================
-
-% Test if we are using INITEX (or a strange format that does not
-% have { as a `group open' character).
-\ifcat{=
-
-\catcode`\{=1 \let\bgroup{
-\catcode`\}=2 \let\egroup}
-\catcode`\#=6 
-\catcode`\^=7
-\catcode`\@=11
-
-\newlinechar`\^^J
-\def\m at ne{-1 }
-\countdef\count at 255
-
-\def\fmtname{INITEX}
-\def\fmtversion{9999/00/00}
-\def\@secondoftwo#1#2{#2}
-\def\@empty{}
-\everyjob{\typeout{INITEX}}
-\def\space{ }
-\def\@spaces{\space\space\space\space}
-\let\@@end\end
-\let\loop\relax
-
-% hide outer macro names as we are inside an if
-\expandafter\let\csname repeat\expandafter\endcsname
-                \csname fi\endcsname
-
-\chardef\msg15
-\immediate\openout\msg=\jobname.msg
-
-\expandafter\edef\csname newif\endcsname#1#2{%
-  \let\noexpand\ifinteractive
-    \expandafter\noexpand\csname iffalse\endcsname}
-
-\expandafter\def\csname newcount\endcsname#1{}
-
-\def\dospecials{\catcode`\\=12 }
-
-\def\typeout{\immediate\write17}
-
-\def\two at digits#1{\ifnum#1<10 0\fi\number#1}
-
-\def\wmsg#1#{\bgroup\@wmsg}
-
-\def\@ifundefined#1#2#3%
-  {\expandafter\ifx\csname#1\endcsname\relax#2\else#3\fi}
-
-\def\@inputfiles{INITEX}
-\else
-%%
-%% @ is a letter
-%%
-\catcode`\@=11
-
-%%
-%% Grab the initex file list
-%%
-%% If this file is called via 
-%%     latex "\input{latexbug}" or some
-%% similar command sequence rather than 
-%%     latex latexbug
-%% then the debugging info in \reserved at a will already have been lost.
-%% This might not matter, but if it does we may ask the user to resubmit
-%% the report.
-\ifx\reserved at b\@undefined
-  \ifx\reserved at a\@gobble
-    \def\@inputfiles{NONE}
-  \else
-    \let\@inputfiles\reserved at a
-  \fi
-\else
-  \def\@inputfiles{LOST}
-\fi
-
-%%
-%% Output stream to produce the bug report template.
-%%
-\newwrite\msg
-\immediate\openout\msg=\jobname.msg
-
-
-%%
-%% Check that LaTeX2e is being used.
-%%
-\ifx\undefined\newcommand
- \newlinechar`\^^J%
- \immediate\write17{^^J%
-    You must use LaTeX2e to generate the bug report!^^J^^J%
-    If there is a bug in the installation procedure,^^J%
-    and you can not create LaTeX2e, you may use initex^^J%
-    to generate the report}%
-
- \let\relax\end
-\else
-\def\@tempa{LaTeX2e}\ifx\@tempa\fmtname\else
- \immediate\write17{^^J%
-  Older Versions of LaTeX are no longer supported.^^J%
-  You must use LaTeX2e to generate the bug report!^^J^^J%
-  If there is a bug in the installation procedure,^^J%
-  and you can not create LaTeX2e, you may use initex^^J%
-  to generate the report}%
- \let\relax\@@end
-\fi\fi
-
-%%
-%% \wmsg writes to the terminal, and the .msg file
-%% \wmsg* just writes to the .msg file
-%% \typeout just writes to the terminal
-%%
-
-\def\wmsg{\bgroup\@ifstar{\interactivefalse\@wmsg}\@wmsg}
-
-\fi
-
-\relax
-\endlinechar=-1
-
-\def\@wmsg#1{%
-  \ifinteractive\immediate\write17{#1}\fi
-  \immediate\write\msg{#1}%
-  \egroup}
-
-%%
-%% if \interactivefalse just make a blank template.
-%%
-\newif\ifinteractive
-\interactivetrue
-
-%%
-%% Prompt for an answer from the user, if the answer is not
-%% provided by the cfg file.
-%%
-
-\def\readifnotknown#1{%
- \@ifundefined{#1}%
-    {{\message{#1> }%
-     \catcode`\^^I=12 \let\do\@makeother\dospecials
-     \global\read\m at ne t\expandafter o\csname#1\endcsname}}%
-    {\message{\csname#1\endcsname}}}
-
-%%
-%% Pause so messages do not scroll off screen.
-%%
-\def\pause{%
-  \ifinteractive
-    \message{Press <return> key to continue. }%
-    \read\m at ne to \@tempa
-  \fi}
-
-%%
-%% New don't use this banner
-%%
-\typeout{^^J%
-============================================================^^J%
-^^J%
-**^^J%
-** OLD LaTeX bug report generator^^J%
-** ==============================^^J%
-** This LaTeX bug report generator is no longer the^^J%
-** recommended mechanism for generating test reports.^^J%
-** Please make a test file using the latexbug package^^J%
-** and submit using the form at^^J%
-** https://www.latex-project.org/bugs/bugs-upload/^^J%
-**^^J%
-}
-\pause
-
-%%
-%% Opening Banner.
-%%
-\typeout{^^J%
-============================================================^^J%
-^^J%
-LaTeX bug report generator^^J%
-==========================^^J%
-Processing this file with LaTeX will produce a template \jobname.msg^^J
-for submitting bug reports for the LaTeX distribution.^^J^^J
-* Please do not report bugs in contributed, non-standard, files to the
-  ^^J \space latex-bugs address.^^J
-* Please write your report in English.^^J
-* Please keep the report as short as possible.^^J%
-* If possible, check whether the bug has already been reported.^^J %
-  \space The bugs database is available on WWW:^^J \space
-   https://www.latex-project.org/bugs.html^^J}
-
-
-\ifinteractive
-  \InputIfFileExists{latexbug.cfg}{\typeout{** latexbug.cfg used **}}{}
-\fi
-
-%% \batch is a `private' macro used to get a batchmode
-%% (actually \nonstopmode) run for use with latexbug.el
-\ifx\batch\undefined
-
-\def\getcategory{%
-\count@=0
-\ifinteractive
-
-\typeout{%
-* Please carefully select the category as different categories^^J
-\space\space are supported by different people!^^J^^J%
-0) LaTeX:\@spaces
-         The `base' format, and standard classes only (base).^^J
-1) tools:\@spaces
-         Packages supported by the LaTeX3 project team (tools).^^J
-2) graphics:\space 
-         The color and graphics packages (graphics).^^J
-3) mfnfss: \space\space
-         --- Don't use, no longer supported! ---^^J
-4) psnfss: \space\space
-         Packages for using PostScript fonts LaTeX (psnfss).^^J
-5) amslatex:\space
-         AMS supported Classes and Packages (amsfonts and amslatex).^^J
-6) babel:\@spaces
-         Packages supporting many different languages (babel).^^J%
-7) expl3:\@spaces
-         Experimental packages for TeX programmers. (expl3)^^J%
-8) cyrillic: Packages for using Cyrillic fonts (cyrillic).^^J}
-
-\message{Please select a category 0--8:  }
-\read\m at ne to \answer
-\if!\answer!\let\answer\m at ne\fi
-\count@=\answer\relax
-\else
-\typeout{As you are using INITEX, I will assume category `latex'}
-\fi
-
-\ifcase\count@
-\def\category{latex}\or
-\def\category{tools}\or
-\def\category{graphics}\or
-\errhelp{Retry with <return>, or quit with x.}
-\def\badcategory{This category is no longer supported}
-\errmessage{\badcategory}
-\expandafter\getcategory
-\or
-\def\category{psnfss}\or
-\def\category{amslatex}\or
-\def\category{babel}\or
-\def\category{expl3}\or
-\def\category{cyrillic}%
-\else
-\errhelp{Retry with <return>, or quit with x.}
-\def\badcategory{Only categories 0,...,8 are supported at this time}
-\errmessage{\badcategory}
-\expandafter\getcategory
-\fi}
-\getcategory
-
-
-\typeout{^^J%
-============================================================^^J%
-^^J%
-Please give a one line ( < 50 character ) description of the problem.%
-^^J^^J%
-If you are using email to report the problem,^^J%
-please also use this text as the `Subject' line for the mail message:%
-^^J \@spaces\@spaces\space
-                 |<------------------------------------------------>|} 
-
-
-\loop
-\let\synopsis\relax
-\readifnotknown{synopsis}
-\ifx\synopsis\@empty
-\repeat
-
-
-\typeout{%
-^^J%
-\ifinteractive
-This report generator may be used in one of two ways.^^J%
-If you choose the interactive option, you will be prompted to answer^^J%
-several questions. Otherwise a blank template will be created for^^J%
-you to fill in using your editor.^^J%
-\else
-INITEX should only be used for reporting bugs with the LaTeX2e^^J%
-installation procedure. If you have a working copy of LaTeX2e,^^J%
-please use that to generate the report.
-\fi}
-
-\ifinteractive
-\typeout{Interactive session (y/n) ? }
-\readifnotknown{interactive}
-
-\ifx\interactive\@empty
-   \def\interactive{n}
-\fi
-
-%%
-%% Allow anything begining with `y' or `Y' for yes.
-%%
-\edef\interactive{\uccode`\expandafter\@car\interactive\@nil}
-\ifnum \interactive=`Y \else\interactivefalse\fi
-\else
-\def\interactive{`\N}
-\fi
-
-\else
-\def\category{< CATEGORY >}
-\def\synopsis{< SYNOPSIS >}
-\batchmode
-\interactivefalse
-\def\interactive{`\N}
-\fi
-
-%%
-%% Header in the msg file.
-%%
-\wmsg*{^^J%
- LaTeX2e bug report.^^J%
-\ifnum \interactive=`Y Generated \else Template generated \fi
- by latexbug.tex on \number\year/\two at digits\month/\two at digits\day^^J%
-^^J%
- Reports may be submitted by email to latex-bugs at latex-project.org^^J%
- Please use the subject line:^^J%
- Subject: \synopsis^^J%
-^^J%
- To follow up an existing report, include the bug reference, e.g.^^J
- "latex/1234: ", preceding the subject text.^^J
- ============================================================^^J}
-
-
-
-%%
-%% Category of bug, obtained earlier but put out now, after the header.
-%%
-\wmsg{>Category: \category}
-
-%%
-%% synopsis of bug, obtained earlier but put out now, after the header.
-%%
-\wmsg{>Synopsis: \synopsis}
-
-
-%%
-%% >Confidential: Default to no unless this is overridden
-%% in latexbug.cfg. If you want to send a one-off confidential
-%% report, just edit the latexbug.msg file to say yes.
-%%
-\wmsg{>Confidential: \ifx\confidential\undefined
-                         no
-                       \else
-                         \confidential
-                       \fi}
-
-
-%% Try to catch various formats that babel has used to add to the banner
-%% over the years. Currently it uses \typeout, so put the first \typeout
-%% in \format and the second in \hyphenation. Earlier releases used 
-%% \immedite\write
-\begingroup
- \global\let\format\@empty
- \gdef\hyphenation{standard}
- \def\immediate#1#{\xdef\hyphenation}
- \def\typeout#1{%
-    \xdef\format{\format#1}\def\typeout##1{\xdef\hyphenation{##1}}}
- \the\everyjob
-\endgroup
-
-\wmsg{>Release: \format}
-
-\ifinteractive
-%%
-%% if interactive, \wread reads a line (verbatim) and writes it to the
-%% .msg file, until two consecutive blank lines are entered.
-%%
-  \def\wread{%
-    \begingroup
-    \catcode`\^^I=12 
-    \let\do\@makeother\dospecials
-    \wreadloop}
-
-  \def\wreadloop{%
-    \let\lastanswer\answer
-    \message{=> }\read\m at ne to \answer
-    \ifx\lastanswer\@empty
-      \let\lastanswer\answer
-    \fi
-    \ifx\lastanswer\@empty
-      \endgroup
-    \else
-      \immediate\write\msg{\answer}%
-      \expandafter\wreadloop
-    \fi}
-\else
-%%
-%% If non-interactive, \wread just writes a blank line to the .msg file,
-%% and \wmsg does not write to the terminal.
-%%
-  \def\wread{\wmsg{}}
-\fi
-
-%%
-%% \copytomsg copies the contents of a file into the .msg file.
-%% (at least it does it as well as TeX can, so there may be
-%% transcription problems with 8-bit characters).
-%%
-%% It does a line count, and complains if the test file is
-%% too large.
-
-\chardef\inputfile=15
-
-\newcount\linecount
-
-\def\copytomsg#1{{%
-   \def\do##1{\catcode`##1=11}%
-   \dospecials
-   \global\linecount\z@
-   \openin\inputfile#1\relax
-   \def\thefile{#1}%
-   \@copytomsg
-   \closein\inputfile}}
-
-\def\@copytomsg{%
-   \ifeof\inputfile
-      \typeout{*** \thefile\space line count = \the\linecount}
-   \else
-      \global\advance\linecount\@ne
-      \read\inputfile to \inputline
-      \ifx\inputline\@empty
-         \wmsg*{}
-      \else
-         \wmsg*{\inputline}
-      \fi
-      \expandafter\@copytomsg
-   \fi}
-
-
-%%
-%% Test the age of the current format.
-%%
-\def\getage#1/#2/#3\@nil{%
-  \count@\year
-  \advance\count at -#1\relax
-  \multiply\count@ by 12\relax
-  \advance\count@\month
-  \advance\count at -#2\relax}
-%
-\expandafter\getage\fmtversion\@nil
-%%
-%% \count@ should now be the age of the format in months.
-%%
-%% Take a generous definition of `year'.
-\ifnum\count@>65
-\def\oldformat{^^J%
-   ! Your LaTeX installation is more than five years old.^^J%
-   ! Please consider updating LaTeX before submitting this report.^^J%
-   ! At least check a current LaTeX changes.txt file, to see if the^^J%
-   ! bug has been fixed in the current release.^^J%
-   !}
-%%
-%% Put the message in a macro to improve the look of the error mesage.
-%%
-
-\errhelp{If you still wish to complete the form, just type return.}
-\errmessage{\oldformat}
-\fi
-
-%%
-%% Test fonts not customised too much. (unless using initex)
-%%
-\ifx\loop\relax\else
-\edef\fontdefaults{%
-  \encodingdefault/\familydefault/\seriesdefault/\shapedefault}
-\def\standardfontdefaults{OT1/cmr/m/n}
-\ifx\fontdefaults\standardfontdefaults\else
-\wmsg*{>Unformatted:}
-\wmsg{Normal font: \fontdefaults}
-\def\customisedfonts{^^J%
-! This format has customised font defaults.^^J%
-! Please try to re-create the error using a standard format^^J%
-! before submitting this report}
-\errhelp{If you still wish to complete the form, just type return.}
-\errmessage{\customisedfonts}
-\fi
-\fi
-
-%%
-%% Now use \wmsg and \wread for each of the multi-line fields 
-%% in the form.
-%% One line fields use \readifnotknown, which will only prompt
-%% if the field has not already been set in the configuration file.
-%%
-\ifinteractive
-  \typeout{^^JYour name:}
-  \readifnotknown{name}
-\else
-  \ifx\name\undefined
-    \def\name{ < ENTER YOUR NAME > }
-  \fi
-\fi
-
-
-\ifinteractive
-  \typeout{^^JYour Address (preferably email):}
-  \readifnotknown{address}
-\else
-  \ifx\address\undefined
-    \def\address{ < ENTER YOUR EMAIL ADDRESS > }
-  \fi
-\fi
-
-\wmsg*{>Originator: \address \space(\name)}
-
-%%
-%% >Organisation: is really a GNATS multiline field
-%% but we treat it as a one-line field.
-%%
-\wmsg*{>Organization: \ifx\organisation\undefined
-                        \ifx\organization\undefined\else
-                           \organization
-                        \fi
-                       \else
-                         \organisation
-                       \fi}
-
-
-%%
-%% Test which format is being used. These fields are completed
-%% automatically even if the blank template is being produced.
-%%
-
-\wmsg*{>Environment:}
-\wmsg*{ Hyphenation: \hyphenation}
-\wmsg*{ \string\@TeXversion: \meaning\@TeXversion
-        \ifx\@TeXversion\@@undefined
-         \space (Standard setting for TeX3.141 and later)\fi}
-\wmsg*{ \string\@currdir: \meaning\@currdir}
-\wmsg*{ \string\input at path: \meaning\input at path
-        \ifx\input at path\@@undefined
-         \space (Standard setting)\fi}
-
-\wmsg*{>Unformatted:}
-\wmsg*{ *** Initex configuration files}
-%%
-%% These are in a comma separated list, so locally reset
-%% \newlinechar
-{\newlinechar`\,
- \wmsg*{\@inputfiles}}
-\wmsg*{ ***}
-
-\wmsg*{>Description:}
-\typeout{}
-\wmsg{Description of bug:}
-\ifinteractive
-  \typeout{%
-    \@spaces The answer to this  question may take several lines.^^J%
-    \@spaces (Each such line will be prompted by =>.)^^J%
-    \@spaces Typing TWO consecutive blank lines terminates the answer.}
-\else
-\wmsg{ < ENTER BUG REPORT HERE >}
-\fi
-\wread
-
-
-
-%%
-%% insertion of the test file
-%%
-
-
-
-\ifinteractive
-   \typeout{^^J%
- Name of a SHORT, SELF-CONTAINED file which indicates the problem:^^J%
- This file should be as small as possible (preferably < 60 lines)^^J%
- Any non-standard files that the test file uses should be included^^J%
- using the filecontents environment.^^J^^J%
-%
- LaTeX will try to input this file, so give the full path^^J%
- if the file is not in the current directory.^^J^^J%
-%
- If you are not reporting a bug, and there is therefore^^J%
- no test file, just hit <return>}
-   \message{filename> }\read\m at ne to \filename
-\else
-   \def\filename{}
-\fi
-
-%% 
-%% Try to find the .tex file and .log file
-%%
-
-
-\ifx\filename\@empty
-  \ifx\LaTeX\undefinedcommand
-  \else
-    \ifinteractive
-      \typeout{^^J^^JNo test file.^^J^^J%
-      Three classes of report are supported:^^J^^J%
-      0) sw-bug:^^J\@spaces
-         Bug in the software, the report should include a test file.^^J
-      1) doc-bug:^^J\@spaces
-         Inaccuracies in the documentation.^^J
-      2) change-request:^^J\@spaces 
-         Not a bug, but rather a request for LaTeX to be changed.^^J}
-      \message{Please select a category 0--2:  }
-      \read\m at ne to \answer
-      \ifx\answer\@empty
-        \def\answer{-1}
-      \fi
-      \count@=\answer\relax
-      \else
-        \count@=\z@
-      \fi
-    \ifcase\count@
-      \ifinteractive\wmsg{>Class: sw-bug}\fi
-      \typeout{^^J! Please edit the message to add a test file and log!}
-      \pause
-      \wmsg*{^^J>How-To-Repeat:}
-      \wmsg*{%
-      Sample file which indicates the problem:^^J%
-      ========================================^^J%
-      \space< TEST FILE HERE >^^J%
-      ^^J%
-      The log file from running LaTeX on the sample:^^J%
-      ==============================================^^J%
-      \space< LOG FROM TEST FILE HERE >}
-    \or
-      \wmsg{>Class: doc-bug}
-    \or
-      \wmsg{>Class: change-request}
-    \else
-      \errhelp{Quit with `x' and then re-start latexbug}
-      \def\badcategory{Only classes 0,1,2 are supported at this time}
-      \errmessage{\badcategory}
-    \fi
-  \fi
-\else
-
-\filename at parse\filename
-
-\IfFileExists{\filename}{\edef\samplefile{\filename}}{}
-
-\IfFileExists{\filename at area\filename at base.log}
-  {\edef\logfile{\filename at area\filename at base.log}}
-  {\IfFileExists{\filename at area\filename at base.lis}
-    {\edef\logfile{\filename at area\filename at base.lis}}
-    {}}
-
-
-%% 
-%% The example file goes here:
-%%
-\wmsg*{^^J>How-To-Repeat:}
-
-\wmsg*{^^J%
-Sample file which indicates the problem:^^J%
-========================================}
-
-\ifx\samplefile\undefinedcommand
-   \typeout{^^J%
-      Sample file \filename\space not found.^^J%
-      Please edit \jobname.msg to include the sample file.}
-   \wmsg*{ < TEST FILE HERE >}
-   \pause
-\else
-   \copytomsg{\samplefile}
-   \ifnum\linecount>60
-    \typeout{%
-^^J%
-!!! Your test file is \the\linecount\space lines long.^^J%
-!!! Such a large test file causes us problems:^^J%
-!!! * It makes it difficult to track down the error^^J%
-!!! * It makes our database for storing reports unnecessarily large.^^J%
-!!! ^^J%
-!!! Please, if at all possible, cut down your test file to the^^J%
-!!! smallest file that shows the behaviour.^^J}
-   \pause
-   \fi
-\fi
-
-
-%%
-%% The log file goes here:
-%%
-\wmsg*{^^J%
-The log file from running LaTeX on the sample:^^J%
-==============================================}
-
-\ifx\logfile\undefinedcommand
-   \typeout{^^J%
-      Log file \filename at area\filename at base.log not found.^^J%
-      Please edit \jobname.msg to include the log file.}
-   \wmsg*{ < < LOG FROM TEST FILE HERE >}
-   \pause
-\else
-   \copytomsg{\logfile}
-\fi
-
-\fi
-
-
-%%
-%% Closing Banner.
-%%
-\typeout{^^J%
-============================================================}
-
-\ifinteractive
- \typeout{^^J%
-   You may wish to make further changes to the bug report file:^^J%
-   `\jobname.msg'^^J%
-   using your editor.}
-\else
- \typeout{^^J%
-   A template for submitting bug reports has been left in the file:^^J%
-   \jobname.msg^^J%
-   Please use your editor to complete the file before submitting^^J%
-   your report.}
-\fi
-
-\let\ifinteractivetrue\iftrue
-\typeout{^^J%
-  If you have access to email, please send `\jobname.msg' to:^^J%
-  latex-bugs at latex-project.org  Please use the subject line:^^J%
-  \@spaces Subject: \synopsis^^J%
-^^J%
- (This subject will be used in all subsequent correspondence.)^^J%
-^^J%
- To follow up an existing report, include the bug reference, e.g.^^J%
- "latex/1234: ", preceding the subject text.^^J%
-^^J%
-  Your message will be entered into a publicly readable database^^J%
-  Accessable via the www (see bugs.txt for details).^^J%
-  If do not wish this message made public, Edit the^^J%
-  >Confidential: no^^J%
-  field to  yes  before submitting this message.^^J%
-^^J%
-  Thank you for taking the time to submit a bug report.}
-
-\wmsg*{^^J%
-============================================================^^J
-^^J%
-   End of LaTeX2e bug report.^^J%
-============================================================}
-
-%%
-%% Close the .msg output stream.
-%%
-\immediate\closeout\msg
-
-%%
-%% This is the TeX primitive \end command.
-%%
-\@@end





More information about the latex3-commits mailing list