anchor.diff:           (pos-y    (get-pos-y view x y :modeline modeline)))
       (loop :while (< disp-x disp-x0)
          :for code := (get-charcode-from-scrwin view pos-x pos-y)
  -       :do (setf disp-x (lem-base:char-width (code-char code) disp-x))
  -         ;; pos-x is incremented only 1 at wide characters
  -         ;; (except for utf-16 surrogate pair characters)
  -         (setf pos-x (+ pos-x (if (< code #x10000) 1 2))))
  +       :do (incf disp-x (if (lem-base:wide-char-p (code-char code)) 2 1))
  +           (incf pos-x  (if (< code #x10000) 1 2)))
       pos-x))
   (defun get-pos-y (view x y &key (modeline nil))
     (+ y (ncurses-view-y view) (if modeline (ncurses-view-height view) 0)))
  
positive.code:        (lem:redraw-display))
        )))
  
  ;; deal with utf-16 surrogate pair characters
  (defun get-key (code)
    (when (<= #xd800 code #xdbff)
      (charms/ll:timeout 100)
  
negative.code:                            (make-string (- disp-x0 pos-x)
                                          :initial-element #\u200b)))))
  
  ;; deal with utf-16 surrogate pair characters (output)
  (defun remake-string (string)
    (let ((clist    '())
          (splitted nil))
  