branch: scratch/proof-general
commit 08189b7f3879f1f3558b8a9d6ce91902358e9bf0
Author: Stefan Monnier <monn...@iro.umontreal.ca>
Commit: Stefan Monnier <monn...@iro.umontreal.ca>

    pg-user.el: Misc cleanups from compilation warnings
    
    * generic/pg-user.el: Fix docstring markup warnings.
    Avoid `point-at-eol`, declared obsolete in Emacs-29.
    Prefer #' to quote function names.
    (proof-electric-terminator-enable): Add FIXMEs.
    (proof-check-annotate-source): Pass 2nd arg to `looking-back` to try
    and avoid pathological behaviors (and silence a warning).
    (proof-check-generate-report): Add FIXME about use of `coq-*` variable
    in this generic files.
    (proof-autosend-loop-all, proof-autosend-loop-next):
    Remove `unwind-protect` used without any unwind form.
---
 generic/pg-user.el | 153 +++++++++++++++++++++++++++--------------------------
 1 file changed, 77 insertions(+), 76 deletions(-)

diff --git a/generic/pg-user.el b/generic/pg-user.el
index e7a088d551..88d5026d63 100644
--- a/generic/pg-user.el
+++ b/generic/pg-user.el
@@ -532,8 +532,10 @@ This is intended as a value for 
`proof-activate-scripting-hook'"
 
 ;;;###autoload
 (defun proof-electric-terminator-enable (&optional arg)
+  ;; FIXME: This should be defined using `define-minor-mode'.
+  ;; FIXME: I can't see where `proof-set-value' is involved!
   "Ensure modeline update to display new value for electric terminator.
-This a function is called by the custom-set property 'proof-set-value.
+This function is called by the custom-set property `proof-set-value'.
 It can also be used as a minor mode function: with ARG, turn on iff ARG>0"
   (unless (null arg)
     (setq proof-electric-terminator-enable (> (prefix-numeric-value arg) 0)))
@@ -638,7 +640,8 @@ white space."
           ;; to the start of the command.
           (re-search-forward "[[:blank:]\n]*")
           (end-of-line)
-          (when (looking-back "(\\* \\(PASS\\|FAIL\\) \\*)")
+          (when (looking-back "(\\* \\(PASS\\|FAIL\\) \\*)"
+                              (line-beginning-position))
             (delete-char -10)
             (delete-horizontal-space))
           (when (or annotate-passing (not (car pr)))
@@ -671,6 +674,7 @@ the results to the file denoted by BATCH."
 
     ;; determine a relative file name for current buffer
     (when buffer-file-name
+      ;; FIXME: `coq-project-filename'? Isn't this supposed to be generic code?
       (setq coq-proj-dir (locate-dominating-file buffer-file-name
                                                  coq-project-filename)))
     (if coq-proj-dir
@@ -726,14 +730,14 @@ CHUNKS must be the reversed result of 
`proof-script-omit-filter'
 for a whole buffer. (Only the top-level must be reversed, the
 commands inside the chunks must be as returned by
 `proof-script-omit-filter', that is in reversed order.) CHUNKS
-must not contain any 'nested-proof chunk.
+must not contain any `nested-proof' chunk.
 
 This function processes the content of CHUNKS normally by
-asserting them one by one. Any error reported inside a 'no-proof
-chunk is reported as error to the user. 'proof chunks containing
+asserting them one by one. Any error reported inside a `no-proof'
+chunk is reported as error to the user. `proof' chunks containing
 errors are silently replaced by
 `proof-script-proof-admit-command'. The result is a list of proof
-status results, one for each 'proof chunk in the same order. Each
+status results, one for each `proof' chunk in the same order. Each
 proof-status result is a list of 4 elements as follows.
 - 1st: proof status as `t' or `nil'. Proofs closed with a match
   of `proof-omit-cheating-regexp', if defined, count as failing,
@@ -742,12 +746,12 @@ proof-status result is a list of 4 elements as follows.
   `proof-get-proof-info-fn'.
 - 3rd: Position of the start of the span containing the theorem
   to prove. More precisely, it is the second last span of the
-  'no-proof chunk before the 'proof chunk. Note that spans
+  `no-proof' chunk before the `proof' chunk. Note that spans
   usually contain preceeding white space. Therefore this position
   is not necessarily the first letter of the keyword introducing
   the theorem statement.
 - 4rd: Position of the start of the span containing \"Proof
-  using\". More precisely, it is the last span in the 'no-proof
+  using\". More precisely, it is the last span in the `no-proof'
   chunk before the proof."
   (let (proof-results current-proof-state-and-name proof-start-points)
     (while chunks
@@ -900,7 +904,7 @@ is reported to the user without generating an overview. The
 overview only contains those names of theorems whose proof
 scripts are classified as opaque by the omit-proofs feature. For
 Coq for instance, among others, proof scripts terminated with
-'Defined' are not opaque and do not appear in the generated
+\"Defined\" are not opaque and do not appear in the generated
 overview.
 
 Note that this command does not (re-)compile required files.
@@ -1375,12 +1379,12 @@ If called interactively, ARG is given by the prefix 
argument."
                   (goto-char unproc)
                   (skip-chars-forward " \t\n")
                   (point)))
-        (end    (point-at-eol)))
+        (end    (line-end-position)))
     (cond
      ((< start end)
       (delete-region start end))
-     ((< start (point-at-eol))
-      (delete-region start (point-at-eol))))))
+     ((< start (line-end-position))
+      (delete-region start (line-end-position))))))
 
 (defun pg-get-old-input ()
   "Return text between end of locked region and point, up to EOL.
@@ -1390,7 +1394,7 @@ If there is no text, return the empty string."
                   (goto-char unproc)
                   (skip-chars-forward " \t\n")
                   (point)))
-        (end    (point-at-eol)))
+        (end    (line-end-position)))
     (if (< start end)
        (buffer-substring-no-properties start end)
       nil)))
@@ -1572,8 +1576,8 @@ removed if it matches the last item in the ring."
 ;; functions `pg-protected-undo-1' and `pg--next-undo-delta'
 ;;
 
-(define-key proof-mode-map [remap undo] 'pg-protected-undo)
-(define-key proof-mode-map [remap advertised-undo] 'pg-protected-undo)
+(define-key proof-mode-map [remap undo] #'pg-protected-undo)
+(define-key proof-mode-map [remap advertised-undo] #'pg-protected-undo)
 
 (defun pg-protected-undo (&optional arg)
   "As `undo' but avoids breaking the locked region.
@@ -1680,7 +1684,7 @@ Assume the `undo-in-region' behavior will apply if ARG is 
non-nil."
 (defvar proof-autosend-timer nil "Timer used by autosend.")
 
 (deflocal proof-autosend-modified-tick nil
-  "Records 'buffer-chars-modified-tick' since last autosend.")
+  "Records `buffer-chars-modified-tick' since last autosend.")
 
 ;;;###autoload
 (defun proof-autosend-enable (&optional nomsg)
@@ -1690,7 +1694,7 @@ Assume the `undo-in-region' behavior will apply if ARG is 
non-nil."
   (when proof-autosend-enable
     (setq proof-autosend-timer
          (run-with-idle-timer proof-autosend-delay
-                              t 'proof-autosend-loop))
+                              t #'proof-autosend-loop))
     (setq proof-autosend-modified-tick nil)
     (unless nomsg (message "Automatic sending turned on.")))
   (when (not proof-autosend-enable)
@@ -1718,68 +1722,65 @@ Assume the `undo-in-region' behavior will apply if ARG 
is non-nil."
 (defun proof-autosend-loop-all ()
   "Send commands from the script until an error, complete, or input appears."
   (message "Sending commands to prover...")
-  (unwind-protect
-      (progn
-       (save-excursion
-         (goto-char (point-max))
-         (proof-assert-until-point
-          (if proof-multiple-frames-enable
-              'no-minibuffer-messages ; nb: not API
-            '(no-response-display
-              no-error-display
-              no-goals-display))))
-       (proof-shell-wait t) ; interruptible
-       (cond
-        ((eq proof-shell-last-output-kind 'error)
-         (message "Sending commands to prover...error"))
-        ((and (input-pending-p) proof-shell-busy)
-         (proof-interrupt-process)
-         (message "Sending commands to prover...interrupted")
-         (proof-shell-wait))
-        (t
-         (message "Sending commands to prover...done"))))))
+  (save-excursion
+    (goto-char (point-max))
+    (proof-assert-until-point
+     (if proof-multiple-frames-enable
+        'no-minibuffer-messages        ; nb: not API
+       '(no-response-display
+        no-error-display
+        no-goals-display))))
+  (proof-shell-wait t)                  ; interruptible
+  (cond
+   ((eq proof-shell-last-output-kind 'error)
+    (message "Sending commands to prover...error"))
+   ((and (input-pending-p) proof-shell-busy)
+    (proof-interrupt-process)
+    (message "Sending commands to prover...interrupted")
+    (proof-shell-wait))
+   (t
+    (message "Sending commands to prover...done"))))
 
 (defun proof-autosend-loop-next ()
   "Send the next command from the script and indicate its success/otherwise."
-  (unwind-protect
-      (let ((qol   (proof-queue-or-locked-end)))
-       (save-excursion
-         ;(goto-char qol)
-         ;(skip-chars-forward " \t\n")
-         (message "Trying next commands in prover...")
-         (proof-assert-until-point
-          (if proof-multiple-frames-enable
-              'no-minibuffer-messages ; nb: not API
-            '(no-response-display
-              no-error-display
-              no-goals-display))))
-       (let ((proof-sticky-errors t))
-         (proof-shell-wait t)) ; interruptible
-       (cond
-        ((eq proof-shell-last-output-kind 'error)
-         (message "Trying next commands in prover...error"))
-        ((and (input-pending-p) proof-shell-busy)
-         (proof-interrupt-process)
-         (message "Trying next commands in prover...interrupted")
-         (proof-shell-wait))
-        (t
-         (message "Trying next commands in prover...OK")))
-       ;; success: now undo in prover, highlight undone spans if OK
-       (unless (eq qol (proof-queue-or-locked-end)) ; no progress
-         (save-excursion
-           (goto-char qol)
-           (proof-retract-until-point
-            (lambda (beg end)
-              (span-make-self-removing-span
-               (save-excursion
-                 (goto-char beg)
-                 (skip-chars-forward " \t\n")
-                 (point))
-               end
-               'face 'highlight))
-            '(no-response-display
-              no-error-display
-              no-goals-display)))))))
+  (let ((qol   (proof-queue-or-locked-end)))
+    (save-excursion
+      ;;(goto-char qol)
+      ;;(skip-chars-forward " \t\n")
+      (message "Trying next commands in prover...")
+      (proof-assert-until-point
+       (if proof-multiple-frames-enable
+          'no-minibuffer-messages      ; nb: not API
+        '(no-response-display
+          no-error-display
+          no-goals-display))))
+    (let ((proof-sticky-errors t))
+      (proof-shell-wait t))             ; interruptible
+    (cond
+     ((eq proof-shell-last-output-kind 'error)
+      (message "Trying next commands in prover...error"))
+     ((and (input-pending-p) proof-shell-busy)
+      (proof-interrupt-process)
+      (message "Trying next commands in prover...interrupted")
+      (proof-shell-wait))
+     (t
+      (message "Trying next commands in prover...OK")))
+    ;; success: now undo in prover, highlight undone spans if OK
+    (unless (eq qol (proof-queue-or-locked-end)) ; no progress
+      (save-excursion
+       (goto-char qol)
+       (proof-retract-until-point
+        (lambda (beg end)
+          (span-make-self-removing-span
+           (save-excursion
+             (goto-char beg)
+             (skip-chars-forward " \t\n")
+             (point))
+           end
+           'face 'highlight))
+        '(no-response-display
+          no-error-display
+          no-goals-display))))))
   
 (provide 'pg-user)
 

Reply via email to