Number: 1416

Date: 14-Jun-84 14':10':59

Submitter: Sannella.PA

Source: Christopher Schmidt <SCHMIDT@SUMEX-AIM.ARPA>

Subject: CHANGFONT uses LASTFONT globally

Assigned To: 

Attn: Kaplan

Status: Fixed

In/By: Harmony

Problem Type: Bug

Impact: Moderate

Difficulty: Easy

Frequency: Everytime

Priority: Hopefully

System: Windows and Graphics

Subsystem: Fonts

Machine: 

Disk: 

Lisp Version: Fugue.6

Source Files: 

Microcode Version: 

Memory Size: 

File Server: 

Server Software Version: 

Disposition: '
["Kaplan" "18-Sep-84 11':14':57" Status':(Open->Fixed) Description':]'
["Sannella.PA" "19-Sep-84 18':43':26" In/By':]

Description: '
Return-Path': <SCHMIDT@SUMEX-AIM.ARPA>'
Received': from SUMEX-AIM.ARPA by Xerox.ARPA ; 24 MAY 84 17':21':24 PDT'
Date': Thu, 24 May 84 17':21':25 PDT'
From': Christopher Schmidt <SCHMIDT@SUMEX-AIM.ARPA>'
Subject': CHANGFONT uses LASTFONT globally!'
To': 1100support.pasa'
cc': Ferguson@SUMEX-AIM.ARPA, Lane@SUMEX-AIM.ARPA'
'
	There is a bug in CHANGFONT [sic] such that it examines the global'
variable LASTFONT to see if the DSPFONT really needs changing.  If last'
font is the same as the caller of CHANGEFONT requested, then no action is'
taken.  Thus if one does'
(CHANGEFONT WINDOW1 BOLDFONT)'
(CHANGEFONT WINDOW2 BOLDFONT)'
only the DSPFONT of WINDOW1 will be changed since the first call to CHANGFONT'
set the globalvar LASTFONT to the value of BOLDFONT, and the second call'
wrongly determines that the font of WINDOW2 doesn''t really need changing since'
LASTFONT is already BOLDFONT.'
	Our solution is to smash LASTFONT after every call to CHANGFONT with'
garbage, but the real solution is to remove the optimization in CHANGFONT or'
make CHANGFONT examine the DSPFONT of the stream (preferred).  Thanks,'
--Christopher'
-------'
'
This is fixed in Harmony, since LASTFONT is no longer used in Interlisp-D.  In fact, CHANGEFONT is now exactly equivalent to DSPFONT (via MOVD), so that the dspfont function for each stream is responsible for determining whether or not the requested change is "real".'
'
Also, you can do DSPFONT on the value of DEFAULTFONT, BOLDFONT, etc, and you can do CHANGEFONT and printout .FONT on things like ''(GACHA 10)  or font-descriptors.  Fontclasses are first-class font data-objects, like fontdescriptors.'
'


Workaround: 

Test Case: 

Edit-By: Sannella.PA

Edit-Date: 19-Sep-84 18':43':26