*** lisp/simple.el Tue Jun 1 13:35:21 2004 --- /home/tzz/emacs/mine/simple.el Tue Jun 1 13:53:43 2004 *************** *** 92,124 **** next-error-function))) ;; Return a next-error capable buffer according to the following rules: ! ;; 1. If the current buffer is a next-error capable buffer, return it. ! ;; 2. If one window on the selected frame displays such buffer, return it. ! ;; 3. If next-error-last-buffer is set to a live buffer, use that. ;; 4. Otherwise, look for a next-error capable buffer in a buffer list. ;; 5. Signal an error if there are none. (defun next-error-find-buffer (&optional other-buffer extra-test) ! (if (and (not other-buffer) ! (next-error-buffer-p (current-buffer) extra-test)) ! ;; The current buffer is a next-error capable buffer. ! (current-buffer) ! (or ! (let ((window-buffers ! (delete-dups ! (delq nil ! (mapcar (lambda (w) ! (and (next-error-buffer-p (window-buffer w) extra-test) ! (window-buffer w))) ! (window-list)))))) ! (if other-buffer ! (setq window-buffers (delq (current-buffer) window-buffers))) ! (if (eq (length window-buffers) 1) ! (car window-buffers))) ! (if (and next-error-last-buffer (buffer-name next-error-last-buffer) ! (next-error-buffer-p next-error-last-buffer extra-test) ! (or (not other-buffer) (not (eq next-error-last-buffer ! (current-buffer))))) ! next-error-last-buffer (let ((buffers (buffer-list))) (while (and buffers (or (not (next-error-buffer-p (car buffers) extra-test)) (and other-buffer --- 92,125 ---- next-error-function))) ;; Return a next-error capable buffer according to the following rules: ! ;; 1. If one window on the selected frame displays such buffer, return it. ! ;; 2. If next-error-last-buffer is set to a live buffer, use that. ! ;; 3. If the current buffer is a next-error capable buffer, return it. ;; 4. Otherwise, look for a next-error capable buffer in a buffer list. ;; 5. Signal an error if there are none. (defun next-error-find-buffer (&optional other-buffer extra-test) ! (or ! (let ((window-buffers ! (delete-dups ! (delq nil ! (mapcar (lambda (w) ! (and (next-error-buffer-p (window-buffer w) extra-test) ! (window-buffer w))) ! (window-list)))))) ! (if other-buffer ! (setq window-buffers (delq (current-buffer) window-buffers))) ! (if (eq (length window-buffers) 1) ! (car window-buffers))) ! (if (and next-error-last-buffer ! (buffer-name next-error-last-buffer) ! (next-error-buffer-p next-error-last-buffer extra-test) ! (or (not other-buffer) ! (not (eq next-error-last-buffer (current-buffer))))) ! next-error-last-buffer ! (if (and (not other-buffer) ! (next-error-buffer-p (current-buffer) extra-test)) ! ;; The current buffer is a next-error capable buffer. ! (current-buffer)))) (let ((buffers (buffer-list))) (while (and buffers (or (not (next-error-buffer-p (car buffers) extra-test)) (and other-buffer *************** *** 133,139 **** (if other-buffer (message "This is the only next-error capable buffer.")) (current-buffer))) ! (error "No next-error capable buffer found!")))))))) (defun next-error (arg &optional reset) "Visit next next-error message and corresponding source code. --- 134,140 ---- (if other-buffer (message "This is the only next-error capable buffer.")) (current-buffer))) ! (error "No next-error capable buffer found!"))))) (defun next-error (arg &optional reset) "Visit next next-error message and corresponding source code.