X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=symbols.lisp;h=870426e3e426169733930484047e168791a43908;hp=eb7ba14944c6379540c4a3bd267a422e371a7e1a;hb=9861627be14c8df1d16a25fb062d718051a636b7;hpb=27a9a1fba69e1f861a0dbbb1ad321d2e60ccdb8f diff --git a/symbols.lisp b/symbols.lisp index eb7ba14..870426e 100644 --- a/symbols.lisp +++ b/symbols.lisp @@ -47,15 +47,18 @@ (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)) @@ -66,8 +69,8 @@ (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) @@ -77,14 +80,16 @@ "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