home *** CD-ROM | disk | FTP | other *** search
- *** os2zip.c.orig Wed Aug 26 20:08:34 1992
- --- os2zip.c Fri Nov 20 09:27:18 1992
- ***************
- *** 35,40 ****
- --- 35,44 ----
- #include "os2zip.h"
-
-
- + #ifndef max
- + #define max(a, b) ((a) < (b) ? (b) : (a))
- + #endif
- +
- #define EAID 0x0009
-
-
- ***************
- *** 606,611 ****
- --- 610,616 ----
- PEAHEADER pEAblock;
- ULONG ulAttributes, ulMemoryBlock;
- ULONG nLength;
- + ULONG nBlock;
- char szName[CCHMAXPATH];
-
- *size = *csize = 0;
- ***************
- *** 618,634 ****
- if ( szName[nLength - 1] == '/' )
- szName[nLength - 1] = 0;
-
- ! if ( DosQueryPathInfo(szName, FIL_QUERYEASIZE, (PBYTE) &fs, sizeof(fs))
- ! || fs.cbList <= 2 * sizeof(ULONG)
- ! || (pDENA = alloc((size_t) fs.cbList)) == NULL )
- return;
-
- ulAttributes = -1;
-
- ! if ( DosEnumAttribute(ENUMEA_REFTYPE_PATH, szName, 1, pDENA, fs.cbList,
- &ulAttributes, ENUMEA_LEVEL_NO_VALUE)
- || ulAttributes == 0
- ! || (pGEAlist = alloc((size_t) fs.cbList)) == NULL )
- {
- #ifdef __FREE__
- free(pDENA);
- --- 623,640 ----
- if ( szName[nLength - 1] == '/' )
- szName[nLength - 1] = 0;
-
- ! if ( DosQueryPathInfo(szName, FIL_QUERYEASIZE, (PBYTE) &fs, sizeof(fs)) )
- ! return;
- ! nBlock = max(fs.cbList, 65535);
- ! if ( (pDENA = alloc((size_t) nBlock)) == NULL )
- return;
-
- ulAttributes = -1;
-
- ! if ( DosEnumAttribute(ENUMEA_REFTYPE_PATH, szName, 1, pDENA, nBlock,
- &ulAttributes, ENUMEA_LEVEL_NO_VALUE)
- || ulAttributes == 0
- ! || (pGEAlist = alloc((size_t) nBlock)) == NULL )
- {
- #ifdef __FREE__
- free(pDENA);
- ***************
- *** 668,674 ****
- pGEAlist -> cbList = (PCH) pGEA - (PCH) pGEAlist;
-
- pFEAlist = (PVOID) pDENA; /* reuse buffer */
- ! pFEAlist -> cbList = fs.cbList;
-
- eaop.fpGEA2List = pGEAlist;
- eaop.fpFEA2List = pFEAlist;
- --- 674,680 ----
- pGEAlist -> cbList = (PCH) pGEA - (PCH) pGEAlist;
-
- pFEAlist = (PVOID) pDENA; /* reuse buffer */
- ! pFEAlist -> cbList = nBlock;
-
- eaop.fpGEA2List = pGEAlist;
- eaop.fpFEA2List = pFEAlist;
-