Subject: 25.0.50; [Easy PG] error in process filter

From: "José A. Romero L." <[email-masked]>
Date: Sat, 22 Nov 2014 13:47:08 +0100

Dear Emacs maintainers,

There's a little bug in the logic of the Easy PG Assistant: whenever
one tries to execute the `epa-decrypt-region' function on any region
the following error occurs:

    error in process filter: epg--process-filter: Wrong type argument:
    listp, epa-passphrase-callback-function

This is caused by an incompatibility between epg.pl and epa.pl, looks
like the changes in interface in the former haven't been reflected in
the latter. The following patch fixes this specific bug:

====================== CUT HERE =====================================

--- bug/emacs_trunk/lisp/epa.el	2014-11-20 20:11:39.475380000 +0100
+++ fix/emacs_trunk/lisp/epa.el	2014-11-22 13:21:46.191478570 +0100
@@ -853,12 +853,8 @@
   (save-excursion
     (let ((context (epg-make-context epa-protocol))
 	  plain)
-      (setf (epg-context-passphrase-callback context)
-	    #'epa-passphrase-callback-function)
-      (setf (epg-context-progress-callback context)
-	    (cons
-	     #'epa-progress-callback-function
-	     "Decrypting..."))
+      (epg-context-set-passphrase-callback context #'epa-passphrase-callback-function)
+      (epg-context-set-progress-callback context #'epa-progress-callback-function)
       (if epa-pinentry-mode
 	  (setf (epg-context-pinentry-mode context) epa-pinentry-mode))
       (message "Decrypting...")

====================== CUT HERE =====================================

There are other places where `setf' is being still used in epa.el to set
different epg values. It'd be good if someone could have a look at that.

In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.12.2)
 of 2014-11-20 on moksha
Repository revision: [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Debian GNU/Linux unstable (sid)

Configured using:
 `configure --prefix=/usr --with-xpm --with-jpeg --with-tiff --with-png
 --with-rsvg --with-x --with-x-toolkit=gtk --with-xft --with-m17n-flt
 --with-libotf'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB

Important settings:
  value of $LC_ALL: pl_PL.UTF-8
  value of $LC_CTYPE: pl_PL.UTF-8
  value of $LANG: pl_PL.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  shell-dirtrack-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  ido-everywhere: t
  openwith-mode: t
  recentf-mode: t
  global-surround-mode: t
  surround-mode: t
  evil-mode: t
  evil-local-mode: t
  diff-auto-refine-mode: t
  savehist-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t

Recent messages:
Updating buffer list...done
Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help
Mark set
Decrypting...
Processing /tmp/epg-input7092jo: ...done
Decrypting...done
Replace the original text? (y or n) y
Malformed quoted-printable text [2 times]
(No files need saving)
When done with this frame, type C-x 5 0

Load-path shadows:
/home/ja/.emacs.d/elpa/sunrise-x-tabs-1.445/sunrise-x-tabs hides ~/emacs/sunrise-x-tabs
/home/ja/.emacs.d/elpa/sunrise-commander-6.455/sunrise-commander hides ~/emacs/sunrise-commander
/home/ja/.emacs.d/elpa/sunrise-x-checkpoints-1.440/sunrise-x-checkpoints hides ~/emacs/sunrise-x-checkpoints
/home/ja/.emacs.d/elpa/sunrise-x-loop-3.423/sunrise-x-loop hides ~/emacs/sunrise-x-loop
/home/ja/.emacs.d/elpa/sunrise-x-popviewer-3.444/sunrise-x-popviewer hides ~/emacs/sunrise-x-popviewer
/home/ja/.emacs.d/elpa/sunrise-x-tree-1.450/sunrise-x-tree hides ~/emacs/sunrise-x-tree
/home/ja/.emacs.d/elpa/sunrise-x-modeline-2.423/sunrise-x-modeline hides ~/emacs/sunrise-x-modeline
/home/ja/.emacs.d/elpa/sunrise-x-mirror-2.423/sunrise-x-mirror hides ~/emacs/sunrise-x-mirror
/home/ja/.emacs.d/elpa/auto-complete-20141111.2346/auto-complete-config hides ~/emacs/auto-complete/auto-complete-config
/home/ja/.emacs.d/elpa/auto-complete-20141111.2346/auto-complete-pkg hides ~/emacs/auto-complete/auto-complete-pkg
/home/ja/.emacs.d/elpa/auto-complete-20141111.2346/auto-complete hides ~/emacs/auto-complete/auto-complete
~/emacs/agda/eri hides /usr/share/emacs/site-lisp/agda/eri
~/emacs/agda/agda2-highlight hides /usr/share/emacs/site-lisp/agda/agda2-highlight
~/emacs/agda/annotation hides /usr/share/emacs/site-lisp/agda/annotation
~/emacs/agda/agda2 hides /usr/share/emacs/site-lisp/agda/agda2
~/emacs/agda/agda-input hides /usr/share/emacs/site-lisp/agda/agda-input
~/emacs/agda/agda2-mode hides /usr/share/emacs/site-lisp/agda/agda2-mode
~/emacs/agda/agda2-abbrevs hides /usr/share/emacs/site-lisp/agda/agda2-abbrevs
~/emacs/agda/agda2-queue hides /usr/share/emacs/site-lisp/agda/agda2-queue
/usr/share/emacs/site-lisp/autotest-mode hides /usr/share/emacs/site-lisp/autoconf/autotest-mode
~/emacs/whitespace hides /usr/share/emacs/25.0.50/lisp/whitespace
/usr/share/emacs/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/25.0.50/lisp/textmodes/flyspell
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/25.0.50/lisp/textmodes/rst
/usr/share/emacs/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/25.0.50/lisp/textmodes/ispell
/home/ja/.emacs.d/elpa/emms-20141104.1238/tq hides /usr/share/emacs/25.0.50/lisp/emacs-lisp/tq

Features:
(shadow mail-extr emacsbug sendmail qp ediff-merg ediff-wind ediff-diff
ediff-mult ediff-help ediff-init ediff-util ediff vc-bzr shell mule-util
gnutls parse-time mm-archive network-stream starttls url-http tls url-gw
url-cache url-auth url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap url-handlers
finder-inf dabbrev imenu jka-compr debug eieio-opt speedbar sb-image
ezimage dframe find-func ibuf-ext ibuffer wdired executable ffap
thingatpt url-parse auth-source eieio byte-opt bytecomp byte-compile
cl-extra cconv eieio-core gnus-util password-cache url-vars epa-file
vc-git misearch multi-isearch sunrise-x-loop sunrise-x-mirror
sunrise-x-modeline sunrise-x-popviewer sunrise-x-tabs sunrise-x-tree
sunrise-x-embed sunrise-commander term ehelp sort hl-line find-dired
pcomplete comint ansi-color esh-var esh-io esh-cmd esh-opt esh-ext
esh-proc esh-arg esh-groups eshell esh-module esh-util esh-mode
disp-table enriched desktop frameset help-mode epa derived epg smex pp
undo-tree diff server ecb-snapshot-autoloads less-autoloads info package
epg-config css-mode smie minibuf-isearch browse-url flyspell ispell
cl-macs org-install ido-goto-symbol ido openwith recentf tree-widget
dired-dd dired-dd-b3-menu dired-x dired-aux evil-numbers surround
devilize-nxml evil evil-integration evil-maps evil-commands evil-types
evil-search evil-ex evil-macros evil-repeat evil-states evil-core
evil-common windmove rect evil-digraphs evil-vars psvn advice wid-edit
cl gv log-edit message dired format-spec rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mailabbrev mail-utils gmm-utils mailheader
ring pcvs-util add-log diff-mode easy-mmode easymenu edmacro kmacro
cl-loaddefs cl-lib slime-autoloads proof-site proof-autoloads pg-vars
time-date savehist cus-start cus-load tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list newcomment elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 335082 57582)
 (symbols 48 38224 0)
 (miscs 40 631 705)
 (strings 32 83383 17956)
 (string-bytes 1 2368192)
 (vectors 16 40004)
 (vector-slots 8 1387730 187364)
 (floats 8 200 483)
 (intervals 56 5099 1052)
 (buffers 976 38)
 (heap 1024 84116 15685))

Cheers,
--
José A. Romero L.
[email-masked]
"We who cut mere stones must always be envisioning cathedrals."
(Quarry worker's creed)