unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
@ 2018-10-14 15:53 Pierre Téchoueyres
  2018-10-20 10:17 ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Téchoueyres @ 2018-10-14 15:53 UTC (permalink / raw)
  To: 33040

[-- Attachment #1: Type: text/plain, Size: 1025 bytes --]


Hello everyone,
I've noticed an anoying problem when I need to decrypt a file from Emacs
on Windows. The prompt asking my passphrase is two lines whereas on
Gnu/Linux it's only one.

I've tracked this bug down to the epg--start fuction and try the
attached patch from some time now without noticing anything wrong.

The step to reproduce the bug are below:
1) Start Emacs with: emacs -Q
2) Execute the following commands in scratch buffer
   #+BEGIN_SRC emacs-lisp
(require 'epg)
(setq epg-gpg-program "gpg2"
epa-pinentry-mode 'loopback)
;; open a gnupg encrypted file :
(find-file "~/.emacs.d/authinfo.gpg")
   #+END_SRC

The result vary between Emacs on Microsoft windows and on GNU/Linux.

On Microsoft Windows:
#+BEGIN_VERSE
Passphrase for 7F4B4084DFC4EBD2 Pierre Téchoueyres <pierre.techoueyres@free.fr>
:
#+END_VERSE
Note the cariage return before the colon.

On GNU/Linux:
#+BEGIN_VERSE
Passphrase for 7F4B4084DFC4EBD2 Pierre Téchoueyres <pierre.techoueyres@free.fr>:
#+END_VERSE


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Unify-prompt-for-gnupg-passphrase-between-GNU-Linux-and-Microsoft-Windows --]
[-- Type: text/x-patch, Size: 1043 bytes --]

From 6e3935351b3e681fbb531818d3b2ae6db32e7b2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20T=C3=A9choueyres?= <pierre.techoueyres@free.fr>
Date: Sun, 14 Oct 2018 17:49:12 +0200
Subject: [PATCH] Unify prompt for gnupg passphrase between GNU/Linux and
 Windows.

* lisp/epg.el (epg--start): Use native locale coding system instead of
  binary for Microsoft Windows and DOS.
---
 lisp/epg.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/epg.el b/lisp/epg.el
index 8f26cd34ee..000366d76a 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -655,7 +655,9 @@ epg--start
 				  :command (cons (epg-context-program context)
 						 args)
 				  :connection-type 'pipe
-				  :coding '(binary . binary)
+				  :coding (if (memq system-type '(ms-dos windows-nt))
+                                              (cons locale-coding-system locale-coding-system)
+                                            '(binary . binary))
 				  :filter #'epg--process-filter
 				  :stderr error-process
 				  :noquery t)))
-- 
2.17.2


[-- Attachment #3: Type: text/plain, Size: 9 bytes --]


Pierre.

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-14 15:53 bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase Pierre Téchoueyres
@ 2018-10-20 10:17 ` Eli Zaretskii
  2018-10-24 16:55   ` Pierre Téchoueyres
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2018-10-20 10:17 UTC (permalink / raw)
  To: Pierre Téchoueyres; +Cc: 33040

> From: Pierre Téchoueyres <pierre.techoueyres@free.fr>
> Date: Sun, 14 Oct 2018 17:53:50 +0200
> 
> diff --git a/lisp/epg.el b/lisp/epg.el
> index 8f26cd34ee..000366d76a 100644
> --- a/lisp/epg.el
> +++ b/lisp/epg.el
> @@ -655,7 +655,9 @@ epg--start
>  				  :command (cons (epg-context-program context)
>  						 args)
>  				  :connection-type 'pipe
> -				  :coding '(binary . binary)
> +				  :coding (if (memq system-type '(ms-dos windows-nt))
> +                                              (cons locale-coding-system locale-coding-system)
> +                                            '(binary . binary))
>  				  :filter #'epg--process-filter
>  				  :stderr error-process
>  				  :noquery t)))

Thanks.

I think a better solution is to use raw-text-unix on both Unix and
DOS/Windows.  Can you try that and see if doing so produces good
results on both systems?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-20 10:17 ` Eli Zaretskii
@ 2018-10-24 16:55   ` Pierre Téchoueyres
  2018-10-24 17:40     ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Téchoueyres @ 2018-10-24 16:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 33040

Hello Eli,
I first tried your solution, but that didn't work as expected. Then I
tried using 'raw-text unconditionnaly and everything seems to work as
expected on Microsoft Windows and GNU/Linux.

I do as follow because I think that '(raw-text . raw-text) is the same
as 'raw-text for the :coding keyword.

-				  :coding '(binary . binary)
+				  :coding 'raw-text

Should I prepare an ammended patch ?

Eli Zaretskii <eliz@gnu.org> writes:
> Thanks.
>
> I think a better solution is to use raw-text-unix on both Unix and
> DOS/Windows.  Can you try that and see if doing so produces good
> results on both systems?
>





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-24 16:55   ` Pierre Téchoueyres
@ 2018-10-24 17:40     ` Eli Zaretskii
  2018-10-24 18:08       ` Pierre Téchoueyres
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2018-10-24 17:40 UTC (permalink / raw)
  To: Pierre Téchoueyres; +Cc: 33040

> From: pierre.techoueyres@free.fr (Pierre Téchoueyres)
> Cc: 33040@debbugs.gnu.org
> Date: Wed, 24 Oct 2018 18:55:53 +0200
> 
> I first tried your solution, but that didn't work as expected. Then I
> tried using 'raw-text unconditionnaly and everything seems to work as
> expected on Microsoft Windows and GNU/Linux.
> 
> I do as follow because I think that '(raw-text . raw-text) is the same
> as 'raw-text for the :coding keyword.
> 
> -				  :coding '(binary . binary)
> +				  :coding 'raw-text
> 
> Should I prepare an ammended patch ?

Doesn't

                                  : coding 'raw-text-unix

work on both Windows and GNU/Linux?  Because I don't really understand
what "unconditionally" means in this context: I didn't suggest using
any conditions.

Thanks.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-24 17:40     ` Eli Zaretskii
@ 2018-10-24 18:08       ` Pierre Téchoueyres
  2018-10-24 18:35         ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Téchoueyres @ 2018-10-24 18:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 33040


Eli Zaretskii <eliz@gnu.org> writes:
> ...
> Doesn't
>
>                                   : coding 'raw-text-unix
>
> work on both Windows and GNU/Linux?


No it doesn't on Windows. I guess it's because of the -unix part which
results in adding the CR before the colon (:).

> Because I don't really understand
> what "unconditionally" means in this context: I didn't suggest using
> any conditions.

Sorry, when :coding 'raw-text-unix didn't work as expected I first try

:coding (if (memq system-type '(ms-dos windows-nt))
             'raw-text-dos
         'raw-text-unix)

then I realized it was equivalent to :
:coding 'raw-text





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-24 18:08       ` Pierre Téchoueyres
@ 2018-10-24 18:35         ` Eli Zaretskii
  2018-10-24 19:21           ` Pierre Téchoueyres
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2018-10-24 18:35 UTC (permalink / raw)
  To: Pierre Téchoueyres; +Cc: 33040

> From: pierre.techoueyres@free.fr (Pierre Téchoueyres)
> Cc: 33040@debbugs.gnu.org
> Date: Wed, 24 Oct 2018 20:08:07 +0200
> 
> > Doesn't
> >
> >                                   : coding 'raw-text-unix
> >
> > work on both Windows and GNU/Linux?
> 
> 
> No it doesn't on Windows. I guess it's because of the -unix part which
> results in adding the CR before the colon (:).

Right, I was confused and forgot that this was exactly the original
problem.  So raw-text it is.  And yes, please prepare a patch.

> Sorry, when :coding 'raw-text-unix didn't work as expected I first try
> 
> :coding (if (memq system-type '(ms-dos windows-nt))
>              'raw-text-dos
>          'raw-text-unix)
> 
> then I realized it was equivalent to :
> :coding 'raw-text

Actually, no: it isn't equivalent.  Just raw-text tells Emacs to use
the default on encoding (thus -dos on Windows and -unix on GNU/Linux),
and to _detect_ the EOL format on decoding.  But I don't think this is
a problem in this case, is it?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-24 18:35         ` Eli Zaretskii
@ 2018-10-24 19:21           ` Pierre Téchoueyres
  2018-10-27  9:38             ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Pierre Téchoueyres @ 2018-10-24 19:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 33040

[-- Attachment #1: Type: text/plain, Size: 41 bytes --]

Hello Eli,
please find the patch bellow.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: epg prompt patch --]
[-- Type: text/x-patch, Size: 920 bytes --]

From 32644ac1027114d3f4caaf2e25ae985241ab867b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20T=C3=A9choueyres?= <pierre.techoueyres@free.fr>
Date: Sun, 14 Oct 2018 17:49:12 +0200
Subject: [PATCH] Unify prompt for gnupg passphrase between GNU/Linux and
 Windows.

* lisp/epg.el (epg--start): Use `raw-text' for coding system instead
  of binary in order to avoid spurious carriage return on Microsoft
  Windows and DOS when prompting for a password.
---
 lisp/epg.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/epg.el b/lisp/epg.el
index 8f26cd34ee..28afa59d8e 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -655,7 +655,7 @@ epg--start
 				  :command (cons (epg-context-program context)
 						 args)
 				  :connection-type 'pipe
-				  :coding '(binary . binary)
+				  :coding 'raw-text
 				  :filter #'epg--process-filter
 				  :stderr error-process
 				  :noquery t)))
-- 
2.17.2


[-- Attachment #3: Type: text/plain, Size: 659 bytes --]



Eli Zaretskii <eliz@gnu.org> writes:
>> Sorry, when :coding 'raw-text-unix didn't work as expected I first try
>> 
>> :coding (if (memq system-type '(ms-dos windows-nt))
>>              'raw-text-dos
>>          'raw-text-unix)
>> 
>> then I realized it was equivalent to :
>> :coding 'raw-text
>
> Actually, no: it isn't equivalent.  Just raw-text tells Emacs to use
> the default on encoding (thus -dos on Windows and -unix on GNU/Linux),
> and to _detect_ the EOL format on decoding.  But I don't think this is
> a problem in this case, is it?
>

No, it isn't a problem, and on the contrary it's exactly what I want :
detect the EOL format for decoding.

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase
  2018-10-24 19:21           ` Pierre Téchoueyres
@ 2018-10-27  9:38             ` Eli Zaretskii
  0 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2018-10-27  9:38 UTC (permalink / raw)
  To: Pierre Téchoueyres; +Cc: 33040-done

> From: pierre.techoueyres@free.fr (Pierre Téchoueyres)
> Cc: 33040@debbugs.gnu.org
> Date: Wed, 24 Oct 2018 21:21:07 +0200
> 
> Hello Eli,
> please find the patch bellow.

Thanks, pushed to the release branch.





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-10-27  9:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-14 15:53 bug#33040: 26.1.50; Epg prompt on Microsoft Windows differ from the GNU/Linux on when asking passphrase Pierre Téchoueyres
2018-10-20 10:17 ` Eli Zaretskii
2018-10-24 16:55   ` Pierre Téchoueyres
2018-10-24 17:40     ` Eli Zaretskii
2018-10-24 18:08       ` Pierre Téchoueyres
2018-10-24 18:35         ` Eli Zaretskii
2018-10-24 19:21           ` Pierre Téchoueyres
2018-10-27  9:38             ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).