From: Thien-Thi Nguyen <ttn@gnuvola.org>
To: "ken manheimer" <ken.manheimer@gmail.com>
Cc: wilde@sha-bang.de, emacs-pretest-bug@gnu.org, ueno@unixuser.org,
emacs-devel <emacs-devel@gnu.org>
Subject: bug#469: pgg-gpg.el - pgg-gpg-process-region timing problem
Date: Mon, 23 Jun 2008 10:43:05 +0200 [thread overview]
Message-ID: <87r6ao8rty.fsf__23078.6490873017$1214277977$gmane$org@ambire.localdomain> (raw)
In-Reply-To: <87zlpc8t00.fsf@ambire.localdomain> (Thien-Thi Nguyen's message of "Mon, 23 Jun 2008 10:17:51 +0200")
ChangeLog entry:
Use process sentinel to monitor gpg subprocess status.
* pgg-gpg.el (pgg-gpg-process-region): Fix omission bug:
Use process sentinel to update process status and exit-status.
Reported by ken manheimer <ken.manheimer@gmail.com>.
patch:
*** pgg-gpg.el 6 May 2008 07:57:46 -0000 1.27
--- pgg-gpg.el 23 Jun 2008 08:40:50 -0000
***************
*** 70,111 ****
,@pgg-gpg-extra-args ,@args))
(output-buffer pgg-output-buffer)
(errors-buffer pgg-errors-buffer)
! (orig-mode (default-file-modes))
! (process-connection-type nil)
! (inhibit-redisplay t)
! process status exit-status
! passphrase-with-newline
! encoded-passphrase-with-new-line)
(with-current-buffer (get-buffer-create errors-buffer)
(buffer-disable-undo)
(erase-buffer))
(unwind-protect
! (progn
(set-default-file-modes 448)
! (let ((coding-system-for-write 'binary))
! (setq process
! (apply #'start-process "*GnuPG*" errors-buffer
! program args)))
! (set-process-sentinel process #'ignore)
(when passphrase
! (setq passphrase-with-newline (concat passphrase "\n"))
! (if pgg-passphrase-coding-system
! (progn
! (setq encoded-passphrase-with-new-line
(encode-coding-string
! passphrase-with-newline
! (coding-system-change-eol-conversion
! pgg-passphrase-coding-system 'unix)))
! (pgg-clear-string passphrase-with-newline))
! (setq encoded-passphrase-with-new-line passphrase-with-newline
! passphrase-with-newline nil))
! (process-send-string process encoded-passphrase-with-new-line))
(process-send-region process start end)
(process-send-eof process)
! (while (eq 'run (process-status process))
(accept-process-output process 5))
- (setq status (process-status process)
- exit-status (process-exit-status process))
(delete-process process)
(with-current-buffer (get-buffer-create output-buffer)
(buffer-disable-undo)
--- 70,104 ----
,@pgg-gpg-extra-args ,@args))
(output-buffer pgg-output-buffer)
(errors-buffer pgg-errors-buffer)
! (inhibit-redisplay t))
(with-current-buffer (get-buffer-create errors-buffer)
(buffer-disable-undo)
(erase-buffer))
(unwind-protect
! (let* ((coding-system-for-write 'binary)
! (process (let ((orig (default-file-modes)))
(set-default-file-modes 448)
! (prog1 (apply #'start-process "*GnuPG*"
! errors-buffer program args)
! (set-default-file-modes orig))))
! (status (process-status process))
! exit-status)
! (set-process-sentinel
! process (lambda (process reason)
! (setq status (process-status process)
! exit-status (process-exit-status process))))
(when passphrase
! (process-send-string
! process (if pgg-passphrase-coding-system
(encode-coding-string
! passphrase
! pgg-passphrase-coding-system)
! passphrase))
! (process-send-string process "\n"))
(process-send-region process start end)
(process-send-eof process)
! (while (eq 'run status)
(accept-process-output process 5))
(delete-process process)
(with-current-buffer (get-buffer-create output-buffer)
(buffer-disable-undo)
***************
*** 120,134 ****
(error "%s exited abnormally: '%s'" program exit-status))
(if (= 127 exit-status)
(error "%s could not be found" program))))
- (if passphrase-with-newline
- (pgg-clear-string passphrase-with-newline))
- (if encoded-passphrase-with-new-line
- (pgg-clear-string encoded-passphrase-with-new-line))
- (if (and process (eq 'run (process-status process)))
- (interrupt-process process))
(if (file-exists-p output-file-name)
! (delete-file output-file-name))
! (set-default-file-modes orig-mode))))
(defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate)
(if (and passphrase
--- 113,120 ----
(error "%s exited abnormally: '%s'" program exit-status))
(if (= 127 exit-status)
(error "%s could not be found" program))))
(if (file-exists-p output-file-name)
! (delete-file output-file-name)))))
(defun pgg-gpg-possibly-cache-passphrase (passphrase &optional key notruncate)
(if (and passphrase
next prev parent reply other threads:[~2008-06-23 8:43 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <873aln2q1d.fsf@stupidchicken.com>
[not found] ` <2cd46e7f0806221037h6d16839bp567eb5b901313375@mail.gmail.com>
2008-06-23 8:17 ` bug#470: pgg-gpg.el - pgg-gpg-process-region timing problem Thien-Thi Nguyen
2008-06-26 16:16 ` bug#486: " ken manheimer
2008-08-02 19:15 ` bug#465: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
[not found] ` <87zlpc8t00.fsf@ambire.localdomain>
2008-06-23 8:43 ` Thien-Thi Nguyen [this message]
[not found] ` <87r6ao8rty.fsf@ambire.localdomain>
2008-06-23 13:17 ` bug#471: pgg-gpg.el - pgg-gpg-process-region timing problem Thien-Thi Nguyen
2008-08-02 19:15 ` bug#469: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
[not found] ` <873an4b898.fsf@ambire.localdomain>
2008-06-23 17:44 ` bug#472: pgg-gpg.el - pgg-gpg-process-region timing problem ken manheimer
2008-08-02 19:15 ` bug#471: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
[not found] ` <2cd46e7f0806231044w6410b825s9611ba713e9ac353@mail.gmail.com>
2008-06-24 10:42 ` bug#474: pgg-gpg.el - pgg-gpg-process-region timing problem Thien-Thi Nguyen
[not found] ` <87mylb2jxt.fsf@ambire.localdomain>
2008-06-24 12:30 ` bug#476: " Stefan Monnier
2008-08-02 19:15 ` bug#474: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-08-02 19:15 ` bug#472: " Emacs bug Tracking System
2008-08-02 19:15 ` bug#470: " Emacs bug Tracking System
[not found] ` <2cd46e7f0806260916y39870423ge4bda26f97d6d504@mail.gmail.com>
2008-06-26 16:32 ` bug#487: pgg-gpg.el - pgg-gpg-process-region timing problem Chong Yidong
2008-08-02 19:15 ` bug#486: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
[not found] ` <jwviqvznhja.fsf-monnier+emacs@gnu.org>
2008-08-02 19:15 ` bug#476: " Emacs bug Tracking System
[not found] ` <87fxr040oq.fsf@stupidchicken.com>
2008-08-02 19:15 ` bug#487: " Emacs bug Tracking System
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='87r6ao8rty.fsf__23078.6490873017$1214277977$gmane$org@ambire.localdomain' \
--to=ttn@gnuvola.org \
--cc=469@emacsbugs.donarmstrong.com \
--cc=emacs-devel@gnu.org \
--cc=emacs-pretest-bug@gnu.org \
--cc=ken.manheimer@gmail.com \
--cc=ueno@unixuser.org \
--cc=wilde@sha-bang.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).