[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug and fix for DVI previewer on the SLUG TeX tape.



There's a bug in the DVI previewer (and hardcopier) as distributed on the SLUG
TeX tape that causes it to infinitely loop when it has to do a font
substitution.

To fix the bug, I suggest editing the file sys:tex;dvi-stream.lisp, finding
the definition of find-font-fast-in-paths, replacing it with this, and then
add the changed definition as a patch to the TeX-DVI system. 

(defun-in-flavor (find-font-fast-in-paths dvi-hardcopy-input-filter)
		 (name fontmag engine-type font-string mag)
  (loop for sdir in *font-search-paths*
	for dir = (send (fs:parse-pathname sdir) :translated-pathname)
	thereis (loop with device-dpis-available = nil
		      with device-dpis-found = nil
		      for device-dpi first (device-dpi) then (pop device-dpis-available)
		      while device-dpi
		      when engine-type 
			thereis (font-if-file-exists
				  font-string
				  (pxl-font-pathname dir name fontmag device-dpi engine-type)
				  name
				  mag)
		      thereis (font-if-file-exists
				font-string
				(pxl-font-pathname dir name fontmag device-dpi)
				name
				mag)
		      unless device-dpis-found
			do (setq device-dpis-available
				 (device-dpis-in-directory (device-dpis-wildspec dir)))
			   (setq device-dpis-found t))))