changeset 101614:9b2f88075647

(PC-do-completion): Correct case when completion is unambiguous.
author Chong Yidong <cyd@stupidchicken.com>
date Wed, 28 Jan 2009 15:34:32 +0000
parents 04760bc22f94
children c316addfdee6
files lisp/complete.el
diffstat 1 files changed, 18 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/complete.el	Wed Jan 28 15:34:22 2009 +0000
+++ b/lisp/complete.el	Wed Jan 28 15:34:32 2009 +0000
@@ -737,8 +737,6 @@
 		     (setq prefix (PC-try-completion
 				   (PC-chunk-after basestr skip) poss)))
 		(let ((first t) i)
-		  ;; Retain capitalization of user input even if
-		  ;; completion-ignore-case is set.
 		  (if (eq mode 'word)
 		      (setq prefix (PC-chop-word prefix basestr)))
 		  (goto-char (+ beg (length dirname)))
@@ -746,27 +744,25 @@
 				(setq i 0) ; index into prefix string
 				(while (< i (length prefix))
 				  (if (and (< (point) end)
-					   (eq (downcase (aref prefix i))
-					       (downcase (following-char))))
-				      ;; same char (modulo case); no action
-				      (forward-char 1)
-				    (if (and (< (point) end)
-					     (and (looking-at " ")
-                                                  (memq (aref prefix i)
-							PC-delims-list)))
-					;; replace " " by the actual delimiter
-					(progn
-					  (delete-char 1)
-					  (insert (substring prefix i (1+ i))))
-				      ;; insert a new character
+                                           (or (eq (downcase (aref prefix i))
+						   (downcase (following-char)))
+					       (and (looking-at " ")
+						    (memq (aref prefix i)
+							  PC-delims-list))))
+				      ;; replace " " by the actual delimiter
+                                      ;; or input char by prefix char
 				      (progn
-                                        (and filename (looking-at "\\*")
-                                             (progn
-                                               (delete-char 1)
-                                               (setq end (1- end))))
-					(setq improved t)
-                                        (insert (substring prefix i (1+ i)))
-					(setq end (1+ end)))))
+					(delete-char 1)
+					(insert (substring prefix i (1+ i))))
+				    ;; insert a new character
+				    (progn
+				      (and filename (looking-at "\\*")
+					   (progn
+					     (delete-char 1)
+					     (setq end (1- end))))
+				      (setq improved t)
+				      (insert (substring prefix i (1+ i)))
+				      (setq end (1+ end))))
 				  (setq i (1+ i)))
 				(or pt (setq pt (point)))
 				(looking-at PC-delim-regex))