Commit 4e02f55c authored by John Paul Wallington's avatar John Paul Wallington
Browse files

(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.
parent 87a6a53a
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> 2008-05-14 Michael Albinus <michael.albinus@gmx.de>
   
* net/tramp.el (tramp-echo-mark): Update docstring. * net/tramp.el (tramp-echo-mark): Update docstring.
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
If TEST returns non-nil, bind `it' to the value, and evaluate If TEST returns non-nil, bind `it' to the value, and evaluate
TRUE-BODY. Otherwise, evaluate forms in FALSE-BODY as if in `progn'. TRUE-BODY. Otherwise, evaluate forms in FALSE-BODY as if in `progn'.
Compare with `if'." Compare with `if'."
(declare (indent 2))
(let ((sym (make-symbol "ibuffer-aif-sym"))) (let ((sym (make-symbol "ibuffer-aif-sym")))
`(let ((,sym ,test)) `(let ((,sym ,test))
(if ,sym (if ,sym
...@@ -43,18 +44,18 @@ Compare with `if'." ...@@ -43,18 +44,18 @@ Compare with `if'."
,true-body) ,true-body)
(progn (progn
,@false-body))))) ,@false-body)))))
;; (put 'ibuffer-aif 'lisp-indent-function 2)
(defmacro ibuffer-awhen (test &rest body) (defmacro ibuffer-awhen (test &rest body)
"Evaluate BODY if TEST returns non-nil. "Evaluate BODY if TEST returns non-nil.
During evaluation of body, bind `it' to the value returned by TEST." During evaluation of body, bind `it' to the value returned by TEST."
(declare (indent 1))
`(ibuffer-aif ,test `(ibuffer-aif ,test
(progn ,@body) (progn ,@body)
nil)) nil))
;; (put 'ibuffer-awhen 'lisp-indent-function 1)
(defmacro ibuffer-save-marks (&rest body) (defmacro ibuffer-save-marks (&rest body)
"Save the marked status of the buffers and execute BODY; restore marks." "Save the marked status of the buffers and execute BODY; restore marks."
(declare (indent 0))
(let ((bufsym (make-symbol "bufsym"))) (let ((bufsym (make-symbol "bufsym")))
`(let ((,bufsym (current-buffer)) `(let ((,bufsym (current-buffer))
(ibuffer-save-marks-tmp-mark-list (ibuffer-current-state-list))) (ibuffer-save-marks-tmp-mark-list (ibuffer-current-state-list)))
...@@ -70,7 +71,6 @@ During evaluation of body, bind `it' to the value returned by TEST." ...@@ -70,7 +71,6 @@ During evaluation of body, bind `it' to the value returned by TEST."
e)) e))
ibuffer-save-marks-tmp-mark-list))) ibuffer-save-marks-tmp-mark-list)))
(ibuffer-redisplay t)))))) (ibuffer-redisplay t))))))
;; (put 'ibuffer-save-marks 'lisp-indent-function 0)
;;;###autoload ;;;###autoload
(defmacro* define-ibuffer-column (symbol (&key name inline props summarizer (defmacro* define-ibuffer-column (symbol (&key name inline props summarizer
...@@ -98,6 +98,7 @@ change its definition, you should explicitly call ...@@ -98,6 +98,7 @@ change its definition, you should explicitly call
`ibuffer-recompile-formats'. `ibuffer-recompile-formats'.
\(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" \(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)"
(declare (indent defun))
(let* ((sym (intern (concat "ibuffer-make-column-" (let* ((sym (intern (concat "ibuffer-make-column-"
(symbol-name symbol)))) (symbol-name symbol))))
(bod-1 `(with-current-buffer buffer (bod-1 `(with-current-buffer buffer
...@@ -126,7 +127,6 @@ change its definition, you should explicitly call ...@@ -126,7 +127,6 @@ change its definition, you should explicitly call
;; summary. ;; summary.
`(put (quote ,sym) 'ibuffer-column-summary nil)) `(put (quote ,sym) 'ibuffer-column-summary nil))
:autoload-end))) :autoload-end)))
;; (put 'define-ibuffer-column 'lisp-indent-function 'defun)
;;;###autoload ;;;###autoload
(defmacro* define-ibuffer-sorter (name documentation (defmacro* define-ibuffer-sorter (name documentation
...@@ -143,6 +143,7 @@ buffer object, and `b' bound to another. BODY should return a non-nil ...@@ -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'. value if and only if `a' is \"less than\" `b'.
\(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" \(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)"
(declare (indent 1))
`(progn `(progn
(defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) () (defun ,(intern (concat "ibuffer-do-sort-by-" (symbol-name name))) ()
,(or documentation "No :documentation specified for this sorting method.") ,(or documentation "No :documentation specified for this sorting method.")
...@@ -157,7 +158,6 @@ value if and only if `a' is \"less than\" `b'. ...@@ -157,7 +158,6 @@ value if and only if `a' is \"less than\" `b'.
,@body)) ,@body))
ibuffer-sorting-functions-alist) ibuffer-sorting-functions-alist)
:autoload-end)) :autoload-end))
;; (put 'define-ibuffer-sorter 'lisp-indent-function 1)
;;;###autoload ;;;###autoload
(defmacro* define-ibuffer-op (op args (defmacro* define-ibuffer-op (op args
...@@ -202,6 +202,7 @@ COMPLEX means this function is special; see the source code of this ...@@ -202,6 +202,7 @@ COMPLEX means this function is special; see the source code of this
macro for exactly what it does. macro for exactly what it does.
\(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" \(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)"
(declare (indent 2))
`(progn `(progn
(defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op)) (defun ,(intern (concat (if (string-match "^ibuffer-do" (symbol-name op))
"" "ibuffer-do-") (symbol-name op))) "" "ibuffer-do-") (symbol-name op)))
...@@ -212,7 +213,7 @@ macro for exactly what it does. ...@@ -212,7 +213,7 @@ macro for exactly what it does.
,(if (not (null interactive)) ,(if (not (null interactive))
`(interactive ,interactive) `(interactive ,interactive)
'(interactive)) '(interactive))
(assert (eq major-mode 'ibuffer-mode)) (assert (derived-mode-p 'ibuffer-mode))
(setq ibuffer-did-modification nil) (setq ibuffer-did-modification nil)
(let ((marked-names (,(case mark (let ((marked-names (,(case mark
(:deletion (:deletion
...@@ -261,7 +262,6 @@ macro for exactly what it does. ...@@ -261,7 +262,6 @@ macro for exactly what it does.
,body) ,body)
body)))) body))))
:autoload-end)) :autoload-end))
;; (put 'define-ibuffer-op 'lisp-indent-function 2)
;;;###autoload ;;;###autoload
(defmacro* define-ibuffer-filter (name documentation (defmacro* define-ibuffer-filter (name documentation
...@@ -280,10 +280,11 @@ will be evaluated with BUF bound to the buffer object, and QUALIFIER ...@@ -280,10 +280,11 @@ will be evaluated with BUF bound to the buffer object, and QUALIFIER
bound to the current value of the filter. bound to the current value of the filter.
\(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" \(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)"
(declare (indent 2))
(let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name))))) (let ((fn-name (intern (concat "ibuffer-filter-by-" (symbol-name name)))))
`(progn `(progn
(defun ,fn-name (qualifier) (defun ,fn-name (qualifier)
,(concat (or documentation "This filter is not documented.")) ,(or documentation "This filter is not documented.")
(interactive (list ,reader)) (interactive (list ,reader))
(ibuffer-push-filter (cons ',name qualifier)) (ibuffer-push-filter (cons ',name qualifier))
(message "%s" (message "%s"
...@@ -296,7 +297,6 @@ bound to the current value of the filter. ...@@ -296,7 +297,6 @@ bound to the current value of the filter.
,@body)) ,@body))
ibuffer-filtering-alist) ibuffer-filtering-alist)
:autoload-end))) :autoload-end)))
;; (put 'define-ibuffer-filter 'lisp-indent-function 2)
(provide 'ibuf-macs) (provide 'ibuf-macs)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment