Fix for .xpi file deletion upon completion of install.

This commit is contained in:
sgehani%netscape.com 1999-12-15 08:06:09 +00:00
Родитель 02a83c388c
Коммит 89a3e6ba5b
6 изменённых файлов: 51 добавлений и 1 удалений

Двоичные данные
xpinstall/wizard/mac/rsrc/MIWCommon.rsrc

Двоичный файл не отображается.

Двоичные данные
xpinstall/wizard/mac/rsrc/Mozilla.rsrc

Двоичный файл не отображается.

Двоичные данные
xpinstall/wizard/mac/rsrc/Netscape.rsrc

Двоичный файл не отображается.

Просмотреть файл

@ -188,6 +188,11 @@ pascal void* Install(void* unused)
/* launch the downloaded apps who had the LAUNCHAPP attr set */
LaunchApps(vRefNum, dirID);
#if MOZILLA == 0
/* cleanup downloaded .xpis */
DeleteXPIs(vRefNum, dirID); /* temp folder location is supplied */
#endif
/* wind down app */
gDone = true;
@ -509,6 +514,50 @@ LaunchApps(short vRefNum, long dirID)
}
}
void
DeleteXPIs(short vRefNum, long dirID)
{
int compsDone = 0, i;
int instChoice = gControls->opt->instChoice - 1;
OSErr err = noErr;
StringPtr pArchiveName;
FSSpec fsCurr;
// loop through 0 to kMaxComponents
for(i=0; i<kMaxComponents; i++)
{
// general test: if component in setup type
if ( (gControls->cfg->st[instChoice].comp[i] == kInSetupType) &&
(compsDone < gControls->cfg->st[instChoice].numComps) )
{
// if custom and selected, or not custom setup type
if ( ((instChoice == gControls->cfg->numSetupTypes-1) &&
(gControls->cfg->comp[i].selected == true)) ||
(instChoice < gControls->cfg->numSetupTypes-1) )
{
HLock(gControls->cfg->comp[i].archive);
pArchiveName = CToPascal(*gControls->cfg->comp[i].archive);
HUnlock(gControls->cfg->comp[i].archive);
err = FSMakeFSSpec(vRefNum, dirID, pArchiveName, &fsCurr);
if (err == noErr)
{
err = FSpDelete(&fsCurr);
#ifdef MIW_DEBUG
if (err != noErr)
SysBeep(10);
#endif
}
if (pArchiveName)
DisposePtr((Ptr)pArchiveName);
}
}
compsDone++;
}
}
void
InitProgressBar(void)
{

Просмотреть файл

@ -249,7 +249,7 @@ void MainEventLoop(void)
if (!gDone) /* after cx switch back ensure not done */
{
if(WaitNextEvent(everyEvent, &evt, 0, mouseRgn))
if(WaitNextEvent(everyEvent, &evt, 1, mouseRgn))
{
if (mouseRgn)
SetRectRgn(mouseRgn, evt.where.h, evt.where.v, evt.where.h + 1, evt.where.v + 1);

Просмотреть файл

@ -552,6 +552,7 @@ Boolean GenerateIDIFromOpt(Str255, long, short, FSSpec *);
void AddKeyToIDI(short, Handle, char *);
Boolean ExistArchives(short, long);
void LaunchApps(short, long);
void DeleteXPIs(short, long);
void InitProgressBar(void);
Boolean InitSDLib(void);
Boolean LoadSDLib(FSSpec, SDI_NETINSTALL *, EventProc *, CFragConnectionID *);