anchor.diff:                 (progn
                    ,@body)))))))
   
  -(defun decode-x-button-code (code)
  -  (aref #.(vector +pointer-left-button+
  -                  +pointer-middle-button+
  -                  +pointer-right-button+
  -		  +pointer-wheel-up+
  -		  +pointer-wheel-down+)
  -        (1- code)))
  +(defun decode-x-button-code (code)  
  +  (let ((button-mapping #.(vector +pointer-left-button+
  +                                  +pointer-middle-button+
  +                                  +pointer-right-button+
  +                                  +pointer-wheel-up+
  +                                  +pointer-wheel-down+)))
  +    (if (and (> code 0)
  +             (<= code (1+ (length button-mapping))))
  +        (aref button-mapping (1- code))
  +        nil)))
   
   ;; From "Inter-Client Communication Conventions Manual", Version 2.0.xf86.1,
   ;; section 4.1.5:
  
positive.code:   (xlib:convert-selection :primary :UTF8_STRING requestor :bounce time))
  
  (defmethod get-selection-from-event ((event clx-selection-notify-event))
    (map 'string #'code-char
         (xlib:get-property (sheet-direct-mirror (event-sheet event))
                            (selection-event-property event)
  
negative.code:     (or (gethash color table)
  	(setf (gethash color table)
  	      (multiple-value-bind (r g b) (color-rgb color)
  		(xlib:alloc-color (xlib:screen-default-colormap
                                     (clx-port-screen port))
  				  (xlib:make-color :red r :green g :blue b)))))))
  
  (defmethod port-mirror-width ((port clx-port) sheet)
  