/** * Modify (or create) ST desktop configuration files so VDI boots up in * correct color depth */ static void VDI_FixDesktopInf(void) { char *szDesktopFileName, *szNewDeskFileName; if (!GEMDOS_EMU_ON) { /* Can't modify DESKTOP.INF when not using GEMDOS hard disk emulation */ return; } szDesktopFileName = malloc(2 * FILENAME_MAX); if (!szDesktopFileName) { perror("VDI_FixDesktopInf"); return; } szNewDeskFileName = szDesktopFileName + FILENAME_MAX; /* Create filenames for hard-drive */ GemDOS_CreateHardDriveFileName(2, "\\DESKTOP.INF", szDesktopFileName, FILENAME_MAX); GemDOS_CreateHardDriveFileName(2, "\\NEWDESK.INF", szNewDeskFileName, FILENAME_MAX); /* First, check if files exist(ie modify or replace) */ if (!File_Exists(szDesktopFileName)) VDI_SaveDesktopInf(szDesktopFileName,DesktopScript,sizeof(DesktopScript)); VDI_ModifyDesktopInf(szDesktopFileName); if (!File_Exists(szNewDeskFileName)) VDI_SaveDesktopInf(szNewDeskFileName,NewDeskScript,sizeof(NewDeskScript)); VDI_ModifyDesktopInf(szNewDeskFileName); free(szDesktopFileName); }
/** * Modify (or create) ST desktop configuration files so VDI boots up in * correct color depth */ static void VDI_FixDesktopInf(void) { char *szDesktopFileName, *szNewDeskFileName; /* Modifying DESKTOP.INF only makes sense when we emulate the GEMDOS * hard disk 'C:' (i.e. the HD we boot from) - if not, simply return */ if (!GemDOS_IsDriveEmulated(2)) { return; } szDesktopFileName = malloc(2 * FILENAME_MAX); if (!szDesktopFileName) { perror("VDI_FixDesktopInf"); return; } szNewDeskFileName = szDesktopFileName + FILENAME_MAX; /* Create filenames for hard-drive */ GemDOS_CreateHardDriveFileName(2, "\\DESKTOP.INF", szDesktopFileName, FILENAME_MAX); GemDOS_CreateHardDriveFileName(2, "\\NEWDESK.INF", szNewDeskFileName, FILENAME_MAX); /* First, check if files exist(ie modify or replace) */ if (!File_Exists(szDesktopFileName)) VDI_SaveDesktopInf(szDesktopFileName,DesktopScript,sizeof(DesktopScript)); VDI_ModifyDesktopInf(szDesktopFileName); if (!File_Exists(szNewDeskFileName)) VDI_SaveDesktopInf(szNewDeskFileName,NewDeskScript,sizeof(NewDeskScript)); VDI_ModifyDesktopInf(szNewDeskFileName); free(szDesktopFileName); }