mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-14 09:39:42 +00:00
1143232265
* lisp/allout-widgets.el (allout-widgets-auto-activation) (allout-current-decorated-p): * lisp/auth-source.el (auth-source-protocols): * lisp/autorevert.el (auto-revert-set-timer): * lisp/battery.el (battery-mode-line-limit): * lisp/calc/calcalg3.el (math-map-binop): * lisp/calendar/cal-dst.el (calendar-dst-find-startend): * lisp/calendar/cal-mayan.el (calendar-mayan-long-count-to-absolute): * lisp/calendar/calendar.el (calendar-date-echo-text) (calendar-generate-month, calendar-string-spread) (calendar-cursor-to-date, calendar-read, calendar-read-date) (calendar-mark-visible-date, calendar-dayname-on-or-before): * lisp/calendar/diary-lib.el (diary-ordinal-suffix): * lisp/cedet/ede/autoconf-edit.el (autoconf-new-program) (autoconf-find-last-macro, autoconf-parameter-strip): * lisp/cedet/ede/config.el (ede-target-with-config-build): * lisp/cedet/ede/linux.el (ede-linux--detect-architecture) (ede-linux--get-architecture): * lisp/cedet/semantic/complete.el (semantic-collector-calculate-cache) (semantic-displayer-abstract, semantic-displayer-point-position): * lisp/cedet/semantic/format.el (semantic-format-face-alist) (semantic-format-tag-short-doc): * lisp/cedet/semantic/fw.el (semantic-find-file-noselect): * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-work-idle-time) (semantic-idle-breadcrumbs-display-function) (semantic-idle-breadcrumbs-format-tag-list-function): * lisp/cedet/semantic/lex.el (semantic-lex-map-types) (define-lex, define-lex-block-type-analyzer): * lisp/cedet/semantic/senator.el (senator-search-default-tag-filter): * lisp/cedet/semantic/symref.el (semantic-symref-result) (semantic-symref-hit-to-tag-via-db): * lisp/cedet/semantic/symref.el (semantic-symref-tool-baseclass): * lisp/cedet/semantic/tag.el (semantic-tag-new-variable) (semantic-tag-new-include, semantic-tag-new-package) (semantic-tag-set-faux, semantic-create-tag-proxy) (semantic-tag-function-parent) (semantic-tag-components-with-overlays): * lisp/cedet/srecode/cpp.el (srecode-cpp-namespaces) (srecode-semantic-handle-:c, srecode-semantic-apply-tag-to-dict): * lisp/cedet/srecode/dictionary.el (srecode-create-dictionary) (srecode-dictionary-add-entries, srecode-dictionary-lookup-name) (srecode-create-dictionaries-from-tags): * lisp/cmuscheme.el (scheme-compile-region): * lisp/color.el (color-lab-to-lch): * lisp/doc-view.el (doc-view-image-width) (doc-view-set-up-single-converter): * lisp/dynamic-setting.el (font-setting-change-default-font) (dynamic-setting-handle-config-changed-event): * lisp/elec-pair.el (electric-pair-text-pairs) (electric-pair-skip-whitespace-function) (electric-pair-string-bound-function): * lisp/emacs-lisp/avl-tree.el (avl-tree--del-balance) (avl-tree-member, avl-tree-mapcar, avl-tree-iter): * lisp/emacs-lisp/bytecomp.el (byte-compile-generate-call-tree): * lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-flag) (checkdoc-spellcheck-documentation-flag, checkdoc-ispell) (checkdoc-ispell-current-buffer, checkdoc-ispell-interactive) (checkdoc-ispell-message-interactive) (checkdoc-ispell-message-text, checkdoc-ispell-start) (checkdoc-ispell-continue, checkdoc-ispell-comments) (checkdoc-ispell-defun): * lisp/emacs-lisp/cl-generic.el (cl--generic-search-method): * lisp/emacs-lisp/eieio-custom.el (eieio-read-customization-group): * lisp/emacs-lisp/lisp.el (forward-sexp, up-list): * lisp/emacs-lisp/package-x.el (package--archive-contents-from-file): * lisp/emacs-lisp/package.el (package-desc) (package--make-autoloads-and-stuff, package-hidden-regexps): * lisp/emacs-lisp/tcover-ses.el (ses-exercise-startup): * lisp/emacs-lisp/testcover.el (testcover-nohits) (testcover-1value): * lisp/epg.el (epg-receive-keys, epg-start-edit-key): * lisp/erc/erc-backend.el (erc-server-processing-p) (erc-split-line-length, erc-server-coding-system) (erc-server-send, erc-message): * lisp/erc/erc-button.el (erc-button-face, erc-button-alist) (erc-browse-emacswiki): * lisp/erc/erc-ezbounce.el (erc-ezbounce, erc-ezb-get-login): * lisp/erc/erc-fill.el (erc-fill-variable-maximum-indentation): * lisp/erc/erc-log.el (erc-current-logfile): * lisp/erc/erc-match.el (erc-log-match-format) (erc-text-matched-hook): * lisp/erc/erc-netsplit.el (erc-netsplit, erc-netsplit-debug): * lisp/erc/erc-networks.el (erc-server-alist) (erc-networks-alist, erc-current-network): * lisp/erc/erc-ring.el (erc-input-ring-index): * lisp/erc/erc-speedbar.el (erc-speedbar) (erc-speedbar-update-channel): * lisp/erc/erc-stamp.el (erc-timestamp-only-if-changed-flag): * lisp/erc/erc-track.el (erc-track-position-in-mode-line) (erc-track-remove-from-mode-line, erc-modified-channels-update) (erc-track-last-non-erc-buffer, erc-track-sort-by-importance) (erc-track-get-active-buffer): * lisp/erc/erc.el (erc-get-channel-user-list) (erc-echo-notice-hook, erc-echo-notice-always-hook) (erc-wash-quit-reason, erc-format-@nick): * lisp/ffap.el (ffap-latex-mode): * lisp/files.el (abort-if-file-too-large) (dir-locals--get-sort-score, buffer-stale--default-function): * lisp/filesets.el (filesets-tree-max-level, filesets-data) (filesets-update-pre010505): * lisp/gnus/gnus-agent.el (gnus-agent-flush-cache): * lisp/gnus/gnus-art.el (gnus-article-encrypt-protocol) (gnus-button-prefer-mid-or-mail): * lisp/gnus/gnus-cus.el (gnus-group-parameters): * lisp/gnus/gnus-demon.el (gnus-demon-handlers) (gnus-demon-run-callback): * lisp/gnus/gnus-dired.el (gnus-dired-print): * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-buffer): * lisp/gnus/gnus-range.el (gnus-range-normalize): * lisp/gnus/gnus-spec.el (gnus-pad-form): * lisp/gnus/gnus-srvr.el (gnus-server-agent, gnus-server-cloud) (gnus-server-opened, gnus-server-closed, gnus-server-denied) (gnus-server-offline): * lisp/gnus/gnus-sum.el (gnus-refer-thread-use-nnir) (gnus-refer-thread-limit-to-thread) (gnus-summary-limit-include-thread, gnus-summary-refer-thread) (gnus-summary-find-matching): * lisp/gnus/gnus-util.el (gnus-rescale-image): * lisp/gnus/gnus.el (gnus-summary-line-format, gnus-no-server): * lisp/gnus/mail-source.el (mail-source-incoming-file-prefix): * lisp/gnus/message.el (message-cite-reply-position) (message-cite-style-outlook, message-cite-style-thunderbird) (message-cite-style-gmail, message--send-mail-maybe-partially): * lisp/gnus/mm-extern.el (mm-inline-external-body): * lisp/gnus/mm-partial.el (mm-inline-partial): * lisp/gnus/mml-sec.el (mml-secure-message-sign) (mml-secure-message-sign-encrypt, mml-secure-message-encrypt): * lisp/gnus/mml2015.el (mml2015-epg-key-image) (mml2015-epg-key-image-to-string): * lisp/gnus/nndiary.el (nndiary-reminders, nndiary-get-new-mail): * lisp/gnus/nnheader.el (nnheader-directory-files-is-safe): * lisp/gnus/nnir.el (nnir-search-history) (nnir-imap-search-other, nnir-artlist-length) (nnir-artlist-article, nnir-artitem-group, nnir-artitem-number) (nnir-artitem-rsv, nnir-article-group, nnir-article-number) (nnir-article-rsv, nnir-article-ids, nnir-categorize) (nnir-retrieve-headers-override-function) (nnir-imap-default-search-key, nnir-hyrex-additional-switches) (gnus-group-make-nnir-group, nnir-run-namazu, nnir-read-parms) (nnir-read-parm, nnir-read-server-parm, nnir-search-thread): * lisp/gnus/nnmairix.el (nnmairix-default-group) (nnmairix-propagate-marks): * lisp/gnus/smime.el (smime-keys, smime-crl-check) (smime-verify-buffer, smime-noverify-buffer): * lisp/gnus/spam-report.el (spam-report-url-ping-mm-url): * lisp/gnus/spam.el (spam-spamassassin-positive-spam-flag-header) (spam-spamassassin-spam-status-header, spam-sa-learn-rebuild) (spam-classifications, spam-check-stat, spam-spamassassin-score): * lisp/help.el (describe-minor-mode-from-symbol): * lisp/hippie-exp.el (hippie-expand-ignore-buffers): * lisp/htmlfontify.el (hfy-optimizations, hfy-face-resolve-face) (hfy-begin-span): * lisp/ibuf-ext.el (ibuffer-update-saved-filters-format) (ibuffer-saved-filters, ibuffer-old-saved-filters-warning) (ibuffer-filtering-qualifiers, ibuffer-repair-saved-filters) (eval, ibuffer-unary-operand, file-extension, directory): * lisp/image-dired.el (image-dired-cmd-pngcrush-options): * lisp/image-mode.el (image-toggle-display): * lisp/international/ccl.el (ccl-compile-read-multibyte-character) (ccl-compile-write-multibyte-character): * lisp/international/kkc.el (kkc-save-init-file): * lisp/international/latin1-disp.el (latin1-display): * lisp/international/ogonek.el (ogonek-name-encoding-alist) (ogonek-information, ogonek-lookup-encoding) (ogonek-deprefixify-region): * lisp/isearch.el (isearch-filter-predicate) (isearch--momentary-message): * lisp/jsonrpc.el (jsonrpc-connection-send) (jsonrpc-process-connection, jsonrpc-shutdown) (jsonrpc--async-request-1): * lisp/language/tibet-util.el (tibetan-char-p): * lisp/mail/feedmail.el (feedmail-queue-use-send-time-for-date) (feedmail-last-chance-hook, feedmail-before-fcc-hook) (feedmail-send-it-immediately-wrapper, feedmail-find-eoh): * lisp/mail/hashcash.el (hashcash-generate-payment) (hashcash-generate-payment-async, hashcash-insert-payment) (hashcash-verify-payment): * lisp/mail/rmail.el (rmail-movemail-variant-in-use) (rmail-get-attr-value): * lisp/mail/rmailmm.el (rmail-mime-prefer-html, rmail-mime): * lisp/mail/rmailsum.el (rmail-summary-show-message): * lisp/mail/supercite.el (sc-raw-mode-toggle): * lisp/man.el (Man-start-calling): * lisp/mh-e/mh-acros.el (mh-do-at-event-location) (mh-iterate-on-messages-in-region, mh-iterate-on-range): * lisp/mh-e/mh-alias.el (mh-alias-system-aliases) (mh-alias-reload, mh-alias-ali) (mh-alias-canonicalize-suggestion, mh-alias-add-alias-to-file) (mh-alias-add-alias): * lisp/mouse.el (mouse-save-then-kill): * lisp/net/browse-url.el (browse-url-default-macosx-browser): * lisp/net/eudc.el (eudc-set, eudc-variable-protocol-value) (eudc-variable-server-value, eudc-update-variable) (eudc-expand-inline): * lisp/net/eudcb-bbdb.el (eudc-bbdb-format-record-as-result): * lisp/net/eudcb-ldap.el (eudc-ldap-get-field-list): * lisp/net/pop3.el (pop3-list): * lisp/net/soap-client.el (soap-namespace-put) (soap-xs-parse-sequence, soap-parse-envelope): * lisp/net/soap-inspect.el (soap-inspect-xs-complex-type): * lisp/nxml/rng-xsd.el (rng-xsd-date-to-days): * lisp/org/ob-C.el (org-babel-prep-session:C) (org-babel-load-session:C): * lisp/org/ob-J.el (org-babel-execute:J): * lisp/org/ob-asymptote.el (org-babel-prep-session:asymptote): * lisp/org/ob-awk.el (org-babel-execute:awk): * lisp/org/ob-core.el (org-babel-process-file-name): * lisp/org/ob-ebnf.el (org-babel-execute:ebnf): * lisp/org/ob-forth.el (org-babel-execute:forth): * lisp/org/ob-fortran.el (org-babel-execute:fortran) (org-babel-prep-session:fortran, org-babel-load-session:fortran): * lisp/org/ob-groovy.el (org-babel-execute:groovy): * lisp/org/ob-io.el (org-babel-execute:io): * lisp/org/ob-js.el (org-babel-execute:js): * lisp/org/ob-lilypond.el (org-babel-default-header-args:lilypond) (org-babel-lilypond-compile-post-tangle) (org-babel-lilypond-display-pdf-post-tangle) (org-babel-lilypond-tangle) (org-babel-lilypond-execute-tangled-ly) (org-babel-lilypond-compile-lilyfile) (org-babel-lilypond-check-for-compile-error) (org-babel-lilypond-process-compile-error) (org-babel-lilypond-mark-error-line) (org-babel-lilypond-parse-error-line) (org-babel-lilypond-attempt-to-open-pdf) (org-babel-lilypond-attempt-to-play-midi) (org-babel-lilypond-switch-extension) (org-babel-lilypond-set-header-args): * lisp/org/ob-lua.el (org-babel-prep-session:lua): * lisp/org/ob-picolisp.el (org-babel-execute:picolisp): * lisp/org/ob-processing.el (org-babel-prep-session:processing): * lisp/org/ob-python.el (org-babel-prep-session:python): * lisp/org/ob-scheme.el (org-babel-scheme-capture-current-message) (org-babel-scheme-execute-with-geiser, org-babel-execute:scheme): * lisp/org/ob-shen.el (org-babel-execute:shen): * lisp/org/org-agenda.el (org-agenda-entry-types) (org-agenda-move-date-from-past-immediately-to-today) (org-agenda-time-grid, org-agenda-sorting-strategy) (org-agenda-filter-by-category, org-agenda-forward-block): * lisp/org/org-colview.el (org-columns--overlay-text): * lisp/org/org-faces.el (org-verbatim, org-cycle-level-faces): * lisp/org/org-indent.el (org-indent-set-line-properties): * lisp/org/org-macs.el (org-get-limited-outline-regexp): * lisp/org/org-mobile.el (org-mobile-files): * lisp/org/org.el (org-use-fast-todo-selection) (org-extend-today-until, org-use-property-inheritance) (org-refresh-effort-properties, org-open-at-point-global) (org-track-ordered-property-with-tag, org-shiftright): * lisp/org/ox-html.el (org-html-checkbox-type): * lisp/org/ox-man.el (org-man-source-highlight) (org-man-verse-block): * lisp/org/ox-publish.el (org-publish-sitemap-default): * lisp/outline.el (outline-head-from-level): * lisp/progmodes/dcl-mode.el (dcl-back-to-indentation-1) (dcl-calc-command-indent, dcl-indent-to): * lisp/progmodes/flymake.el (flymake-make-diagnostic) (flymake--overlays, flymake-diagnostic-functions) (flymake-diagnostic-types-alist, flymake--backend-state) (flymake-is-running, flymake--collect, flymake-mode): * lisp/progmodes/gdb-mi.el (gdb-threads-list, gdb, gdb-non-stop) (gdb-buffers, gdb-gud-context-call, gdb-jsonify-buffer): * lisp/progmodes/grep.el (grep-error-screen-columns): * lisp/progmodes/gud.el (gud-prev-expr): * lisp/progmodes/ps-mode.el (ps-mode, ps-mode-target-column) (ps-run-goto-error): * lisp/progmodes/python.el (python-eldoc-get-doc) (python-eldoc-function-timeout-permanent, python-eldoc-function): * lisp/shadowfile.el (shadow-make-group): * lisp/speedbar.el (speedbar-obj-do-check): * lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-hook): * lisp/textmodes/reftex-cite.el (reftex-bib-or-thebib): * lisp/textmodes/reftex-index.el (reftex-index-goto-entry) (reftex-index-kill, reftex-index-undo): * lisp/textmodes/reftex-parse.el (reftex-context-substring): * lisp/textmodes/reftex.el (reftex-TeX-master-file): * lisp/textmodes/rst.el (rst-next-hdr, rst-toc) (rst-uncomment-region, rst-font-lock-extend-region-internal): * lisp/thumbs.el (thumbs-mode): * lisp/vc/ediff-util.el (ediff-restore-diff): * lisp/vc/pcvs-defs.el (cvs-cvsroot, cvs-force-dir-tag): * lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p): * lisp/wid-edit.el (widget-field-value-set, string): * lisp/x-dnd.el (x-dnd-version-from-flags) (x-dnd-more-than-3-from-flags): Assorted docfixes.
507 lines
18 KiB
EmacsLisp
507 lines
18 KiB
EmacsLisp
;;; pcvs-defs.el --- variable definitions for PCL-CVS
|
||
|
||
;; Copyright (C) 1991-2019 Free Software Foundation, Inc.
|
||
|
||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||
;; Keywords: pcl-cvs
|
||
;; Package: pcvs
|
||
|
||
;; This file is part of GNU Emacs.
|
||
|
||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||
;; it under the terms of the GNU General Public License as published by
|
||
;; the Free Software Foundation, either version 3 of the License, or
|
||
;; (at your option) any later version.
|
||
|
||
;; 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
|
||
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||
|
||
;;; Commentary:
|
||
|
||
|
||
;;; Code:
|
||
|
||
(require 'pcvs-util)
|
||
|
||
;;;; -------------------------------------------------------
|
||
;;;; START OF THINGS TO CHECK WHEN INSTALLING
|
||
|
||
(defvar cvs-program "cvs"
|
||
"Name or full path of the cvs executable.")
|
||
|
||
(defvar cvs-version
|
||
;; With the divergence of the CVSNT codebase and version numbers, this is
|
||
;; not really good any more.
|
||
(ignore-errors
|
||
(with-temp-buffer
|
||
(call-process cvs-program nil t nil "-v")
|
||
(goto-char (point-min))
|
||
(when (re-search-forward "(CVS\\(NT\\)?) \\([0-9]+\\)\\.\\([0-9]+\\)"
|
||
nil t)
|
||
(cons (string-to-number (match-string 1))
|
||
(string-to-number (match-string 2))))))
|
||
"Version of `cvs' installed on your system.
|
||
It must be in the (MAJOR . MINOR) format.")
|
||
|
||
;; FIXME: this is only used by cvs-mode-diff-backup
|
||
(defvar cvs-diff-program (or (and (boundp 'diff-command) diff-command) "diff")
|
||
"Name or full path of the best diff program you've got.
|
||
NOTE: there are some nasty bugs in the context diff variants of some vendor
|
||
versions, such as the one in SunOS-4.")
|
||
|
||
;;;; END OF THINGS TO CHECK WHEN INSTALLING
|
||
;;;; --------------------------------------------------------
|
||
|
||
;;;; User configuration variables:
|
||
|
||
(defgroup pcl-cvs nil
|
||
"Special support for the CVS versioning system."
|
||
:version "21.1"
|
||
:group 'tools
|
||
:prefix "cvs-")
|
||
|
||
;;
|
||
;; cvsrc options
|
||
;;
|
||
|
||
(defcustom cvs-cvsrc-file (convert-standard-filename "~/.cvsrc")
|
||
"Path to your cvsrc file."
|
||
:group 'pcl-cvs
|
||
:type '(file))
|
||
|
||
(defvar cvs-shared-start 4
|
||
"Index of the first shared flag.
|
||
If set to 4, for instance, a numeric argument smaller than 4 will
|
||
select a non-shared flag, while a numeric argument greater than 3
|
||
will select a shared-flag.")
|
||
|
||
(defvar cvs-shared-flags (make-list cvs-shared-start nil)
|
||
"List of flags whose settings is shared among several commands.")
|
||
|
||
(defvar cvs-cvsroot nil
|
||
"Specifies where the (current) cvs master repository is.
|
||
Overrides the environment variable $CVSROOT by sending \" -d dir\" to
|
||
all CVS commands. This switch is useful if you have multiple CVS
|
||
repositories. It can be set interactively with \\[cvs-change-cvsroot.]
|
||
There is no need to set this if $CVSROOT is set to a correct value.")
|
||
|
||
(defcustom cvs-auto-remove-handled nil
|
||
"If up-to-date files should be acknowledged automatically.
|
||
If t, they will be removed from the *cvs* buffer after every command.
|
||
If `delayed', they will be removed from the *cvs* buffer before every command.
|
||
If `status', they will only be removed after a `cvs-mode-status' command.
|
||
Else, they will never be automatically removed from the *cvs* buffer."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const nil) (const status) (const delayed) (const t)))
|
||
|
||
(defcustom cvs-auto-remove-directories 'handled
|
||
"If `all', directory entries will never be shown.
|
||
If `handled', only non-handled directories will be shown.
|
||
If `empty', only non-empty directories will be shown."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const :tag "No" nil) (const all) (const handled) (const empty)))
|
||
|
||
(defcustom cvs-auto-revert t
|
||
"Non-nil if changed files should automatically be reverted."
|
||
:group 'pcl-cvs
|
||
:type '(boolean))
|
||
|
||
(defcustom cvs-sort-ignore-file t
|
||
"Non-nil if `cvs-mode-ignore' should sort the .cvsignore automatically."
|
||
:group 'pcl-cvs
|
||
:type '(boolean))
|
||
|
||
(defcustom cvs-force-dir-tag t
|
||
"If non-nil, tagging can only be applied to directories.
|
||
Tagging should generally be applied a directory at a time, but sometimes it is
|
||
useful to be able to tag a single file. The normal way to do that is to use
|
||
`cvs-mode-force-command' so as to temporarily override the restrictions."
|
||
:group 'pcl-cvs
|
||
:type '(boolean))
|
||
|
||
(defcustom cvs-default-ignore-marks nil
|
||
"Non-nil if cvs mode commands should ignore any marked files.
|
||
Normally they run on the files that are marked (with `cvs-mode-mark'),
|
||
or the file under the cursor if no files are marked. If this variable
|
||
is set to a non-nil value they will by default run on the file on the
|
||
current line. See also `cvs-invert-ignore-marks'."
|
||
:group 'pcl-cvs
|
||
:type '(boolean))
|
||
|
||
(defcustom cvs-invert-ignore-marks
|
||
(let ((l ()))
|
||
(unless (equal cvs-default-ignore-marks t)
|
||
(push "diff" l))
|
||
(when (and cvs-force-dir-tag (not cvs-default-ignore-marks))
|
||
(push "tag" l))
|
||
l)
|
||
"List of cvs commands that invert the default ignore-mark behavior.
|
||
Commands in this set will use the opposite default from the one set
|
||
in `cvs-default-ignore-marks'."
|
||
:group 'pcl-cvs
|
||
:type '(set (const "diff")
|
||
(const "tag")
|
||
(const "ignore")))
|
||
|
||
(defcustom cvs-confirm-removals t
|
||
"Ask for confirmation before removing files.
|
||
Non-nil means that PCL-CVS will ask confirmation before removing files
|
||
except for files whose content can readily be recovered from the repository.
|
||
A value of `list' means that the list of files to be deleted will be
|
||
displayed when asking for confirmation."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const list)
|
||
(const t)
|
||
(const nil)))
|
||
|
||
(defcustom cvs-add-default-message nil
|
||
"Default message to use when adding files.
|
||
If set to nil, `cvs-mode-add' will always prompt for a message."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const :tag "Prompt" nil)
|
||
(string)))
|
||
|
||
(defcustom cvs-find-file-and-jump nil
|
||
"Jump to the modified area when finding a file.
|
||
If non-nil, `cvs-mode-find-file' will place the cursor at the beginning of
|
||
the modified area. If the file is not locally modified, this will obviously
|
||
have no effect."
|
||
:group 'pcl-cvs
|
||
:type '(boolean))
|
||
|
||
(defcustom cvs-buffer-name-alist
|
||
'(("diff" "*cvs-diff*" diff-mode)
|
||
("status" "*cvs-info*" cvs-status-mode)
|
||
("tree" "*cvs-info*" cvs-status-mode)
|
||
("message" "*cvs-commit*" nil log-edit)
|
||
("log" "*cvs-info*" log-view-mode))
|
||
"Buffer name and mode to be used for each command.
|
||
This is a list of elements of the form
|
||
|
||
(CMD BUFNAME MODE &optional POSTPROC)
|
||
|
||
CMD is the name of the command.
|
||
BUFNAME is an expression that should evaluate to a string used as
|
||
a buffer name. It can use the variable CMD if it wants to.
|
||
MODE is the command to use to setup the buffer.
|
||
POSTPROC is a function that should be executed when the command terminates
|
||
|
||
The CMD used for `cvs-mode-commit' is \"message\". For that special
|
||
case, POSTPROC is called just after MODE with special arguments."
|
||
:group 'pcl-cvs
|
||
:type '(repeat
|
||
(list (choice (const "diff")
|
||
(const "status")
|
||
(const "tree")
|
||
(const "message")
|
||
(const "log")
|
||
(string))
|
||
(choice (const "*vc-diff*")
|
||
(const "*cvs-info*")
|
||
(const "*cvs-commit*")
|
||
(const (expand-file-name "*cvs-commit*"))
|
||
(const (format "*cvs-%s*" cmd))
|
||
(const (expand-file-name (format "*cvs-%s*" cmd)))
|
||
(sexp :value "my-cvs-info-buffer")
|
||
(const nil))
|
||
(choice (function-item diff-mode)
|
||
(function-item cvs-edit-mode)
|
||
(function-item cvs-status-mode)
|
||
function
|
||
(const nil))
|
||
(set :inline t
|
||
(choice (function-item cvs-status-cvstrees)
|
||
(function-item cvs-status-trees)
|
||
function)))))
|
||
|
||
(defvar cvs-buffer-name '(expand-file-name "*cvs*" dir) ;; "*cvs*"
|
||
"Name of the cvs buffer.
|
||
This expression will be evaluated in an environment where DIR is set to
|
||
the directory name of the cvs buffer.")
|
||
|
||
(defvar cvs-temp-buffer-name
|
||
;; Was '(expand-file-name " *cvs-tmp*" dir), but that causes them to
|
||
;; become non-hidden if uniquification is done `forward'.
|
||
" *cvs-tmp*"
|
||
"Name of the cvs temporary buffer.
|
||
Output from cvs is placed here for asynchronous commands.")
|
||
|
||
(defcustom cvs-idiff-imerge-handlers
|
||
(if (fboundp 'ediff)
|
||
'(cvs-ediff-diff . cvs-ediff-merge)
|
||
'(cvs-emerge-diff . cvs-emerge-merge))
|
||
"Pair of functions to be used for resp. diff'ing and merg'ing interactively."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const :tag "Ediff" (cvs-ediff-diff . cvs-ediff-merge))
|
||
(const :tag "Emerge" (cvs-emerge-diff . cvs-emerge-merge))))
|
||
|
||
(defvar cvs-mode-hook nil
|
||
"Run after `cvs-mode' was setup.")
|
||
|
||
|
||
;;;;
|
||
;;;; Internal variables for the *cvs* buffer.
|
||
;;;;
|
||
|
||
(defcustom cvs-reuse-cvs-buffer 'subdir
|
||
"When to reuse an existing cvs buffer.
|
||
Alternatives are:
|
||
`current': just reuse the current buffer if it is a cvs buffer
|
||
`samedir': reuse any cvs buffer displaying the same directory
|
||
`subdir': or reuse any cvs buffer displaying any sub- or super- directory
|
||
`always': reuse any cvs buffer."
|
||
:group 'pcl-cvs
|
||
:type '(choice (const always) (const subdir) (const samedir) (const current)))
|
||
|
||
(defvar cvs-temp-buffer nil
|
||
"(Buffer local) The temporary buffer associated with this *cvs* buffer.")
|
||
|
||
(defvar cvs-lock-file nil
|
||
"Full path to a lock file that CVS is waiting for (or was waiting for).
|
||
This variable is buffer local and only used in the *cvs* buffer.")
|
||
|
||
(defvar cvs-lock-file-regexp "^#cvs\\.\\([trw]fl\\.[-.a-z0-9]+\\|lock\\)\\'"
|
||
"Regexp matching the possible names of locks in the CVS repository.")
|
||
|
||
(defconst cvs-cursor-column 22
|
||
"Column to position cursor in, in `cvs-mode'.")
|
||
|
||
;;;;
|
||
;;;; Global internal variables
|
||
;;;;
|
||
|
||
(defconst cvs-vendor-branch "1.1.1"
|
||
"The default branch used by CVS for vendor code.")
|
||
|
||
(easy-mmode-defmap cvs-mode-diff-map
|
||
'(("E" "imerge" . cvs-mode-imerge)
|
||
("=" . cvs-mode-diff)
|
||
("e" "idiff" . cvs-mode-idiff)
|
||
("2" "other" . cvs-mode-idiff-other)
|
||
("d" "diff" . cvs-mode-diff)
|
||
("b" "backup" . cvs-mode-diff-backup)
|
||
("h" "head" . cvs-mode-diff-head)
|
||
("r" "repository" . cvs-mode-diff-repository)
|
||
("y" "yesterday" . cvs-mode-diff-yesterday)
|
||
("v" "vendor" . cvs-mode-diff-vendor))
|
||
"Keymap for diff-related operations in `cvs-mode'."
|
||
:name "Diff")
|
||
;; This is necessary to allow correct handling of \\[cvs-mode-diff-map]
|
||
;; in substitute-command-keys.
|
||
(fset 'cvs-mode-diff-map cvs-mode-diff-map)
|
||
|
||
(easy-mmode-defmap cvs-mode-map
|
||
;;(define-prefix-command 'cvs-mode-map-diff-prefix)
|
||
;;(define-prefix-command 'cvs-mode-map-control-c-prefix)
|
||
'(;; various
|
||
;; (undo . cvs-mode-undo)
|
||
("?" . cvs-help)
|
||
("h" . cvs-help)
|
||
("q" . cvs-bury-buffer)
|
||
("z" . kill-this-buffer)
|
||
("F" . cvs-mode-set-flags)
|
||
;; ("\M-f" . cvs-mode-force-command)
|
||
("!" . cvs-mode-force-command)
|
||
("\C-c\C-c" . cvs-mode-kill-process)
|
||
;; marking
|
||
("m" . cvs-mode-mark)
|
||
("M" . cvs-mode-mark-all-files)
|
||
("S" . cvs-mode-mark-on-state)
|
||
("u" . cvs-mode-unmark)
|
||
("\C-?". cvs-mode-unmark-up)
|
||
("%" . cvs-mode-mark-matching-files)
|
||
("T" . cvs-mode-toggle-marks)
|
||
("\M-\C-?" . cvs-mode-unmark-all-files)
|
||
;; navigation keys
|
||
(" " . cvs-mode-next-line)
|
||
("n" . cvs-mode-next-line)
|
||
("p" . cvs-mode-previous-line)
|
||
("\t" . cvs-mode-next-line)
|
||
([backtab] . cvs-mode-previous-line)
|
||
;; M- keys are usually those that operate on modules
|
||
;;("\M-C". cvs-mode-rcs2log) ; i.e. "Create a ChangeLog"
|
||
;;("\M-t". cvs-rtag)
|
||
;;("\M-l". cvs-rlog)
|
||
("\M-c". cvs-checkout)
|
||
("\M-e". cvs-examine)
|
||
("g" . cvs-mode-revert-buffer)
|
||
("\M-u". cvs-update)
|
||
("\M-s". cvs-status)
|
||
;; diff commands
|
||
("=" . cvs-mode-diff)
|
||
("d" . cvs-mode-diff-map)
|
||
;; keys that operate on individual files
|
||
("\C-k" . cvs-mode-acknowledge)
|
||
("A" . cvs-mode-add-change-log-entry-other-window)
|
||
;;("B" . cvs-mode-byte-compile-files)
|
||
("C" . cvs-mode-commit-setup)
|
||
("O" . cvs-mode-update)
|
||
("U" . cvs-mode-undo)
|
||
("I" . cvs-mode-insert)
|
||
("a" . cvs-mode-add)
|
||
("b" . cvs-set-branch-prefix)
|
||
("B" . cvs-set-secondary-branch-prefix)
|
||
("c" . cvs-mode-commit)
|
||
("e" . cvs-mode-examine)
|
||
("f" . cvs-mode-find-file)
|
||
("\C-m" . cvs-mode-find-file)
|
||
("i" . cvs-mode-ignore)
|
||
("l" . cvs-mode-log)
|
||
("o" . cvs-mode-find-file-other-window)
|
||
("r" . cvs-mode-remove)
|
||
("s" . cvs-mode-status)
|
||
("t" . cvs-mode-tag)
|
||
("v" . cvs-mode-view-file)
|
||
("x" . cvs-mode-remove-handled)
|
||
;; cvstree bindings
|
||
("+" . cvs-mode-tree)
|
||
;; mouse bindings
|
||
([mouse-2] . cvs-mode-find-file)
|
||
([follow-link] . (lambda (pos)
|
||
(if (eq (get-char-property pos 'face) 'cvs-filename) t)))
|
||
([(down-mouse-3)] . cvs-menu)
|
||
;; dired-like bindings
|
||
("\C-o" . cvs-mode-display-file)
|
||
;; Emacs-21 toolbar
|
||
;;([tool-bar item1] . (menu-item "Examine" cvs-examine :image (image :file "/usr/share/icons/xpaint.xpm" :type xpm)))
|
||
;;([tool-bar item2] . (menu-item "Update" cvs-update :image (image :file "/usr/share/icons/mail1.xpm" :type xpm)))
|
||
)
|
||
"Keymap for `cvs-mode'."
|
||
:dense t
|
||
:suppress t)
|
||
|
||
(fset 'cvs-mode-map cvs-mode-map)
|
||
|
||
(easy-menu-define cvs-menu cvs-mode-map "Menu used in `cvs-mode'."
|
||
'("CVS"
|
||
["Open file" cvs-mode-find-file t]
|
||
["Open in other window" cvs-mode-find-file-other-window t]
|
||
["Display in other window" cvs-mode-display-file t]
|
||
["Interactive merge" cvs-mode-imerge t]
|
||
("View diff"
|
||
["Interactive diff" cvs-mode-idiff t]
|
||
["Current diff" cvs-mode-diff t]
|
||
["Diff with head" cvs-mode-diff-head t]
|
||
["Diff with vendor" cvs-mode-diff-vendor t]
|
||
["Diff against yesterday" cvs-mode-diff-yesterday t]
|
||
["Diff with backup" cvs-mode-diff-backup t])
|
||
["View log" cvs-mode-log t]
|
||
["View status" cvs-mode-status t]
|
||
["View tag tree" cvs-mode-tree t]
|
||
"----"
|
||
["Insert" cvs-mode-insert]
|
||
["Update" cvs-mode-update (cvs-enabledp 'update)]
|
||
["Re-examine" cvs-mode-examine t]
|
||
["Commit" cvs-mode-commit-setup (cvs-enabledp 'commit)]
|
||
["Tag" cvs-mode-tag (cvs-enabledp (when cvs-force-dir-tag 'tag))]
|
||
["Undo changes" cvs-mode-undo (cvs-enabledp 'undo)]
|
||
["Add" cvs-mode-add (cvs-enabledp 'add)]
|
||
["Remove" cvs-mode-remove (cvs-enabledp 'remove)]
|
||
["Ignore" cvs-mode-ignore (cvs-enabledp 'ignore)]
|
||
["Add ChangeLog" cvs-mode-add-change-log-entry-other-window t]
|
||
"----"
|
||
["Mark" cvs-mode-mark t]
|
||
["Mark all" cvs-mode-mark-all-files t]
|
||
["Mark by regexp..." cvs-mode-mark-matching-files t]
|
||
["Mark by state..." cvs-mode-mark-on-state t]
|
||
["Unmark" cvs-mode-unmark t]
|
||
["Unmark all" cvs-mode-unmark-all-files t]
|
||
["Hide handled" cvs-mode-remove-handled t]
|
||
"----"
|
||
["PCL-CVS Manual" (lambda () (interactive)
|
||
(info "(pcl-cvs)Top")) t]
|
||
"----"
|
||
["Quit" cvs-mode-quit t]))
|
||
|
||
;;;;
|
||
;;;; CVS-Minor mode
|
||
;;;;
|
||
|
||
(defcustom cvs-minor-mode-prefix "\C-xc"
|
||
"Prefix key for the `cvs-mode' bindings in `cvs-minor-mode'."
|
||
:type 'string
|
||
:group 'pcl-cvs)
|
||
|
||
(easy-mmode-defmap cvs-minor-mode-map
|
||
`((,cvs-minor-mode-prefix . cvs-mode-map)
|
||
("e" . (menu-item nil cvs-mode-edit-log
|
||
:filter (lambda (x) (if (derived-mode-p 'log-view-mode) x)))))
|
||
"Keymap for `cvs-minor-mode', used in buffers related to PCL-CVS.")
|
||
|
||
(defvar cvs-buffer nil
|
||
"(Buffer local) The *cvs* buffer associated with this buffer.")
|
||
(put 'cvs-buffer 'permanent-local t)
|
||
;;(make-variable-buffer-local 'cvs-buffer)
|
||
|
||
(defvar cvs-minor-wrap-function nil
|
||
"Function to call when switching to the *cvs* buffer.
|
||
Takes two arguments:
|
||
- a *cvs* buffer.
|
||
- a zero-arg function which is guaranteed not to switch buffer.
|
||
It is expected to call the function.")
|
||
;;(make-variable-buffer-local 'cvs-minor-wrap-function)
|
||
|
||
(defvar cvs-minor-current-files)
|
||
;;"Current files in a `cvs-minor-mode' buffer."
|
||
;; This should stay `void' because we want to be able to tell the difference
|
||
;; between an empty list and no list at all.
|
||
|
||
(defconst cvs-pcl-cvs-dirchange-re "^pcl-cvs: descending directory \\(.*\\)$")
|
||
|
||
;;;;
|
||
;;;; autoload the global menu
|
||
;;;;
|
||
|
||
;;;###autoload
|
||
(defvar cvs-global-menu
|
||
(let ((m (make-sparse-keymap "PCL-CVS")))
|
||
(define-key m [status]
|
||
`(menu-item ,(purecopy "Directory Status") cvs-status
|
||
:help ,(purecopy "A more verbose status of a workarea")))
|
||
(define-key m [checkout]
|
||
`(menu-item ,(purecopy "Checkout Module") cvs-checkout
|
||
:help ,(purecopy "Check out a module from the repository")))
|
||
(define-key m [update]
|
||
`(menu-item ,(purecopy "Update Directory") cvs-update
|
||
:help ,(purecopy "Fetch updates from the repository")))
|
||
(define-key m [examine]
|
||
`(menu-item ,(purecopy "Examine Directory") cvs-examine
|
||
:help ,(purecopy "Examine the current state of a workarea")))
|
||
(fset 'cvs-global-menu m))
|
||
"Global menu used by PCL-CVS.")
|
||
|
||
|
||
;; cvs-1.10 and above can take file arguments in other directories
|
||
;; while others need to be executed once per directory
|
||
(defvar cvs-execute-single-dir
|
||
(if (or (null cvs-version)
|
||
(or (>= (cdr cvs-version) 10) (> (car cvs-version) 1)))
|
||
;; Supposedly some recent versions of CVS output some directory info
|
||
;; as they recurse down the tree, but it's not good enough in the case
|
||
;; where we run "cvs status foo bar/foo".
|
||
'("status")
|
||
t)
|
||
"Whether cvs commands should be executed a directory at a time.
|
||
If a list, specifies for which commands the single-dir mode should be used.
|
||
If t, single-dir mode should be used for all operations.
|
||
|
||
CVS versions before 1.10 did not allow passing them arguments in different
|
||
directories, so PCL-CVS checks what version you're using to determine
|
||
whether to use the new feature or not.
|
||
Sadly, even with a new cvs executable, if you connect to an older cvs server
|
||
\(typically a cvs-1.9 on the server), the old restriction applies. In such
|
||
a case the sanity check made by PCL-CVS fails and you will have to manually
|
||
set this variable to t (until the cvs server is upgraded).
|
||
When the above problem occurs, PCL-CVS should (hopefully) catch cvs' error
|
||
message and replace it with a message telling you to change this variable.")
|
||
|
||
;;
|
||
(provide 'pcvs-defs)
|
||
|
||
;;; pcvs-defs.el ends here
|