all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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: Re: pgg-gpg.el - pgg-gpg-process-region timing problem
Date: Mon, 23 Jun 2008 10:43:05 +0200	[thread overview]
Message-ID: <87r6ao8rty.fsf@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




  reply	other threads:[~2008-06-23  8:43 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <873aln2q1d.fsf@stupidchicken.com>
2008-06-22 17:37 ` pgg-gpg.el - pgg-gpg-process-region timing problem ken manheimer
2008-06-23  8:17   ` bug#470: " Thien-Thi Nguyen
2008-06-23  8:17   ` Thien-Thi Nguyen
2008-06-23  8:43     ` Thien-Thi Nguyen [this message]
2008-06-23 13:17       ` bug#471: " Thien-Thi Nguyen
2008-06-23 13:17       ` Thien-Thi Nguyen
2008-06-23 17:44         ` bug#472: " ken manheimer
2008-06-23 17:44         ` ken manheimer
2008-06-24 10:42           ` Thien-Thi Nguyen
2008-06-24 12:30             ` bug#476: " Stefan Monnier
2008-06-24 12:30             ` Stefan Monnier
2008-08-02 19:15               ` bug#476: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-08-02 19:15             ` bug#474: " Emacs bug Tracking System
2008-06-24 10:42           ` bug#474: pgg-gpg.el - pgg-gpg-process-region timing problem Thien-Thi Nguyen
2008-08-02 19:15           ` bug#472: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-06-24  1:59         ` pgg-gpg.el - pgg-gpg-process-region timing problem Daiki Ueno
2008-06-24  9:09           ` Thien-Thi Nguyen
2008-06-25 11:27             ` Daiki Ueno
2008-08-02 19:15         ` bug#471: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-08-02 19:15       ` bug#469: " Emacs bug Tracking System
2008-06-23  8:43     ` bug#469: pgg-gpg.el - pgg-gpg-process-region timing problem Thien-Thi Nguyen
2008-08-02 19:15     ` bug#470: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-06-26 16:16   ` bug#486: pgg-gpg.el - pgg-gpg-process-region timing problem ken manheimer
2008-06-26 16:16   ` ken manheimer
2008-06-26 16:32     ` bug#487: " Chong Yidong
2008-06-26 16:32     ` Chong Yidong
2008-06-27 14:01       ` ken manheimer
2008-06-27 14:24         ` Miles Bader
2008-06-27 14:39           ` ken manheimer
2008-06-27 16:21             ` Stefan Monnier
2008-06-27 17:33         ` ken manheimer
2008-08-02 19:15       ` bug#487: marked as done (pgg-gpg.el - pgg-gpg-process-region timing problem) Emacs bug Tracking System
2008-08-02 19:15     ` bug#486: " Emacs bug Tracking System
2008-08-02 19:15   ` bug#465: " 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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87r6ao8rty.fsf@ambire.localdomain \
    --to=ttn@gnuvola.org \
    --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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.