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