* progmodes/sh-script.el (sh-mode): Use define-derived-mode.
[bpt/emacs.git] / lisp / pcvs-defs.el
index e2c6396..a49cd2f 100644 (file)
@@ -1,17 +1,18 @@
 ;;; pcvs-defs.el --- variable definitions for PCL-CVS
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+;;   Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: pcl-cvs
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; 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 2, or (at your option)
-;; any later version.
+;; 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
@@ -19,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -76,7 +75,7 @@ versions, such as the one in SunOS-4.")
 ;;  cvsrc options
 ;;
 
-(defcustom cvs-cvsrc-file "~/.cvsrc"
+(defcustom cvs-cvsrc-file (convert-standard-filename "~/.cvsrc")
   "Path to your cvsrc file."
   :group 'pcl-cvs
   :type '(file))
@@ -98,7 +97,7 @@ 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 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.
@@ -107,24 +106,24 @@ Else, they will never be automatically removed from the *cvs* buffer."
   :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 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."
+  "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."
+  "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.
+  "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,"
@@ -132,7 +131,7 @@ useful to be able to tag a single file.  The normal way to do that is to use
   :type '(boolean))
 
 (defcustom cvs-default-ignore-marks nil
-  "*Non-nil if cvs mode commands should ignore any marked files.
+  "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
@@ -142,7 +141,8 @@ current line.  See also `cvs-invert-ignore-marks'"
 
 (defvar cvs-diff-ignore-marks t)
 (make-obsolete-variable 'cvs-diff-ignore-marks
-                        'cvs-invert-ignore-marks)
+                        'cvs-invert-ignore-marks
+                       "21.1")
 
 (defcustom cvs-invert-ignore-marks
   (let ((l ()))
@@ -151,7 +151,7 @@ current line.  See also `cvs-invert-ignore-marks'"
     (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.
+  "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
@@ -160,7 +160,7 @@ in `cvs-default-ignore-marks'."
              (const "ignore")))
 
 (defcustom cvs-confirm-removals t
-  "*Ask for confirmation before removing files.
+  "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
@@ -171,7 +171,7 @@ displayed when asking for confirmation."
                 (const nil)))
 
 (defcustom cvs-add-default-message nil
-  "*Default message to use when adding files.
+  "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)
@@ -179,7 +179,8 @@ If set to nil, `cvs-mode-add' will always prompt for a message."
 
 (defvar cvs-diff-buffer-name "*cvs-diff*")
 (make-obsolete-variable 'cvs-diff-buffer-name
-                        'cvs-buffer-name-alist)
+                        'cvs-buffer-name-alist
+                       "21.1")
 
 (defcustom cvs-find-file-and-jump nil
   "Jump to the modified area when finding a file.
@@ -195,7 +196,7 @@ have no effect."
     ("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.
+  "Buffer name and mode to be used for each command.
 This is a list of elements of the form
 
        (CMD BUFNAME MODE &optional POSTPROC)
@@ -250,7 +251,7 @@ Output from cvs is placed here for asynchronous commands.")
   (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."
+  "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))))
@@ -320,11 +321,7 @@ This variable is buffer local and only used in the *cvs* buffer.")
 (easy-mmode-defmap cvs-mode-map
   ;;(define-prefix-command 'cvs-mode-map-diff-prefix)
   ;;(define-prefix-command 'cvs-mode-map-control-c-prefix)
-  '(;; simulate `suppress-keymap'
-    (self-insert-command . undefined)
-    (("0" "1" "2" "3" "4" "5" "6" "7" "8" "9") . digit-argument)
-    ("-" .     negative-argument)
-    ;; various
+  '(;; various
     ;; (undo . cvs-mode-undo)
     ("?" .     cvs-help)
     ("h" .     cvs-help)
@@ -347,6 +344,8 @@ This variable is buffer local and only used in the *cvs* buffer.")
     (" " .     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)
@@ -396,14 +395,15 @@ This variable is buffer local and only used in the *cvs* buffer.")
     ;;([tool-bar item2] . (menu-item "Update" cvs-update :image (image :file "/usr/share/icons/mail1.xpm" :type xpm)))
     )
   "Keymap for `cvs-mode'."
-  :dense t)
+  :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]
-    [" ..other window"         cvs-mode-find-file-other-window t]
+    ["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"
@@ -411,6 +411,7 @@ This variable is buffer local and only used in the *cvs* buffer.")
      ["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]
@@ -435,6 +436,9 @@ This variable is buffer local and only used in the *cvs* buffer.")
     ["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]))
 
 ;;;;
@@ -479,17 +483,17 @@ It is expected to call the function.")
 (defvar cvs-global-menu
   (let ((m (make-sparse-keymap "PCL-CVS")))
     (define-key m [status]
-      '(menu-item "Directory Status" cvs-status
-                 :help "A more verbose status of a workarea"))
+      `(menu-item ,(purecopy "Directory Status") cvs-status
+                 :help ,(purecopy "A more verbose status of a workarea")))
     (define-key m [checkout]
-      '(menu-item "Checkout Module" cvs-checkout
-                 :help "Check out a module from the repository"))
+      `(menu-item ,(purecopy "Checkout Module") cvs-checkout
+                 :help ,(purecopy "Check out a module from the repository")))
     (define-key m [update]
-      '(menu-item "Update Directory" cvs-update
-                 :help "Fetch updates from the repository"))
+      `(menu-item ,(purecopy "Update Directory") cvs-update
+                 :help ,(purecopy "Fetch updates from the repository")))
     (define-key m [examine]
-      '(menu-item "Examine Directory" cvs-examine
-                 :help "Examine the current state of a workarea"))
+      `(menu-item ,(purecopy "Examine Directory") cvs-examine
+                 :help ,(purecopy "Examine the current state of a workarea")))
     (fset 'cvs-global-menu m)))