• Paul Eggert's avatar
    Timestamp fixes for undo. · 954b166e
    Paul Eggert authored
    * doc/lispref/text.texi (Undo):
    Document (t . 0) and (t . -1) in buffer-undo-list.
    * etc/NEWS: Changes to visited-file-modtime, set-visited-file-modtime.
    * lisp/files.el (clear-visited-file-modtime): Move here from fileio.c.
    * src/atimer.c (schedule_atimer):
    * src/fileio.c (Ffile_newer_than_file_p):
    Minor cleanup: use EMACS_TIME_LT so that we can remove EMACS_TIME_GT.
    * src/buffer.c (buffer-undo-list): Document (t . 0) and (t . -1).
    * src/fileio.c (Fclear_visited_file_modtime): Move to lisp/files.el.
    (syms_of_fileio): Remove Sclear_visited_file_name.
    (Fvisited_file_modtime): Return -1, not (-1 ...), when the visited
    file doesn't exist; this avoids an ambiguity with negative timestamps.
    (Fset_visited_file_modtime): Accept -1 and 0 as time-list arg.
    * src/systime.h (make_emacs_time, invalid_emacs_time):
    Don't assume struct timespec layout; POSIX doesn't guarantee it.
    * src/undo.c (record_first_change): Push (visited-file-modtime) onto
    undo list rather than reimplementing it by hand, incorrectly.
    Fixes: debbugs:14824
undo.c 15.5 KB