- #+(or lispworks cmu) (declare (ignore type))
- #+cmu `(alien:deref ,ptr)
- #+lispworks `(fli:dereference ,ptr)
- #+allegro `(ff:fslot-value-typed ,type :c ,ptr)
- )
+ (let ((result (gensym)))
+ `(let ((,result
+ #+cmu (alien:deref ,ptr)
+ #+lispworks (fli:dereference ,ptr)
+ #+allegro (ff:fslot-value-typed ,type :c ,ptr)
+ ))
+ (if (and
+ (or (eq ,type :char)
+ (eq ,type :unsigned-char))
+ (numberp ,result))
+ (code-char ,result)
+ ,result))))