2001-07-16 07:46:48 +00:00
|
|
|
|
;;; pcvs-info.el --- internal representation of a fileinfo entry
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
2019-01-01 00:59:58 +00:00
|
|
|
|
;; Copyright (C) 1991-2019 Free Software Foundation, Inc.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
2006-04-30 15:49:08 +00:00
|
|
|
|
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;; Keywords: pcl-cvs
|
2010-08-29 12:17:13 -04:00
|
|
|
|
;; Package: pcvs
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
|
2008-05-06 08:06:51 +00:00
|
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
2008-05-06 08:06:51 +00:00
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
;; (at your option) any later version.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
2017-09-13 15:52:52 -07:00
|
|
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
|
|
;; The cvs-fileinfo data structure:
|
|
|
|
|
;;
|
|
|
|
|
;; When the `cvs update' is ready we parse the output. Every file
|
|
|
|
|
;; that is affected in some way is added to the cookie collection as
|
|
|
|
|
;; a "fileinfo" (as defined below in cvs-create-fileinfo).
|
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(eval-when-compile (require 'cl-lib))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(require 'pcvs-util)
|
|
|
|
|
;;(require 'pcvs-defs)
|
|
|
|
|
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; config variables
|
|
|
|
|
;;;;
|
|
|
|
|
|
2005-04-26 20:35:42 +00:00
|
|
|
|
(defcustom cvs-display-full-name t
|
2008-12-03 05:48:14 +00:00
|
|
|
|
"Specifies how the filenames should be displayed in the listing.
|
2005-04-26 20:35:42 +00:00
|
|
|
|
If non-nil, their full filename name will be displayed, else only the
|
|
|
|
|
non-directory part."
|
2000-03-11 03:51:31 +00:00
|
|
|
|
:group 'pcl-cvs
|
|
|
|
|
:type '(boolean))
|
|
|
|
|
|
|
|
|
|
(defcustom cvs-allow-dir-commit nil
|
2008-12-03 05:48:14 +00:00
|
|
|
|
"Allow `cvs-mode-commit' on directories.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
If you commit without any marked file and with the cursor positioned
|
|
|
|
|
on a directory entry, cvs would commit the whole directory. This seems
|
|
|
|
|
to confuse some users sometimes."
|
|
|
|
|
:group 'pcl-cvs
|
|
|
|
|
:type '(boolean))
|
|
|
|
|
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; Faces for fontification
|
|
|
|
|
;;;;
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-header
|
2000-03-11 03:51:31 +00:00
|
|
|
|
'((((class color) (background dark))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(:foreground "lightyellow" :weight bold))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(((class color) (background light))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(:foreground "blue4" :weight bold))
|
|
|
|
|
(t (:weight bold)))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"PCL-CVS face used to highlight directory changes."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-filename
|
2000-03-11 03:51:31 +00:00
|
|
|
|
'((((class color) (background dark))
|
|
|
|
|
(:foreground "lightblue"))
|
|
|
|
|
(((class color) (background light))
|
|
|
|
|
(:foreground "blue4"))
|
|
|
|
|
(t ()))
|
|
|
|
|
"PCL-CVS face used to highlight file names."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-unknown
|
2000-03-11 03:51:31 +00:00
|
|
|
|
'((((class color) (background dark))
|
2007-07-13 02:50:19 +00:00
|
|
|
|
(:foreground "red1"))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(((class color) (background light))
|
2007-07-13 02:50:19 +00:00
|
|
|
|
(:foreground "red1"))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(t (:slant italic)))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"PCL-CVS face used to highlight unknown file status."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-handled
|
2000-03-11 03:51:31 +00:00
|
|
|
|
'((((class color) (background dark))
|
|
|
|
|
(:foreground "pink"))
|
|
|
|
|
(((class color) (background light))
|
|
|
|
|
(:foreground "pink"))
|
|
|
|
|
(t ()))
|
|
|
|
|
"PCL-CVS face used to highlight handled file status."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-need-action
|
2000-03-11 03:51:31 +00:00
|
|
|
|
'((((class color) (background dark))
|
|
|
|
|
(:foreground "orange"))
|
|
|
|
|
(((class color) (background light))
|
|
|
|
|
(:foreground "orange"))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(t (:slant italic)))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"PCL-CVS face used to highlight status of files needing action."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-marked
|
* mh-customize.el (mh-speedbar-selected-folder-face): Special case
high number of colors displays.
* textmodes/table.el (table-cell-face): Add special case for
displays supporting a high number of colors.
* progmodes/vhdl-mode.el (vhdl-font-lock-prompt-face)
(vhdl-font-lock-reserved-words-face)
(vhdl-speedbar-architecture-face)
(vhdl-speedbar-instantiation-face)
(vhdl-speedbar-architecture-selected-face)
(vhdl-speedbar-instantiation-selected-face): Likewise.
* progmodes/sh-script.el (sh-heredoc-face): Likewise.
* progmodes/idlw-help.el (idlwave-help-link-face): Likewise.
* progmodes/ebrowse.el (ebrowse-tree-mark-face)
(ebrowse-root-class-face, ebrowse-member-attribute-face)
(ebrowse-progress-face): Likewise.
* progmodes/compile.el (compilation-info-face): Likewise.
* progmodes/cc-fonts.el (c-invalid-face): Likewise.
* emacs-lisp/re-builder.el (reb-match-3): Likewise.
* calendar/calendar.el (diary-face): Likewise.
* woman.el (woman-italic-face, woman-bold-face)
(woman-unknown-face): Likewise.
* wid-edit.el (widget-button-pressed-face): Likewise.
* whitespace.el (whitespace-highlight-face): Likewise.
* smerge-mode.el (smerge-mine-face, smerge-base-face): Likewise.
* pcvs-info.el (cvs-marked-face): Likewise.
* info.el (info-xref): Likewise.
* ido.el (ido-subdir-face, ido-indicator-face): Likewise.
* hilit-chg.el (highlight-changes-face)
(highlight-changes-delete-face): Likewise.
* hi-lock.el (hi-yellow, hi-green, hi-blue-b, hi-green-b)
(hi-red-b): Likewise.
* generic-x.el (show-tabs-tab-face, show-tabs-space-face): Likewise.
* font-lock.el (font-lock-keyword-face)
(font-lock-function-name-face, font-lock-warning-face): Likewise.
* cus-edit.el (custom-invalid-face, custom-modified-face)
(custom-set-face, custom-changed-face, custom-variable-tag-face)
(custom-group-tag-face-1, custom-group-tag-face): Likewise.
* comint.el (comint-highlight-prompt): Likewise.
2005-04-08 14:26:13 +00:00
|
|
|
|
'((((min-colors 88) (class color) (background dark))
|
|
|
|
|
(:foreground "green1" :weight bold))
|
|
|
|
|
(((class color) (background dark))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(:foreground "green" :weight bold))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(((class color) (background light))
|
2001-12-31 20:43:36 +00:00
|
|
|
|
(:foreground "green3" :weight bold))
|
|
|
|
|
(t (:weight bold)))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"PCL-CVS face used to highlight marked file indicator."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defface cvs-msg
|
2012-09-29 23:44:35 -04:00
|
|
|
|
'((t :slant italic))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"PCL-CVS face used to highlight CVS messages."
|
|
|
|
|
:group 'pcl-cvs)
|
|
|
|
|
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(defvar cvs-fi-up-to-date-face 'cvs-handled)
|
|
|
|
|
(defvar cvs-fi-unknown-face 'cvs-unknown)
|
2000-11-12 16:52:53 +00:00
|
|
|
|
(defvar cvs-fi-conflict-face 'font-lock-warning-face)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;; There is normally no need to alter the following variable, but if
|
|
|
|
|
;; your site has installed CVS in a non-standard way you might have
|
|
|
|
|
;; to change it.
|
|
|
|
|
|
|
|
|
|
(defvar cvs-bakprefix ".#"
|
|
|
|
|
"The prefix that CVS prepends to files when rcsmerge'ing.")
|
|
|
|
|
|
|
|
|
|
(easy-mmode-defmap cvs-status-map
|
2004-04-14 17:38:23 +00:00
|
|
|
|
'(([(mouse-2)] . cvs-mode-toggle-mark))
|
lisp/vc/pcvs*.el: Fix typos.
* lisp/vc/pcvs-defs.el (cvs-auto-remove-handled)
(cvs-auto-remove-directories, cvs-default-ignore-marks)
(cvs-idiff-imerge-handlers, cvs-reuse-cvs-buffer)
(cvs-execute-single-dir): Fix docstring typos.
* lisp/vc/pcvs-info.el (cvs-status-map, cvs-states): Fix docstring typos.
(cvs-fileinfo-pp, cvs-fileinfo-from-entries): Doc fixes.
* lisp/vc/pcvs-parse.el (cvs-parsed-fileinfo): Reflow docstring.
* lisp/vc/pcvs-util.el (cvs-flags-query, cvs-flags-set, cvs-prefix-set):
Fix docstring typos.
* lisp/vc/pcvs.el (cvs-temp-buffer, defun-cvs-mode, cvs-get-cvsroot)
(cvs-checkout, cvs-mode-checkout, cvs-update-filter, cvs-mode-mark)
(cvs-mode-diff-head, cvs-mode-diff-repository, cvs-mode-diff-yesterday)
(cvs-mode-diff-vendor, cvs-mode-do, cvs-change-cvsroot)
(cvs-dired-use-hook): Fix docstring typos.
(cvs-mode-view-file-other-window, cvs-mode-byte-compile-files):
Doc fixes.
2014-03-12 05:00:03 +01:00
|
|
|
|
"Local keymap for text properties of status.")
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;; Constructor:
|
|
|
|
|
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(cl-defstruct (cvs-fileinfo
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(:constructor nil)
|
|
|
|
|
(:copier nil)
|
|
|
|
|
(:constructor -cvs-create-fileinfo (type dir file full-log
|
|
|
|
|
&key marked subtype
|
|
|
|
|
merge
|
|
|
|
|
base-rev
|
|
|
|
|
head-rev))
|
|
|
|
|
(:conc-name cvs-fileinfo->))
|
|
|
|
|
marked ;; t/nil.
|
|
|
|
|
type ;; See below
|
|
|
|
|
subtype ;; See below
|
|
|
|
|
dir ;; Relative directory the file resides in.
|
|
|
|
|
;; (concat dir file) should give a valid path.
|
|
|
|
|
file ;; The file name sans the directory.
|
|
|
|
|
base-rev ;; During status: This is the revision that the
|
|
|
|
|
;; working file is based on.
|
|
|
|
|
head-rev ;; During status: This is the highest revision in
|
|
|
|
|
;; the repository.
|
|
|
|
|
merge ;; A cons cell containing the (ancestor . head) revisions
|
|
|
|
|
;; of the merge that resulted in the current file.
|
|
|
|
|
;;removed ;; t if the file no longer exists.
|
|
|
|
|
full-log ;; The output from cvs, unparsed.
|
|
|
|
|
;;mod-time ;; Not used.
|
|
|
|
|
|
|
|
|
|
;; In addition to the above, the following values can be extracted:
|
|
|
|
|
|
|
|
|
|
;; handled ;; t if this file doesn't require further action.
|
2005-04-26 20:35:42 +00:00
|
|
|
|
;; full-name ;; The complete relative filename.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;; pp-name ;; The printed file name
|
|
|
|
|
;; backup-file;; For MERGED and CONFLICT files after a \"cvs update\",
|
|
|
|
|
;; this is a full path to the backup file where the
|
|
|
|
|
;; untouched version resides.
|
|
|
|
|
|
|
|
|
|
;; The meaning of the type field:
|
2003-02-04 12:29:42 +00:00
|
|
|
|
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;; Value ---Used by--- Explanation
|
|
|
|
|
;; update status
|
|
|
|
|
;; NEED-UPDATE x file needs update
|
|
|
|
|
;; MODIFIED x x modified by you, unchanged in repository
|
|
|
|
|
;; MERGED x x successful merge
|
|
|
|
|
;; ADDED x x added by you, not yet committed
|
|
|
|
|
;; MISSING x rm'd, but not yet `cvs remove'd
|
|
|
|
|
;; REMOVED x x removed by you, not yet committed
|
|
|
|
|
;; NEED-MERGE x need merge
|
|
|
|
|
;; CONFLICT x conflict when merging
|
|
|
|
|
;; ;;MOD-CONFLICT x removed locally, changed in repository.
|
|
|
|
|
;; DIRCHANGE x x A change of directory.
|
|
|
|
|
;; UNKNOWN x An unknown file.
|
|
|
|
|
;; UP-TO-DATE x The file is up-to-date.
|
|
|
|
|
;; UPDATED x x file copied from repository
|
|
|
|
|
;; PATCHED x x diff applied from repository
|
|
|
|
|
;; COMMITTED x x cvs commit'd
|
|
|
|
|
;; DEAD An entry that should be removed
|
|
|
|
|
;; MESSAGE x x This is a special fileinfo that is used
|
|
|
|
|
;; to display a text that should be in
|
|
|
|
|
;; full-log."
|
|
|
|
|
;; TEMP A temporary message that should be removed
|
|
|
|
|
)
|
|
|
|
|
(defun cvs-create-fileinfo (type dir file msg &rest keys)
|
|
|
|
|
(cvs-check-fileinfo (apply #'-cvs-create-fileinfo type dir file msg keys)))
|
|
|
|
|
|
|
|
|
|
;; Fake selectors:
|
|
|
|
|
|
2005-04-26 20:35:42 +00:00
|
|
|
|
(defun cvs-fileinfo->full-name (fileinfo)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
"Return the full path for the file that is described in FILEINFO."
|
|
|
|
|
(let ((dir (cvs-fileinfo->dir fileinfo)))
|
|
|
|
|
(if (eq (cvs-fileinfo->type fileinfo) 'DIRCHANGE)
|
|
|
|
|
(if (string= dir "") "." (directory-file-name dir))
|
|
|
|
|
;; Here, I use `concat' rather than `expand-file-name' because I want
|
|
|
|
|
;; the resulting path to stay relative if `dir' is relative.
|
|
|
|
|
(concat dir (cvs-fileinfo->file fileinfo)))))
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo->pp-name (fi)
|
|
|
|
|
"Return the filename of FI as it should be displayed."
|
2005-04-26 20:35:42 +00:00
|
|
|
|
(if cvs-display-full-name
|
|
|
|
|
(cvs-fileinfo->full-name fi)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(cvs-fileinfo->file fi)))
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo->backup-file (fileinfo)
|
|
|
|
|
"Construct the file name of the backup file for FILEINFO."
|
|
|
|
|
(let* ((dir (cvs-fileinfo->dir fileinfo))
|
|
|
|
|
(file (cvs-fileinfo->file fileinfo))
|
|
|
|
|
(default-directory (file-name-as-directory (expand-file-name dir)))
|
|
|
|
|
(files (directory-files "." nil
|
2004-03-04 22:44:23 +00:00
|
|
|
|
(concat "\\`" (regexp-quote cvs-bakprefix)
|
|
|
|
|
(regexp-quote file) "\\(\\.[0-9]+\\.[0-9]+\\)+\\'")))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
bf)
|
2005-04-26 20:35:42 +00:00
|
|
|
|
(dolist (f files)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(when (and (file-readable-p f)
|
|
|
|
|
(or (null bf) (file-newer-than-file-p f bf)))
|
2005-04-26 20:35:42 +00:00
|
|
|
|
(setq bf f)))
|
|
|
|
|
(concat dir bf)))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
;; (defun cvs-fileinfo->handled (fileinfo)
|
|
|
|
|
;; "Tell if this requires further action"
|
|
|
|
|
;; (memq (cvs-fileinfo->type fileinfo) '(UP-TO-DATE DEAD)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; Predicate:
|
|
|
|
|
|
|
|
|
|
(defun cvs-check-fileinfo (fi)
|
|
|
|
|
"Check FI's conformance to some conventions."
|
|
|
|
|
(let ((check 'none)
|
|
|
|
|
(type (cvs-fileinfo->type fi))
|
|
|
|
|
(subtype (cvs-fileinfo->subtype fi))
|
|
|
|
|
(marked (cvs-fileinfo->marked fi))
|
|
|
|
|
(dir (cvs-fileinfo->dir fi))
|
|
|
|
|
(file (cvs-fileinfo->file fi))
|
|
|
|
|
(base-rev (cvs-fileinfo->base-rev fi))
|
|
|
|
|
(head-rev (cvs-fileinfo->head-rev fi))
|
|
|
|
|
(full-log (cvs-fileinfo->full-log fi)))
|
2002-09-11 01:56:47 +00:00
|
|
|
|
(if (and (setq check 'marked) (memq marked '(t nil))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(setq check 'base-rev) (or (null base-rev) (stringp base-rev))
|
|
|
|
|
(setq check 'head-rev) (or (null head-rev) (stringp head-rev))
|
|
|
|
|
(setq check 'full-log) (stringp full-log)
|
|
|
|
|
(setq check 'dir)
|
|
|
|
|
(and (stringp dir)
|
|
|
|
|
(not (file-name-absolute-p dir))
|
|
|
|
|
(or (string= dir "")
|
|
|
|
|
(string= dir (file-name-as-directory dir))))
|
|
|
|
|
(setq check 'file)
|
|
|
|
|
(and (stringp file)
|
|
|
|
|
(string= file (file-name-nondirectory file)))
|
|
|
|
|
(setq check 'type) (symbolp type)
|
|
|
|
|
(setq check 'consistency)
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(pcase type
|
2018-11-05 01:22:15 +01:00
|
|
|
|
('DIRCHANGE (and (null subtype) (string= "." file)))
|
|
|
|
|
((or 'NEED-UPDATE 'ADDED 'MISSING 'DEAD 'MODIFIED 'MESSAGE
|
|
|
|
|
'UP-TO-DATE 'REMOVED 'NEED-MERGE 'CONFLICT 'UNKNOWN)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
t)))
|
|
|
|
|
fi
|
|
|
|
|
(error "Invalid :%s in cvs-fileinfo %s" check fi))))
|
|
|
|
|
|
|
|
|
|
|
2003-02-04 12:29:42 +00:00
|
|
|
|
;;;;
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;;;; State table to indicate what you can do when.
|
2003-02-04 12:29:42 +00:00
|
|
|
|
;;;;
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
(defconst cvs-states
|
2004-09-07 04:51:47 +00:00
|
|
|
|
`((NEED-UPDATE update diff ignore)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(UP-TO-DATE update nil remove diff safe-rm revert)
|
|
|
|
|
(MODIFIED update commit undo remove diff merge diff-base)
|
|
|
|
|
(ADDED update commit remove)
|
|
|
|
|
(MISSING remove undo update safe-rm revert)
|
|
|
|
|
(REMOVED commit add undo safe-rm)
|
|
|
|
|
(NEED-MERGE update undo diff diff-base)
|
|
|
|
|
(CONFLICT merge remove undo commit diff diff-base)
|
|
|
|
|
(DIRCHANGE remove update diff ,(if cvs-allow-dir-commit 'commit) tag)
|
|
|
|
|
(UNKNOWN ignore add remove)
|
|
|
|
|
(DEAD )
|
|
|
|
|
(MESSAGE))
|
|
|
|
|
"Fileinfo state descriptions for pcl-cvs.
|
lisp/vc/pcvs*.el: Fix typos.
* lisp/vc/pcvs-defs.el (cvs-auto-remove-handled)
(cvs-auto-remove-directories, cvs-default-ignore-marks)
(cvs-idiff-imerge-handlers, cvs-reuse-cvs-buffer)
(cvs-execute-single-dir): Fix docstring typos.
* lisp/vc/pcvs-info.el (cvs-status-map, cvs-states): Fix docstring typos.
(cvs-fileinfo-pp, cvs-fileinfo-from-entries): Doc fixes.
* lisp/vc/pcvs-parse.el (cvs-parsed-fileinfo): Reflow docstring.
* lisp/vc/pcvs-util.el (cvs-flags-query, cvs-flags-set, cvs-prefix-set):
Fix docstring typos.
* lisp/vc/pcvs.el (cvs-temp-buffer, defun-cvs-mode, cvs-get-cvsroot)
(cvs-checkout, cvs-mode-checkout, cvs-update-filter, cvs-mode-mark)
(cvs-mode-diff-head, cvs-mode-diff-repository, cvs-mode-diff-yesterday)
(cvs-mode-diff-vendor, cvs-mode-do, cvs-change-cvsroot)
(cvs-dired-use-hook): Fix docstring typos.
(cvs-mode-view-file-other-window, cvs-mode-byte-compile-files):
Doc fixes.
2014-03-12 05:00:03 +01:00
|
|
|
|
This is an assoc list. Each element consists of (STATE . FUNS):
|
|
|
|
|
- STATE (described in `cvs-create-fileinfo') is the key.
|
2000-03-11 03:51:31 +00:00
|
|
|
|
- FUNS is the list of applicable operations.
|
|
|
|
|
The first one (if any) should be the \"default\" action.
|
|
|
|
|
Most of the actions have the obvious meaning.
|
|
|
|
|
`safe-rm' indicates that the file can be removed without losing
|
|
|
|
|
any information.")
|
|
|
|
|
|
|
|
|
|
;;;;
|
|
|
|
|
;;;; Utility functions
|
|
|
|
|
;;;;
|
|
|
|
|
|
|
|
|
|
(defun cvs-applicable-p (fi-or-type func)
|
|
|
|
|
"Check if FUNC is applicable to FI-OR-TYPE.
|
|
|
|
|
If FUNC is nil, always return t.
|
|
|
|
|
FI-OR-TYPE can either be a symbol (a fileinfo-type) or a fileinfo."
|
|
|
|
|
(let ((type (if (symbolp fi-or-type) fi-or-type
|
|
|
|
|
(cvs-fileinfo->type fi-or-type))))
|
|
|
|
|
(and (not (eq type 'MESSAGE))
|
|
|
|
|
(eq (car (memq func (cdr (assq type cvs-states)))) func))))
|
|
|
|
|
|
2002-06-18 21:47:41 +00:00
|
|
|
|
(defun cvs-add-face (str face &optional keymap &rest props)
|
2002-06-18 23:03:55 +00:00
|
|
|
|
(when keymap
|
|
|
|
|
(when (keymapp keymap)
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(setq props `(keymap ,keymap ,@props)))
|
|
|
|
|
(setq props `(mouse-face highlight ,@props)))
|
|
|
|
|
(add-text-properties 0 (length str) `(font-lock-face ,face ,@props) str)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
str)
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo-pp (fileinfo)
|
|
|
|
|
"Pretty print FILEINFO. Insert a printed representation in current buffer.
|
lisp/vc/pcvs*.el: Fix typos.
* lisp/vc/pcvs-defs.el (cvs-auto-remove-handled)
(cvs-auto-remove-directories, cvs-default-ignore-marks)
(cvs-idiff-imerge-handlers, cvs-reuse-cvs-buffer)
(cvs-execute-single-dir): Fix docstring typos.
* lisp/vc/pcvs-info.el (cvs-status-map, cvs-states): Fix docstring typos.
(cvs-fileinfo-pp, cvs-fileinfo-from-entries): Doc fixes.
* lisp/vc/pcvs-parse.el (cvs-parsed-fileinfo): Reflow docstring.
* lisp/vc/pcvs-util.el (cvs-flags-query, cvs-flags-set, cvs-prefix-set):
Fix docstring typos.
* lisp/vc/pcvs.el (cvs-temp-buffer, defun-cvs-mode, cvs-get-cvsroot)
(cvs-checkout, cvs-mode-checkout, cvs-update-filter, cvs-mode-mark)
(cvs-mode-diff-head, cvs-mode-diff-repository, cvs-mode-diff-yesterday)
(cvs-mode-diff-vendor, cvs-mode-do, cvs-change-cvsroot)
(cvs-dired-use-hook): Fix docstring typos.
(cvs-mode-view-file-other-window, cvs-mode-byte-compile-files):
Doc fixes.
2014-03-12 05:00:03 +01:00
|
|
|
|
For use by the ewoc package."
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(cvs-check-fileinfo fileinfo)
|
|
|
|
|
(let ((type (cvs-fileinfo->type fileinfo))
|
|
|
|
|
(subtype (cvs-fileinfo->subtype fileinfo)))
|
|
|
|
|
(insert
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(pcase type
|
2018-11-05 01:22:15 +01:00
|
|
|
|
('DIRCHANGE (concat "In directory "
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(cvs-add-face (cvs-fileinfo->full-name fileinfo)
|
|
|
|
|
'cvs-header t 'cvs-goal-column t)
|
|
|
|
|
":"))
|
2018-11-05 01:22:15 +01:00
|
|
|
|
('MESSAGE
|
2000-03-22 02:57:23 +00:00
|
|
|
|
(cvs-add-face (format "Message: %s" (cvs-fileinfo->full-log fileinfo))
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
'cvs-msg))
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(_
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(let* ((status (if (cvs-fileinfo->marked fileinfo)
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
(cvs-add-face "*" 'cvs-marked)
|
2000-03-11 03:51:31 +00:00
|
|
|
|
" "))
|
|
|
|
|
(file (cvs-add-face (cvs-fileinfo->pp-name fileinfo)
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
'cvs-filename t 'cvs-goal-column t))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(base (or (cvs-fileinfo->base-rev fileinfo) ""))
|
|
|
|
|
(head (cvs-fileinfo->head-rev fileinfo))
|
|
|
|
|
(type
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(let ((str (pcase type
|
2000-03-11 03:51:31 +00:00
|
|
|
|
;;(MOD-CONFLICT "Not Removed")
|
2018-11-05 01:22:15 +01:00
|
|
|
|
('DEAD "")
|
Reduce use of (require 'cl).
* admin/bzrmerge.el: Use cl-lib.
* leim/quail/hangul.el: Don't require CL.
* leim/quail/ipa.el: Use cl-lib.
* vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
* vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
* register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
* msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
* international/quail.el, info-xref.el, imenu.el, image-mode.el:
* font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
* battery.el, avoid.el, abbrev.el: Use cl-lib.
* vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
* vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
* jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
* emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
* calculator.el, autorevert.el, apropos.el: Don't require CL.
* emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
(byte-compile-unfold-bcf, byte-compile-check-variable):
* emacs-byte-opt.el (byte-compile-trueconstp)
(byte-compile-nilconstp):
* emacs-autoload.el (make-autoload): Use pcase.
* face-remap.el (text-scale-adjust): Simplify pcase patterns.
2012-07-10 07:51:54 -04:00
|
|
|
|
(_ (capitalize (symbol-name type)))))
|
2012-09-29 23:44:35 -04:00
|
|
|
|
(face (let ((sym (intern-soft
|
2000-06-12 04:37:50 +00:00
|
|
|
|
(concat "cvs-fi-"
|
|
|
|
|
(downcase (symbol-name type))
|
|
|
|
|
"-face"))))
|
|
|
|
|
(or (and (boundp sym) (symbol-value sym))
|
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-379
Remove "-face" suffix from pcvs faces
2005-06-10 Miles Bader <miles@gnu.org>
* lisp/pcvs-info.el (cvs-header, cvs-filename, cvs-unknown)
(cvs-handled, cvs-need-action, cvs-marked, cvs-msg):
Remove "-face" suffix from face names.
(cvs-header-face, cvs-filename-face, cvs-unknown-face)
(cvs-handled-face, cvs-need-action-face, cvs-marked-face)
(cvs-msg-face): New backward-compatibility aliases for renamed faces.
(cvs-fi-up-to-date-face, cvs-fi-unknown-face, cvs-fileinfo-pp):
Use renamed pcvs faces.
2005-06-10 09:06:16 +00:00
|
|
|
|
'cvs-need-action))))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(cvs-add-face str face cvs-status-map)))
|
|
|
|
|
(side (or
|
|
|
|
|
;; maybe a subtype
|
|
|
|
|
(when subtype (downcase (symbol-name subtype)))
|
|
|
|
|
;; or the head-rev
|
|
|
|
|
(when (and head (not (string= head base))) head)
|
|
|
|
|
;; or nothing
|
2000-03-22 02:57:23 +00:00
|
|
|
|
"")))
|
2002-04-03 16:56:36 +00:00
|
|
|
|
(format "%-11s %s %-11s %-11s %s"
|
2006-05-18 12:09:16 +00:00
|
|
|
|
side status type base file))))
|
|
|
|
|
"\n")))
|
2000-03-11 03:51:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo-update (fi fi-new)
|
|
|
|
|
"Update FI with the information provided in FI-NEW."
|
|
|
|
|
(let ((type (cvs-fileinfo->type fi-new))
|
|
|
|
|
(merge (cvs-fileinfo->merge fi-new)))
|
|
|
|
|
(setf (cvs-fileinfo->type fi) type)
|
|
|
|
|
(setf (cvs-fileinfo->subtype fi) (cvs-fileinfo->subtype fi-new))
|
|
|
|
|
(setf (cvs-fileinfo->full-log fi) (cvs-fileinfo->full-log fi-new))
|
|
|
|
|
(setf (cvs-fileinfo->base-rev fi) (cvs-fileinfo->base-rev fi-new))
|
|
|
|
|
(setf (cvs-fileinfo->head-rev fi) (cvs-fileinfo->head-rev fi-new))
|
|
|
|
|
(cond
|
|
|
|
|
(merge (setf (cvs-fileinfo->merge fi) merge))
|
|
|
|
|
((memq type '(UP-TO-DATE NEED-UPDATE))
|
|
|
|
|
(setf (cvs-fileinfo->merge fi) nil)))))
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo< (a b)
|
|
|
|
|
"Compare fileinfo A with fileinfo B and return t if A is `less'.
|
|
|
|
|
The ordering defined by this function is such that directories are
|
|
|
|
|
sorted alphabetically, and inside every directory the DIRCHANGE
|
|
|
|
|
fileinfo will appear first, followed by all files (alphabetically)."
|
|
|
|
|
(let ((subtypea (cvs-fileinfo->subtype a))
|
|
|
|
|
(subtypeb (cvs-fileinfo->subtype b)))
|
|
|
|
|
(cond
|
|
|
|
|
;; Sort according to directories.
|
|
|
|
|
((string< (cvs-fileinfo->dir a) (cvs-fileinfo->dir b)) t)
|
|
|
|
|
((not (string= (cvs-fileinfo->dir a) (cvs-fileinfo->dir b))) nil)
|
|
|
|
|
|
|
|
|
|
;; The DIRCHANGE entry is always first within the directory.
|
|
|
|
|
((eq (cvs-fileinfo->type b) 'DIRCHANGE) nil)
|
|
|
|
|
((eq (cvs-fileinfo->type a) 'DIRCHANGE) t)
|
|
|
|
|
|
|
|
|
|
;; All files are sorted by file name.
|
|
|
|
|
((string< (cvs-fileinfo->file a) (cvs-fileinfo->file b))))))
|
|
|
|
|
|
2000-06-12 04:37:50 +00:00
|
|
|
|
;;;
|
|
|
|
|
;;; Look at CVS/Entries to quickly find a first approximation of the status
|
|
|
|
|
;;;
|
|
|
|
|
|
|
|
|
|
(defun cvs-fileinfo-from-entries (dir &optional all)
|
|
|
|
|
"List of fileinfos for DIR, extracted from CVS/Entries.
|
lisp/vc/pcvs*.el: Fix typos.
* lisp/vc/pcvs-defs.el (cvs-auto-remove-handled)
(cvs-auto-remove-directories, cvs-default-ignore-marks)
(cvs-idiff-imerge-handlers, cvs-reuse-cvs-buffer)
(cvs-execute-single-dir): Fix docstring typos.
* lisp/vc/pcvs-info.el (cvs-status-map, cvs-states): Fix docstring typos.
(cvs-fileinfo-pp, cvs-fileinfo-from-entries): Doc fixes.
* lisp/vc/pcvs-parse.el (cvs-parsed-fileinfo): Reflow docstring.
* lisp/vc/pcvs-util.el (cvs-flags-query, cvs-flags-set, cvs-prefix-set):
Fix docstring typos.
* lisp/vc/pcvs.el (cvs-temp-buffer, defun-cvs-mode, cvs-get-cvsroot)
(cvs-checkout, cvs-mode-checkout, cvs-update-filter, cvs-mode-mark)
(cvs-mode-diff-head, cvs-mode-diff-repository, cvs-mode-diff-yesterday)
(cvs-mode-diff-vendor, cvs-mode-do, cvs-change-cvsroot)
(cvs-dired-use-hook): Fix docstring typos.
(cvs-mode-view-file-other-window, cvs-mode-byte-compile-files):
Doc fixes.
2014-03-12 05:00:03 +01:00
|
|
|
|
Unless ALL is non-nil, returns only the files that are not up-to-date.
|
2000-06-12 04:37:50 +00:00
|
|
|
|
DIR can also be a file."
|
|
|
|
|
(let* ((singlefile
|
|
|
|
|
(cond
|
|
|
|
|
((equal dir "") nil)
|
|
|
|
|
((file-directory-p dir) (setq dir (file-name-as-directory dir)) nil)
|
|
|
|
|
(t (prog1 (file-name-nondirectory dir)
|
|
|
|
|
(setq dir (or (file-name-directory dir) ""))))))
|
|
|
|
|
(file (expand-file-name "CVS/Entries" dir))
|
|
|
|
|
(fis nil))
|
|
|
|
|
(if (not (file-readable-p file))
|
|
|
|
|
(push (cvs-create-fileinfo (if singlefile 'UNKNOWN 'DIRCHANGE)
|
|
|
|
|
dir (or singlefile ".") "") fis)
|
|
|
|
|
(with-temp-buffer
|
|
|
|
|
(insert-file-contents file)
|
|
|
|
|
(goto-char (point-min))
|
|
|
|
|
;; Select the single file entry in case we're only interested in a file.
|
|
|
|
|
(cond
|
|
|
|
|
((not singlefile)
|
|
|
|
|
(push (cvs-create-fileinfo 'DIRCHANGE dir "." "") fis))
|
|
|
|
|
((re-search-forward
|
|
|
|
|
(concat "^[^/]*/" (regexp-quote singlefile) "/.*") nil t)
|
|
|
|
|
(setq all t)
|
|
|
|
|
(goto-char (match-beginning 0))
|
|
|
|
|
(narrow-to-region (point) (match-end 0)))
|
|
|
|
|
(t
|
|
|
|
|
(push (cvs-create-fileinfo 'UNKNOWN dir singlefile "") fis)
|
|
|
|
|
(narrow-to-region (point-min) (point-min))))
|
|
|
|
|
(while (looking-at "\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)/")
|
|
|
|
|
(if (/= (match-beginning 1) (match-end 1))
|
|
|
|
|
(setq fis (append (cvs-fileinfo-from-entries
|
|
|
|
|
(concat dir (file-name-as-directory
|
|
|
|
|
(match-string 2)))
|
|
|
|
|
all)
|
|
|
|
|
fis))
|
|
|
|
|
(let ((f (match-string 2))
|
|
|
|
|
(rev (match-string 3))
|
|
|
|
|
(date (match-string 4))
|
|
|
|
|
timestamp
|
|
|
|
|
(type 'MODIFIED)
|
|
|
|
|
(subtype nil))
|
|
|
|
|
(cond
|
|
|
|
|
((equal (substring rev 0 1) "-")
|
|
|
|
|
(setq type 'REMOVED rev (substring rev 1)))
|
|
|
|
|
((not (file-exists-p (concat dir f))) (setq type 'MISSING))
|
|
|
|
|
((equal rev "0") (setq type 'ADDED rev nil))
|
|
|
|
|
((equal date "Result of merge") (setq subtype 'MERGED))
|
file-attributes cleanup
Mostly, this replaces magic-number calls like (nth 4 A) with
more-informative calls like (file-attribute-access-time A).
It also fixes some documentation and minor timestamp coding
issues that I noticed while looking into this.
* doc/lispref/files.texi (File Attributes):
* lisp/files.el (file-attribute-size)
(file-attribute-inode-number, file-attribute-device-number):
* src/dired.c (Fdirectory_files_and_attributes)
(Ffile_attributes):
Mention which attributes must be integers, or nonnegative integers,
as opposed to merely being numbers. Remove no-longer-correct
talk about representing large integers as conses of integers.
* doc/lispref/files.texi (Magic File Names):
* doc/misc/gnus.texi (Low-level interface to the spam-stat dictionary):
* lisp/autorevert.el (auto-revert-find-file-function)
(auto-revert-tail-mode, auto-revert-handler):
* lisp/auth-source.el (auth-source-netrc-parse):
* lisp/cedet/ede/files.el (ede--inode-for-dir):
* lisp/cedet/semantic/db-file.el (object-write):
* lisp/cedet/semantic/db-mode.el (semanticdb-kill-hook):
* lisp/cedet/semantic/db.el (semanticdb-needs-refresh-p)
(semanticdb-synchronize):
* lisp/cedet/srecode/table.el (srecode-mode-table-new):
* lisp/desktop.el (desktop-save, desktop-read):
* lisp/dired-aux.el (dired-file-set-difference)
(dired-do-chxxx, dired-do-chmod, dired-copy-file-recursive)
(dired-create-files):
* lisp/dired.el (dired-directory-changed-p, dired-readin):
* lisp/dos-w32.el (w32-direct-print-region-helper):
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads)
(autoload-find-destination, update-directory-autoloads):
* lisp/emacs-lisp/shadow.el (load-path-shadows-same-file-or-nonexistent):
* lisp/epg.el (epg--start, epg-wait-for-completion):
* lisp/eshell/em-ls.el (eshell-ls-filetype-p)
(eshell-ls-applicable, eshell-ls-size-string)
(eshell-ls-file, eshell-ls-dir, eshell-ls-files)
(eshell-ls-entries):
* lisp/eshell/em-pred.el (eshell-predicate-alist)
(eshell-pred-file-type, eshell-pred-file-links)
(eshell-pred-file-size):
* lisp/eshell/em-unix.el (eshell-shuffle-files, eshell/cat)
(eshell-du-sum-directory, eshell/du):
* lisp/eshell/esh-util.el (eshell-read-passwd)
(eshell-read-hosts):
* lisp/files.el (remote-file-name-inhibit-cache)
(find-file-noselect, insert-file-1, dir-locals-find-file)
(dir-locals-read-from-dir, backup-buffer)
(file-ownership-preserved-p, copy-directory)
(read-file-modes):
* lisp/find-lisp.el (find-lisp-format):
* lisp/gnus/gnus-agent.el (gnus-agent-unfetch-articles)
(gnus-agent-read-agentview, gnus-agent-expire-group-1)
(gnus-agent-request-article, gnus-agent-regenerate-group)
(gnus-agent-update-files-total-fetched-for)
(gnus-agent-update-view-total-fetched-for):
* lisp/gnus/gnus-cache.el (gnus-cache-read-active)
(gnus-cache-update-file-total-fetched-for)
(gnus-cache-update-overview-total-fetched-for):
* lisp/gnus/gnus-cloud.el (gnus-cloud-file-new-p):
* lisp/gnus/gnus-score.el (gnus-score-score-files):
* lisp/gnus/gnus-start.el (gnus-save-newsrc-file)
(gnus-master-read-slave-newsrc):
* lisp/gnus/gnus-sum.el (gnus-summary-import-article):
* lisp/gnus/gnus-util.el (gnus-file-newer-than)
(gnus-cache-file-contents):
* lisp/gnus/mail-source.el (mail-source-delete-old-incoming)
(mail-source-callback, mail-source-movemail):
* lisp/gnus/nneething.el (nneething-create-mapping)
(nneething-make-head):
* lisp/gnus/nnfolder.el (nnfolder-read-folder):
* lisp/gnus/nnheader.el (nnheader-file-size)
(nnheader-insert-nov-file):
* lisp/gnus/nnmail.el (nnmail-activate):
* lisp/gnus/nnmaildir.el (nnmaildir--group-maxnum)
(nnmaildir--new-number, nnmaildir--update-nov)
(nnmaildir--scan, nnmaildir-request-scan)
(nnmaildir-request-update-info)
(nnmaildir-request-expire-articles):
* lisp/gnus/nnmh.el (nnmh-request-list-1)
(nnmh-request-expire-articles, nnmh-update-gnus-unreads):
* lisp/gnus/nnml.el (nnml-request-expire-articles):
* lisp/gnus/spam-stat.el (spam-stat-save, spam-stat-load)
(spam-stat-process-directory, spam-stat-test-directory):
* lisp/ido.el (ido-directory-too-big-p)
(ido-file-name-all-completions):
* lisp/image-dired.el (image-dired-get-thumbnail-image)
(image-dired-create-thumb-1):
* lisp/info.el (info-insert-file-contents):
* lisp/ls-lisp.el (ls-lisp-insert-directory)
(ls-lisp-handle-switches, ls-lisp-classify-file)
(ls-lisp-format):
* lisp/mail/blessmail.el:
* lisp/mail/feedmail.el (feedmail-default-date-generator)
(feedmail-default-message-id-generator):
* lisp/mail/mailabbrev.el (mail-abbrevs-sync-aliases)
(mail-abbrevs-setup):
* lisp/mail/mspools.el (mspools-size-folder):
* lisp/mail/rmail.el (rmail-insert-inbox-text):
* lisp/mail/sendmail.el (sendmail-sync-aliases):
* lisp/mh-e/mh-alias.el (mh-alias-tstamp):
* lisp/net/ange-ftp.el (ange-ftp-parse-netrc)
(ange-ftp-write-region, ange-ftp-file-newer-than-file-p)
(ange-ftp-cf1):
* lisp/net/eudcb-mab.el (eudc-mab-query-internal):
* lisp/net/eww.el (eww-read-bookmarks):
* lisp/net/netrc.el (netrc-parse):
* lisp/net/newst-backend.el (newsticker--image-get):
* lisp/nxml/rng-loc.el (rng-get-parsed-schema-locating-file):
* lisp/obsolete/fast-lock.el (fast-lock-save-cache):
* lisp/obsolete/vc-arch.el (vc-arch-state)
(vc-arch-diff3-rej-p):
* lisp/org/ob-eval.el (org-babel--shell-command-on-region):
* lisp/org/org-attach.el (org-attach-commit):
* lisp/org/org-macro.el (org-macro-initialize-templates):
* lisp/org/org.el (org-babel-load-file)
(org-file-newer-than-p):
* lisp/org/ox-html.el (org-html-format-spec):
* lisp/org/ox-publish.el (org-publish-find-date)
(org-publish-cache-ctime-of-src):
* lisp/pcmpl-gnu.el (pcomplete/tar):
* lisp/pcmpl-rpm.el (pcmpl-rpm-packages):
* lisp/play/cookie1.el (cookie-snarf):
* lisp/progmodes/cmacexp.el (c-macro-expansion):
* lisp/ps-bdf.el (bdf-file-mod-time):
* lisp/server.el (server-ensure-safe-dir):
* lisp/simple.el (shell-command-on-region):
* lisp/speedbar.el (speedbar-item-info-file-helper)
(speedbar-check-obj-this-line):
* lisp/thumbs.el (thumbs-cleanup-thumbsdir):
* lisp/time.el (display-time-mail-check-directory)
(display-time-file-nonempty-p):
* lisp/url/url-cache.el (url-is-cached):
* lisp/url/url-file.el (url-file-asynch-callback):
* lisp/vc/diff-mode.el (diff-delete-if-empty):
* lisp/vc/pcvs-info.el (cvs-fileinfo-from-entries):
* lisp/vc/vc-bzr.el (vc-bzr-state-heuristic):
* lisp/vc/vc-cvs.el (vc-cvs-checkout-model)
(vc-cvs-state-heuristic, vc-cvs-merge-news)
(vc-cvs-retrieve-tag, vc-cvs-parse-status, vc-cvs-parse-entry):
* lisp/vc/vc-hg.el (vc-hg--slurp-hgignore-1)
(vc-hg--ignore-patterns-valid-p)
(vc-hg--cached-dirstate-search, vc-hg-state-fast):
* lisp/vc/vc-hooks.el (vc-after-save):
* lisp/vc/vc-rcs.el (vc-rcs-workfile-is-newer):
* lisp/vc/vc-svn.el (vc-svn-merge-news, vc-svn-parse-status):
* lisp/vc/vc.el (vc-checkout, vc-checkin, vc-revert-file):
* lisp/xdg.el (xdg-mime-apps):
Prefer (file-attribute-size A) to (nth 7 A), and similarly
for other file attributes accessors.
* doc/lispref/files.texi (File Attributes):
* doc/lispref/intro.texi (Version Info):
* doc/lispref/os.texi (Idle Timers):
* lisp/erc/erc.el (erc-string-to-emacs-time):
* lisp/files.el (file-attribute-access-time)
(file-attribute-modification-time)
(file-attribute-status-change-time):
* lisp/net/tramp-compat.el:
(tramp-compat-file-attribute-modification-time)
(tramp-compat-file-attribute-size):
* src/buffer.c (syms_of_buffer):
* src/editfns.c (Fget_internal_run_time):
* src/fileio.c (Fvisited_file_modtime)
(Fset_visited_file_modtime):
* src/keyboard.c (Fcurrent_idle_time):
* src/process.c (Fprocess_attributes):
Defer implementation details about timestamp format to the
section that talks about timestamp format, to make it easier
to change the documentation later if timestamp formats are
extended.
* lisp/gnus/gnus-util.el (gnus-file-newer-than):
* lisp/speedbar.el (speedbar-check-obj-this-line):
* lisp/vc/vc-rcs.el (vc-rcs-workfile-is-newer):
Prefer time-less-p to doing it by hand.
* lisp/ls-lisp.el (ls-lisp-format): Inode numbers are no longer conses.
* lisp/vc/vc-bzr.el (vc-bzr-state-heuristic):
Use eql, not eq, to compare integers that might be bignums.
* lisp/org/ox-publish.el (org-publish-cache-ctime-of-src):
Prefer float-time to doing time arithmetic by hand.
2018-09-23 18:30:46 -07:00
|
|
|
|
((let ((mtime (file-attribute-modification-time
|
|
|
|
|
(file-attributes (concat dir f))))
|
2000-06-12 04:37:50 +00:00
|
|
|
|
(system-time-locale "C"))
|
2016-04-02 14:25:47 +03:00
|
|
|
|
(setq timestamp (format-time-string "%c" mtime t))
|
2003-01-14 21:53:39 +00:00
|
|
|
|
;; Solaris sometimes uses "Wed Sep 05", not "Wed Sep 5".
|
|
|
|
|
;; See "grep '[^a-z_]ctime' cvs/src/*.c" for reference.
|
|
|
|
|
(if (= (aref timestamp 8) ?0)
|
|
|
|
|
(setq timestamp (concat (substring timestamp 0 8)
|
|
|
|
|
" " (substring timestamp 9))))
|
|
|
|
|
(equal timestamp date))
|
2000-06-12 04:37:50 +00:00
|
|
|
|
(setq type (if all 'UP-TO-DATE)))
|
|
|
|
|
((equal date (concat "Result of merge+" timestamp))
|
|
|
|
|
(setq type 'CONFLICT)))
|
|
|
|
|
(when type
|
|
|
|
|
(push (cvs-create-fileinfo type dir f ""
|
|
|
|
|
:base-rev rev :subtype subtype)
|
|
|
|
|
fis))))
|
|
|
|
|
(forward-line 1))))
|
|
|
|
|
fis))
|
|
|
|
|
|
2000-03-11 03:51:31 +00:00
|
|
|
|
(provide 'pcvs-info)
|
|
|
|
|
|
2001-07-16 07:46:48 +00:00
|
|
|
|
;;; pcvs-info.el ends here
|