[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 ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117917: Use lexical-bindin in Ibuffer.,
Stefan Monnier <=