Function: epg--process-filter

epg--process-filter is a byte-compiled function defined in epg.el.gz.

Signature

(epg--process-filter PROCESS INPUT)

Source Code

;; Defined in /usr/src/emacs/lisp/epg.el.gz
(defun epg--process-filter (process input)
  (if epg-debug
      (with-current-buffer
          (or epg-debug-buffer
              (setq epg-debug-buffer (generate-new-buffer " *epg-debug*")))
	(goto-char (point-max))
	(insert input)))
  (if (buffer-live-p (process-buffer process))
      (with-current-buffer (process-buffer process)
        (save-excursion
          (goto-char (point-max))
          (insert input)
          (unless epg-process-filter-running
            (let ((epg-process-filter-running t))
              (goto-char epg-read-point)
              (beginning-of-line)
              (while (looking-at ".*\n") ;the input line finished
                (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)")
                    (let ((status (match-string 1))
			  (string (match-string 2))
			  symbol)
                      (if (member status epg-pending-status-list)
                          (setq epg-pending-status-list nil))
		      ;; When editing a key, delegate all interaction
		      ;; to edit-callback.
		      (if (eq (epg-context-operation epg-context) 'edit-key)
			  (funcall (car (epg-context-edit-callback
					 epg-context))
				   epg-context
				   status
				   string
				   (cdr (epg-context-edit-callback
					 epg-context)))
			;; Otherwise call epg--status-STATUS function.
			(setq symbol (intern-soft (concat "epg--status-"
							  status)))
			(if (and symbol
				 (fboundp symbol))
			    (funcall symbol epg-context string)))
                      (setq epg-last-status (cons status string))))
                (forward-line)
                (setq epg-read-point (point)))))))))