Convert consecutive FSF copyright years to ranges.
[bpt/emacs.git] / lisp / cedet / mode-local.el
index c56b609..022b826 100644 (file)
@@ -1,6 +1,7 @@
 ;;; mode-local.el --- Support for mode local facilities
 ;;
-;; Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2005, 2007-2011
+;;   Free Software Foundation, Inc.
 ;;
 ;; Author: David Ponce <david@dponce.com>
 ;; Maintainer: David Ponce <david@dponce.com>
@@ -70,6 +71,9 @@ Return nil if MODE has no parent."
   (or (get mode 'mode-local-parent)
       (get mode 'derived-mode-parent)))
 
+;; FIXME doc (and function name) seems wrong.
+;; Return a list of MODE and all its parent modes, if any.
+;; Lists parent modes first.
 (defun mode-local-equivalent-mode-p (mode)
   "Is the major-mode in the current buffer equivalent to a mode in MODES."
   (let ((modes nil))
@@ -377,8 +381,8 @@ To use the symbol MODE (quoted), use `with-mode-local'."
 The current mode bindings are saved, BODY is evaluated, and the saved
 bindings are restored, even in case of an abnormal exit.
 Value is what BODY returns.
-This lis like `with-mode-local-symbol', except that MODE is quoted
-and is note evaluated."
+This is like `with-mode-local-symbol', except that MODE is quoted
+and is not evaluated."
    `(with-mode-local-symbol ',mode ,@body))
 (put 'with-mode-local 'lisp-indent-function 1)
 
@@ -442,9 +446,11 @@ DOCSTRING is optional."
 \f
 ;;; Function overloading
 ;;
-(defun make-obsolete-overload (old new)
-  "Mark OLD overload as obsoleted by NEW overload."
+(defun make-obsolete-overload (old new when)
+  "Mark OLD overload as obsoleted by NEW overload.
+WHEN is a string describing the first release where it was made obsolete."
   (put old 'overload-obsoleted-by new)
+  (put old 'overload-obsoleted-since when)
   (put old 'mode-local-overload t)
   (put new 'overload-obsolete old))
 
@@ -592,12 +598,12 @@ PROMPT, INITIAL, HIST, and DEFAULT are the same as for `completing-read'."
  with `define-mode-local-override'.")
         (sym (overload-obsoleted-by overload)))
     (when sym
-      (setq doc (format "%s\nIt makes the overload `%s' obsolete."
-                        doc sym)))
+      (setq doc (format "%s\nIt has made the overload `%s' obsolete since %s."
+                        doc sym (get sym 'overload-obsoleted-since))))
     (setq sym (overload-that-obsolete overload))
     (when sym
-      (setq doc (format "%s\nThis overload is obsoletes;\nUse `%s' instead."
-                        doc sym)))
+      (setq doc (format "%s\nThis overload is obsolete since %s;\nUse `%s' instead."
+                        doc (get overload 'overload-obsoleted-since) sym)))
     doc))
 
 (defun mode-local-augment-function-help (symbol)
@@ -605,19 +611,16 @@ PROMPT, INITIAL, HIST, and DEFAULT are the same as for `completing-read'."
 SYMBOL is a function that can be overridden."
   (with-current-buffer "*Help*"
     (pop-to-buffer (current-buffer))
-    (unwind-protect
-       (progn
-         (toggle-read-only -1)
-          (goto-char (point-min))
-          (unless (re-search-forward "^$" nil t)
-            (goto-char (point-max))
-            (beginning-of-line)
-            (forward-line -1))
-          (insert (overload-docstring-extension symbol) "\n")
-         ;; NOTE TO SELF:
-         ;; LIST ALL LOADED OVERRIDES FOR SYMBOL HERE
-         )
-      (toggle-read-only 1))))
+    (goto-char (point-min))
+    (unless (re-search-forward "^$" nil t)
+      (goto-char (point-max))
+      (beginning-of-line)
+      (forward-line -1))
+    (let ((inhibit-read-only t))
+      (insert (overload-docstring-extension symbol) "\n")
+      ;; NOTE TO SELF:
+      ;; LIST ALL LOADED OVERRIDES FOR SYMBOL HERE
+      )))
 
 ;; Help for mode-local bindings.
 (defun mode-local-print-binding (symbol)
@@ -723,7 +726,7 @@ invoked interactively."
   "Display mode local bindings active in BUFFER."
   (interactive "b")
   (when (setq buffer (get-buffer buffer))
-    (mode-local-describe-bindings-1 buffer (interactive-p))))
+    (mode-local-describe-bindings-1 buffer (called-interactively-p 'any))))
 
 (defun describe-mode-local-bindings-in-mode (mode)
   "Display mode local bindings active in MODE hierarchy."
@@ -733,7 +736,7 @@ invoked interactively."
           #'(lambda (s) (get s 'mode-local-symbol-table))
           t (symbol-name major-mode))))
   (when (setq mode (intern-soft mode))
-    (mode-local-describe-bindings-1 mode (interactive-p))))
+    (mode-local-describe-bindings-1 mode (called-interactively-p 'any))))
 \f
 ;; ;;; find-func support (Emacs 21.4, or perhaps 22.1)
 ;; ;;