anchor.diff:  ;;;; XML parser
  -;;;; Copyright (c) 2005-2008 Sven Klose <pixel@copei.de>
  +;;;; Copyright (c) 2005-2009 Sven Klose <pixel@copei.de>
   
   ;;; Macros and functions that don't belong here.
   
   (defmacro with-queue-string-while (q pred &rest body)
     `(with-queue ,q
  -    (while ,pred (queue-string ,q)
  -      ,@body)))
  +     (while ,pred (queue-string ,q)
  +       ,@body)))
   
   ;;; Errors.
   
  +(defvar *xml2lmlr-read* nil)
  +
   (defun xml-error (form &rest args)
  +  (princ (list-string (reverse *xml2lmlr-read*)))
     (if args
  -    (error (apply #'format t form args))
  -    (error (funcall #'format t form))))
  +      (error (apply #'format t form args))
  +      (error (funcall #'format t form))))
   
   (defun xml-error-unexpected-eof (in)
     (xml-error "unexpected end of file"))
  
positive.code:     (unless (xml-whitespace? (elt s i))
        (return n))))
  
  
  ;;; Read functions.
  
  (defun xml-read-char (in)
    (when (end-of-file in)
      (xml-error-unexpected-eof in))
    (read-char in))
  
  (defun xml-peek-char (in)
    (when (end-of-file in)
  
negative.code: (setq *xml-unified-strings* nil)
  
  (defun xml-init-tables ()
    (setq *xml-unified-strings* (make-hash-table :test #'string=))
    (setq *xml2lmlr-read* nil))
  
  (defun xml-unify-string (s)
    "Unify string."
  