Subject: bug#33269: 25.2; cli pinentry disrupts screen display and navigation

From: Boruch Baum <[email-masked]>
Date: Mon, 5 Nov 2018 03:32:46 -0500

When using non-GUI emacs and attempting to open a gpg encrypted file,
emacs seems to pass control to the external pinentry program (debian
package `pinentry-curses', version 1.1.0+b1); however:

1) Doing so renders most of the pinentry program's display off the
botton of screen. The top line of the pinentry ncurses input box
displays along the bottom of the terminal's display, and the prior emacs
display is scrolled up so the mini-buffer line is about one-fifth along
the top.

2) Entering the passphrase in that situation doesn't provide any visible
feedback, and doesn't seem to function. No response occurs when pressing
return.

3) Control could be restored to emacs via some quasi-desperate
quasi-random combination of C-c, C-g, RET, ESC; however, the screen
rendering of emacs at that point remained mostly 'off-screen', and was
recovered only by forcing complete screen redraws, which was done by
some quasi-desperate quasi-random combination of `C-x 0', `C-x 3', and
`C-x C-b'.

Two work-arounds were found:

A) Open the file externally, directly on the command-line. In that case,
emacs does not ask for a passphrase when re-opening the file within the
timeout interval.

B) Setting emacs variable `epa-pinentry-mode' to 'loopback, which has
emacs itself prompt for the gpg passphrase in the mini-buffer.

In GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-08-26, modified by Debian built on x86-csail-01
System Description:	Devuan GNU/Linux 2.0.0 (ascii)

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --build x86_64-linux-gnu
 --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-x=yes --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-7bZ65w/emacs-25.2+1=.
 -fstack-protector-strong -Wformat -Werror=format-security -Wall'
 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

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

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

-- 
hkp://keys.gnupg.net
CA45 09B5 5351 7C11 A9D1  7286 0036 9E45 1595 8BC0