From 2dba8380156dbaec82985fce76ed549489c1dfc6 Mon Sep 17 00:00:00 2001
From: Andrey Kotlarski <m00naticus@gmail.com>
Date: Tue, 3 Dec 2013 02:04:27 +0200
Subject: [PATCH] In case original VLF buffer has been killed, try to find
 existing VLF buffer for the same file when visiting occur results.

---
 vlf.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/vlf.el b/vlf.el
index 84049d7..ea2248a 100644
--- a/vlf.el
+++ b/vlf.el
@@ -696,7 +696,13 @@ EVENT may hold details of the invocation."
                             pos-relative)))
           (or (buffer-live-p buffer)
               (let ((occur-buffer (current-buffer)))
-                (setq buffer (vlf file))
+                (or (catch 'found
+                      (dolist (buf (buffer-list))
+                        (set-buffer buf)
+                        (and vlf-mode (equal file buffer-file-name)
+                             (setq buffer buf)
+                             (throw 'found t))))
+                    (setq buffer (vlf file)))
                 (switch-to-buffer occur-buffer)))
           (pop-to-buffer buffer)
           (vlf-move-to-chunk chunk-start chunk-end)
@@ -708,7 +714,7 @@ Prematurely ending indexing will still show what's found so far."
   (interactive (list (read-regexp "List lines matching regexp"
                                   (if regexp-history
                                       (car regexp-history)))))
-  (if (buffer-modified-p) ;use temporary buffer not to interfere with modifications 
+  (if (buffer-modified-p) ;use temporary buffer not to interfere with modifications
       (let ((vlf-buffer (current-buffer))
             (file buffer-file-name)
             (batch-size vlf-batch-size))