diff options
author | defanor <defanor@uberspace.net> | 2017-10-28 05:30:42 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2017-10-28 05:30:42 +0300 |
commit | d2460666e8bffdc4079777755e19420b6777d134 (patch) | |
tree | 9a524f34ea1e7d9adc273b57794064045b74cbc3 | |
parent | df97f9ad38e54107ef433ccd00d67b9315701b2b (diff) |
Support interruptions
This is mostly to kill curl processes that take too long to finish.
-rw-r--r-- | Pancake.hs | 3 | ||||
-rw-r--r-- | pancake.el | 12 |
2 files changed, 11 insertions, 4 deletions
@@ -81,7 +81,8 @@ retrieve cmd uri = do >> pure BS.empty) $ withCreateProcess ((shell cmd) { env = Just environment , std_out = CreatePipe - , std_err = CreatePipe }) $ + , std_err = CreatePipe + , delegate_ctlc = True }) $ \_ stdout stderr ph -> case stdout of Nothing -> putErrLn "No stdout" >> pure BS.empty Just stdout' -> do @@ -235,6 +235,11 @@ (buffer-live-p (process-buffer process))) (kill-buffer (process-buffer process)))) +(defun pancake-interrupt () + "Send SIGINT to the process." + (interactive) + (interrupt-process pancake-process)) + (defun pancake-yank () "Insert a string." (interactive) @@ -257,14 +262,15 @@ it to `pancake-process' as input." (defvar pancake-mode-map (let ((map (make-sparse-keymap)) - (chars (cons ?? - (append (number-sequence ?0 ?9) - (number-sequence ?a ?z))))) + (chars (append (list ?? ?. ?/) + (number-sequence ?0 ?9) + (number-sequence ?a ?z)))) (dolist (char chars) (let ((str (char-to-string char))) (define-key map (kbd str) (pancake-input str)))) (define-key map (kbd "C-y") 'pancake-yank) (define-key map (kbd "<mouse-2>") 'pancake-yank-primary) + (define-key map (kbd "C-c C-c") 'pancake-interrupt) map) "Keymap for `pancake-mode'.") |