[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Recovering deleted ZWEI buffers.
Date: Sat, 9 Jan 88 21:01 PST
From: Jerry Bakin <Jerry@MARLOWE.inference.dialnet.symbolics.com>
Ok Ok, it was pretty stupid of me to delete a buffer I really wanted.
Actually, it was just a typo, I was in the buffer editor and typed a "D"
instead of an "S".
Hmm, I can undelete files, is there some way to undelete a buffer?
Anyway, the buffer was gone, and I wanted it back.
Here's what I did. It seems to work. I must say, while dynamic windows
were not crucial to this, it sure made it easy to crawl through the area
when I could click describe on a structure.
Can we quote you on this? How would you have gone about
it without using the output history? Wonder if it's doable
entirely from within the editor.
Jerry.
;;; -*- Syntax: Zetalisp; Base: 10; Mode: LISP; Package: ZWEI -*-
1;;; To "recover a buffer":
0 1;;; 1) Use find-buffers in a dynamic listener to list ALL buffers
0 1;;; (substr implies only those buffers with substr in their name)
0 1;;; 2) Use recover-buffer and click over the buffer
0 1;;; 3) Use copy output history into editor and make the final0 1edits.
0 (defun find-buffers (&optional substr)
(si:map-over-objects-in-area
zwei:*zmacs-buffer-area* #'si:region-predicate-structure
#'(lambda (region address header leader size)
(when (typep header 'buffer)
(if substr
(when (string-search substr (send header :name))
(format t "~%~S" header))
(format t "~%~S" header))))))
(defun recover-buffer (b)
(let ((*interval* b))
(loop with bp = (send *interval* :first-bp)
do (format t "~%~A" (bp-line bp))
while bp
do (setf bp (forward-line bp)))))
Thanks for another winning utility! Most everyone
will need it sooner or later.
-trev