[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/coterm bd103f9 56/80: [auto-char] Fix searching in less
From: |
ELPA Syncer |
Subject: |
[elpa] externals/coterm bd103f9 56/80: [auto-char] Fix searching in less |
Date: |
Wed, 13 Oct 2021 18:57:36 -0400 (EDT) |
branch: externals/coterm
commit bd103f9f8b11db975680229df87af36ee37fcdc3
Author: m <>
Commit: m <>
[auto-char] Fix searching in less
---
coterm.el | 68 ++++++++++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 48 insertions(+), 20 deletions(-)
diff --git a/coterm.el b/coterm.el
index 376a630..afd4a86 100644
--- a/coterm.el
+++ b/coterm.el
@@ -236,26 +236,54 @@ If point is not on process mark, leave `coterm-char-mode'
and
(when coterm-scroll-snap-mode (coterm-scroll-snap-mode -1)))))
(defun coterm--auto-char-less-prompt ()
- "Enter `coterm-char-mode' if a \"less\" prompt is detected."
- (when (eobp)
- (let ((opoint (point)))
- (forward-line 0)
- (prog1
- (when (looking-at
- (concat
- "\\(?:"
- ":\\|"
- "(END)\\|"
- "byte [0-9]+\\|"
- "100%\\|"
- "\\(?:.* \\)?" "[0-9]?[0-9]%\\|"
- ".*(press h for help or q to quit)\\|"
- ".*(press RETURN)"
- "\\)\\'"))
- (unless coterm-char-mode (coterm-char-mode 1))
- (unless coterm-scroll-snap-mode (coterm-scroll-snap-mode 1))
- t)
- (goto-char opoint)))))
+ "Enter `coterm-char-mode' if a \"less\" prompt is detected.
+In addition, temporarily modify `coterm-auto-char-functions' such
+that char mode is maintained even if the user presses \"/\",
+\":\", \"ESC\" or \"-\"."
+ (when (and (eobp) (coterm--auto-char-less-prompt-1))
+ (unless coterm-char-mode (coterm-char-mode 1))
+ (unless coterm-scroll-snap-mode (coterm-scroll-snap-mode 1))
+ (cl-labels
+ ((hook ()
+ (if (not (eobp))
+ (rem-hook)
+ (or
+ (coterm--auto-char-less-prompt-1)
+ (progn
+ (forward-line 0)
+ (prog1 (looking-at (concat
+ "\\(?: ESC\\| :\\|-\\)\\'\\|"
+ "Examine: \\|/"))
+ (goto-char (point-max))))
+ (rem-hook))))
+ (rem-hook ()
+ (remove-hook 'coterm-auto-char-functions #'hook t)
+ (remove-hook 'coterm-auto-char-mode-hook #'rem-hook t)
+ (remove-hook 'coterm-char-mode-hook #'rem-hook t)
+ (remove-hook 'coterm-scroll-snap-mode-hook #'rem-hook t)
+ nil))
+ (add-hook 'coterm-auto-char-functions #'hook nil t)
+ (add-hook 'coterm-auto-char-mode-hook #'rem-hook nil t)
+ (add-hook 'coterm-char-mode-hook #'rem-hook nil t)
+ (add-hook 'coterm-scroll-snap-mode-hook #'rem-hook nil t))
+ t))
+
+(defun coterm--auto-char-less-prompt-1 ()
+ "Return t if point is after a less prompt."
+ (let ((opoint (point)))
+ (forward-line 0)
+ (prog1 (looking-at
+ (concat
+ "\\(?:"
+ ":\\|"
+ "(END)\\|"
+ "byte [0-9]+\\|"
+ "100%\\|"
+ "\\(?:.* \\)?" "[0-9]?[0-9]%\\|"
+ ".*(press h for help or q to quit)\\|"
+ ".*(press RETURN)"
+ "\\)\\'"))
+ (goto-char opoint))))
(defun coterm--auto-char-mpv-prompt ()
"Enter `coterm-char-mode' if a mpv prompt is detected.
- [elpa] externals/coterm 753fba8 21/80: Refactor line deletion and insertion, (continued)
- [elpa] externals/coterm 753fba8 21/80: Refactor line deletion and insertion, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 9d532fb 22/80: Refactor some more, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm e21bb54 18/80: Major refactor and started scroll region, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 4a23ae2 23/80: Further refactor some more, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 08cf379 19/80: Minor fixes, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 9e7720b 37/80: Use save-excursion more sparingly, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 4943e16 41/80: Footer and header, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm d6912da 42/80: Support sequences \eE[E, F and G (pacman uses them), ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 71d2dc1 30/80: Implement user-facing variables and minor mode, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm dfebb62 46/80: Add comint output filter function buffer locally, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm bd103f9 56/80: [auto-char] Fix searching in less,
ELPA Syncer <=
- [elpa] externals/coterm d5042f6 65/80: Inhibit Emacs from automatically decoding \r\n into \n, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 90823af 77/80: Revert "Inhibit Emacs from automatically decoding \r\n into \n", ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 066cd45 70/80: Explain how coterm does/doesn't do line-wrapping, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 08208f3 33/80: Handle \r\n sequence properly, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm f334168 24/80: Rename function, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 8b2836e 28/80: Fix incorrect handling of incomplete escape sequences, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 1ec97d2 29/80: \n doesn't go to column 0, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 9184a46 34/80: Always synchronize pmark at the end, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm e64027a 43/80: Restore 'window-point' of non-selected windows, ELPA Syncer, 2021/10/13
- [elpa] externals/coterm 8f0a13b 44/80: Refactor scroll snapping, snap in all windows, ELPA Syncer, 2021/10/13