anchor.diff:            (#xE0 (when (< c #xA0) (return* nil)))
             (#xED (when (> c #x9F) (return* nil)))
             (#xF0 (when (< c #x90) (return* nil)))
  +          #-16bit-chars
             (#xF4 (when (> c #x8F) (return* nil)))
             (t    (when (< c #x80) (return* nil)))))
         (when (>= len 1) (when (<= #x80 srchr #xC1) (return* nil)))
  
positive.code: (in-package :iolib.syscalls)
  
  (eval-when (:compile-toplevel :load-toplevel)
    #+#.(cl:if (cl:<= cl:char-code-limit #xFF) '(:and) '(:or))
    (pushnew :8bit-chars *features*)
    #+#.(cl:if (cl:> #xFF cl:char-code-limit #x10000) '(:and) '(:or))
    (pushnew :16bit-chars *features*)
    #+#.(cl:if (cl:> cl:char-code-limit #xFFFF) '(:and) '(:or))
    (pushnew :21bit-chars *features*))
  
  (eval-when (:compile-toplevel :load-toplevel :execute)
  
negative.code:                ((<  code #x80)     1)
                 ((<  code #x800)    2)
                 ((<  code #x10000)  3)
                 #+21bit-chars
                 ((<  code #x110000) 4))))
  
  (defun cstring-alloc (sstring)
  