home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / zip19.zip / os2zip.dif next >
Text File  |  1992-11-20  |  2KB  |  81 lines

  1. *** os2zip.c.orig    Wed Aug 26 20:08:34 1992
  2. --- os2zip.c    Fri Nov 20 09:27:18 1992
  3. ***************
  4. *** 35,40 ****
  5. --- 35,44 ----
  6.   #include "os2zip.h"
  7.   
  8.   
  9. + #ifndef max
  10. + #define max(a, b) ((a) < (b) ? (b) : (a))
  11. + #endif
  12.   #define EAID     0x0009
  13.   
  14.   
  15. ***************
  16. *** 606,611 ****
  17. --- 610,616 ----
  18.     PEAHEADER pEAblock;
  19.     ULONG ulAttributes, ulMemoryBlock;
  20.     ULONG nLength;
  21. +   ULONG nBlock;
  22.     char szName[CCHMAXPATH];
  23.   
  24.     *size = *csize = 0;
  25. ***************
  26. *** 618,634 ****
  27.     if ( szName[nLength - 1] == '/' )
  28.       szName[nLength - 1] = 0;
  29.   
  30. !   if ( DosQueryPathInfo(szName, FIL_QUERYEASIZE, (PBYTE) &fs, sizeof(fs))
  31. !     || fs.cbList <= 2 * sizeof(ULONG)
  32. !     || (pDENA = alloc((size_t) fs.cbList)) == NULL )
  33.       return;
  34.   
  35.     ulAttributes = -1;
  36.   
  37. !   if ( DosEnumAttribute(ENUMEA_REFTYPE_PATH, szName, 1, pDENA, fs.cbList,
  38.                           &ulAttributes, ENUMEA_LEVEL_NO_VALUE)
  39.       || ulAttributes == 0
  40. !     || (pGEAlist = alloc((size_t) fs.cbList)) == NULL )
  41.     {
  42.   #ifdef __FREE__
  43.       free(pDENA);
  44. --- 623,640 ----
  45.     if ( szName[nLength - 1] == '/' )
  46.       szName[nLength - 1] = 0;
  47.   
  48. !   if ( DosQueryPathInfo(szName, FIL_QUERYEASIZE, (PBYTE) &fs, sizeof(fs)) )
  49. !     return;
  50. !   nBlock = max(fs.cbList, 65535);
  51. !   if ( (pDENA = alloc((size_t) nBlock)) == NULL )
  52.       return;
  53.   
  54.     ulAttributes = -1;
  55.   
  56. !   if ( DosEnumAttribute(ENUMEA_REFTYPE_PATH, szName, 1, pDENA, nBlock,
  57.                           &ulAttributes, ENUMEA_LEVEL_NO_VALUE)
  58.       || ulAttributes == 0
  59. !     || (pGEAlist = alloc((size_t) nBlock)) == NULL )
  60.     {
  61.   #ifdef __FREE__
  62.       free(pDENA);
  63. ***************
  64. *** 668,674 ****
  65.     pGEAlist -> cbList = (PCH) pGEA - (PCH) pGEAlist;
  66.   
  67.     pFEAlist = (PVOID) pDENA;  /* reuse buffer */
  68. !   pFEAlist -> cbList = fs.cbList;
  69.   
  70.     eaop.fpGEA2List = pGEAlist;
  71.     eaop.fpFEA2List = pFEAlist;
  72. --- 674,680 ----
  73.     pGEAlist -> cbList = (PCH) pGEA - (PCH) pGEAlist;
  74.   
  75.     pFEAlist = (PVOID) pDENA;  /* reuse buffer */
  76. !   pFEAlist -> cbList = nBlock;
  77.   
  78.     eaop.fpGEA2List = pGEAlist;
  79.     eaop.fpFEA2List = pFEAlist;
  80.