all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Auto-saved files unexpectedly deleted
@ 2014-05-15  5:29 dont.spam.earl
  2014-05-15  9:55 ` Michael Heerdegen
       [not found] ` <mailman.1389.1400147758.1147.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 6+ messages in thread
From: dont.spam.earl @ 2014-05-15  5:29 UTC (permalink / raw)
  To: help-gnu-emacs


Hi all,

I'd like to save "transcripts" of my Shell and other comint sessions with all I/O, not just the command history. I've created a "comint transcript" major-mode by adapting auto-saving but I'm running into a problem.

When I kill a comint buffer with a process, its associated transcript file is deleted. This occurs even though I'm around-wrapping 'delete-auto-save-file-if-necessary in files.el which deletes auto-save files. In fact, even though I'm tracing both that function and also delete-file, there's no tracing output for the deletion. This only occurs when I "C-x k" to kill the buffer, then say "yes" to kill it in spite of the running process. Interestingly, the transcript file is not deleted when I quit emacs and kill all buffers with processes.

The relevant code is included below. Any suggestions on what is going on here, or what to try next?

Thanks!

Earl


;;
;; Auto-save Comint mode transcripts
;;


(defadvice auto-save-file-name-p (after yes-auto-save-comint-transcripts activate)
  "Also auto-save comint transcript files (without hashmarks)."
  (setq ad-return-value
        (or ad-return-value
			(derived-mode-p 'comint-mode))))

(defadvice make-auto-save-file-name (after auto-save-comint-transcript-path activate)
  "Make name for auto-saved comint transcript file (without hashmarks)."
  (setq ad-return-value
        (if (derived-mode-p 'comint-mode)
            buffer-auto-save-file-name
          ad-return-value)))

(defadvice delete-auto-save-file-if-necessary (around keep-auto-saved-comint-transcripts activate)
  "Keep auto-saved comint transcript files."
  (unless (derived-mode-p 'comint-mode)
    ad-do-it))

;;
;; Comint mode
;;

(require 'comint)


(add-hook
 'comint-mode-hook
 '(lambda ()
    (setq buffer-auto-save-file-name (make-comint-transcript-path t))
    (auto-save-mode t)
    ))






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

end of thread, other threads:[~2014-05-25 14:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-15  5:29 Auto-saved files unexpectedly deleted dont.spam.earl
2014-05-15  9:55 ` Michael Heerdegen
     [not found] ` <mailman.1389.1400147758.1147.help-gnu-emacs@gnu.org>
2014-05-15 17:40   ` dont.spam.earl
2014-05-16  5:32     ` Kevin Rodgers
     [not found]     ` <mailman.1440.1400218387.1147.help-gnu-emacs@gnu.org>
2014-05-18 17:03       ` dont.spam.earl
2014-05-25 14:17         ` Jude DaShiell

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.