(eval-when (:compile-toplevel :load-toplevel :execute)
(when (char= #\a (schar (symbol-name '#:a) 0))
- (pushnew :lowercase-reader *features*)))
+ (pushnew :kmrcl-lowercase-reader *features*))
+ (when (not (string= (symbol-name '#:a)
+ (symbol-name '#:A)))
+ (pushnew :kmrcl-case-sensitive *features*)))
(defun string-default-case (str)
- #+(and (not case-sensitive) (not lowercase-reader))
- (string-upcase str)
- #+(and (not case-sensitive) lowercase-reader)
- (string-downcase str)
- #+case-sensitive
- str)
+ #+(and (not kmrcl-lowercase-reader)) (string-upcase str)
+ #+(and kmrcl-lowercase-reader) (string-downcase str))
+
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (setq cl:*features* (delete :kmrcl-lowercase-reader *features*))
+ (setq cl:*features* (delete :kmrcl-case-sensitive *features*)))
(defun concat-symbol-pkg (pkg &rest args)
(declare (dynamic-extent args))
(symbol
(symbol-name arg)))))
(let ((str (apply #'concatenate 'string (mapcar #'stringify args))))
- (intern (string-default-case str)
- (if pkg pkg *package*)))))
+ (nth-value 0 (intern (string-default-case str)
+ (if pkg pkg *package*))))))
(defun concat-symbol (&rest args)
"Returns keyword for a name"
(etypecase name
(keyword name)
- (string (intern (string-default-case name) :keyword))
- (symbol (intern (symbol-name name) :keyword))))
+ (string (nth-value 0 (intern (string-default-case name) :keyword)))
+ (symbol (nth-value 0 (intern (symbol-name name) :keyword)))))
(defun ensure-keyword-upcase (desig)
- (intern (string-upcase (symbol-name (ensure-keyword desig))) :keyword))
+ (nth-value 0 (intern (string-upcase
+ (symbol-name (ensure-keyword desig))) :keyword)))
(defun ensure-keyword-default-case (desig)
- (intern (string-default-case (symbol-name (ensure-keyword desig))) :keyword))
+ (nth-value 0 (intern (string-default-case
+ (symbol-name (ensure-keyword desig))) :keyword)))
(defun show (&optional (what :variables) (package *package*))
(ecase what