[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: elisp question

From: Joakim Hove
Subject: Re: elisp question
Date: Wed, 20 Aug 2003 10:07:21 +0200
User-agent: Gnus/5.1003 (Gnus v5.10.3) Emacs/21.2 (gnu/linux)

Mike Ballard <address@hidden> writes:

> Hi - 
> I don't know much about elisp but was able to piece together a little
> snippet that pretty much does what I want.  And that's to determine if a
> post is to Usenet and write a copy to a file.
> The problem is if I post again to the same group (w/o restarting Gnus) I
> get the mb msg '<file> has changed on disk - really edit the buffer?'  I'd
> like to eliminate that (I can post to other groups fine so long as I don't
> try more than one post to any group during a single Gnus session).

> If there was some way to add code which re-reads the disk file before it's
> written to a second time that (apparently) would fix it.

Look into the function (revert-buffer). However, if this is a
buffer/file entirely managed by gnus/emacs I can not understand how it
changes under your feet - the mb msg '<file> has changed on disk -
really edit the buffer?'  generally comes when some *other* program
has altered a file on disk while you have a buffer mapped to this file
emacs. Actually I suspect that the touch code below works, and by that
modifies the file such that emacs thinks the file is newer than the
buffer (which is in this case formally correct, but not what you
want), and the present with the '<file> has ...' is displayed. So
altough I think (revert-buffer) is answer to your question, I *think*
you are asking the wrong question, and should rather focus on *why*
the file is modified.

> I tried using file-exists-p but have sort of been going in circles
> (backwards) without success).

Why do you have to ensure that the file exists? You can manually set
the file to store a fresh buffer to by (setq buffer-file-name "filename").

> Can someone tell me how to alter the code below either by re-reading the
> disk file before it's written again or if "touch" is the problem maybe
> someone could tell me how to use file-exists-p?  I think I'd still need
> the "touch" (or something) for the occasions when the file does not yet
> exist.

The touch is probably OK, but simpler:

(shell-command (format "/bin/touch %s" file))

>     (start-process-shell-command "foo" "bar"
>       "/bin/touch" (format "/dd/Gnus/posts/%s.posts" group))
>     (if (not (message-news-p))
>       "nnfolder:../mail/mail_cc"
>    (format "nnfolder:../posts/%s.posts" group)))

HTH - Joakim
 / Joakim Hove  / address@hidden  /  (55 5) 84076       |                 \
 | Unifob AS, Avdeling for Beregningsvitenskap (BCCS) | Stabburveien 18 |
 | CMU                                                | 5231 Paradis    |
 \ Thormøhlensgt.55, 5020 Bergen.                     | 55 91 28 18     /

reply via email to

[Prev in Thread] Current Thread [Next in Thread]