From 7db4c10a8a23e211273498a3ea0df8223d1acb19 Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Mon, 3 Apr 2006 09:12:08 +0000 Subject: [PATCH] 2006-04-03 Daiki Ueno * pgg-gpg.el (pgg-gpg-process-filter) (pgg-gpg-wait-for-completion): Check if buffer is alive. * pgg-gpg.el (pgg-gpg-process-sentinel): Don't remove GNUPG: lines, temporary fix. --- lisp/ChangeLog | 8 +++++ lisp/pgg-gpg.el | 82 +++++++++++++++++++++++++------------------------ 2 files changed, 50 insertions(+), 40 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2f7e50357b4..ccd4dba89c9 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2006-04-03 Daiki Ueno + + * pgg-gpg.el (pgg-gpg-process-filter) + (pgg-gpg-wait-for-completion): Check if buffer is alive. + + * pgg-gpg.el (pgg-gpg-process-sentinel): Don't remove GNUPG: + lines, temporary fix. + 2006-04-02 Dan Nicolaescu * ibuf-macs.el (define-ibuffer-column): Document the new parameter. diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el index b171929ad41..986d3f8d343 100644 --- a/lisp/pgg-gpg.el +++ b/lisp/pgg-gpg.el @@ -107,33 +107,34 @@ process)) (defun pgg-gpg-process-filter (process input) - (save-excursion - (if pgg-gpg-debug - (save-excursion - (set-buffer (get-buffer-create " *pgg-gpg-debug*")) - (goto-char (point-max)) - (insert input))) - (set-buffer (process-buffer process)) - (goto-char (point-max)) - (insert input) - (goto-char pgg-gpg-read-point) - (beginning-of-line) - (while (looking-at ".*\n") ;the input line is finished + (if (buffer-live-p (process-buffer process)) (save-excursion - (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\)\\>.*") - (let* ((status (match-string 1)) - (symbol (intern-soft (concat "pgg-gpg-status-" status))) - (entry (member status pgg-gpg-pending-status-list))) - (if entry - (setq pgg-gpg-pending-status-list - (delq (car entry) - pgg-gpg-pending-status-list))) - (if (and symbol - (fboundp symbol)) - (funcall symbol process (buffer-substring (match-beginning 1) - (match-end 0))))))) - (forward-line)) - (setq pgg-gpg-read-point (point)))) + (if pgg-gpg-debug + (save-excursion + (set-buffer (get-buffer-create " *pgg-gpg-debug*")) + (goto-char (point-max)) + (insert input))) + (set-buffer (process-buffer process)) + (goto-char (point-max)) + (insert input) + (goto-char pgg-gpg-read-point) + (beginning-of-line) + (while (looking-at ".*\n") ;the input line is finished + (save-excursion + (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\)\\>.*") + (let* ((status (match-string 1)) + (symbol (intern-soft (concat "pgg-gpg-status-" status))) + (entry (member status pgg-gpg-pending-status-list))) + (if entry + (setq pgg-gpg-pending-status-list + (delq (car entry) + pgg-gpg-pending-status-list))) + (if (and symbol + (fboundp symbol)) + (funcall symbol process (buffer-substring (match-beginning 1) + (match-end 0))))))) + (forward-line)) + (setq pgg-gpg-read-point (point))))) (defun pgg-gpg-process-sentinel (process status) (set-process-filter process nil) @@ -145,7 +146,7 @@ (when (buffer-live-p (process-buffer process)) (insert-buffer-substring (process-buffer process)) (goto-char (point-min)) - (delete-matching-lines "^\\[GNUPG:] ") + ;(delete-matching-lines "^\\[GNUPG:] ") (goto-char (point-min)) (while (re-search-forward "^gpg: " nil t) (replace-match ""))) @@ -175,19 +176,20 @@ (process-send-eof process) (while (eq (process-status process) 'run) (sit-for 0.1)) - (save-excursion - (set-buffer (process-buffer process)) - (setq status-list (copy-sequence status-list)) - (let ((pointer status-list)) - (while pointer - (goto-char (point-min)) - (unless (re-search-forward - (concat "^\\[GNUPG:] " (car pointer) "\\>") - nil t) - (setq status-list (delq (car pointer) status-list))) - (setq pointer (cdr pointer)))) - (kill-buffer (process-buffer process)) - status-list)) + (if (buffer-live-p (process-buffer process)) + (save-excursion + (set-buffer (process-buffer process)) + (setq status-list (copy-sequence status-list)) + (let ((pointer status-list)) + (while pointer + (goto-char (point-min)) + (unless (re-search-forward + (concat "^\\[GNUPG:] " (car pointer) "\\>") + nil t) + (setq status-list (delq (car pointer) status-list))) + (setq pointer (cdr pointer)))) + (kill-buffer (process-buffer process)) + status-list))) (defun pgg-gpg-status-USERID_HINT (process line) (if (string-match "\\`USERID_HINT \\([^ ]+\\) \\(.*\\)" line) -- 2.39.2