emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r117917: Use lexical-bindin in Ibuffer.


From: Stefan Monnier
Subject: [Emacs-diffs] trunk r117917: Use lexical-bindin in Ibuffer.
Date: Mon, 22 Sep 2014 14:11:01 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117917
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2014-09-22 10:10:53 -0400
message:
  Use lexical-bindin in Ibuffer.
  * lisp/ibuffer.el (ibuffer-do-toggle-read-only): `arg' is unused.
  (ibuffer-compile-format): Simplify.
  (ibuffer-clear-summary-columns): Simplify.
  * lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't use the third
  elem of dotimes when we don't refer to the iteration var from it.
  (ibuffer-toggle-sorting-mode): Avoid add-to-list.
  * lisp/ibuf-macs.el (define-ibuffer-column, define-ibuffer-op):
  Silence byte-compiler.
modified:
  lisp/ChangeLog                 changelog-20091113204419-o5vbwnq5f7feedwu-1432
  lisp/ibuf-ext.el               ibufext.el-20091113204419-o5vbwnq5f7feedwu-2372
  lisp/ibuf-macs.el              
ibufmacs.el-20091113204419-o5vbwnq5f7feedwu-2373
  lisp/ibuffer.el                ibuffer.el-20091113204419-o5vbwnq5f7feedwu-2374
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2014-09-22 13:52:06 +0000
+++ b/lisp/ChangeLog    2014-09-22 14:10:53 +0000
@@ -1,5 +1,17 @@
 2014-09-22  Stefan Monnier  <address@hidden>
 
+       Use lexical-bindin in Ibuffer.
+       * ibuffer.el (ibuffer-do-toggle-read-only): `arg' is unused.
+       (ibuffer-compile-format): Simplify.
+       (ibuffer-clear-summary-columns): Simplify.
+       * ibuf-ext.el (ibuffer-generate-filter-groups): Don't use the third
+       elem of dotimes when we don't refer to the iteration var from it.
+       (ibuffer-toggle-sorting-mode): Avoid add-to-list.
+       * ibuf-macs.el (define-ibuffer-column, define-ibuffer-op):
+       Silence byte-compiler.
+
+2014-09-22  Stefan Monnier  <address@hidden>
+
        * font-lock.el (font-lock-compile-keyword): Don't confuse a lambda
        expression for a list.
 

=== modified file 'lisp/ibuf-ext.el'
--- a/lisp/ibuf-ext.el  2014-01-01 07:43:34 +0000
+++ b/lisp/ibuf-ext.el  2014-09-22 14:10:53 +0000
@@ -1,4 +1,4 @@
-;;; ibuf-ext.el --- extensions for ibuffer
+;;; ibuf-ext.el --- extensions for ibuffer  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2000-2014 Free Software Foundation, Inc.
 
@@ -523,9 +523,9 @@
                                ibuffer-filter-groups
                              (append ibuffer-filter-groups
                                      (list (cons "Default" nil))))))
-;;     (dolist (hidden ibuffer-hidden-filter-groups)
-;;       (setq filter-group-alist (ibuffer-delete-alist
-;;                                hidden filter-group-alist)))
+    ;; (dolist (hidden ibuffer-hidden-filter-groups)
+    ;;   (setq filter-group-alist (ibuffer-delete-alist
+    ;;                            hidden filter-group-alist)))
     (let ((vec (make-vector (length filter-group-alist) nil))
          (i 0))
       (dolist (filtergroup filter-group-alist)
@@ -540,12 +540,13 @@
            (cl-incf i)
            (setq bmarklist lamers))))
       (let (ret)
-       (dotimes (j i ret)
+       (dotimes (j i)
          (let ((bufs (aref vec j)))
            (unless (and noempty (null bufs))
              (push (cons (car (nth j filter-group-alist))
                          bufs)
-                   ret))))))))
+                   ret))))
+        ret))))
 
 ;;;###autoload
 (defun ibuffer-filters-to-filter-group (name)
@@ -1100,9 +1101,9 @@
  Major Mode - the name of the major mode of the buffer
  Size - the size of the buffer"
   (interactive)
-  (let ((modes (mapcar 'car ibuffer-sorting-functions-alist)))
-    (add-to-list 'modes 'recency)
-    (setq modes (sort modes 'string-lessp))
+  (let ((modes (mapcar #'car ibuffer-sorting-functions-alist)))
+    (cl-pushnew 'recency modes)
+    (setq modes (sort modes #'string-lessp))
     (let ((next (or (car-safe (cdr-safe (memq ibuffer-sorting-mode modes)))
                     (car modes))))
       (setq ibuffer-sorting-mode next)

=== modified file 'lisp/ibuf-macs.el'
--- a/lisp/ibuf-macs.el 2014-01-01 07:43:34 +0000
+++ b/lisp/ibuf-macs.el 2014-09-22 14:10:53 +0000
@@ -1,4 +1,4 @@
-;;; ibuf-macs.el --- macros for ibuffer
+;;; ibuf-macs.el --- macros for ibuffer  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2000-2014 Free Software Foundation, Inc.
 
@@ -111,6 +111,7 @@
        ,(if inline
            `(push '(,sym ,bod) ibuffer-inline-columns)
          `(defun ,sym (buffer mark)
+             (ignore mark)            ;Silence byte-compiler if mark is unused.
             ,bod))
        (put (quote ,sym) 'ibuffer-column-name
            ,(if (stringp name)
@@ -204,7 +205,8 @@
   (declare (indent 2) (doc-string 3))
   `(progn
      (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op))
-                                "" "ibuffer-do-") (symbol-name op)))
+                                "" "ibuffer-do-")
+                             (symbol-name op)))
        ,args
        ,(if (stringp documentation)
            documentation
@@ -247,6 +249,9 @@
                                   (_
                                    'ibuffer-map-marked-lines))
                                #'(lambda (buf mark)
+                                    ;; Silence warning for code that doesn't
+                                    ;; use `mark'.
+                                    (ignore mark)
                                    ,(if (eq modifier-p :maybe)
                                         `(let 
((ibuffer-tmp-previous-buffer-modification
                                                 (buffer-modified-p buf)))

=== modified file 'lisp/ibuffer.el'
--- a/lisp/ibuffer.el   2014-08-31 20:44:36 +0000
+++ b/lisp/ibuffer.el   2014-09-22 14:10:53 +0000
@@ -1,4 +1,4 @@
-;;; ibuffer.el --- operate on buffers like dired
+;;; ibuffer.el --- operate on buffers like dired  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2000-2014 Free Software Foundation, Inc.
 
@@ -907,7 +907,7 @@
       (when (zerop columns)
        (setq columns 1))
       (while list
-       (dotimes (i (1- columns))
+       (dotimes (_ (1- columns))
          (insert (concat (car list) (make-string (- max (length (car list)))
                                                  ?\s)))
          (setq list (cdr list)))
@@ -1275,7 +1275,7 @@
    :modifier-p t)
   (set-buffer-modified-p (not (buffer-modified-p))))
 
-(define-ibuffer-op ibuffer-do-toggle-read-only (&optional arg)
+(define-ibuffer-op ibuffer-do-toggle-read-only (&optional _arg);FIXME:arg 
unused!
   "Toggle read only status in marked buffers.
 With optional ARG, make read-only only if ARG is not negative."
   (:opstring "toggled read only status in"
@@ -1520,7 +1520,7 @@
        ;; We use these variables to keep track of which variables
        ;; inside the generated function we need to bind, since
        ;; binding variables in Emacs takes time.
-       str-used tmp1-used tmp2-used global-strlen-used)
+       (vars-used ()))
     (dolist (form format)
       (push
        ;; Generate a form based on a particular format entry, like
@@ -1546,8 +1546,8 @@
               ;; This is a complex case; they want it limited to a
               ;; minimum size.
               (setq min-used t)
-              (setq str-used t strlen-used t global-strlen-used t
-                    tmp1-used t tmp2-used t)
+               (setq strlen-used t)
+              (setq vars-used '(str strlen tmp1 tmp2))
               ;; Generate code to limit the string to a minimum size.
               (setq minform `(progn
                                (setq str
@@ -1559,7 +1559,8 @@
                                            strlen)
                                        align)))))
             (when (or (not (integerp max)) (> max 0))
-              (setq str-used t max-used t)
+              (setq max-used t)
+               (cl-pushnew 'str vars-used)
               ;; Generate code to limit the string to a maximum size.
               (setq maxform `(progn
                                (setq str
@@ -1587,8 +1588,9 @@
                   ;; don't even understand it, and I wrote it five
                   ;; minutes ago.
                   (insertgenfn
-                    (ibuffer-aif (get sym 'ibuffer-column-summarizer)
+                    (if (get sym 'ibuffer-column-summarizer)
                         ;; I really, really wish Emacs Lisp had closures.
+                        ;; FIXME: Elisp does have them now.
                         (lambda (arg sym)
                           `(insert
                             (let ((ret ,arg))
@@ -1596,7 +1598,7 @@
                                    (cons ret (get ',sym
                                                   'ibuffer-column-summary)))
                               ret)))
-                      (lambda (arg sym)
+                      (lambda (arg _sym)
                         `(insert ,arg))))
                   (mincompform `(< strlen ,(if (integerp min)
                                                min
@@ -1624,10 +1626,9 @@
                          `(when ,maxcompform
                             ,maxform)))
                      outforms)
-                    (push (append
-                           `(setq str ,callform)
-                           (when strlen-used
-                             `(strlen (length str))))
+                    (push `(setq str ,callform
+                                  ,@(when strlen-used
+                                      `(strlen (length str))))
                           outforms)
                     (setq outforms
                           (append outforms
@@ -1640,25 +1641,17 @@
               `(let ,letbindings
                  ,@outforms)))))
        result))
-    (setq result
-         ;; We don't want to unconditionally load the byte-compiler.
-         (funcall (if (or ibuffer-always-compile-formats
-                          (featurep 'bytecomp))
-                      #'byte-compile
-                    #'identity)
-                  ;; Here, we actually create a lambda form which
-                  ;; inserts all the generated forms for each entry
-                  ;; in the format string.
-                  (nconc (list 'lambda '(buffer mark))
-                         `((let ,(append (when str-used
-                                           '(str))
-                                         (when global-strlen-used
-                                           '(strlen))
-                                         (when tmp1-used
-                                           '(tmp1))
-                                         (when tmp2-used
-                                           '(tmp2)))
-                             ,@(nreverse result))))))))
+    ;; We don't want to unconditionally load the byte-compiler.
+    (funcall (if (or ibuffer-always-compile-formats
+                     (featurep 'bytecomp))
+                 #'byte-compile
+               #'identity)
+             ;; Here, we actually create a lambda form which
+             ;; inserts all the generated forms for each entry
+             ;; in the format string.
+             `(lambda (buffer mark)
+                (let ,vars-used
+                  ,@(nreverse result))))))
 
 (defun ibuffer-recompile-formats ()
   "Recompile `ibuffer-formats'."
@@ -1676,8 +1669,8 @@
 
 (defun ibuffer-clear-summary-columns (format)
   (dolist (form format)
-    (ibuffer-awhen (and (consp form)
-                       (get (car form) 'ibuffer-column-summarizer))
+    (when (and (consp form)
+               (get (car form) 'ibuffer-column-summarizer))
       (put (car form) 'ibuffer-column-summary nil))))
 
 (defun ibuffer-check-formats ()


reply via email to

[Prev in Thread] Current Thread [Next in Thread]