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

font-convert-interval



In Symbolics 3600 Zwei in Release 6.0, IP-TCP 29.0, AISite 9.1,
microcode TMC5-MIC 319, on Lisp Machine Keith Moon:

the function font-convert-interval doesn't seem to work as
advertized.  I managed to hack up a version that seems to work,
but it may contain extraneous code since I snarfed some of it\n from change-font-interval.  Here it is...

(DEFUN FONT-CONVERT-INTERVAL (MAPPING-LIST START-BP &OPTIONAL END-BP IN-ORDER-P)
  (GET-INTERVAL START-BP END-BP IN-ORDER-P)
  (undo-save start-bp end-bp t)   ;;; *
  (mung-bp-interval start-bp)   ;;; *
  (LOOP FOR LINE FIRST (BP-LINE START-BP) THEN (LINE-NEXT LINE)
	WITH END-LINE = (BP-LINE END-BP)
	FOR START-IDX FIRST (BP-INDEX START-BP) THEN 0
;;; * ("unless" clause deleted)
	DO (progn (mung-line line)   ;;; *
		  (OR  (EQ (ARRAY-TYPE LINE) 'ART-FAT-STRING)
		      (SETQ LINE (SET-LINE-ARRAY-TYPE LINE 'ART-FAT-STRING)))
		  (LOOP FOR I FROM START-IDX BELOW (IF (EQ LINE END-LINE) (BP-INDEX END-BP)
						       (LINE-LENGTH LINE))
			AS CH = (AREF LINE I)
			DO (ASET (DPB (OR (NTH (LDB %%CH-FONT CH) MAPPING-LIST)
					  (CAR (LAST MAPPING-LIST)))	;Bogus, use last font
				      %%CH-FONT CH)
				 LINE I)))
	UNTIL (EQ LINE END-LINE)))


The starred lines are additions/deletions.