anchor.diff:    "Application's entry point."
     (loop
        (let* ((length (read-length *standard-input*))
  -	    (buffer (chars-to-string (read-stdin length))))
  +	    (buffer (read-stdin-as-string length)))
          (send-to-ext
   	(jsown:to-json
   	 (list :obj (cons "text" buffer)))))))
   
  -(defun read-stdin (length)
  -  (loop for i from 0 upto (- length 1)
  -     collect (read-char *standard-input*)))
  +(defun read-stdin-as-string (length)
  +  (let ((string (make-string length)))
  +    (read-sequence string *standard-input*)
  +    string))
   
   (defun read-length (stream)
     (+
  
positive.code: (defun send-to-ext (str)
    (let ((len (length str)))
      (format *standard-output*
  	    "~{~c~}~{~c~}"
  	    (integer-to-chars len 4)
  	    (string-to-chars str)))
    (force-output *standard-output*))
  
negative.code:    (* (read-byte stream (expt 2 16)))
     (* (read-byte stream (expt 2 24)))))
  
  (defun integer-to-chars (integer length)
    (loop for i from 0 upto (- length 1)
       collect (code-char (logand (ash integer (* i 8)) #xFF))))
  