# HG changeset patch # User Simon Josefsson # Date 1144055528 0 # Node ID b6e0fc8209f97527d6b6194fac63346f012959a6 # Parent 6fa12a3dff9c4909057cfc4e18effe73fa32d7c3 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. diff -r 6fa12a3dff9c -r b6e0fc8209f9 lisp/ChangeLog --- a/lisp/ChangeLog Mon Apr 03 06:28:48 2006 +0000 +++ b/lisp/ChangeLog Mon Apr 03 09:12:08 2006 +0000 @@ -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 -r 6fa12a3dff9c -r b6e0fc8209f9 lisp/pgg-gpg.el --- a/lisp/pgg-gpg.el Mon Apr 03 06:28:48 2006 +0000 +++ b/lisp/pgg-gpg.el Mon Apr 03 09:12:08 2006 +0000 @@ -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)