Eli Zaretskii wrote, On 9/02/2014 1:18 AM: >> Date: Sat, 08 Feb 2014 21:05:21 +1100 >> From: Jason Lewis >> CC: 16679@debbugs.gnu.org >> >> Because I like to live life on the edge, I decided to mount my user >> directory from my drive D:, following a procedure much like this one: >> >> http://caskater4.blogspot.com.au/2007/09/moving-your-data-where-you-want-in.html >> >> something like this: >> >> 1. xcopy /E /H /O /X /Y /I C:\Users D:\Users >> 2. rmdir /S /Q C:\Users >> 3. rmdir "C:\Documents and Settings" >> 4. mklink /J C:\Users D:\Users >> 5. mklink /J "C:\Documents and Settings" D:\Users >> >> I'm not in front of that computer right now but that sounds as though it >> has something to do with it. > Are you sure every program you use, starting with Emacs, fully > supports directory junction points created like that? > I've not encountered any problems with directory junctions yet. I've been running it like this for at least 6 months. I tested again by trying to creating a file on /cygdrive/c/Temp which is not on the junctioned drive and received the same error. backtrace: Debugger entered--Lisp error: (file-error "Opening output file" stringp nil) signal(file-error ("Opening output file" stringp nil)) (condition-case error (setq string (epg-encrypt-string context (if (stringp start) (epa-file--encode-coding-string start coding-system) (if start nil (setq start (point-min) end (point-max))) (setq buffer (current-buffer)) (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ... ...) (and ... ...))))) (if (or (eq epa-file-select-keys t) (and (null epa-file-select-keys) (not (local-variable-p ... ...)))) (epa-select-keys context "Select recipients for encryption.\nIf no one is selected, symmetric encryption will be performed. " recipients) (if epa-file-encrypt-to (epg-list-keys context recipients))))) (error (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) (signal (quote file-error) (cons "Opening output file" (cdr error))))) (let* ((coding-system (or coding-system-for-write (if (fboundp (quote select-safe-coding-system)) (let ((buffer-file-name ...)) (select-safe-coding-system (point-min) (point-max))) buffer-file-coding-system))) (context (epg-make-context)) (coding-system-for-write (quote binary)) string entry (recipients (cond ((listp epa-file-encrypt-to) epa-file-encrypt-to) ((stringp epa-file-encrypt-to) (list epa-file-encrypt-to)))) buffer) (epg-context-set-passphrase-callback context (cons (function epa-file-passphrase-callback-function) file)) (epg-context-set-progress-callback context (cons (function epa-progress-callback-function) (format "Encrypting %s" file))) (epg-context-set-armor context epa-armor) (condition-case error (setq string (epg-encrypt-string context (if (stringp start) (epa-file--encode-coding-string start coding-system) (if start nil (setq start (point-min) end (point-max))) (setq buffer (current-buffer)) (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...)))) (if (or (eq epa-file-select-keys t) (and (null epa-file-select-keys) (not ...))) (epa-select-keys context "Select recipients for encryption.\nIf no one is selected, symmetric encryption will be performed. " recipients) (if epa-file-encrypt-to (epg-list-keys context recipients))))) (error (if (setq entry (assoc file epa-file-passphrase-alist)) (setcdr entry nil)) (signal (quote file-error) (cons "Opening output file" (cdr error))))) (epa-file-run-real-handler (function write-region) (list string nil file append visit lockname mustbenew)) (if (boundp (quote last-coding-system-used)) (setq last-coding-system-used coding-system)) (if (eq visit t) (progn (setq buffer-file-name file) (set-visited-file-modtime)) (if (stringp visit) (progn (set-visited-file-modtime) (setq buffer-file-name visit)))) (if (or (eq visit t) (eq visit nil) (stringp visit)) (message "Wrote %s" buffer-file-name))) epa-file-write-region(nil nil "/cygdrive/c/Temp/test.gpg" nil t) apply(epa-file-write-region (nil nil "/cygdrive/c/Temp/test.gpg" nil t)) (if op (apply op args) (epa-file-run-real-handler operation args)) (let ((op (get operation (quote epa-file)))) (if op (apply op args) (epa-file-run-real-handler operation args))) (progn (let ((op (get operation (quote epa-file)))) (if op (apply op args) (epa-file-run-real-handler operation args)))) (unwind-protect (progn (let ((op (get operation (quote epa-file)))) (if op (apply op args) (epa-file-run-real-handler operation args)))) (set-match-data save-match-data-internal (quote evaporate))) (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let ((op (get operation (quote epa-file)))) (if op (apply op args) (epa-file-run-real-handler operation args)))) (set-match-data save-match-data-internal (quote evaporate)))) epa-file-handler(write-region nil nil "/cygdrive/c/Temp/test.gpg" nil t) write-region(nil nil "/cygdrive/c/Temp/test.gpg" nil t "/cygdrive/c/Temp/test.gpg") basic-save-buffer-2() basic-save-buffer-1() basic-save-buffer() save-buffer(1) #(save-buffer nil nil) funcall(# save-buffer nil nil) (with-no-warnings (funcall ad--addoit-function function record-flag keys)) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function function record-flag keys))) (let ((ido-ubiquitous-next-override (ido-ubiquitous-get-command-override function))) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function function record-flag keys)))) (ido-ubiquitous-with-override (ido-ubiquitous-get-command-override function) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function function record-flag keys)))) (let (ad-return-value) (ido-ubiquitous-with-override (ido-ubiquitous-get-command-override function) (setq ad-return-value (with-no-warnings (funcall ad--addoit-function function record-flag keys)))) ad-return-value) ad-Advice-call-interactively(# save-buffer nil nil) apply(ad-Advice-call-interactively # (save-buffer nil nil)) call-interactively(save-buffer nil nil) command-execute(save-buffer) -- Jason Lewis http://emacstragic.net