aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/pgg-gpg.el
diff options
context:
space:
mode:
authorSimon Josefsson <[email protected]>2006-04-03 09:12:08 +0000
committerSimon Josefsson <[email protected]>2006-04-03 09:12:08 +0000
commit7db4c10a8a23e211273498a3ea0df8223d1acb19 (patch)
tree7e26a318c47b0b689b68087adf77beb7aeb4f60a /lisp/pgg-gpg.el
parentfc9f8d154116dba6fd4246c86fe7db22aca3cf91 (diff)
2006-04-03 Daiki Ueno <[email protected]>
* 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.
Diffstat (limited to 'lisp/pgg-gpg.el')
-rw-r--r--lisp/pgg-gpg.el82
1 files changed, 42 insertions, 40 deletions
diff --git a/lisp/pgg-gpg.el b/lisp/pgg-gpg.el
index b171929ad4..986d3f8d34 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)