branch: externals/auctex
commit 7ba0a0e131279761337350d67e0c65dc8025c1bf
Author: Stefan Monnier <monn...@iro.umontreal.ca>
Commit: Stefan Monnier <monn...@iro.umontreal.ca>

    * tex-buf.el: Address some compiler warnings
    
    Require `latex' since we refer to some of its variables.
    Use #' to quote a function.  Use _ prefix for unused vars.
    (TeX-current-process-region-p, TeX-save-query, TeX-parse-function)
    (TeX-sentinel-function, TeX-sentinel-default-function)
    (compilation-in-progress, TeX-current-page)
    (TeX-error-overview-open-after-TeX-run, TeX-error-list)
    (TeX-parse-all-errors, TeX-command-buffer, TeX-region): Declare before
    the first use.
    (TeX-command-text, TeX-command-pos): Declare as dyn-bound
    (TeX-command-expand): Strength reduce `eval' to `symbol-name'.
    (TeX-run-TeX): Use let*.
    (TeX-sentinel-function, TeX-sentinel-default-function): Put something
    in the function's body.
    (TeX-TeX-sentinel-check): Check ConTeXt-Mark-version exists before
    using it.  We could have (require 'context) instead.
    (TeX-Biber-sentinel): Remove redundant `concat'.
    (TeX-error-description-list): Move before first use.
    (TeX-error-overview-mode-map): Remove unused var `menu-map'.
    (TeX-output-revert-buffer): Remove unused var `command'.
---
 tex-buf.el |  393 ++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 208 insertions(+), 185 deletions(-)

diff --git a/tex-buf.el b/tex-buf.el
index 0d459cf..58e1602 100644
--- a/tex-buf.el
+++ b/tex-buf.el
@@ -1,6 +1,6 @@
 ;;; tex-buf.el --- External commands for AUCTeX.
 
-;; Copyright (C) 1991-1999, 2001-2015 Free Software Foundation, Inc.
+;; Copyright (C) 1991-1999, 2001-2016 Free Software Foundation, Inc.
 
 ;; Maintainer: auctex-de...@gnu.org
 ;; Keywords: tex, wp
@@ -29,6 +29,7 @@
 ;;; Code:
 
 (require 'tex)
+(require 'latex)
 
 ;;; Customization:
 
@@ -259,6 +260,23 @@ at bottom if LINE is nil."
       ;; Should test for TeX background process here.
       (error "No TeX process to kill"))))
 
+;; FIXME: The vars below are defined in this file, but they're defined too
+;; far down (i.e. further down than their first use), so we have to pre-declare
+;; them here to explain it to the compiler.
+;; We should move those vars's definitions earlier instead!
+(defvar TeX-current-process-region-p)
+(defvar TeX-save-query)
+(defvar TeX-parse-function)
+(defvar TeX-sentinel-function)
+(defvar TeX-sentinel-default-function)
+(defvar compilation-in-progress)
+(defvar TeX-current-page)
+(defvar TeX-error-overview-open-after-TeX-run)
+(defvar TeX-error-list)
+(defvar TeX-parse-all-errors)
+(defvar TeX-command-buffer)
+(defvar TeX-region)
+
 (defun TeX-home-buffer ()
   "Go to the buffer where you last issued a TeX command.
 If there is no such buffer, or you already are in that buffer, find
@@ -320,7 +338,7 @@ This works only with TeX commands and if the
       (previous-error arg)
 
     (let ((parse-function (TeX-get-parse-function)))
-      (if (and TeX-parse-all-errors (equal parse-function 'TeX-parse-TeX))
+      (if (and TeX-parse-all-errors (equal parse-function #'TeX-parse-TeX))
          ;; When `TeX-parse-all-errors' is non-nil and the parsing function is
          ;; `TeX-parse-TeX' we can move backward in the errors.
          (TeX-parse-TeX (- arg) nil)
@@ -464,9 +482,9 @@ Run function `TeX-check-engine' to check the correct engine 
has
 been set."
   (TeX-check-engine name)
 
-  (cond ((eq file 'TeX-region-file)
+  (cond ((eq file #'TeX-region-file)
         (setq TeX-current-process-region-p t))
-       ((eq file 'TeX-master-file)
+       ((eq file #'TeX-master-file)
         (setq TeX-current-process-region-p nil)))
   (let ((command (TeX-command-expand (nth 1 (assoc name TeX-command-list))
                                     file))
@@ -509,18 +527,23 @@ remember to add /Library/TeX/texbin/ to your PATH"
     (TeX-process-set-variable file 'TeX-command-next TeX-command-Show)
     (funcall hook name command file)))
 
+(defvar TeX-command-text)               ;Dynamically scoped.
+(defvar TeX-command-pos)                ;Dynamically scoped.
+
 (defun TeX-command-expand (command file &optional list)
   "Expand COMMAND for FILE as described in LIST.
 LIST default to `TeX-expand-list'.  As a special exception,
 `%%' can be used to produce a single `%' sign in the output
 without further expansion."
+  (defvar TeX-command-pos)
   (let (pat
-       pos
+       pos ;;FIXME: Should this be dynamically scoped?
        entry TeX-command-text TeX-command-pos
+        ;; FIXME: This variable appears to be unused!
        (file `(lambda (&rest args)
                 (shell-quote-argument
                  (concat (and (stringp TeX-command-pos) TeX-command-pos)
-                         (apply ',file args)
+                         (apply #',file args)
                          (and (stringp TeX-command-pos) TeX-command-pos)))))
         expansion-res case-fold-search string expansion arguments)
     (setq list (cons
@@ -546,7 +569,7 @@ without further expansion."
                            (apply expansion arguments))
                           ((boundp expansion)
                             (setq expansion-res
-                                  (apply (eval expansion) arguments))
+                                  (apply (symbol-value expansion) arguments))
                             (when (eq expansion 'file)
                               ;; Advance past the file name in order to
                               ;; prevent expanding any substring of it.
@@ -727,7 +750,8 @@ omitted) and `TeX-region-file'."
              TeX-command-sequence-last-command cmd)
        (and (setq process (get-buffer-process (current-buffer)))
             (setq TeX-command-sequence-sentinel (process-sentinel process))
-            (set-process-sentinel process 'TeX-command-sequence-sentinel)))))))
+            (set-process-sentinel process
+                                   #'TeX-command-sequence-sentinel)))))))
 
 (defcustom TeX-save-query t
   "*If non-nil, ask user for permission to save files before starting TeX."
@@ -755,7 +779,7 @@ omitted) and `TeX-region-file'."
                ;; Want to know if bib file is newer than .bbl
                ;; We don't care whether the bib files are open in emacs
                (TeX-check-files (concat name ".bbl")
-                                (mapcar 'car
+                                (mapcar #'car
                                         (LaTeX-bibliography-list))
                                 (append BibTeX-file-extensions
                                         TeX-Biber-file-extensions)))
@@ -959,10 +983,10 @@ Return the new process."
       (message "Type `%s' to display results of compilation."
               (substitute-command-keys
                "\\<TeX-mode-map>\\[TeX-recenter-output-buffer]")))
-    (setq TeX-parse-function 'TeX-parse-command)
+    (setq TeX-parse-function #'TeX-parse-command)
     (setq TeX-command-default default)
     (setq TeX-sentinel-function
-         (lambda (process name)
+         (lambda (_process name)
            (message (concat name ": done."))))
     (if TeX-process-asynchronous
        (let ((process (start-process name buffer TeX-shell
@@ -970,8 +994,8 @@ Return the new process."
          (if TeX-after-start-process-function
              (funcall TeX-after-start-process-function process))
          (TeX-command-mode-line process)
-         (set-process-filter process 'TeX-command-filter)
-         (set-process-sentinel process 'TeX-command-sentinel)
+         (set-process-filter process #'TeX-command-filter)
+         (set-process-sentinel process #'TeX-command-sentinel)
          (set-marker (process-mark process) (point-max))
          (setq compilation-in-progress (cons process compilation-in-progress))
          process)
@@ -1002,14 +1026,14 @@ Return the new process."
     ;; Hook to TeX debuger.
     (with-current-buffer buffer
       (TeX-parse-reset)
-      (setq TeX-parse-function 'TeX-parse-TeX)
-      (setq TeX-sentinel-function 'TeX-TeX-sentinel)
+      (setq TeX-parse-function #'TeX-parse-TeX)
+      (setq TeX-sentinel-function #'TeX-TeX-sentinel)
       (if TeX-process-asynchronous
          (progn
            ;; Updating the mode line.
            (setq TeX-current-page "[0]")
            (TeX-format-mode-line process)
-           (set-process-filter process 'TeX-format-filter)))
+           (set-process-filter process #'TeX-format-filter)))
       process)))
 
 (defvar TeX-error-report-switches nil
@@ -1061,12 +1085,12 @@ run of `TeX-run-TeX', use
 
   (if TeX-interactive-mode
       (TeX-run-interactive name command file)
-    (let ((sentinel-function TeX-sentinel-default-function))
-      (let ((process (TeX-run-format name command file)))
-       (setq TeX-sentinel-function sentinel-function)
-       (if TeX-process-asynchronous
-           process
-         (TeX-synchronous-sentinel name file process))))))
+    (let* ((sentinel-function TeX-sentinel-default-function)
+           (process (TeX-run-format name command file)))
+      (setq TeX-sentinel-function sentinel-function)
+      (if TeX-process-asynchronous
+          process
+        (TeX-synchronous-sentinel name file process)))))
 
 ;; backward compatibilty
 
@@ -1076,7 +1100,7 @@ run of `TeX-run-TeX', use
 (defun TeX-run-BibTeX (name command file)
   "Create a process for NAME using COMMAND to format FILE with BibTeX."
   (let ((process (TeX-run-command name command file)))
-    (setq TeX-sentinel-function 'TeX-BibTeX-sentinel)
+    (setq TeX-sentinel-function #'TeX-BibTeX-sentinel)
     (if TeX-process-asynchronous
        process
       (TeX-synchronous-sentinel name file process))))
@@ -1084,7 +1108,7 @@ run of `TeX-run-TeX', use
 (defun TeX-run-Biber (name command file)
   "Create a process for NAME using COMMAND to format FILE with Biber."
   (let ((process (TeX-run-command name command file)))
-    (setq TeX-sentinel-function 'TeX-Biber-sentinel)
+    (setq TeX-sentinel-function #'TeX-Biber-sentinel)
     (if TeX-process-asynchronous
         process
       (TeX-synchronous-sentinel name file process))))
@@ -1092,7 +1116,7 @@ run of `TeX-run-TeX', use
 (defun TeX-run-dvips (name command file)
   "Create a process for NAME using COMMAND to convert FILE with dvips."
   (let ((process (TeX-run-command name command file)))
-    (setq TeX-sentinel-function 'TeX-dvips-sentinel)
+    (setq TeX-sentinel-function #'TeX-dvips-sentinel)
     (if TeX-process-asynchronous
         process
       (TeX-synchronous-sentinel name file process))))
@@ -1100,7 +1124,7 @@ run of `TeX-run-TeX', use
 (defun TeX-run-ps2pdf (name command file)
   "Create a process for NAME using COMMAND to convert FILE with ps2pdf."
   (let ((process (TeX-run-command name command file)))
-    (setq TeX-sentinel-function 'TeX-ps2pdf-sentinel)
+    (setq TeX-sentinel-function #'TeX-ps2pdf-sentinel)
     (if TeX-process-asynchronous
         process
       (TeX-synchronous-sentinel name file process))))
@@ -1109,7 +1133,7 @@ run of `TeX-run-TeX', use
   "Create a process for NAME using COMMAND to compile the index file."
   (let ((process (TeX-run-command name command file))
        (element nil))
-    (setq TeX-sentinel-function 'TeX-index-sentinel)
+    (setq TeX-sentinel-function #'TeX-index-sentinel)
     ;; Same cleaning as that for `LaTeX-idx-md5-alist' in `TeX-run-TeX'.
     (while (setq element
                 ;; `file' has been determined in `TeX-command-buffer', while
@@ -1124,19 +1148,19 @@ run of `TeX-run-TeX', use
         process
       (TeX-synchronous-sentinel name file process))))
 
-(defun TeX-run-compile (name command file)
+(defun TeX-run-compile (_name command _file)
   "Ignore first and third argument, start compile with second argument."
   (let ((default-directory (TeX-master-directory)))
     (setq TeX-command-buffer (compile command))))
 
-(defun TeX-run-shell (name command file)
+(defun TeX-run-shell (_name command _file)
   "Ignore first and third argument, start shell-command with second argument."
   (let ((default-directory (TeX-master-directory)))
     (shell-command command)
     (if (eq system-type 'ms-dos)
        (redraw-display))))
 
-(defun TeX-run-discard (name command file)
+(defun TeX-run-discard (_name command _file)
   "Start COMMAND as process, discarding its output.
 NAME and FILE are ignored."
   (let ((default-directory (TeX-master-directory)))
@@ -1145,7 +1169,7 @@ NAME and FILE are ignored."
                  TeX-shell-command-option
                  command)))
 
-(defun TeX-run-discard-foreground (name command file)
+(defun TeX-run-discard-foreground (_name command _file)
   "Call process with second argument in the foreground, discarding its output.
 With support for MS-DOS, especially when dviout is used with PC-9801 series."
   (if (and (boundp 'dos-machine-type) (eq dos-machine-type 'pc98)) ;if PC-9801
@@ -1156,7 +1180,7 @@ With support for MS-DOS, especially when dviout is used 
with PC-9801 series."
       (redraw-display)))
 (defalias 'TeX-run-dviout 'TeX-run-discard-foreground)
 
-(defun TeX-run-background (name command file)
+(defun TeX-run-background (name command _file)
   "Start process with second argument, show output when and if it arrives."
   (let ((dir (TeX-master-directory)))
     (set-buffer (get-buffer-create "*TeX background*"))
@@ -1167,10 +1191,10 @@ With support for MS-DOS, especially when dviout is used 
with PC-9801 series."
                                  TeX-shell-command-option command)))
       (if TeX-after-start-process-function
          (funcall TeX-after-start-process-function process))
-      (set-process-filter process 'TeX-background-filter)
+      (set-process-filter process #'TeX-background-filter)
       (process-kill-without-query process))))
 
-(defun TeX-run-silent (name command file)
+(defun TeX-run-silent (name command _file)
   "Start process with second argument."
   (let ((dir (TeX-master-directory)))
     (set-buffer (get-buffer-create "*TeX silent*"))
@@ -1207,22 +1231,22 @@ Error parsing on \\[next-error] should work with a bit 
of luck."
     (comint-exec buffer name TeX-shell nil
                 (list TeX-shell-command-option command))
     (comint-mode)
-    (add-hook 'comint-output-filter-functions 'TeX-interactive-goto-prompt)
+    (add-hook 'comint-output-filter-functions #'TeX-interactive-goto-prompt)
     (setq mode-name name)
     (setq TeX-command-default default)
     (setq process (get-buffer-process buffer))
     (if TeX-after-start-process-function
        (funcall TeX-after-start-process-function process))
     (TeX-command-mode-line process)
-    (set-process-sentinel process 'TeX-command-sentinel)
+    (set-process-sentinel process #'TeX-command-sentinel)
     (set-marker (process-mark process) (point-max))
     (setq compilation-in-progress (cons process compilation-in-progress))
     (TeX-parse-reset)
-    (setq TeX-parse-function 'TeX-parse-TeX)
+    (setq TeX-parse-function #'TeX-parse-TeX)
     ;; use the sentinel-function that the major mode sets, not the LaTeX one
     (setq TeX-sentinel-function sentinel-function)))
 
-(defun TeX-run-function (name command file)
+(defun TeX-run-function (_name command _file)
   "Execute Lisp function or function call given as the string COMMAND.
 Parameters NAME and FILE are ignored."
   (let ((fun (car (read-from-string command))))
@@ -1236,7 +1260,7 @@ expected to be a string.  NAME and FILE are ignored."
       (TeX-run-function name command file)
     (TeX-run-discard name command file)))
 
-(defun TeX-run-ispell-on-document (command ignored name)
+(defun TeX-run-ispell-on-document (_command _ignored _name)
   "Run ispell on all open files belonging to the current document.
 This function is *obsolete* and only here for compatibility
 reasons.  Use `TeX-run-function' instead."
@@ -1307,19 +1331,19 @@ reasons.  Use `TeX-run-function' instead."
   (setq compilation-in-progress (delq process compilation-in-progress)))
 
 
-(defvar TeX-sentinel-function (lambda (process name))
+(defvar TeX-sentinel-function (lambda (_process _name) nil)
   "Hook to cleanup TeX command buffer after temination of PROCESS.
 NAME is the name of the process.")
 
-  (make-variable-buffer-local 'TeX-sentinel-function)
+(make-variable-buffer-local 'TeX-sentinel-function)
 
 
-(defvar TeX-sentinel-default-function (lambda (process name))
+(defvar TeX-sentinel-default-function (lambda (_process _name) nil)
   "Default for `TeX-sentinel-function'.  To be set in major mode.
 Hook to cleanup TeX command buffer after temination of PROCESS.
 NAME is the name of the process.")
 
-  (make-variable-buffer-local 'TeX-sentinel-default-function)
+(make-variable-buffer-local 'TeX-sentinel-default-function)
 
 (defun TeX-TeX-sentinel (process name)
   "Cleanup TeX output buffer after running TeX.
@@ -1357,7 +1381,7 @@ Return nil ifs no errors were found."
   (save-excursion
     (goto-char (point-max))
     (cond
-     ((and (string-match "ConTeXt" name)
+     ((and (string-match "ConTeXt" name) (boundp 'ConTeXt-Mark-version)
           (with-current-buffer TeX-command-buffer
             (string= ConTeXt-Mark-version "IV")))
       (when (re-search-backward " > result saved in file: \\(.*?\\), " nil t)
@@ -1562,14 +1586,15 @@ Rerun to get mark in right position\\." nil t)
                           (TeX-active-master (TeX-output-extension)))))))
 
 ;; should go into latex.el? --pg
-(defun TeX-BibTeX-sentinel (process name)
+(defun TeX-BibTeX-sentinel (_process _name)
   "Cleanup TeX output buffer after running BibTeX."
   (goto-char (point-max))
   (cond
    ;; Check whether BibTeX reports any warnings or errors.
    ((re-search-backward (concat
                         "^(There \\(?:was\\|were\\) \\([0-9]+\\) "
-                        "\\(warnings?\\|error messages?\\))") nil t)
+                        "\\(warnings?\\|error messages?\\))")
+                        nil t)
     ;; Tell the user their number so that she sees whether the
     ;; situation is getting better or worse.
     (message (concat "BibTeX finished with %s %s. "
@@ -1582,20 +1607,18 @@ Rerun to get mark in right position\\." nil t)
                     "Run LaTeX again to get citations right."))
   (setq TeX-command-next TeX-command-default))))
 
-(defun TeX-Biber-sentinel (process name)
+(defun TeX-Biber-sentinel (_process _name)
   "Cleanup TeX output buffer after running Biber."
   (goto-char (point-max))
   (cond
-   ((re-search-backward (concat
-                         "^INFO - \\(WARNINGS\\|ERRORS\\): \\([0-9]+\\)") nil 
t)
+   ((re-search-backward "^INFO - \\(WARNINGS\\|ERRORS\\): \\([0-9]+\\)" nil t)
     (message (concat "Biber finished with %s %s. "
                      "Type `%s' to display output.")
              (match-string 2) (downcase (match-string 1))
              (substitute-command-keys
               "\\<TeX-mode-map>\\[TeX-recenter-output-buffer]"))
     (setq TeX-command-next TeX-command-default))
-   ((re-search-backward (concat
-                         "^FATAL") nil t)
+   ((re-search-backward "^FATAL" nil t)
     (message (concat "Biber had a fatal error and did not finish! "
                      "Type `%s' to display output.")
              (substitute-command-keys
@@ -1669,7 +1692,8 @@ variable is nil."
 ;;; Process Control
 
 
-;; This variable is chared with `compile.el'.
+;; This variable is shared with `compile.el'.
+;; FIXME: Then it should not be defvar'd here!
 (defvar compilation-in-progress nil
   "List of compilation processes now running.")
 
@@ -1803,7 +1827,7 @@ command."
   "Function to call to parse content of TeX output buffer.")
 (make-variable-buffer-local 'TeX-parse-function)
 
-(defun TeX-background-filter (process string)
+(defun TeX-background-filter (_process string)
   "Filter to process background output."
   (let ((old-window (selected-window))
        (pop-up-windows t))
@@ -2055,11 +2079,12 @@ Initialize it to `LaTeX-largest-level' if needed."
     (setq LaTeX-command-section-level LaTeX-largest-level))
   LaTeX-command-section-level)
 
+
 (defun LaTeX-command-section-change-level (arg)
   "Change `LaTeX-command-section-level' by ARG.
 `LaTeX-command-section-level' is the sectioning level used to
-determine the current section by `LaTeX-command-section'.  The
-levels are defined by `LaTeX-section-list'."
+determine the current section by `LaTeX-command-section'.
+The levels are defined by `LaTeX-section-list'."
   (interactive "p")
   (let ((old-level (car (rassoc (list (LaTeX-command-section-level))
                                LaTeX-section-list))))
@@ -2183,7 +2208,7 @@ If optional argument REPARSE is non-nil, reparse the 
output log."
 
 ;; All this parsers hooks should have the same arguments even though they will
 ;; be ignored, because `TeX-next-error' can call any of these functions.
-(defun TeX-parse-command (arg reparse)
+(defun TeX-parse-command (_arg _reparse)
   "We can't parse anything but TeX."
   (error "I cannot parse %s output, sorry"
         (if (TeX-active-process)
@@ -2254,7 +2279,7 @@ already in an Emacs buffer) and the cursor is placed at 
the error."
                   (beep)
                   (TeX-pop-to-buffer old-buffer))
                  (t
-                  (apply 'TeX-find-display-help item))))
+                  (apply #'TeX-find-display-help item))))
 
        (goto-char TeX-error-point)
        (TeX-parse-error old-buffer)))))
@@ -2395,7 +2420,7 @@ Return non-nil if an error or warning is found."
            ;; Strip quotation marks and remove newlines if necessary
            (when (or (eq (string-to-char file) ?\")
                      (string-match "[ \t\n]" file))
-             (setq file (mapconcat 'identity (split-string file "[\"\n]+") 
"")))
+             (setq file (mapconcat #'identity (split-string file "[\"\n]+") 
"")))
            ;; Polish `file' string
            (setq file
                  (let ((string file))
@@ -2441,7 +2466,7 @@ Return non-nil if an error or warning is found."
     error-found))
 
 (defun TeX-find-display-help (type file line error offset context string
-                                  line-end bad-box error-point _ignore)
+                                  line-end _bad-box error-point _ignore)
   "Find the error and display the help.
 
 For a description of arguments, see `TeX-error-list'.  IGNORE
@@ -2559,7 +2584,7 @@ information in `TeX-error-list' instead of displaying the 
error."
        ;; Store the error information.
        (add-to-list 'TeX-error-list info-list t)
       ;; Find the error point and display the help.
-      (apply 'TeX-find-display-help info-list))))
+      (apply #'TeX-find-display-help info-list))))
 
 (defun TeX-warning (warning warning-start bad-box &optional store)
   "Display a warning for WARNING.
@@ -2698,123 +2723,7 @@ warning."
        ;; Store the warning information.
        (add-to-list 'TeX-error-list info-list t)
       ;; Find the warning point and display the help.
-      (apply 'TeX-find-display-help info-list))))
-
-;;; - Help
-
-(defgroup TeX-error-description-faces nil
-  "Faces used in error descriptions."
-  :prefix "TeX-error-description-"
-  :group 'TeX-output)
-
-(defface TeX-error-description-error
-  (if (< emacs-major-version 22)
-      nil
-    ;; This is the same as `error' face in latest GNU Emacs versions.
-    '((((class color) (min-colors 88) (background light))
-       :foreground "Red1" :weight bold)
-      (((class color) (min-colors 88) (background dark))
-       :foreground "Pink" :weight bold)
-      (((class color) (min-colors 16) (background light))
-       :foreground "Red1" :weight bold)
-      (((class color) (min-colors 16) (background dark))
-       :foreground "Pink" :weight bold)
-      (((class color) (min-colors 8))
-       :foreground "red" :weight bold)
-      (t (:inverse-video t :weight bold))))
-  "Face for \"Error\" string in error descriptions.")
-
-(defface TeX-error-description-warning
-  (if (< emacs-major-version 22)
-      nil
-    ;; This is the same as `warning' face in latest GNU Emacs versions.
-    '((((class color) (min-colors 16)) :foreground "DarkOrange" :weight bold)
-      (((class color)) :foreground "yellow" :weight bold)))
-  "Face for \"Warning\" string in error descriptions.")
-
-(defface TeX-error-description-tex-said
-  (if (< emacs-major-version 22)
-      nil
-    ;; This is the same as `font-lock-function-name-face' face in latest GNU
-    ;; Emacs versions.
-    '((((class color) (min-colors 88) (background light))
-       :foreground "Blue1")
-      (((class color) (min-colors 88) (background dark))
-       :foreground "LightSkyBlue")
-      (((class color) (min-colors 16) (background light))
-       :foreground "Blue")
-      (((class color) (min-colors 16) (background dark))
-       :foreground "LightSkyBlue")
-      (((class color) (min-colors 8))
-       :foreground "blue" :weight bold)
-      (t (:inverse-video t :weight bold))))
-  "Face for \"TeX said\" string in error descriptions.")
-
-(defface TeX-error-description-help
-  '((t (:inherit TeX-error-description-tex-said)))
-  "Face for \"Help\" string in error descriptions.")
-
-(defun TeX-help-error (error output runbuffer type)
-  "Print ERROR in context OUTPUT from RUNBUFFER in another window.
-TYPE is a symbol specifing if ERROR is a real error, a warning or
-a bad box."
-
-  (let ((old-buffer (current-buffer))
-       (log-file (with-current-buffer runbuffer
-                   (with-current-buffer TeX-command-buffer
-                     (expand-file-name (TeX-active-master "log")))))
-       (TeX-error-pointer 0))
-
-    ;; Find help text entry.
-    (while (not (string-match (car (nth TeX-error-pointer
-                                       TeX-error-description-list))
-                             error))
-      (setq TeX-error-pointer (+ TeX-error-pointer 1)))
-
-    (TeX-pop-to-buffer (get-buffer-create "*TeX Help*") nil t)
-    (let ((inhibit-read-only t))
-      (erase-buffer)
-      (insert
-       (cond
-       ((equal type 'error)
-        (propertize "ERROR" 'font-lock-face 'TeX-error-description-error))
-       ((equal type 'warning)
-        (propertize "WARNING" 'font-lock-face 'TeX-error-description-warning))
-       ((equal type 'bad-box)
-        (propertize "BAD BOX" 'font-lock-face 'TeX-error-description-warning)))
-       ": " error
-       (propertize "\n\n--- TeX said ---" 'font-lock-face
-                  'TeX-error-description-tex-said)
-       output
-       (propertize "\n--- HELP ---\n" 'font-lock-face
-                  'TeX-error-description-help)
-       (let ((help (cdr (nth TeX-error-pointer
-                            TeX-error-description-list))))
-        (save-excursion
-          (if (and (string= help "No help available")
-                   (let* ((log-buffer (find-buffer-visiting log-file)))
-                     (if log-buffer
-                         (progn
-                           (set-buffer log-buffer)
-                           (revert-buffer t t))
-                       (setq log-buffer
-                             (find-file-noselect log-file))
-                       (set-buffer log-buffer))
-                     (auto-save-mode nil)
-                     (setq buffer-read-only t)
-                     (goto-char (point-min))
-                     (search-forward error nil t 1))
-                   (re-search-forward "^l\\." nil t)
-                   (re-search-forward "^ [^\n]+$" nil t))
-              (let ((start (1+ (point))))
-                (forward-char 1)
-                (re-search-forward "^$")
-                (concat "From the .log file...\n\n"
-                        (buffer-substring start (point))))
-            help)))))
-    (goto-char (point-min))
-    (TeX-special-mode)
-    (TeX-pop-to-buffer old-buffer nil t)))
+      (apply #'TeX-find-display-help info-list))))
 
 ;;; Error Messages
 
@@ -3236,6 +3145,122 @@ error."
                       (regexp :tag "Match")
                       (string :format "Description:\n%v"))))
 
+;;; - Help
+
+(defgroup TeX-error-description-faces nil
+  "Faces used in error descriptions."
+  :prefix "TeX-error-description-"
+  :group 'TeX-output)
+
+(defface TeX-error-description-error
+  (if (< emacs-major-version 22)
+      nil
+    ;; This is the same as `error' face in latest GNU Emacs versions.
+    '((((class color) (min-colors 88) (background light))
+       :foreground "Red1" :weight bold)
+      (((class color) (min-colors 88) (background dark))
+       :foreground "Pink" :weight bold)
+      (((class color) (min-colors 16) (background light))
+       :foreground "Red1" :weight bold)
+      (((class color) (min-colors 16) (background dark))
+       :foreground "Pink" :weight bold)
+      (((class color) (min-colors 8))
+       :foreground "red" :weight bold)
+      (t (:inverse-video t :weight bold))))
+  "Face for \"Error\" string in error descriptions.")
+
+(defface TeX-error-description-warning
+  (if (< emacs-major-version 22)
+      nil
+    ;; This is the same as `warning' face in latest GNU Emacs versions.
+    '((((class color) (min-colors 16)) :foreground "DarkOrange" :weight bold)
+      (((class color)) :foreground "yellow" :weight bold)))
+  "Face for \"Warning\" string in error descriptions.")
+
+(defface TeX-error-description-tex-said
+  (if (< emacs-major-version 22)
+      nil
+    ;; This is the same as `font-lock-function-name-face' face in latest GNU
+    ;; Emacs versions.
+    '((((class color) (min-colors 88) (background light))
+       :foreground "Blue1")
+      (((class color) (min-colors 88) (background dark))
+       :foreground "LightSkyBlue")
+      (((class color) (min-colors 16) (background light))
+       :foreground "Blue")
+      (((class color) (min-colors 16) (background dark))
+       :foreground "LightSkyBlue")
+      (((class color) (min-colors 8))
+       :foreground "blue" :weight bold)
+      (t (:inverse-video t :weight bold))))
+  "Face for \"TeX said\" string in error descriptions.")
+
+(defface TeX-error-description-help
+  '((t (:inherit TeX-error-description-tex-said)))
+  "Face for \"Help\" string in error descriptions.")
+
+(defun TeX-help-error (error output runbuffer type)
+  "Print ERROR in context OUTPUT from RUNBUFFER in another window.
+TYPE is a symbol specifing if ERROR is a real error, a warning or
+a bad box."
+
+  (let ((old-buffer (current-buffer))
+       (log-file (with-current-buffer runbuffer
+                   (with-current-buffer TeX-command-buffer
+                     (expand-file-name (TeX-active-master "log")))))
+       (TeX-error-pointer 0))
+
+    ;; Find help text entry.
+    (while (not (string-match (car (nth TeX-error-pointer
+                                       TeX-error-description-list))
+                             error))
+      (setq TeX-error-pointer (+ TeX-error-pointer 1)))
+
+    (TeX-pop-to-buffer (get-buffer-create "*TeX Help*") nil t)
+    (let ((inhibit-read-only t))
+      (erase-buffer)
+      (insert
+       (cond
+       ((equal type 'error)
+        (propertize "ERROR" 'font-lock-face 'TeX-error-description-error))
+       ((equal type 'warning)
+        (propertize "WARNING" 'font-lock-face 'TeX-error-description-warning))
+       ((equal type 'bad-box)
+        (propertize "BAD BOX" 'font-lock-face 'TeX-error-description-warning)))
+       ": " error
+       (propertize "\n\n--- TeX said ---" 'font-lock-face
+                  'TeX-error-description-tex-said)
+       output
+       (propertize "\n--- HELP ---\n" 'font-lock-face
+                  'TeX-error-description-help)
+       (let ((help (cdr (nth TeX-error-pointer
+                            TeX-error-description-list))))
+        (save-excursion
+          (if (and (string= help "No help available")
+                   (let* ((log-buffer (find-buffer-visiting log-file)))
+                     (if log-buffer
+                         (progn
+                           (set-buffer log-buffer)
+                           (revert-buffer t t))
+                       (setq log-buffer
+                             (find-file-noselect log-file))
+                       (set-buffer log-buffer))
+                     (auto-save-mode nil)
+                     (setq buffer-read-only t)
+                     (goto-char (point-min))
+                     (search-forward error nil t 1))
+                   (re-search-forward "^l\\." nil t)
+                   (re-search-forward "^ [^\n]+$" nil t))
+              (let ((start (1+ (point))))
+                (forward-char 1)
+                (re-search-forward "^$")
+                (concat "From the .log file...\n\n"
+                        (buffer-substring start (point))))
+            help)))))
+    (goto-char (point-min))
+    (TeX-special-mode)
+    (TeX-pop-to-buffer old-buffer nil t)))
+
 ;;; Error Overview
 
 (defvar TeX-error-overview-active-buffer nil
@@ -3293,7 +3318,7 @@ please restart TeX error overview")))
            ;; `TeX-command-buffer' when visiting the error point.
            (let ((default-major-mode major-mode))
              ;; Find the error and display the help.
-             (apply 'TeX-find-display-help item)))
+             (apply #'TeX-find-display-help item)))
          ;; Return to the error overview.
          (if (TeX-error-overview-setup)
              (select-frame TeX-error-overview-frame)
@@ -3445,8 +3470,7 @@ forward, if negative)."
   (setq TeX-error-overview-orig-frame nil))
 
 (defvar TeX-error-overview-mode-map
-  (let ((map (make-sparse-keymap))
-       (menu-map (make-sparse-keymap)))
+  (let ((map (make-sparse-keymap)))
     (define-key map "b"    'TeX-error-overview-toggle-debug-bad-boxes)
     (define-key map "j"    'TeX-error-overview-jump-to-source)
     (define-key map "l"    'TeX-error-overview-goto-log)
@@ -3642,17 +3666,16 @@ forward, if negative)."
   ;; special-mode makes it read-only which prevents input from TeX.
   (setq buffer-read-only nil))
 
-(defun TeX-output-revert-buffer (ignore-auto noconfirm)
+(defun TeX-output-revert-buffer (_ignore-auto _noconfirm)
   "Rerun the TeX command which of which this buffer was the output."
   (goto-char (point-min))
   (if (looking-at "Running `\\(.*\\)' on `\\(.*\\)' with ``\\(.*\\)''$")
       (let ((name (match-string 1))
-            (file (match-string 2))
-            (command (match-string 3)))
+            (file (match-string 2)))
         (with-current-buffer TeX-command-buffer
           (TeX-command name (if (string-match "_region_" file)
-                                'TeX-region-file
-                              'TeX-master-file))))
+                                #'TeX-region-file
+                              #'TeX-master-file))))
     (error "Unable to find what command to run")))
 
 (provide 'tex-buf)

Reply via email to