anchor.diff:         (setf (cluffer:cursor-position ,cursor-name) (truncate ,initial-cursor-position)))
        ,@body))
   
  +(export-always 'with-input-area)
   (defmacro with-input-area ((contents cursor-position) &body body)
     (let ((unprocessed-cursor (gensym)))
       `(let* ((,contents (active-input-area-content))
  
positive.code:             (,cursor-position (when (numberp ,unprocessed-cursor)
                                  (truncate (active-input-area-cursor)))))
         (declare (ignorable ,contents ,cursor-position))
         (if cursor-position
             ,@body
             (echo-warning "Cannot get cursor position. Are you in an input field?")))))
  
  
negative.code:                                      (ps:lisp selection-start)
                                       (ps:lisp selection-end))))
  
  (export-always 'with-text-buffer)
  (defmacro with-text-buffer ((buffer-name cursor-name
                               &optional initial-contents
                                         initial-cursor-position)
  