When (read-table-case *READTABLE*) is :upcase completing M-V-B<TAB> fails. Similarly :downcase. This is (I believe) because of a change introduced in
|2006-10-26 Attila Lendvai attila.lendvai@gmail.com | (completion-output-symbol-converter): New to handle escaped | symbols for those who need to mess around with symbols like | layered-function-definers::|CONTEXTL::SLOT-VALUE-USING-LAYER|. | When a symbol is escaped then completion is case sensitive.
The following patch fixes it [the heuristic] to work as before.
--- swank.lisp.~1.422~ 2006-12-10 14:51:16.000000000 +0530 +++ swank.lisp 2006-12-10 16:05:14.000000000 +0530 @@ -3242,7 +3242,7 @@ INPUT is used to guess the preferred case." (ecase (readtable-case *readtable*) (:upcase (cond ((or with-escaping-p - (every #'upper-case-p input)) + (not (some #'lower-case-p input))) #'identity) (t #'string-downcase))) (:invert (lambda (output) @@ -3252,7 +3252,7 @@ (upper (string-downcase output)) (t output))))) (:downcase (cond ((or with-escaping-p - (every #'lower-case-p input)) + (not (some #'upper-case-p input))) #'identity) (t #'string-upcase))) (:preserve #'identity)))