Fix last change not to introduce spurious dir FIs.
(cvs-move-to-goal-column): New function extracted from
cvs-mode-previous-line.
(cvs-mode-previous-line, cvs-mode-next-line): Use it.
(cvs-addto-collection): Use it to preserve point.
(cvs-vc-command-advice): Ad-hoc workaround for `cvs -q add'.
spot indicated by text property `cvs-goal-column', if present.
* pcvs-info.el (cvs-fileinfo-pp): Use text property
`cvs-goal-column' to indicate position of file name (if present).
(cvs-update-filter): Only advertise `cvs-mode-delete-lock' if the
lock file appears to be reachable from Emacs.
(cvs-mode-mark-on-state, cvs-mode-display-file): New functions.
(cvs-mode-find-file): Look for cvs-header-face rather than
cvs-dirname-face (which doesn't exist).
(cvs-mode-find-file): Allow `other' to be set to `dont-select'.
(cvs-commit-filelist): Never query.
(cvs-mode-insert): Always add a terminating / in the initial prompt.
(cvs-mode-diff-backup): Use cvs-partition rather than delete-if-not.
(cvs-do-removal): Use cvs-partition rather than delete-if.
Use cvs-insert-strings, cvs-pop-to-buffer-same-frame and
cvs-bury-buffer.
Prompt user for a file rather than raising an error.
(cvs-enabledp): Fix call to cvs-mode-marked.
(cvs-insert-file): New function (extracted from cvs-mode-insert).
(cvs-mode-insert): Use it. Change the init prompt' value.
(cvs-mode-tree): Use cvs-status-cvstrees instead of cvs-status-trees.
(ewoc-goto-prev, ewoc-goto-next): Remove arg POS.
Allow going past the last element.
* pcvs.el (cvs-mode-previous-line, cvs-mode-next-line, cvs-mode-mark)
(cvs-mode-unmark-up, cvs-get-marked): Update calls to ewoc.
(cvs-mouse-toggle-mark): Don't move point.
(cvs-revert-if-needed): Avoid re-eval of local variables and modes.
Set cvs-minor-current-files to the selected fileinfo.
(cvs-get-marked): Accept fileinfos in cvs-minor-current-files.
(cvs-mode-insert): Manually macroexpand `ignore-errors'.
instead of `buffer-string'.
(require 'cl): Always, not just when compiling.
`ignore-errors' in `interactive', `list*', `defun*' &c make this necessary.
(cvs-cleanup-removed): New function.
(cvs-cleanup-functions): New var.
(cvs-cleanup-collection): Use cvs-cleanup-functions to allow the user
some flexibility in specifying additional entries to auto-cleanup.
(cvs-quickdir): New function.
(cvs-mode-insert): Use cvs-fileinfo-from-entries.
(cvs-mode-imerge): Use smerge-ediff rather than vc-resolve-conflicts.
(cvs-mode-find-file): Check that we are on a filename or dirname
when invoked through a mouse-click.
(cvs-full-path): Remove.
(cvs-dired-action): Re-introduced.
(cvs-dired-noselect): Use it.
(vc-post-command-functions): use this new hook if available.
HEADER/FOOTER and fix bug with trailing empty directory.
(cvs-append-to-ignore): Use vc-editable-p if available.
(cvs-dir-member-p): Remove obsolete code for HEADER/FOOTER.
(vc-do-command): Tweak advice to handle the new VC.
(cvs-make-cvs-buffer): Change the header part by removing the startup
message and adding a `Module' entry. Also replace the FOOTER and
HEADER special fileinfos with the new support in ewoc for updating
its own footer and header.
(cvs-update-header): Update to use the header/footer of the ewoc.
(cvs-mode): Use define-derived-mode and set truncate-lines to t.
(cvs-is-within-p): New function.
(cvs-mode-run): Take advantage of `save-some-buffers's new ability
to only examine some subset of the buffers.
* pcvs-info.el (cvs-fileinfo-pp): Use the new property-preserving
`format' instead of our own ad-hoc functions.
Remove HEADER and FOOTER cases, now handled in the EWOC.
(cvs-fileinfo<): Remove HEADER and FOOTER cases.
* pcvs-parse.el (cvs-parse-run-table): Change message for unknown
output to avoid scaring the user.
(cvs-parse-table): Catch message for non-up-to-date commits.
* pcvs-defs.el (cvs-startup-message): Remove.
(cvs-global-menu): New autoloaded menu.
* pcvs-util.el (cvs-string-fill): Remove.
* emacs-lisp/ewoc.el (ewoc--create-special-node): Remove.
(ewoc--refresh-node): Don't take the whole EWOC but only the relevant
PP part of it and also make it work for footers and headers.
(ewoc-create): Drop POS and BUFFER arguments.
Use the DLL's dummy node to store the end-of-footer position.
(ewoc-map, ewoc-invalidate): Update call to ewoc--refresh-node.
(ewoc-refresh): Remove unused `header' variable.
(ewoc-(get|set)-hf): New functions.