anchor.diff:          (syntax-scan-line line)))))
   
   (defun syntax-scan-buffer (buffer)
  -  (when (and *enable-syntax-highlight*
  -             (get-bvar :enable-syntax-highlight :buffer buffer))
  +  (when (enable-syntax-highlight-p buffer)
       (map-buffer #'(lambda (line linum)
                       (declare (ignore linum))
                       (syntax-scan-line line))
  
positive.code: 
  (defvar *syntax-symbol-lifetimes* nil)
  
  (defun syntax-scan-window (window)
    (when (and *enable-syntax-highlight*
               (get-bvar :enable-syntax-highlight :buffer (window-buffer window)))
      (with-window-range (start-linum end-linum) window
        (syntax-scan-lines (window-buffer window) start-linum end-linum))))
  
  (defun syntax-scan-lines (buffer start-linum end-linum)
    (when (and *enable-syntax-highlight*
               (get-bvar :enable-syntax-highlight :buffer buffer))
      (let* ((line (buffer-get-line buffer start-linum))
             (prev (line-prev line))
             (*syntax-symbol-lifetimes* (and prev (line-%symbol-lifetimes prev))))
  
negative.code: 
  (defun %syntax-pos-tag (pos)
    (let ((line (buffer-get-line (current-buffer) (current-linum))))
      (when (and (not (line-%tags-cached line))
                 (enable-syntax-highlight-p (current-buffer)))
        (syntax-scan-line line))
      (loop :for (start end tag) :in (line-%tags line) :do
        (when (<= start pos (1- end))
  