From d2460666e8bffdc4079777755e19420b6777d134 Mon Sep 17 00:00:00 2001 From: defanor Date: Sat, 28 Oct 2017 05:30:42 +0300 Subject: Support interruptions This is mostly to kill curl processes that take too long to finish. --- Pancake.hs | 3 ++- pancake.el | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Pancake.hs b/Pancake.hs index 62ef0dd..49f2868 100644 --- a/Pancake.hs +++ b/Pancake.hs @@ -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 diff --git a/pancake.el b/pancake.el index c90c1e8..57cb848 100644 --- a/pancake.el +++ b/pancake.el @@ -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 "") 'pancake-yank-primary) + (define-key map (kbd "C-c C-c") 'pancake-interrupt) map) "Keymap for `pancake-mode'.") -- cgit v1.2.3