branch: externals/cursor-undo
commit 47d8fc0e19ae852b771bf0ab1a170aea410ab3f4
Author: Luke Lee <luke.yx....@gmail.com>
Commit: Luke Lee <luke.yx....@gmail.com>

    * cursor-undo.el: clean up byte compilation warning messages.
---
 cursor-undo.el | 75 ++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 42 insertions(+), 33 deletions(-)

diff --git a/cursor-undo.el b/cursor-undo.el
index 19088049d1..c12946c7bc 100644
--- a/cursor-undo.el
+++ b/cursor-undo.el
@@ -6,7 +6,6 @@
 ;; Maintainer:   Luke Lee <luke.yx....@gmail.com>
 ;; Keywords:     undo, cursor
 ;; Version:      1.0
-;; Package-Requires: ((cl-lib "0.5"))
 
 ;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
@@ -92,18 +91,24 @@
 
 ;;; Code:
 
-;;;###autoload
-(define-minor-mode cursor-undo
-  "Global minor mode for tracking cursor undo."
-  :lighter " cu"
-  :variable cundo-enable-cursor-tracking)
+(defgroup cursor-undo nil
+  "Cursor movement undo support."
+  :prefix "cundo-"
+  :group 'cursor-undo)
 
 ;; Global enabling control flag
 ;;;###autoload
 (defcustom cundo-enable-cursor-tracking  nil
   "Global control flag to enable cursor undo tracking."
+  :require 'cursor-undo
   :type 'boolean)
 
+;;;###autoload
+(define-minor-mode cursor-undo
+  "Global minor mode for tracking cursor undo."
+  :lighter " cu"
+  :variable cundo-enable-cursor-tracking)
+
 ;; Local disable flag, use reverse logic as NIL is still a list and we can
 ;; pop it again and again
 (defvar-local cundo-disable-local-cursor-tracking nil)
@@ -125,6 +130,11 @@
         ;; (nil (apply cdr nil) nil a b...) -> (nil a b...)
         (setq buffer-undo-list (cddr buffer-undo-list)))))
 
+;; Note that this `prev-screen-start' is NOT a dynamic binding variable.
+;; It's defined here to make byte compiler not to complain about:
+;; "Warning: Unused lexical variable ‘prev-screen-start’".
+(defvar prev-screen-start)
+
 ;;;###autoload
 (defmacro def-cursor-undo (func-sym &optional no-combine screen-pos no-move)
   "Define an advice for FUNC-SYM to track cursor movements in the undo buffer.
@@ -174,7 +184,7 @@ relative screen position (screen-pos=NIL) nor `point' 
position (no-move=t)."))
                 (prev-point (point))
                 (prev-screen-start))
            ,@(when screen-pos
-               '((when cursor-tracking
+               '((if cursor-tracking
                    (setq prev-screen-start (window-start)))))
            (apply orig-func args)
            ;; This is a helper for commands that might take long. eg. page-up/
@@ -217,8 +227,8 @@ relative screen position (screen-pos=NIL) nor `point' 
position (no-move=t)."))
                         (numberp (cadr buffer-undo-list))
                         (= prev-point (cadr buffer-undo-list))))
              ,@(if screen-pos
-                  '((push `(apply cundo-restore-win (,@prev-screen-start))
-                          buffer-undo-list)))
+                   '((push `(apply cundo-restore-win (,@prev-screen-start))
+                           buffer-undo-list)))
              ,@(unless no-move
                 '((push prev-point buffer-undo-list)))
              ;;(abbrevmsg (format "c=%S,%S b=%S" last-command this-command
@@ -401,27 +411,26 @@ relative screen position (screen-pos=NIL) nor `point' 
position (no-move=t)."))
     (setf this-command lastcmd)))
 
 ;; Bookmark related
-(eval-after-load 'bookmark+-1 ;; emacswiki bookmark extension
-  '(progn
-     (def-cursor-undo bookmark-jump                  t      t) ;; C-x b g
-     (def-cursor-undo bookmark-jump-other-window     t      t) ;; C-x b j
-     (disable-cursor-tracking bookmark-save)))
+;; For feature 'bookmark+-1 (emacswiki bookmark extension)
+(def-cursor-undo bookmark-jump                  t      t) ;; C-x b g
+(def-cursor-undo bookmark-jump-other-window     t      t) ;; C-x b j
+(disable-cursor-tracking bookmark-save)
 
 ;;
 ;; Prevent cursor tracking during semantic parsing
 ;;
-(eval-after-load
+(eval-after-load 'semantic
   '(progn
      (add-hook 'semantic-before-idle-scheduler-reparse-hooks
                #'(lambda ()
                    (push 't cundo-disable-local-cursor-tracking)))
      (add-hook 'semantic-after-idle-scheduler-reparse-hooks
                #'(lambda ()
-                   (pop cundo-disable-local-cursor-tracking)))
-     (disable-cursor-tracking semantic-fetch-tags)
-     (disable-cursor-tracking senator-parse)
-     (disable-cursor-tracking senator-force-refresh)
-     (disable-cursor-tracking semantic-go-to-tag)))
+                   (pop cundo-disable-local-cursor-tracking)))))
+(disable-cursor-tracking semantic-fetch-tags)
+(disable-cursor-tracking senator-parse)
+(disable-cursor-tracking senator-force-refresh)
+(disable-cursor-tracking semantic-go-to-tag)
 
 ;; For feature 'smie
 ;; Need to disable the following, a sample test without disabling this is
@@ -435,21 +444,21 @@ relative screen position (screen-pos=NIL) nor `point' 
position (no-move=t)."))
 ;;
 ;; Disable cursor tracking during ediff comparing [2013-06-28 15:16:06 +0800]
 ;;
+(defvar undo-cursor-ediff-buffer-list nil)
+(defun undo-cursor-ediff-prepare-buffer-hook ()
+  (push (current-buffer) undo-cursor-ediff-buffer-list)
+  (push 't cundo-disable-local-cursor-tracking)
+  (message "Disable buffer %S cursor tracking" (current-buffer)))
+
+(defun undo-cursor-ediff-cleanup-hook ()
+  (dolist (ediff-buf undo-cursor-ediff-buffer-list)
+    (with-current-buffer ediff-buf
+      (pop cundo-disable-local-cursor-tracking)
+      (message "Enable buffer %S cursor tracking" ediff-buf)))
+  (setf undo-cursor-ediff-buffer-list nil))
+
 (eval-after-load 'ediff
   '(progn
-     (defvar undo-cursor-ediff-buffer-list nil)
-     (defun undo-cursor-ediff-prepare-buffer-hook ()
-       (push (current-buffer) undo-cursor-ediff-buffer-list)
-       (push 't cundo-disable-local-cursor-tracking)
-       (message "Disable buffer %S cursor tracking" (current-buffer)))
-
-     (defun undo-cursor-ediff-cleanup-hook ()
-       (dolist (ediff-buf undo-cursor-ediff-buffer-list)
-         (with-current-buffer ediff-buf
-           (pop cundo-disable-local-cursor-tracking)
-           (message "Enable buffer %S cursor tracking" ediff-buf)))
-       (setf undo-cursor-ediff-buffer-list nil))
-
      (add-hook 'ediff-prepare-buffer-hook
                #'undo-cursor-ediff-prepare-buffer-hook)
      ;; Set-up two cleanup hooks in case of any error

Reply via email to