[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] scratch/mheerdegen-preview 86f4f18 17/33: WIP [el-search] Fix C-j
From: |
Michael Heerdegen |
Subject: |
[elpa] scratch/mheerdegen-preview 86f4f18 17/33: WIP [el-search] Fix C-j with numeric arg in error case |
Date: |
Wed, 24 Oct 2018 18:30:51 -0400 (EDT) |
branch: scratch/mheerdegen-preview
commit 86f4f18ecdb41b45c950865730f94a9952588d4c
Author: Michael Heerdegen <address@hidden>
Commit: Michael Heerdegen <address@hidden>
WIP [el-search] Fix C-j with numeric arg in error case
---
packages/el-search/el-search.el | 76 ++++++++++++++++++++++-------------------
1 file changed, 41 insertions(+), 35 deletions(-)
diff --git a/packages/el-search/el-search.el b/packages/el-search/el-search.el
index 4715149..d518d1a 100644
--- a/packages/el-search/el-search.el
+++ b/packages/el-search/el-search.el
@@ -2758,41 +2758,47 @@ make current."
(el-search-continue-search))
(setq this-command 'el-search-pattern)
(pop-to-buffer current-search-buffer
el-search-display-buffer-popup-action)
- (let ((last-match (el-search-object-last-match search)))
- (cond
- ((< (prefix-numeric-value arg) 0)
- (progn (setq arg (prefix-numeric-value arg))
- (goto-char (window-end))))
- ((not (numberp arg))
- (goto-char (if (not (and last-match
- ;; this should only happen for bad search
patterns
- (eq (marker-buffer last-match)
(current-buffer))))
- (el-search-head-position current-head)
- last-match)))
- ((zerop arg) (setq arg 1))
- (t (goto-char (window-start))))
- (let ((match-pos
- (save-excursion
- (el-search--search-pattern-1
- (el-search--current-matcher)
- (not (numberp arg)) nil ;FIXME: Handle no match case
explicitly
- (el-search--current-heuristic-matcher)
- (if (numberp arg) arg 1)))))
- (unless (or (numberp arg) (eq (point) match-pos))
- (message "No match at search head any more - going to the next
match")
- (redisplay)
- ;; Don't just `sit-for' here: `pop-to-buffer' may have generated
frame
- ;; focus events
- (sleep-for 1.5))
- (if (not match-pos)
- (el-search-continue-search)
- (goto-char match-pos)
- (setf (el-search-head-position current-head)
- (copy-marker (point)))
- (setf (el-search-object-last-match el-search--current-search)
- (copy-marker (point)))
- (el-search-hl-sexp)
- (el-search-hl-other-matches (el-search--current-matcher))))))
+ (el-search-protect-search-head
+ (let ((last-match (el-search-object-last-match search)))
+ (cond
+ ((< (prefix-numeric-value arg) 0)
+ (progn (setq arg (prefix-numeric-value arg))
+ (goto-char (window-end))))
+ ((not (numberp arg))
+ (goto-char (if (not (and last-match
+ ;; this should only happen for bad
search patterns
+ (eq (marker-buffer last-match)
(current-buffer))))
+ (el-search-head-position current-head)
+ last-match)))
+ ((zerop arg) (setq arg 1))
+ (t (goto-char (window-start))))
+ (let ((match-pos
+ (save-excursion
+ (el-search--search-pattern-1
+ (el-search--current-matcher)
+ t nil
+ (el-search--current-heuristic-matcher)
+ (if (numberp arg) arg 1)))))
+ (when (and (numberp arg) (not match-pos))
+ (setq el-search--success nil)
+ (el-search-hl-post-command-fun 'stop)
+ (goto-char el-search--search-origin)
+ (user-error "No match there"))
+ (unless (or (numberp arg) (eq (point) match-pos))
+ (message "No match at search head any more - going to the next
match")
+ (redisplay)
+ ;; Don't just `sit-for' here: `pop-to-buffer' may have
generated frame
+ ;; focus events
+ (sleep-for 1.5))
+ (if (not match-pos)
+ (el-search-continue-search)
+ (goto-char match-pos)
+ (setf (el-search-head-position current-head)
+ (copy-marker (point)))
+ (setf (el-search-object-last-match el-search--current-search)
+ (copy-marker (point)))
+ (el-search-hl-sexp)
+ (el-search-hl-other-matches (el-search--current-matcher)))))))
(el-search--message-no-log "[Search completed - restarting]")
(sit-for 1.5)
(el-search-reset-search el-search--current-search)
- [elpa] scratch/mheerdegen-preview 1fcb333 03/33: WIP: Add package "sscell", (continued)
- [elpa] scratch/mheerdegen-preview 1fcb333 03/33: WIP: Add package "sscell", Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 35be4f8 12/33: WIP [el-search] Fix more "redundant _ pattern" cases, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview fa8dbb8 07/33: WIP: New file el-search/el-search-pp.el, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview ffd1bb1 13/33: WIP [el-search] Discourage using symbols as LPATS in `append' and `l', Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview aca1cea 10/33: WIP [el-search] Implement 'el-search-keyboard-quit', Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 9773b43 18/33: WIP [el-search] Fix search setup when occur flag bound, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 35edf10 23/33: WIP: Improvise eldoc support for search pattern prompt, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 08e0d20 15/33: WIP: Additions to "Mb hints", Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 60fd31c 19/33: WIP [el-search] Adjust prev/next match commands for search and occur, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview fb5a73b 30/33: WIP: Small fix in 'el-search--reset-wrap-flag', Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 86f4f18 17/33: WIP [el-search] Fix C-j with numeric arg in error case,
Michael Heerdegen <=
- [elpa] scratch/mheerdegen-preview 1d22a6c 14/33: WIP [el-search] Minibuffer hints when entering pattern, Fix case when search pattern fails for some sexps, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 0e37f94 28/33: WIP: Add alarm-clock.el, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 6a048a7 26/33: WIP: Don't initially fold occur buffer, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 6de70fb 20/33: WIP: Improvements for change and changed, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 0d07bb8 33/33: WIP: [el-search] Don't kill modified buffers, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 8391d56 31/33: WIP: Small fix in el-search--changed-files-in-repo, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 19bbc05 21/33: WIP: More colorful match count, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 4900664 29/33: WIP: Fix C-A and C-J after finished single-buffer search, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview 10e346c 25/33: WIP: [el-search] Some minor tweaks, Michael Heerdegen, 2018/10/24
- [elpa] scratch/mheerdegen-preview dc25f93 09/33: WIP: qr: Make shown replacement editable and ediffable; r twice restores match; stop for problematic comments, Michael Heerdegen, 2018/10/24