unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: dont.spam.earl@gmail.com
To: help-gnu-emacs@gnu.org
Subject: Auto-saved files unexpectedly deleted
Date: Wed, 14 May 2014 22:29:33 -0700 (PDT)	[thread overview]
Message-ID: <e964a80c-89a7-495c-bfae-31753d07555f@googlegroups.com> (raw)


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)
    ))






             reply	other threads:[~2014-05-15  5:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15  5:29 dont.spam.earl [this message]
2014-05-15  9:55 ` Auto-saved files unexpectedly deleted 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

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=e964a80c-89a7-495c-bfae-31753d07555f@googlegroups.com \
    --to=dont.spam.earl@gmail.com \
    --cc=help-gnu-emacs@gnu.org \
    /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.
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).