anchor.diff:  		(t (setq colon-state nil)
   		   token)))
   	    group)))
  -				      
  +
   (defun bibtex-string-titledowncase (string)
     "Convert to lower case all letters except the very first character
   in the STRING, which it leaves alone, and except the first character
  
positive.code: 	  (format *error-output* "I couldn't open database file `~A'" expanded-file))
  	(read-bib-database s))))
    (cited-bib-entries (if *cite-all-entries* t *cite-keys*)
  		     :min-crossrefs 2))
  
  ;;; Misc functions
  
  
negative.code: 			   (not (alpha-char-p (char token 0))))
  		(princ " " stream))))))
  
  (defun for-all-tex-tokens (function string-or-group)
    "Call FUNCTION for every token in the given TeX string (a string or
  a TeX-group).  The second argument passed to FUNCTION is the
  bracelevel."
    (let ((group (etypecase string-or-group
  		 (string (parse-tex-string string-or-group))
  		 (list string-or-group))))
      (labels ((apply-function (group brace-level)
  	       (dolist (token group)
  		 (etypecase token
  		   ((or character string)
  		    (funcall function token brace-level))
  		   (list
  		    (apply-function token (+ 1 brace-level)))))))
        (apply-function group 0))))		 
  
  (defmacro do-tex-tokens ((token string-or-group
  				&optional (brace-level (gensym) brace-level-p))
  			 &body body)
    "Perform BODY on every token in the given TeX string (a string or a
  TeX-group)."
    `(for-all-tex-tokens (lambda (,token ,brace-level)
  			 ,@(if brace-level-p
  			       '()
  			       `((declare (ignore ,brace-level))))
  			 ,@body)
      ,string-or-group))
  
  (defvar *foreign-character-purifications*
    '(("i" . "i")
      ("j" . "j")
      ("ae" . "ae")
      ("AE" . "AE")
      ("oe" . "oe")
      ("OE" . "OE")
      ("aa" . "a")
      ("AA" . "A")
      ("o" . "o")
      ("O" . "O")
      ("l" . "l")
      ("L" . "L")
      ("ss" . "ss"))
    "An alist mapping the names of control sequences to strings, which
  are their purifications.  All other control sequences have null
  purification.")
  
  (defun bibtex-string-purify (string)
    "Remove nonalphanumeric characters except for whitespace and
  sep-char characters (these get converted to a space) and removes
  certain alphabetic characters contained in the control sequences
  associated with a special character."
    (with-output-to-string (s)
      (do-tex-tokens (token string)
        (etypecase token
  	(character
  	 (cond ((alphanumericp token) (princ token s))
  	       ((sepchar-p token) (princ #\Space s))))
  	(string
  	 (let ((purification (assoc token *foreign-character-purifications* :test 'string=)))
  	   (when purification
  	     (princ (cdr purification) s))))))))
  
  (defun tex-group-upcase (group)
    (mapcar (lambda (token)
  