diff options
| author | Daniel Mendler <mail@daniel-mendler.de> | 2022-02-09 20:41:50 +0100 |
|---|---|---|
| committer | Daniel Mendler <mail@daniel-mendler.de> | 2022-02-09 20:42:29 +0100 |
| commit | 1e58824f29f1cbd4b4dd938412d19d1faa5651c1 (patch) | |
| tree | d58b44b2d2da7e89b23780564ad59e7d3baf0e34 | |
| parent | dde834126c2abcc0e518330ab15f17caffe6e824 (diff) | |
Ensure that future is cancelled properly (Fix #25)
| -rw-r--r-- | cape.el | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -882,13 +882,14 @@ If INTERACTIVE is nil the function acts like a capf." (funcall fetch (lambda (arg) (when (eq res 'cape--waiting) - (push 'cape--done unread-command-events)) - (setq res arg))) - (let ((ev (let (input-method-function) (read-event nil t)))) - (when (eq res 'cape--waiting) + (push 'cape--done unread-command-events) + (setq res arg)))) + (when (eq res 'cape--waiting) + (let ((ev (let (input-method-function) (read-event nil t)))) (unless (eq ev 'cape--done) - (push (cons t ev) unread-command-events)) - (throw toi t)))) + (push (cons t ev) unread-command-events) + (setq res 'cape--cancelled) + (throw toi t))))) (setq unread-command-events (delq 'cape--done unread-command-events))) (funcall fetch (lambda (arg) (setq res arg))) |
