(ibuffer-aif, ibuffer-awhen, ibuffer-save-marks)
authorJohn Paul Wallington <jpw@pobox.com>
Thu, 15 May 2008 00:12:08 +0000 (00:12 +0000)
committerJohn Paul Wallington <jpw@pobox.com>
Thu, 15 May 2008 00:12:08 +0000 (00:12 +0000)
(define-ibuffer-column, define-ibuffer-sorter)
(define-ibuffer-op, define-ibuffer-filter): Add declarations
containing indentation specs, replacing equivalent top-level
forms that set `lisp-indent-function' properties.
(define-ibuffer-op): Use `derived-mode-p'.
(define-ibuffer-filter): Remove redundant `concat' call.

lisp/ChangeLog
lisp/ibuf-macs.el

index 379f273..f4e2660 100644 (file)
@@ -1,3 +1,20 @@
+2008-05-15  John Paul Wallington  <jpw@pobox.com>
+
+       * ibuffer.el (ibuffer-assert-ibuffer-mode): New defsubst.
+       (ibuffer-mark-interactive, ibuffer-set-mark)
+       (ibuffer-insert-buffer-line, ibuffer-redisplay-current)
+       (ibuffer-map-lines, ibuffer-switch-format)
+       (ibuffer-update-title-and-summary)
+       (ibuffer-redisplay-engine): Use it.
+
+       * ibuf-macs.el (ibuffer-aif, ibuffer-awhen, ibuffer-save-marks)
+       (define-ibuffer-column, define-ibuffer-sorter)
+       (define-ibuffer-op, define-ibuffer-filter): Add declarations
+       containing indentation specs, replacing equivalent top-level
+       forms that set `lisp-indent-function' properties.
+       (define-ibuffer-op): Use `derived-mode-p'.
+       (define-ibuffer-filter): Remove redundant `concat' call.
+
 2008-05-14  Michael Albinus  <michael.albinus@gmx.de>
 
        * net/tramp.el (tramp-echo-mark): Update docstring.
index 0519c43..6889b68 100644 (file)
@@ -36,6 +36,7 @@
 If TEST returns non-nil, bind `it' to the value, and evaluate
 TRUE-BODY.  Otherwise, evaluate forms in FALSE-BODY as if in `progn'.
 Compare with `if'."
+  (declare (indent 2))
   (let ((sym (make-symbol "ibuffer-aif-sym")))
     `(let ((,sym ,test))
        (if ,sym
@@ -43,18 +44,18 @@ Compare with `if'."
             ,true-body)
         (progn
           ,@false-body)))))
-;; (put 'ibuffer-aif 'lisp-indent-function 2)
 
 (defmacro ibuffer-awhen (test &rest body)
   "Evaluate BODY if TEST returns non-nil.
 During evaluation of body, bind `it' to the value returned by TEST."
+  (declare (indent 1))
   `(ibuffer-aif ,test
        (progn ,@body)
      nil))
-;; (put 'ibuffer-awhen 'lisp-indent-function 1)
 
 (defmacro ibuffer-save-marks (&rest body)
   "Save the marked status of the buffers and execute BODY; restore marks."
+  (declare (indent 0))
   (let ((bufsym (make-symbol "bufsym")))
     `(let ((,bufsym (current-buffer))
           (ibuffer-save-marks-tmp-mark-list (ibuffer-current-state-list)))
@@ -70,10 +71,9 @@ During evaluation of body, bind `it' to the value returned by TEST."
                                          e))
                          ibuffer-save-marks-tmp-mark-list)))
           (ibuffer-redisplay t))))))
-;; (put 'ibuffer-save-marks 'lisp-indent-function 0)
 
 ;;;###autoload
-(defmacro* define-ibuffer-column (symbol (&key name inline props summarizer 
+(defmacro* define-ibuffer-column (symbol (&key name inline props summarizer
                                               header-mouse-map) &rest body)
   "Define a column SYMBOL for use with `ibuffer-formats'.
 
@@ -98,14 +98,15 @@ change its definition, you should explicitly call
 `ibuffer-recompile-formats'.
 
 \(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)"
+  (declare (indent defun))
   (let* ((sym (intern (concat "ibuffer-make-column-"
                              (symbol-name symbol))))
         (bod-1 `(with-current-buffer buffer
                   ,@body))
         (bod (if props
-                `(propertize
-                  ,bod-1
-                  ,@props)
+                 `(propertize
+                   ,bod-1
+                   ,@props)
                bod-1)))
     `(progn
        ,(if inline
@@ -126,7 +127,6 @@ change its definition, you should explicitly call
            ;; summary.
            `(put (quote ,sym) 'ibuffer-column-summary nil))
        :autoload-end)))
-;; (put 'define-ibuffer-column 'lisp-indent-function 'defun)
 
 ;;;###autoload
 (defmacro* define-ibuffer-sorter (name documentation
@@ -143,6 +143,7 @@ buffer object, and `b' bound to another.  BODY should return a non-nil
 value if and only if `a' is \"less than\" `b'.
 
 \(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)"
+  (declare (indent 1))
   `(progn
      (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) ()
        ,(or documentation "No :documentation specified for this sorting method.")
@@ -157,7 +158,6 @@ value if and only if `a' is \"less than\" `b'.
                     ,@body))
           ibuffer-sorting-functions-alist)
      :autoload-end))
-;; (put 'define-ibuffer-sorter 'lisp-indent-function 1)
 
 ;;;###autoload
 (defmacro* define-ibuffer-op (op args
@@ -202,66 +202,66 @@ COMPLEX means this function is special; see the source code of this
 macro for exactly what it does.
 
 \(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)"
+  (declare (indent 2))
   `(progn
-    (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op))
-                               "" "ibuffer-do-") (symbol-name op)))
-      ,args
-     ,(if (stringp documentation)
-         documentation
-       (format "%s marked buffers." active-opstring))
-     ,(if (not (null interactive))
-         `(interactive ,interactive)
-       '(interactive))
-     (assert (eq major-mode 'ibuffer-mode))
-     (setq ibuffer-did-modification nil)
-     (let ((marked-names  (,(case mark
-                             (:deletion
-                              'ibuffer-deletion-marked-buffer-names)
-                             (t
-                              'ibuffer-marked-buffer-names)))))
-       (when (null marked-names)
-        (setq marked-names (list (buffer-name (ibuffer-current-buffer))))
-        (ibuffer-set-mark ,(case mark
-                             (:deletion
-                              'ibuffer-deletion-char)
-                             (t
-                              'ibuffer-marked-char))))
-       ,(let* ((finish (append
-                       '(progn)
-                       (if (eq modifier-p t)
-                           '((setq ibuffer-did-modification t))
-                         ())
-                       `((ibuffer-redisplay t)
-                         (message ,(concat "Operation finished; " opstring " %s buffers") count))))
-              (inner-body (if complex
-                              `(progn ,@body)
-                            `(progn
-                               (with-current-buffer buf
-                                 (save-excursion
-                                   ,@body))
-                               t)))
-              (body `(let ((count
-                            (,(case mark
-                                (:deletion
-                                 'ibuffer-map-deletion-lines)
-                                (t
-                                 'ibuffer-map-marked-lines))
-                             #'(lambda (buf mark)
-                                 ,(if (eq modifier-p :maybe)
-                                      `(let ((ibuffer-tmp-previous-buffer-modification
-                                              (buffer-modified-p buf)))
-                                         (prog1 ,inner-body
-                                           (when (not (eq ibuffer-tmp-previous-buffer-modification
-                                                          (buffer-modified-p buf)))
-                                             (setq ibuffer-did-modification t))))
-                                    inner-body)))))
-                       ,finish)))
-         (if dangerous
-             `(when (ibuffer-confirm-operation-on ,active-opstring marked-names)
-                ,body)
-           body))))
-    :autoload-end))
-;; (put 'define-ibuffer-op 'lisp-indent-function 2)
+     (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op))
+                                "" "ibuffer-do-") (symbol-name op)))
+       ,args
+       ,(if (stringp documentation)
+           documentation
+         (format "%s marked buffers." active-opstring))
+       ,(if (not (null interactive))
+           `(interactive ,interactive)
+         '(interactive))
+       (assert (derived-mode-p 'ibuffer-mode))
+       (setq ibuffer-did-modification nil)
+       (let ((marked-names  (,(case mark
+                               (:deletion
+                                'ibuffer-deletion-marked-buffer-names)
+                               (t
+                                'ibuffer-marked-buffer-names)))))
+        (when (null marked-names)
+          (setq marked-names (list (buffer-name (ibuffer-current-buffer))))
+          (ibuffer-set-mark ,(case mark
+                               (:deletion
+                                'ibuffer-deletion-char)
+                               (t
+                                'ibuffer-marked-char))))
+        ,(let* ((finish (append
+                         '(progn)
+                         (if (eq modifier-p t)
+                             '((setq ibuffer-did-modification t))
+                           ())
+                         `((ibuffer-redisplay t)
+                           (message ,(concat "Operation finished; " opstring " %s buffers") count))))
+                (inner-body (if complex
+                                `(progn ,@body)
+                              `(progn
+                                 (with-current-buffer buf
+                                   (save-excursion
+                                     ,@body))
+                                 t)))
+                (body `(let ((count
+                              (,(case mark
+                                  (:deletion
+                                   'ibuffer-map-deletion-lines)
+                                  (t
+                                   'ibuffer-map-marked-lines))
+                               #'(lambda (buf mark)
+                                   ,(if (eq modifier-p :maybe)
+                                        `(let ((ibuffer-tmp-previous-buffer-modification
+                                                (buffer-modified-p buf)))
+                                           (prog1 ,inner-body
+                                             (when (not (eq ibuffer-tmp-previous-buffer-modification
+                                                            (buffer-modified-p buf)))
+                                               (setq ibuffer-did-modification t))))
+                                      inner-body)))))
+                         ,finish)))
+           (if dangerous
+               `(when (ibuffer-confirm-operation-on ,active-opstring marked-names)
+                  ,body)
+             body))))
+     :autoload-end))
 
 ;;;###autoload
 (defmacro* define-ibuffer-filter (name documentation
@@ -280,23 +280,23 @@ will be evaluated with BUF bound to the buffer object, and QUALIFIER
 bound to the current value of the filter.
 
 \(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)"
+  (declare (indent 2))
   (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name)))))
     `(progn
        (defun ,fn-name (qualifier)
-        ,(concat (or documentation "This filter is not documented."))
+        ,(or documentation "This filter is not documented.")
         (interactive (list ,reader))
         (ibuffer-push-filter (cons ',name qualifier))
         (message "%s"
-         (format ,(concat (format "Filter by %s added: " description)
-                          " %s")
-                 qualifier))
+                 (format ,(concat (format "Filter by %s added: " description)
+                                  " %s")
+                         qualifier))
         (ibuffer-update nil t))
        (push (list ',name ,description
                   #'(lambda (buf qualifier)
                       ,@body))
             ibuffer-filtering-alist)
        :autoload-end)))
-;; (put 'define-ibuffer-filter 'lisp-indent-function 2)
 
 (provide 'ibuf-macs)