emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/vlf 3cfa9b1 273/310: Refactor vlf-query-replace and don


From: Stefan Monnier
Subject: [elpa] externals/vlf 3cfa9b1 273/310: Refactor vlf-query-replace and don't adjust batch size if only
Date: Sat, 28 Nov 2020 00:33:30 -0500 (EST)

branch: externals/vlf
commit 3cfa9b19350375512e1b06b2275bef413bec3ab4
Author: Andrey Kotlarski <m00naticus@gmail.com>
Commit: Andrey Kotlarski <m00naticus@gmail.com>

    Refactor vlf-query-replace and don't adjust batch size if only
    statistics are enabled.
---
 vlf-search.el | 65 +++++++++++++++++++++++++----------------------------------
 vlf-tune.el   |  2 +-
 2 files changed, 29 insertions(+), 38 deletions(-)

diff --git a/vlf-search.el b/vlf-search.el
index 7a67467..5be45b7 100644
--- a/vlf-search.el
+++ b/vlf-search.el
@@ -328,45 +328,36 @@ Assume `hexl-mode' is active."
 
 (defun vlf-query-replace (regexp to-string &optional delimited backward)
   "Query replace over whole file matching REGEXP with TO-STRING.
-Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
+Third arg DELIMITED (prefix arg if interactive), if non-nil, replace
 only matches surrounded by word boundaries.  A negative prefix arg means
 replace BACKWARD."
-  (interactive
-   (let ((common (query-replace-read-args
-                  (concat "Query replace over whole file"
-                          (if current-prefix-arg
-                              (if (eq current-prefix-arg '-)
-                                  " backward"
-                                " word")
-                            "")
-                          " regexp")
-                  t)))
-     (list (nth 0 common) (nth 1 common) (nth 2 common) (nth 3 common))))
-  (query-replace-regexp regexp to-string delimited nil nil backward)
-  (if (buffer-modified-p)
-      (save-buffer))
-  (let ((match-found t)
-        (automatic (eq (lookup-key query-replace-map
-                                   (vector last-input-event))
-                       'automatic)))
-    (while (and match-found (if backward
-                                (not (zerop vlf-start-pos))
-                              (< vlf-end-pos vlf-file-size)))
-      (setq match-found (vlf-re-search regexp 1 backward
-                                       (min 1024 (/ vlf-batch-size 8))))
-      (when match-found
-        (cond ((not automatic)
-               (query-replace-regexp regexp to-string delimited
-                                     nil nil backward)
-               (setq automatic (eq (lookup-key query-replace-map
-                                               (vector last-input-event))
-                                   'automatic)))
-              (backward (while (re-search-backward regexp nil t)
-                          (replace-match to-string)))
-              (t (while (re-search-forward regexp nil t)
-                   (replace-match to-string))))
-        (if (buffer-modified-p)
-            (save-buffer))))))
+  (interactive (let ((common (query-replace-read-args
+                              (concat "Query replace over whole file"
+                                      (if current-prefix-arg
+                                          (if (eq current-prefix-arg '-)
+                                              " backward"
+                                            " word")
+                                        "")
+                                      " regexp")
+                              t)))
+                 (list (nth 0 common) (nth 1 common) (nth 2 common)
+                       (nth 3 common))))
+  (let ((not-automatic t))
+    (while (vlf-re-search regexp 1 backward
+                          (min 1024 (/ vlf-batch-size 8)))
+      (cond (not-automatic
+             (query-replace-regexp regexp to-string delimited
+                                   nil nil backward)
+             (setq not-automatic
+                   (not (eq (lookup-key query-replace-map
+                                        (vector last-input-event))
+                            'automatic))))
+            (backward (while (re-search-backward regexp nil t)
+                        (replace-match to-string)))
+            (t (while (re-search-forward regexp nil t)
+                 (replace-match to-string))))
+      (if (buffer-modified-p)
+          (save-buffer)))))
 
 (provide 'vlf-search)
 
diff --git a/vlf-tune.el b/vlf-tune.el
index eb0fa81..c2fe69a 100644
--- a/vlf-tune.el
+++ b/vlf-tune.el
@@ -382,7 +382,7 @@ Suitable for multiple batch operations."
 Best considered where primitive operations total is closest to
 `vlf-tune-load-time'.  If MIN-IDX and MAX-IDX are given,
 confine search to this region."
-  (if vlf-tune-enabled
+  (if (eq vlf-tune-enabled t)
       (progn
         (setq min-idx (max 0 (or min-idx 0))
               max-idx (min (or max-idx vlf-tune-max)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]