>    I read through the diff this morning and it looked good.  Can you send
me
> an updated diff file so I don't have to try to reconcile the diff you sent
> earlier with what's currently in CVS?
>    My apologies for taking so long in getting to this.  With any luck I'll
> be able to get to the other patches you've submitted in short order.

This is the updated diff file covering patches to bug 710 and 455.

Gilles Saint-Denis

? abi/src/ask/gendata/win/ask_gendata_data_Win32.c
? abi/src/pkg/win/setup/setup.rc2
Index: abi/src/ask/gendata/win/Makefile
===================================================================
RCS file: /cvsroot/abi/src/ask/gendata/win/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- abi/src/ask/gendata/win/Makefile    2000/06/02 15:17:40     1.5
+++ abi/src/ask/gendata/win/Makefile    2000/09/26 00:40:24
@@ -22,7 +22,7 @@
 
 include $(ABI_ROOT)/src/config/abi_defs.mk
 
-CSRCS=                 ask_gendata_main_Win32.c
+CSRCS=                 ask_gendata_main_Win32.c ask_gendata_data_Win32.c
 
 PROGRAM=               $(BINDIR)/ask_gendata.exe
 
@@ -37,6 +37,12 @@
 
 GARBAGE=               ask_gendata.map ask_gendata.pdb
 TARGETS=               $(PROGRAM)
+
+ifeq ($(OS_NAME), WIN32)
+INCLUDES=              -I$(ABI_XX_ROOT)/src/ask/lib/xp
+else
+INCLUDES=              -I$(ABI_ROOT)/src/ask/lib/xp
+endif
 
 include $(ABI_ROOT)/src/config/abi_rules.mk
 
Index: abi/src/ask/gendata/win/ask_gendata_main_Win32.c
===================================================================
RCS file: /cvsroot/abi/src/ask/gendata/win/ask_gendata_main_Win32.c,v
retrieving revision 1.1
diff -u -r1.1 ask_gendata_main_Win32.c
--- abi/src/ask/gendata/win/ask_gendata_main_Win32.c    1999/05/11 21:47:34     1.1
+++ abi/src/ask/gendata/win/ask_gendata_main_Win32.c    2000/09/26 00:40:25
@@ -15,6 +15,7 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
+#include <ask.h>
 
 int main(int argc, char**argv)
 {
Index: abi/src/ask/gendata/xp/ask_gendata.c
===================================================================
RCS file: /cvsroot/abi/src/ask/gendata/xp/ask_gendata.c,v
retrieving revision 1.4
diff -u -r1.4 ask_gendata.c
--- abi/src/ask/gendata/xp/ask_gendata.c        1999/05/15 02:37:06     1.4
+++ abi/src/ask/gendata/xp/ask_gendata.c        2000/09/26 00:40:28
@@ -442,6 +442,7 @@
 
        fprintf(fpOut, "/* This file was automatically generated by the AbiSource 
Setup Kit. */\n");
        fprintf(fpOut, "#include \"ask.h\"\n\n");
+       ASK_PlatformSpecificInstructions(fpOut);
 
     parseInputFile(argv[1], fpOut);
 
@@ -461,7 +462,7 @@
                pCurrentSet = pFirstSet;
                while (pCurrentSet)
                {
-                       int iNumFilesInSet = 0;
+                       long iNumFilesInSet = 0;
                        fprintf(fpOut, "\nASK_DataFile* _fileset%05d_files[] = {\n", 
iSetNum);
                        {
                                struct data_file_list_node* pNode = pCurrentSet->pHead;
@@ -480,7 +481,7 @@
                        fprintf(fpOut, "\t\"%s\",\n", pCurrentSet->szDefaultPath);
                        fprintf(fpOut, "\t\"%s\",\n", pCurrentSet->szDirName);
                        fprintf(fpOut, "\t\"%s\",\n", pCurrentSet->szKeyword);
-                       fprintf(fpOut, "\t%d,\n", iNumFilesInSet);
+                       fprintf(fpOut, "\t%ld,\n", iNumFilesInSet);
                        fprintf(fpOut, "\t%d,\n", pCurrentSet->bFixedPath);
                        fprintf(fpOut, "\t_fileset%05d_files\n", iSetNum);
                        fprintf(fpOut, "};\n");
Index: abi/src/ask/lib/win/ask_lib_Win32.c
===================================================================
RCS file: /cvsroot/abi/src/ask/lib/win/ask_lib_Win32.c,v
retrieving revision 1.10
diff -u -r1.10 ask_lib_Win32.c
--- abi/src/ask/lib/win/ask_lib_Win32.c 2000/09/25 21:43:24     1.10
+++ abi/src/ask/lib/win/ask_lib_Win32.c 2000/09/26 00:40:38
@@ -50,6 +50,8 @@
 
 HFONT          g_hfontMain;
 
+static int     s_bInstallationSuccessfull = 0;
+
 #define                ID_PANE                 1000
 #define                ID_BTN_NEXT             1001
 #define                ID_BTN_CANCEL   1002
@@ -163,6 +165,7 @@
        DWORD iNumberOfFreeClusters;
        DWORD iTotalNumberOfClusters;
        DWORD iBytes;
+       int iResult;
 
        if (g_pSet_BrowseDir->pszDirName &&g_pSet_BrowseDir->pszDirName[0])
        {
@@ -184,17 +187,30 @@
        p++;
        *p = 0;
        
-       GetDiskFreeSpace(szBuf,
+       iResult = GetDiskFreeSpace(szBuf,
                                         &iSectorsPerCluster,
                                         &iBytesPerSector,
                                         &iNumberOfFreeClusters,
                                         &iTotalNumberOfClusters);
 
-       iBytes = iNumberOfFreeClusters * iSectorsPerCluster * iBytesPerSector;
+       iBytes = (iResult != 0 ? iNumberOfFreeClusters : 0)
+               * iSectorsPerCluster * iBytesPerSector;
 
        // and set it into the static text display
        ASK_convertBytesToString(iBytes, szBuf);
        SetWindowText(g_hwndStatic_DiskSpace, szBuf);
+
+       if(iResult == 0)
+       {
+               EnableWindow(g_hwndButtonNext, FALSE);
+               MessageBox(g_hwndMain, 
+                       "The selected disk is not available.", "Error",
+                       MB_ICONEXCLAMATION | MB_OK);
+       }
+       else
+       {
+               EnableWindow(g_hwndButtonNext, TRUE);
+       }
 }
 
 static void _png_read(png_structp png_ptr, png_bytep data, png_size_t length)
@@ -336,7 +352,7 @@
        {
                g_iWhichButton = ID_BTN_CANCEL;
                QuitEventLoop();
-               return 0;
+               return 1;
        }
        else
        {
@@ -428,7 +444,8 @@
                }
                else if (wParam == 27)
                {
-                       return try_cancel();
+                       try_cancel();
+                       return 0;
                }
                else
                {
@@ -445,7 +462,8 @@
                case BN_CLICKED:
                        if (wID == ID_BTN_CANCEL)
                        {
-                               return try_cancel();
+                               try_cancel();
+                               return 0;
                        }
                        else if (wID == ID_BTN_NEXT)
                        {
@@ -473,6 +491,21 @@
                
                return 0;
        }
+
+       case WM_CLOSE:
+       {
+               if(s_bInstallationSuccessfull)
+               {
+                       QuitEventLoop();
+                       PostQuitMessage(0);
+                       return 0;
+               }
+               else
+               {
+                       return ! try_cancel();
+               }
+       }
+
        case WM_DESTROY:
        {
                PostQuitMessage(0);
@@ -615,7 +648,7 @@
 
 #define GRAPHIC_WIDTH          200
 
-int ASK_Win32_Init(HINSTANCE hInstance)
+int ASK_Win32_Init(HINSTANCE hInstance, long iIconId)
 {
        int             iScreenWidth;
        int             iScreenHeight;
@@ -639,7 +672,7 @@
        g_wndclassMain.cbClsExtra = 0;
        g_wndclassMain.cbWndExtra = 0;
        g_wndclassMain.hInstance = hInstance;
-       g_wndclassMain.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+       g_wndclassMain.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(iIconId));
        g_wndclassMain.hCursor = LoadCursor(NULL, IDC_ARROW);
        g_wndclassMain.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
        g_wndclassMain.lpszMenuName = NULL;
@@ -707,7 +740,7 @@
 
        g_hwndMain = CreateWindow("AbiSetup_MainWindow",
                                                  "AbiSetup",
-                                                 WS_BORDER | WS_VISIBLE | 
WS_CLIPCHILDREN,
+                                                 WS_BORDER | WS_VISIBLE | 
+WS_CLIPCHILDREN | WS_SYSMENU,
                                                  (iScreenWidth - MAINWIN_WIDTH) / 2,
                                                  (iScreenHeight - MAINWIN_HEIGHT) /2,
                                                  MAINWIN_WIDTH,
@@ -963,6 +996,9 @@
        int             iHeight;
        RECT    r;
 
+       HCURSOR hcursorHourGlass;
+       HCURSOR hcursorPrev;
+
        if (pSet->bFixedPath)
        {
                // just do the fixed default path, but check for special names
@@ -979,6 +1015,9 @@
                return 1;
        }
 
+       hcursorHourGlass = LoadCursor(NULL, IDC_WAIT);
+       hcursorPrev = SetCursor(hcursorHourGlass);
+
        sprintf(buf, "Choose directory for \"%s\"", pSet->pszName);
        SetWindowText(g_hwndMain, buf);
 
@@ -1063,13 +1102,13 @@
        SendMessage(hwndStatic_Dir, WM_SETFONT, (WPARAM) g_hfontMain, 0);
        SendMessage(hwndStatic_Space, WM_SETFONT, (WPARAM) g_hfontMain, 0);
 
-       ASK_convertBytesToString(ASK_getFileSetTotalSizeInBytes(pSet), buf2);
+       ASK_convertBytesToString(ASK_getFileSetTotalSizeInBytesToCopy(pSet), buf2);
        
        sprintf(buf,
                        "\r\nPlease select a directory where '%s' will be 
installed.\r\n\r\nThe set '%s' contains %d files,\r\na total of %s.\r\n\r\n",
                        pSet->pszName,
                        pSet->pszName,
-                       pSet->iNumFilesInSet,
+                       ASK_getFileSetTotalFilesToCopy(pSet),
                        buf2);
        SetWindowText(hwndStatic_Top, buf);
 
@@ -1077,6 +1116,8 @@
        g_hwndStatic_BrowseDir = hwndStatic_Dir;
        g_hwndStatic_DiskSpace = hwndStatic_Space;
        
+       SetCursor(hcursorPrev);
+
        _updateDirAndSpace(g_pSet_BrowseDir->pszDefaultPath);
 
        result = DoEventLoop();
@@ -1111,8 +1152,8 @@
        {
                ASK_FileSet* pSet = ppSets[ndxSet];
 
-               iTotalBytes += ASK_getFileSetTotalSizeInBytes(pSet);
-               iTotalNumFiles += pSet->iNumFilesInSet;
+               iTotalBytes += ASK_getFileSetTotalSizeInBytesToCopy(pSet);
+               iTotalNumFiles += ASK_getFileSetTotalFilesToCopy(pSet);
        }
 
        ASK_convertBytesToString(iTotalBytes, buf2);
@@ -1157,7 +1198,8 @@
          etc.
        */
 
-       int     result;
+       int     bCopyCancelled = 0;
+       int             bErrorOccured = 0;
        int     ndxSet;
        int     ndxFile;
 
@@ -1183,8 +1225,8 @@
        {
                ASK_FileSet* pSet = ppSets[ndxSet];
 
-               iTotalBytes += ASK_getFileSetTotalSizeInBytes(pSet);
-               iTotalNumFiles += pSet->iNumFilesInSet;
+               iTotalBytes += ASK_getFileSetTotalSizeInBytesToCopy(pSet);
+               iTotalNumFiles += ASK_getFileSetTotalFilesToCopy(pSet);
        }
 
        GetClientRect(g_hwndPane, &r);
@@ -1264,7 +1306,7 @@
                        );
        SetWindowText(hwndStatic_Top, buf);
 
-       for (ndxSet=0; ndxSet<iNumSets; ndxSet++)
+       for (ndxSet=0; ndxSet<iNumSets && bCopyCancelled == 0; ndxSet++)
        {
                ASK_FileSet* pSet = ppSets[ndxSet];
 
@@ -1275,81 +1317,119 @@
                ASK_fixSlashes(pSet->szInstallPath);
                ASK_verifyDirExists(pSet->szInstallPath);
 
-               for (ndxFile=0; ndxFile<pSet->iNumFilesInSet; ndxFile++)
+               for (ndxFile=0; ndxFile<pSet->iNumFilesInSet && bCopyCancelled == 0; 
+ndxFile++)
                {
-                       ASK_DataFile* pFile = pSet->aFiles[ndxFile];
-                       
-                       iCurFile++;
-                       
-                       sprintf(buf, "Copying file %d of %d (%s)",
-                                       iCurFile,
-                                       iTotalNumFiles,
-                                       pFile->pszFileName
-                                       );
-                       SetWindowText(hwndStatic_CurFile, buf);
-
+                       if(pSet->aFiles[ndxFile]->bNoCopy == 0)
                        {
-                               int err;
-
-                               if (pFile->pszRelPath)
-                               {
-                                       char szRelDir[ASK_MAX_PATH + 1];
-
-                                       sprintf(szRelDir, "%s/%s", 
pSet->szInstallPath, pFile->pszRelPath);
-                                       ASK_fixSlashes(szRelDir);
-                                       ASK_verifyDirExists(szRelDir);
-                                       
-                                       sprintf(pFile->szInstallPath, "%s/%s/%s", 
pSet->szInstallPath, pFile->pszRelPath, pFile->pszFileName);
-                               }
-                               else
-                               {
-                                       sprintf(pFile->szInstallPath, "%s/%s", 
pSet->szInstallPath, pFile->pszFileName);
-                               }
-
-                               ASK_fixSlashes(pFile->szInstallPath);
+                               ASK_DataFile* pFile = pSet->aFiles[ndxFile];
                                
-                               // TODO check to see if the file and/or its directory 
exist.
+                               iCurFile++;
                                
-                               err = ASK_decompressAndWriteFile(pFile);
-                               if (err < 0)
+                               sprintf(buf, "Copying file %d of %d (%s)",
+                                               iCurFile,
+                                               iTotalNumFiles,
+                                               pFile->pszFileName
+                                               );
+                               SetWindowText(hwndStatic_CurFile, buf);
+
                                {
-                                       char szErr[ASK_MAX_PATH+1];
+                                       int err;
+                                       int bKeepExistingFile = 0;
 
-                                       sprintf(szErr, "Attempt to write file '%s' 
failed", pFile->szInstallPath);
-                                       
-                                       MessageBox(g_hwndMain, szErr, "Error", 
MB_ICONEXCLAMATION | MB_OK);
-                               }
+                                       if (pFile->pszRelPath)
+                                       {
+                                               char szRelDir[ASK_MAX_PATH + 1];
+
+                                               sprintf(szRelDir, "%s/%s", 
+pSet->szInstallPath, pFile->pszRelPath);
+                                               ASK_fixSlashes(szRelDir);
+                                               ASK_verifyDirExists(szRelDir);
+                                               
+                                               sprintf(pFile->szInstallPath, 
+"%s/%s/%s", pSet->szInstallPath, pFile->pszRelPath, pFile->pszFileName);
+                                       }
+                                       else
+                                       {
+                                               sprintf(pFile->szInstallPath, "%s/%s", 
+pSet->szInstallPath, pFile->pszFileName);
+                                       }
 
-                               if (
-                                       !(pFile->bNoCopy)
-                                       && !(pFile->bNoRemove))
-                               {
-                                       ASK_addToRemoveFile(pFile->szInstallPath);
+                                       ASK_fixSlashes(pFile->szInstallPath);
+                                       
+                                       if(ASK_isFileNewer(pFile->szInstallPath, 
+pFile->iModTime))
+                                       {
+                                               sprintf(buf, "A file on your system is 
+newer than the one supplied with this\r\n\
+installation. It is recommended to keep the existing file.\r\n\
+\r\n\
+File name:\t'%s'\r\n\
+\r\n\
+Do you want to keep this file?", 
+                                                       pFile->szInstallPath);
+                                               
+                                               if(IDYES == MessageBox(g_hwndMain, 
+buf, "Version conflict", 
+                                                       MB_ICONEXCLAMATION | MB_YESNO))
+                                               {
+                                                       bKeepExistingFile = 1;
+                                                       iCurBytes += 
+pFile->iOriginalLength;
+                                               }
+                                       }
+                                       
+                                       if(bKeepExistingFile == 0)
+                                       {
+                                               err = 
+ASK_decompressAndWriteFile(pFile);
+                                               if (err < 0)
+                                               {
+                                                       sprintf(buf, "Attempt to write 
+file '%s' failed", pFile->szInstallPath);
+                                                       
+                                                       bErrorOccured = 1;
+                                                       if(IDCANCEL == 
+MessageBox(g_hwndMain, buf, "Error", 
+                                                               MB_ICONEXCLAMATION | 
+MB_OKCANCEL))
+                                                       {
+                                                               if(bCopyCancelled = 
+try_cancel())
+                                                               {
+                                                                       break;
+                                                               }
+                                                       }
+                                               }
+                                               else
+                                               {
+                                                       iCurBytes += 
+pFile->iOriginalLength;
+                                               }
+                                       }
+                                                       
+                                       sprintf(buf, "Processed %d of %d bytes 
+(%d%%)",iCurBytes, iTotalBytes, (iCurBytes * 100 / iTotalBytes));
+                                       SetWindowText(hwndStatic_CurBytes, buf);
+
+                                       SendMessage(hwndProgress, PBM_SETPOS, (WPARAM) 
+(iCurBytes * 100 / iTotalBytes), (LPARAM) 0);
+
+                                       if (
+                                               !(pFile->bNoCopy)
+                                               && !(pFile->bNoRemove))
+                                       {
+                                               
+ASK_addToRemoveFile(pFile->szInstallPath);
+                                       }
                                }
                        }
-                       
-                       iCurBytes += pFile->iOriginalLength;
-                       
-                       sprintf(buf, "Copied %d of %d bytes (%d%%)",iCurBytes, 
iTotalBytes, (iCurBytes * 100 / iTotalBytes));
-                       SetWindowText(hwndStatic_CurBytes, buf);
-
-                       SendMessage(hwndProgress, PBM_SETPOS, (WPARAM) (iCurBytes * 
100 / iTotalBytes), (LPARAM) 0);
                }
        }
 
-       sprintf(buf,
-                       "\r\nCopying is now complete.  Click the 'Next' button below 
to continue."
-                       );
-       SetWindowText(hwndStatic_Top, buf);
-
-       SetWindowText(g_hwndMain, "Done Copying Files");
-       EnableWindow(g_hwndButtonCancel, FALSE);
+       if(bErrorOccured == 0)
+       {
+               sprintf(buf,
+                               "\r\nCopying is now complete.  Click the 'Next' button 
+below to continue."
+                               );
+               SetWindowText(hwndStatic_Top, buf);
 
-       ShowWindow(hwndProgress, SW_HIDE);
-       
-       result = DoEventLoop();
+               SetWindowText(g_hwndMain, "Done Copying Files");
+               EnableWindow(g_hwndButtonCancel, FALSE);
 
-       EnableWindow(g_hwndButtonCancel, TRUE);
+               ShowWindow(hwndProgress, SW_HIDE);
+               
+               s_bInstallationSuccessfull = 1;
+               DoEventLoop();
+       }
+       else
+       {
+               EnableWindow(g_hwndButtonNext, FALSE);
+               EnableWindow(g_hwndButtonCancel, FALSE);
+       }
        
        DestroyWindow(hwndStatic_Top);
        DestroyWindow(hwndStatic_CurSet);
@@ -1357,7 +1437,7 @@
        DestroyWindow(hwndStatic_CurBytes);
        DestroyWindow(hwndProgress);
        
-       return result;
+       return bErrorOccured;
 }
 
 int ASK_DoScreen_license(char* pszText)
@@ -1367,7 +1447,7 @@
        HWND    hwndStatic;
        RECT    r;
 
-       SetWindowText(g_hwndMain, "You must accept this license in order to install 
the software.");
+       SetWindowText(g_hwndMain, "GNU General Public License.");
        
        GetClientRect(g_hwndPane, &r);
        
@@ -1398,12 +1478,9 @@
        SendMessage(hwndStatic, WM_SETFONT, (WPARAM) g_hfontMain, 0);
        SendMessage(hwndText, WM_SETFONT, (WPARAM) g_hfontMain, 0);
        
-       SetWindowText(hwndStatic, "Do you accept the terms of this license?");
+       SetWindowText(hwndStatic, "Theses are the terms of the license");
        
        SetWindowText(hwndText, pszText);
-
-       SetWindowText(g_hwndButtonNext, "Yes");
-       SetWindowText(g_hwndButtonCancel, "No");
 
        result = DoEventLoop();
 
Index: abi/src/ask/lib/xp/ask.h
===================================================================
RCS file: /cvsroot/abi/src/ask/lib/xp/ask.h,v
retrieving revision 1.2
diff -u -r1.2 ask.h
--- abi/src/ask/lib/xp/ask.h    1999/05/15 02:37:08     1.2
+++ abi/src/ask/lib/xp/ask.h    2000/09/26 00:40:39
@@ -79,12 +79,17 @@
 int ASK_decompressAndWriteFile(ASK_DataFile* pDataFile);
 
 long ASK_getFileSetTotalSizeInBytes(ASK_FileSet* pFileSet);
+long ASK_getFileSetTotalSizeInBytesToCopy(ASK_FileSet* pFileSet);
+long ASK_getFileSetTotalFilesToCopy(ASK_FileSet* pFileSet);
 void ASK_convertBytesToString(long n, char* pszStrings);
+int ASK_isFileNewer(char* pszFileName, unsigned int iModTime);
 
 /*
   Functions implemented in platform code
 */
 
+void ASK_createRemoveFile(char* pszName);
+void ASK_registerForRemove(void);
 unsigned int ASK_getFileModTime(const char* pszFileName);
 void ASK_setFileModTime(const char* pszFileName, unsigned int iModTime);
 unsigned int ASK_getFileAttributes(const char* pszFileName);
@@ -108,6 +113,9 @@
 int ASK_YesNo(char* pszTitle, char* pszMessage);
 
 void ASK_PopulateStartMenu(char* pszGroupName, int iNumSets, ASK_FileSet** ppSets);
+
+void ASK_PlatformSpecificInstructions(FILE* fpOut);
+int lib_main(int argc, char** argv);
 
 #endif /* ASK_H */
 
Index: abi/src/ask/lib/xp/ask_lib.c
===================================================================
RCS file: /cvsroot/abi/src/ask/lib/xp/ask_lib.c,v
retrieving revision 1.3
diff -u -r1.3 ask_lib.c
--- abi/src/ask/lib/xp/ask_lib.c        1999/05/14 01:29:22     1.3
+++ abi/src/ask/lib/xp/ask_lib.c        2000/09/26 00:40:43
@@ -225,6 +225,38 @@
        return len;
 }
 
+long ASK_getFileSetTotalSizeInBytesToCopy(ASK_FileSet* pFileSet)
+{
+       long len = 0;
+       int i;
+
+       for (i=0; i<pFileSet->iNumFilesInSet; i++)
+       {
+               if(pFileSet->aFiles[i]->bNoCopy == 0)
+               {
+                       len += pFileSet->aFiles[i]->iOriginalLength;
+               }
+       }
+
+       return len;
+}
+
+long ASK_getFileSetTotalFilesToCopy(ASK_FileSet* pFileSet)
+{
+       long count = 0;
+       int i;
+
+       for (i=0; i<pFileSet->iNumFilesInSet; i++)
+       {
+               if(pFileSet->aFiles[i]->bNoCopy == 0)
+               {
+                       count++;
+               }
+       }
+
+       return count;
+}
+
 void ASK_convertBytesToString(long n, char* pszStrings)
 {
        if (n < 1024)
@@ -244,3 +276,18 @@
        sprintf(pszStrings, "%4.1f MB", n / (1024 * 1024.0));
 }
 
+int ASK_isFileNewer(char* pszFileName, unsigned int iModTime)
+{
+       if(ASK_fileExists(pszFileName))
+       {
+               if(ASK_getFileModTime(pszFileName) <= iModTime)
+               {
+                       return 0;
+               }
+               else
+               {
+                       return 1;
+               }
+       }
+       return 0;
+}
Index: abi/src/pkg/win/setup/setup.c
===================================================================
RCS file: /cvsroot/abi/src/pkg/win/setup/setup.c,v
retrieving revision 1.1
diff -u -r1.1 setup.c
--- abi/src/pkg/win/setup/setup.c       1999/05/11 21:47:44     1.1
+++ abi/src/pkg/win/setup/setup.c       2000/09/26 00:41:17
@@ -21,14 +21,16 @@
 
 #include "ask.h"
 
-extern int ASK_Win32_Init(HINSTANCE hInstance);
+#include "setup.rc2"
 
+extern int ASK_Win32_Init(HINSTANCE hInstance, long iIconId);
+
 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                   PSTR szCmdLine, int iCmdShow)
 {
        int result;
        
-       if (0 != ASK_Win32_Init(hInstance))
+       if (0 != ASK_Win32_Init(hInstance, AP_ICON_SETUP))
        {
                return -1;
        }
@@ -99,7 +101,8 @@
 
                if (err != 0)
                {
-                       // TODO inform the user of the error
+                       MessageBox(NULL, "Installation is not complete", "AbiSetup", 
+MB_OK);
+                       goto all_done;
                }
        }
 
Index: abi/src/pkg/win/setup/setup.rc
===================================================================
RCS file: /cvsroot/abi/src/pkg/win/setup/setup.rc,v
retrieving revision 1.1
diff -u -r1.1 setup.rc
--- abi/src/pkg/win/setup/setup.rc      1999/05/17 20:41:10     1.1
+++ abi/src/pkg/win/setup/setup.rc      2000/09/26 00:41:17
@@ -19,16 +19,4 @@
 
 #include <windows.h>
 
-#ifdef RC_INVOKED
-
-#ifdef ABISOURCE_LICENSED_TRADEMARKS
-
-10000           ICON    DISCARDABLE     "setup_tm.ico"
-
-#else
-
-10000           ICON    DISCARDABLE     "setup.ico"
-
-#endif
-
-#endif
+#include <setup.rc2>

ask_gendata_data_Win32.c

setup.rc2

Reply via email to