changeset 17711:3484851d83b9

(dabbrev-case-replace, dabbrev-case-fold-search): Make these simple three-value choices. (dabbrev-completion): Handle dabbrev-case-fold-search and dabbrev-case-replace the new way. (dabbrev-expand, dabbrev--substitute-expansion): Likewise.
author Richard M. Stallman <rms@gnu.org>
date Sat, 10 May 1997 00:33:28 +0000
parents 13df6938d925
children 41a4624c1e79
files lisp/dabbrev.el
diffstat 1 files changed, 33 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dabbrev.el	Fri May 09 21:58:00 1997 +0000
+++ b/lisp/dabbrev.el	Sat May 10 00:33:28 1997 +0000
@@ -128,16 +128,15 @@
 		 (const :tag "off" nil))
   :group 'dabbrev)
 
-;; I recommend that you set this to nil.
 (defcustom dabbrev-case-fold-search 'case-fold-search
-  "*Non-nil if dabbrev searches should ignore case.
+  "*Control whether dabbrev searches should ignore case.
 A value of nil means case is significant.
-
-The value of this variable is an expression; it is evaluated
-and the resulting value determines the decision.
-For example: setting this to `case-fold-search' means evaluate that
-variable to see whether its value is nil."
-  :type 'sexp
+A value of `case-fold-search' means case is significant
+ if `case-fold-search' is nil.
+Any other non-nil version means case is not significant."
+  :type '(choice (const :tag "off" nil)
+		 (const :tag "on" t)
+		 (const :tag "like search" 'case-fold-search))
   :group 'dabbrev)
 
 (defcustom dabbrev-upcase-means-case-search nil
@@ -145,23 +144,21 @@
 nil means case fold search, non-nil means case sensitive search.
 
 This variable has an effect only when the value of
-`dabbrev-case-fold-search' evaluates to t."
+`dabbrev-case-fold-search' says to ignore case."
   :type 'boolean
   :group 'dabbrev)
 
-;; I recommend that you set this to nil.
 (defcustom dabbrev-case-replace 'case-replace
-  "*Non-nil means dabbrev should preserve case when expanding the abbreviation.
-More precisely, it preserves the case pattern of the abbreviation as you
-typed it--as opposed to the case pattern of the expansion that is copied.
-The value of this variable is an expression; it is evaluated
-and the resulting value determines the decision.
-For example, setting this to `case-replace' means evaluate that
-variable to see if its value is t or nil.
+  "*Controls whether dabbrev preserves case when expanding the abbreviation.
+A value of nil means preserve case.
+A value of `case-replace' means preserve case if `case-replace' is nil.
+Any other non-nil version means do not preserve case.
 
 This variable has an effect only when the value of
-`dabbrev-case-fold-search' evaluates to t."
-  :type 'sexp
+`dabbrev-case-fold-search' specifies to ignore case."
+  :type '(choice (const :tag "off" nil)
+		 (const :tag "on" t)
+		 (const :tag "like M-x query-replace" 'case-replace))
   :group 'dabbrev)
 
 (defcustom dabbrev-abbrev-char-regexp nil
@@ -349,9 +346,11 @@
 	 (dabbrev-check-all-buffers
 	  (and arg (= (prefix-numeric-value arg) 16)))
 	 (abbrev (dabbrev--abbrev-at-point))
-	 (ignore-case-p  (and (eval dabbrev-case-fold-search)
-			      (or (not dabbrev-upcase-means-case-search)
-				  (string= abbrev (downcase abbrev)))))
+	 (ignore-case-p (and (if (eq dabbrev-case-fold-search 'case-fold-search)
+				 case-fold-search
+			       dabbrev-case-fold-search)
+			     (or (not dabbrev-upcase-means-case-search)
+				 (string= abbrev (downcase abbrev)))))
 	 (my-obarray dabbrev--last-obarray)
 	 init)
     (save-excursion
@@ -521,7 +520,9 @@
       (or expansion
 	  (setq expansion
 		(dabbrev--find-expansion abbrev direction
-					 (and (eval dabbrev-case-fold-search)
+					 (and (if (eq dabbrev-case-fold-search 'case-fold-search)
+						  case-fold-search
+						dabbrev-case-fold-search)
 					      (or (not dabbrev-upcase-means-case-search)
 						  (string= abbrev (downcase abbrev))))))))
     (cond
@@ -557,7 +558,9 @@
       ;; set dabbrev--last-case-pattern.
       (and record-case-pattern
 	   (setq dabbrev--last-case-pattern
-		 (and (eval dabbrev-case-fold-search)
+		 (and (if (eq dabbrev-case-fold-search 'case-fold-search)
+			  case-fold-search
+			dabbrev-case-fold-search)
 		      (not dabbrev-upcase-means-case-search)
 		      (equal abbrev (upcase abbrev)))))
 
@@ -791,10 +794,14 @@
 ;;; EXPANSION is the expansion substring.
 (defun dabbrev--substitute-expansion (old abbrev expansion)
   ;;(undo-boundary)
-  (let ((use-case-replace (and (eval dabbrev-case-fold-search)
+  (let ((use-case-replace (and (if (eq dabbrev-case-fold-search 'case-fold-search)
+				   case-fold-search
+				 dabbrev-case-fold-search)
 			       (or (not dabbrev-upcase-means-case-search)
 				   (string= abbrev (downcase abbrev)))
-			       (eval dabbrev-case-replace))))
+			       (if (eq dabbrev-case-replace 'case-replace)
+				   case-replace
+				 dabbrev-case-replace))))
     (and nil use-case-replace
 	 (setq old (concat abbrev (or old "")))
 	 (setq expansion (concat abbrev expansion)))