(vc-fetch-master-properties): Moved cvs status retrieval to the above.
(vc-backend): If a file is not registered, remember that by setting
the property to `none'.
(vc-name): Use the mechanism of vc-backend to compute the value.
(vc-after-save): Don't access vc-backend property directly.
transitions.
(vc-find-cvs-master): Convert UTC string to encoded time and compare
the results to the file attributes, rather than attempting to convert
file attributes to UTC string (which wasn't reliable).
(vc-find-cvs-master): Use it to compare mtime and checkout time.
(vc-locking-user): CVS case: *only* use checkout time.
(vc-find-cvs-master): Don't attempt to find the RCS master file.
Throw the full name of CVS/Entries.
(vc-name): Doc change (special CVS case).
(vc-after-save): Handle the case when a file is saved in the very
second in which it was checked out.
(vc-fetch-master-properties): CVS case: Use it.
(vc-lock-from-permissions, vc-file-owner, vc-rcs-lock-from-diff):
New functions.
(vc-locking-user): Largely rewritten. Uses the above, handles RCS
non-strict locking. Under CVS in CVSREAD-mode, learn the locking state
from the permissions.
(vc-find-cvs-master): Use vc-insert-file, rather than
find-file-noselect. Greatly speeds up things.
(vc-consult-rcs-headers): Bug fix, return status in all cases.
CVS case: new state `locally-added'.
(vc-locking-user): Under RCS with non-strict locking, don't trust
the file permissions. CVS case: change which states count as
"locked".
(vc-consult-rcs-headers): Streamlined. Don't set vc-locking-user if
this is called under CVS. Under RCS, use a heuristic to find the
value of vc-checkout-model without examining the master file.
(vc-parse-locks): Set vc-checkout-model.
(vc-status): Comment change.
(vc-after-save-hook, vc-after-save): The former renamed to the
latter. Now unconditionally called by `basic-save-buffer', determines
whether the buffer should be "locked" or not.
(vc-mode-line): No longer use dynamic after-save-hook. Changed
references to `automatic' into `implicit'.
(vc-checkout-model): Values are now `manual' and `implicit'. Derive
the property on a per-file basis, supporting all possible modes.
(vc-locking-user): Count cvs status `unresolved-conflict' as "locked".
(vc-checkout-model): New property and access function (still simplistic).
(vc-after-save-hook): New function.
(vc-mode-line): When the file is locked by somebody else, make the
buffer read-only. (Formerly this was only done for root.) Don't
write-protect the buffer if the file is unlocked. Instead, install
vc-after-save-hook, which "locks" the file when modifications are
saved.