comparison lisp/ibuf-ext.el @ 89943:4c90ffeb71c5

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-15 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-218 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-220 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-221 Restore deleted tagline in etc/TUTORIAL.ru * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-222 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-228 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-229 Remove TeX output files from the archive * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-230 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248 src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-256 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-258 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-263 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-264 Update from CVS: lispref/display.texi: emacs -> Emacs. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-265 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-274 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-275 Update from CVS: man/makefile.w32-in: Revert last change * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-276 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-295 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-296 Allow restarting an existing debugger session that's exited * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-297 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328 Update from CVS: src/.gdbinit (xsymbol): Fix last change. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-344 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-345 Tweak source regexps so that building in place won't cause problems * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-346 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-351 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-352 Update from CVS: lisp/flymake.el: New file. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-361 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362 Support " [...]" style defaults in minibuffer-electric-default-mode * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-363 (read-number): Use canonical format for default in prompt. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-364 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-367 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368 Improve display-supports-face-attributes-p on non-ttys * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369 Rewrite face-differs-from-default-p * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-370 Move `display-supports-face-attributes-p' entirely into C code * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-371 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372 Simplify face-differs-from-default-p; don't consider :stipple. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-373 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-374 (tty_supports_face_attributes_p): Ensure attributes differ from default * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-375 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-376 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-377 (Fdisplay_supports_face_attributes_p): Work around bootstrapping problem * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-378 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-380 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-381 Face merging cleanups * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-382 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385 src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-395 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396 Tweak arch tagging to make build/install-in-place less annoying * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-397 Work around vc-arch problems when building eshell * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-398 Tweak permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-399 Tweak directory permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-400 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-401 More build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-402 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-403 Yet more build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-404 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-409 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-410 Make sure image types are initialized for lookup too * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-411 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-416 Update from CVS
author Miles Bader <miles@gnu.org>
date Mon, 28 Jun 2004 07:56:49 +0000
parents 68c22ea6027c 3d233a8d8d1f
children 566253900690
comparison
equal deleted inserted replaced
89942:9cb747ae49af 89943:4c90ffeb71c5
1 ;;; ibuf-ext.el --- extensions for ibuffer 1 ;;; ibuf-ext.el --- extensions for ibuffer
2 2
3 ;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. 3 ;; Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4 4
5 ;; Author: Colin Walters <walters@verbum.org> 5 ;; Author: Colin Walters <walters@verbum.org>
6 ;; Maintainer: John Paul Wallington <jpw@gnu.org> 6 ;; Maintainer: John Paul Wallington <jpw@gnu.org>
7 ;; Created: 2 Dec 2001 7 ;; Created: 2 Dec 2001
8 ;; Keywords: buffer, convenience 8 ;; Keywords: buffer, convenience
1222 'kill)))) 1222 'kill))))
1223 (message "Killed %s lines" count)))) 1223 (message "Killed %s lines" count))))
1224 1224
1225 ;;;###autoload 1225 ;;;###autoload
1226 (defun ibuffer-jump-to-buffer (name) 1226 (defun ibuffer-jump-to-buffer (name)
1227 "Move point to the buffer whose name is NAME." 1227 "Move point to the buffer whose name is NAME.
1228
1229 If called interactively, prompt for a buffer name and go to the
1230 corresponding line in the Ibuffer buffer. If said buffer is in a
1231 hidden group filter, open it.
1232
1233 If `ibuffer-jump-offer-only-visible-buffers' is non-nil, only offer
1234 visible buffers in the completion list. Calling the command with
1235 a prefix argument reverses the meaning of that variable."
1228 (interactive (list nil)) 1236 (interactive (list nil))
1229 (let ((table (mapcar #'(lambda (x) 1237 (let ((only-visible ibuffer-jump-offer-only-visible-buffers))
1230 (cons (buffer-name (car x)) 1238 (when current-prefix-arg
1231 (caddr x))) 1239 (setq only-visible (not only-visible)))
1232 (ibuffer-current-state-list t)))) 1240 (if only-visible
1233 (when (null table) 1241 (let ((table (mapcar #'(lambda (x)
1234 (error "No buffers!")) 1242 (buffer-name (car x)))
1235 (when (interactive-p) 1243 (ibuffer-current-state-list))))
1236 (setq name (completing-read "Jump to buffer: " table nil t))) 1244 (when (null table)
1237 (ibuffer-aif (assoc name table) 1245 (error "No buffers!"))
1238 (goto-char (cdr it)) 1246 (when (interactive-p)
1239 (error "No buffer with name %s" name)))) 1247 (setq name (completing-read "Jump to buffer: "
1248 table nil t))))
1249 (when (interactive-p)
1250 (setq name (read-buffer "Jump to buffer: " nil t))))
1251 (when (not (string= "" name))
1252 (let (buf-point)
1253 ;; Blindly search for our buffer: it is very likely that it is
1254 ;; not in a hidden filter group.
1255 (ibuffer-map-lines #'(lambda (buf marks)
1256 (when (string= (buffer-name buf) name)
1257 (setq buf-point (point))
1258 nil))
1259 t nil)
1260 (when (and
1261 (null buf-point)
1262 (not (null ibuffer-hidden-filter-groups)))
1263 ;; We did not find our buffer. It must be in a hidden filter
1264 ;; group, so go through all hidden filter groups to find it.
1265 (catch 'found
1266 (dolist (group ibuffer-hidden-filter-groups)
1267 (ibuffer-jump-to-filter-group group)
1268 (ibuffer-toggle-filter-group)
1269 (ibuffer-map-lines #'(lambda (buf marks)
1270 (when (string= (buffer-name buf) name)
1271 (setq buf-point (point))
1272 nil))
1273 t group)
1274 (if buf-point
1275 (throw 'found nil)
1276 (ibuffer-toggle-filter-group)))))
1277 (if (null buf-point)
1278 ;; Still not found even though we expanded all hidden filter
1279 ;; groups: that must be because it's hidden by predicate:
1280 ;; we won't bother trying to display it.
1281 (error "No buffer with name %s" name)
1282 (goto-char buf-point))))))
1240 1283
1241 ;;;###autoload 1284 ;;;###autoload
1242 (defun ibuffer-diff-with-file () 1285 (defun ibuffer-diff-with-file ()
1243 "View the differences between this buffer and its associated file. 1286 "View the differences between this buffer and its associated file.
1244 This requires the external program \"diff\" to be in your `exec-path'." 1287 This requires the external program \"diff\" to be in your `exec-path'."