From a921439a4eb5b0d96182748e779c78e2f6a41a5f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 11 Dec 2018 18:48:51 -0500 Subject: Cleanup patch; Moving defvar to toplevel Move `defvar`s used to silence warnings outside of eval-when-compile. Make sure they don't actually give a value to the var. * pg-init.el: Simplify. Use (if t ...) to avoid running `require` at compile-time. Don't add subdirs to load-path here since this code is never used. (pg-init--script-full-path, pg-init--pg-root): Inline their definition into their sole user. * generic/proof-utils.el (proof-resize-window-tofit): Inline definitions of window-leftmost-p and window-rightmost-p previously in proof-compat.el. * lib/proof-compat.el (proof-running-on-win32): Remove, not used. (mac-key-mode): Remove, there's no carbon-emacs-package-version in Emacs≥24.3. (pg-custom-undeclare-variable): Use dolist. (save-selected-frame): Remove, save-selected-window also saves&restores the selected frame at the same time. Update all users (which already used save-selected-window around it). (window-leftmost-p, window-rightmost-p, window-bottom-p) (find-coding-system): Remove, unused. * hol-light/hol-light.el (caml-font-lock-keywords): Don't try to defvar it to a dummy value and... (hol-light): ...check its existence before using it instead. * coq/coq.el (coq-may-use-prettify): Simplify initialization. --- lib/proof-compat.el | 80 ++++++----------------------------------------------- 1 file changed, 9 insertions(+), 71 deletions(-) (limited to 'lib/proof-compat.el') diff --git a/lib/proof-compat.el b/lib/proof-compat.el index abbdb465..25c029c6 100644 --- a/lib/proof-compat.el +++ b/lib/proof-compat.el @@ -1,9 +1,9 @@ -;;; proof-compat.el --- Operating system and Emacs version compatibility +;;; proof-compat.el --- Operating system and Emacs version compatibility -*- lexical-binding:t -*- ;; This file is part of Proof General. ;; Portions © Copyright 1994-2012 David Aspinall and University of Edinburgh -;; Portions © Copyright 2003, 2012, 2014 Free Software Foundation, Inc. +;; Portions © Copyright 2003-2018 Free Software Foundation, Inc. ;; Portions © Copyright 2001-2017 Pierre Courtieu ;; Portions © Copyright 2010, 2016 Erik Martin-Dorel ;; Portions © Copyright 2011-2013, 2016-2017 Hendrik Tews @@ -28,29 +28,8 @@ ;;; Code: -(require 'easymenu) (require 'cl) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; Architecture flags -;;; - -;; can use eval-and-compile to allow optimisation, but that would -;; require recompilation for Windows -(defvar proof-running-on-win32 (memq system-type '(win32 windows-nt cygwin)) - "Non-nil if Proof General is running on a windows variant system.") - - -;; Workaround a small bug in Carbon Emacs Winter 2008 (at least) -;; Menu presses query this variable, but it's not bound unless -;; mode engaged. Not noticeable in normal use, but it is as soon -;; as debug-on-error is engaged. -(with-no-warnings - (if (and (boundp 'carbon-emacs-package-version) - (not (boundp 'mac-key-mode))) - (setq mac-key-mode nil))) - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Modifications and adjustments @@ -64,8 +43,8 @@ Done by removing all properties mentioned by custom library. The symbol itself is left defined, in case it has been changed in the current Emacs session." - (mapc (lambda (prop) (remprop symbol prop)) - '(default + (dolist (prop + '(default standard-value force-value variable-comment @@ -83,49 +62,8 @@ in the current Emacs session." custom-version saved-value theme-value - theme-face))) - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;;; -;;; GNU Emacs compatibility with XEmacs -;;; - -(unless (fboundp 'save-selected-frame) -(defmacro save-selected-frame (&rest body) - "Execute forms in BODY, then restore the selected frame. -The value returned is the value of the last form in BODY." - (let ((old-frame (gensym "ssf"))) - `(let ((,old-frame (selected-frame))) - (unwind-protect - (progn ,@body) - (select-frame ,old-frame)))))) - -;; These functions are used in the intricate logic around -;; shrink-to-fit. - -;; window-leftmost-p, window-rightmost-p: my implementations -(or (fboundp 'window-leftmost-p) - (defun window-leftmost-p (window) - (zerop (car (window-edges window))))) - -(or (fboundp 'window-rightmost-p) - (defun window-rightmost-p (window) - (>= (nth 2 (window-edges window)) - (frame-width (window-frame window))))) - -(or (fboundp 'window-bottom-p) - (defun window-bottom-p (window) - (>= (nth 3 (window-edges window)) - (frame-height (window-frame window))))) - -;; find-coding-system emulation for GNU Emacs -(unless (fboundp 'find-coding-system) - (defun find-coding-system (name) - "Retrieve the coding system of the given name, or nil if non-such." - (condition-case nil - (check-coding-system name) - (error nil)))) + theme-face)) + (remprop symbol prop))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -137,9 +75,9 @@ The value returned is the value of the last form in BODY." ;; makes every suffix be added as a completion! (eval-after-load "completion" -'(defun completion-before-command () - (if (and (symbolp this-command) (get this-command 'completion-function)) - (funcall (get this-command 'completion-function))))) + '(defun completion-before-command () + (if (and (symbolp this-command) (get this-command 'completion-function)) + (funcall (get this-command 'completion-function))))) (provide 'proof-compat) ;;; proof-compat.el ends here -- cgit v1.2.3 From 632a3d7f9ded16faaf58e1c0769bcd4f7c8193e3 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 12 Dec 2018 15:20:08 -0500 Subject: Use `cl-lib` instead of `cl` everywhere Use lexical-binding in a few files where it was easy. Don't require `proof-compat` when it's not used. * coq/coq-db.el: Use lexical-binding. * coq/coq-system.el: Use lexical-binding. (coq--extract-prog-args): Use concatenated-args rather than recomputing it. * coq/coq.el: Require `span` to silence some warnings. * generic/pg-user.el: Use lexical-binding. (complete, add-completion, completion-min-length): Silence warnings. * generic/pg-xml.el: Use lexical-binding. (pg-xml-string-of): Prefer mapconcat to reduce+concat. * generic/proof-depends.el: Use lexical-binding. (proof-dep-split-deps): Use `push`. * generic/proof-shell.el: Require `span` to silence some warnings. (proof-shell-invisible-command): Don't use lexical-let just to build a wasteful η-redex! * lib/holes.el: Use lexical-binding. Remove redundant :group args. * lib/span.el: Use lexical-binding. (span-read-only-hook): Use user-error. (span-raise): Remove, unused. --- lib/proof-compat.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/proof-compat.el') diff --git a/lib/proof-compat.el b/lib/proof-compat.el index 25c029c6..95c533e5 100644 --- a/lib/proof-compat.el +++ b/lib/proof-compat.el @@ -28,7 +28,7 @@ ;;; Code: -(require 'cl) +(require 'cl-lib) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @@ -63,7 +63,7 @@ in the current Emacs session." saved-value theme-value theme-face)) - (remprop symbol prop))) + (cl-remprop symbol prop))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -- cgit v1.2.3