[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org 76643256f2: ol-man: Set window point not buffer poi
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org 76643256f2: ol-man: Set window point not buffer point and wait before search |
Date: |
Wed, 10 Aug 2022 07:57:54 -0400 (EDT) |
branch: externals/org
commit 76643256f2bddb79908a41c264c43de3e06a70dd
Author: Tom Gillespie <tgbugs@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>
ol-man: Set window point not buffer point and wait before search
* lisp/ol-man.el (org-man-open): Set window point not buffer point and
wait before search. When passed man:path::SEARCH `org-man-open' uses
`search-forward' to jump to the location of e.g. a heading. Prior to
this fix it only used `search-forward', which will not change the
point of the cursor in the window, meaning that even if there is a
match it will not appear. Use `accept-process-output' to block until
the manpage finishes rendering before searching the buffer so that
there will be something to find.
---
lisp/ol-man.el | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/lisp/ol-man.el b/lisp/ol-man.el
index aa22964c54..24e896f30e 100644
--- a/lisp/ol-man.el
+++ b/lisp/ol-man.el
@@ -43,12 +43,22 @@ If PATH contains extra ::STRING which will use `occur' to
search
matched strings in man buffer."
(string-match "\\(.*?\\)\\(?:::\\(.*\\)\\)?$" path)
(let* ((command (match-string 1 path))
- (search (match-string 2 path)))
- (funcall org-man-command command)
+ (search (match-string 2 path))
+ (buffer (funcall org-man-command command)))
(when search
- (with-current-buffer (concat "*Man " command "*")
- (goto-char (point-min))
- (search-forward search)))))
+ (with-current-buffer buffer
+ (goto-char (point-min))
+ (unless (search-forward search nil t)
+ (let ((process (get-buffer-process buffer)))
+ (while (process-live-p process)
+ (accept-process-output process)))
+ (goto-char (point-min))
+ (search-forward search))
+ (forward-line -1)
+ (let ((point (point)))
+ (let ((window (get-buffer-window buffer)))
+ (set-window-point window point)
+ (set-window-start window point)))))))
(defun org-man-store-link ()
"Store a link to a README file."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/org 76643256f2: ol-man: Set window point not buffer point and wait before search,
ELPA Syncer <=