www.delorie.com/gnu/docs/elisp-manual-21/elisp_419.html   search  
Buy the book!

GNU Emacs Lisp Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

27.6 Comparison of Modification Time

Suppose that you visit a file and make changes in its buffer, and meanwhile the file itself is changed on disk. At this point, saving the buffer would overwrite the changes in the file. Occasionally this may be what you want, but usually it would lose valuable information. Emacs therefore checks the file's modification time using the functions described below before saving the file.

Function: verify-visited-file-modtime buffer
This function compares what buffer has recorded for the modification time of its visited file against the actual modification time of the file as recorded by the operating system. The two should be the same unless some other process has written the file since Emacs visited or saved it.

The function returns t if the last actual modification time and Emacs's recorded modification time are the same, nil otherwise.

Function: clear-visited-file-modtime
This function clears out the record of the last modification time of the file being visited by the current buffer. As a result, the next attempt to save this buffer will not complain of a discrepancy in file modification times.

This function is called in set-visited-file-name and other exceptional places where the usual test to avoid overwriting a changed file should not be done.

Function: visited-file-modtime
This function returns the buffer's recorded last file modification time, as a list of the form (high . low). (This is the same format that file-attributes uses to return time values; see 25.6.4 Other Information about Files.)

Function: set-visited-file-modtime &optional time
This function updates the buffer's record of the last modification time of the visited file, to the value specified by time if time is not nil, and otherwise to the last modification time of the visited file.

If time is not nil, it should have the form (high . low) or (high low), in either case containing two integers, each of which holds 16 bits of the time.

This function is useful if the buffer was not read from the file normally, or if the file itself has been changed for some known benign reason.

Function: ask-user-about-supersession-threat filename
This function is used to ask a user how to proceed after an attempt to modify an obsolete buffer visiting file filename. An obsolete buffer is an unmodified buffer for which the associated file on disk is newer than the last save-time of the buffer. This means some other program has probably altered the file.

Depending on the user's answer, the function may return normally, in which case the modification of the buffer proceeds, or it may signal a file-supersession error with data (filename), in which case the proposed buffer modification is not allowed.

This function is called automatically by Emacs on the proper occasions. It exists so you can customize Emacs by redefining it. See the file `userlock.el' for the standard definition.

See also the file locking mechanism in 25.5 File Locks.

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster   donations   bookstore     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003