anchor.diff:  (defun characters-to-key-name (ns-string-characters-in)
   ;;;  (format *terminal-io* "Processing ~S~%" ns-string-characters-in)
   ;;;  (format *terminal-io* "Got string with length ~A~%" (send ns-string-characters-in 'length))
  -;;;  (format *terminal-io* "character(0) = ~A~%" (send ns-string-characters-in :character-at-index 0))
  +;;;  (format *terminal-io* "character(0) = ~A~%"
  +;;;	  (char-code (send ns-string-characters-in :character-at-index 0)))
     (if (<= (send ns-string-characters-in :character-at-index 0) 255)
         (numeric-keysym-to-character (send ns-string-characters-in :character-at-index 0))
       (progn
  
positive.code:   (cond
     ((= #x1b keysym)
      (get-key-name-from-cocoa-constants keysym))
     ((and (<= 0 keysym 255))
      (code-char keysym))
     (t nil)))
  
negative.code:   (make-instance (if (eq :key-down event-type)
  		     'key-press-event
  		   'key-release-event)
  		 ;; McCLIM seems not to understand these, whatever we pass :-(
  		 :key-name       keyname
  		 ;; not needed by spec - should change implementation? And this is a
  		 ;; REALLY bad place to deal with DELETE-CHAR -> #\Del. ::FIXME::
  		 :key-character (if (eq keyname :DELETE-CHAR)
  				    #\Del
  				  (and (characterp keyname) keyname))
  		 :x              0	; Not needed for key events?
  		 :y              0	; Not needed for key events?
  		 :graft-x        0	; Not needed for key events?
  