From 2d5b72422b84dd57d8f0df93a76e8a6187752365 Mon Sep 17 00:00:00 2001 From: Luiz Rafael Culik Date: Wed, 2 Aug 2000 00:29:34 +0000 Subject: [PATCH] See changelog 2000-08-01 21:20 GMT -3 --- harbour/contrib/hbzlib/zipfile.c | 13 ++++++++++++- harbour/contrib/hbzlib/zipfile2.c | 29 +++++++++++++++++++++++------ harbour/contrib/hbzlib/zlibapi1.c | 4 ++-- harbour/utils/hbdoc/genng.prg | 10 ++++++---- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/harbour/contrib/hbzlib/zipfile.c b/harbour/contrib/hbzlib/zipfile.c index 36e11c3faf..4f4f0cbf04 100644 --- a/harbour/contrib/hbzlib/zipfile.c +++ b/harbour/contrib/hbzlib/zipfile.c @@ -39,11 +39,12 @@ HB_FUNC(HB_ZIPFILE) if( ISCHAR(1) && ISCHAR(2)) { int iCompLevel; BOOL iOverWrite; + BOOL lExist; char szFile[_POSIX_PATH_MAX]; strcpy(szFile,hb_parc(1)); + lExist =hb_fsFile(hb___CheckFile(szFile)); if( ISNUM(3)) { iCompLevel=hb_parni(3); - } else { iCompLevel= (-1); @@ -54,8 +55,18 @@ HB_FUNC(HB_ZIPFILE) } else { iOverWrite= 1; + } + if (lExist){ + PHB_ITEM pArray=hb___GetFilesNamesFromZip(hb___CheckFile(szFile),0); + PHB_ITEM pItem = hb_itemPutC(NULL,hb_parc(2)); + hb_arrayAdd(pArray,pItem); + hb_itemRelease(pItem); + hb_retl(hb___CompressMultipleFile(hb___CheckFile(szFile),pArray,iCompLevel,hb_param( 4,HB_IT_BLOCK),iOverWrite)); + hb_itemRelease(pArray); } + else { hb_retl(hb___CompressOneFile(hb___CheckFile(szFile),hb_parc(2),iCompLevel,hb_param( 4, HB_IT_BLOCK) ,iOverWrite)); + } } diff --git a/harbour/contrib/hbzlib/zipfile2.c b/harbour/contrib/hbzlib/zipfile2.c index 3eded4f15b..0422e6d2f9 100644 --- a/harbour/contrib/hbzlib/zipfile2.c +++ b/harbour/contrib/hbzlib/zipfile2.c @@ -425,8 +425,8 @@ int hb___GetNumbersofFilestoUnzip(char *szFile) PHB_ITEM hb___GetFilesNamesFromZip(char *szFile,BOOL iMode) { const char *szZipFileName=NULL; - char szFilename_Try[512]; - char szFileNameinZip[256]; + char szFilename_Try[_POSIX_PATH_MAX]; + char szFileNameinZip[_POSIX_PATH_MAX]; int iNumbersOfFiles; PHB_ITEM pItem=NULL; @@ -473,6 +473,7 @@ PHB_ITEM hb___GetFilesNamesFromZip(char *szFile,BOOL iMode) char szTime[8]; char *szMethod; char szCRC[8]; + int iRatio=0; int iLen; int iCount=0; int iiCount=0; @@ -480,6 +481,7 @@ PHB_ITEM hb___GetFilesNamesFromZip(char *szFile,BOOL iMode) pItem=hb_itemPutC(NULL,szFileNameinZip); hb_itemArrayPut(pTempArray,filePos,pItem); hb_itemRelease(pItem); + if (file_info.uncompressed_size>0) { pItem=hb_itemPutNL(NULL,file_info.uncompressed_size); @@ -488,15 +490,30 @@ PHB_ITEM hb___GetFilesNamesFromZip(char *szFile,BOOL iMode) pItem=hb_itemPutNL(NULL,file_info.compressed_size); hb_itemArrayPut(pTempArray,Size,pItem); hb_itemRelease(pItem); - - pItem=hb_itemPutNL(NULL,100-((file_info.compressed_size*100)/file_info.uncompressed_size)); + iRatio=100-((file_info.compressed_size*100)/file_info.uncompressed_size); + if (iRatio <0){ + iRatio=0; + } + pItem=hb_itemPutNL(NULL,iRatio); hb_itemArrayPut(pTempArray,Ratio,pItem); hb_itemRelease(pItem); - } + } + else { + pItem=hb_itemPutNL(NULL,file_info.uncompressed_size); + hb_itemArrayPut(pTempArray,Lenght,pItem); + hb_itemRelease(pItem); + pItem=hb_itemPutNL(NULL,file_info.compressed_size); + hb_itemArrayPut(pTempArray,Size,pItem); + hb_itemRelease(pItem); + iRatio=0; + pItem=hb_itemPutNL(NULL,iRatio); + hb_itemArrayPut(pTempArray,Ratio,pItem); + hb_itemRelease(pItem); + } + if (file_info.compression_method==0) { szMethod="Stored"; } - if (file_info.compression_method==Z_DEFLATED) { uInt iLevel=(uInt)((file_info.flag & 0x6)/2); if (iLevel==0) { diff --git a/harbour/contrib/hbzlib/zlibapi1.c b/harbour/contrib/hbzlib/zlibapi1.c index 6d7c916dc0..e0062f6239 100644 --- a/harbour/contrib/hbzlib/zlibapi1.c +++ b/harbour/contrib/hbzlib/zlibapi1.c @@ -161,7 +161,7 @@ int hb___CompressOneFile(char *szFile,char *szFiletoCompress,int iCompLevel,PHB_ if (iZipOk==1) { - szZipFile = zipOpen(szNewFile,0); + szZipFile = zipOpen(szNewFile,1); if (szZipFile == NULL) { err= ZIP_ERRNO; } @@ -197,7 +197,7 @@ int hb___CompressOneFile(char *szFile,char *szFiletoCompress,int iCompLevel,PHB_ err=ZIP_ERRNO; } - + hb_fsSetDevRaw(nFileHandle); } if (err == ZIP_OK) diff --git a/harbour/utils/hbdoc/genng.prg b/harbour/utils/hbdoc/genng.prg index e1b542690c..622394787f 100644 --- a/harbour/utils/hbdoc/genng.prg +++ b/harbour/utils/hbdoc/genng.prg @@ -700,7 +700,7 @@ FUNCTION ProcNgiInput() nPos := AT( "()", cName ) IF nPos > 0 AADD( aFuncs, cName ) - IF LEFT( cname, 1 ) < "N" + IF LEFT( cname, 1 ) < "N" .and. LEFT( cname, 1 ) < "n" AADD( afuncsam, aFiles[ x, 1 ] ) ELSE AADD( afuncsn_, aFiles[ x, 1 ] ) @@ -817,8 +817,10 @@ FUNCTION ProcNgiInput() .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "OVERVIEW" ; .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "COMPILEROPTIONS" ; .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "GNULICENSE" ; - .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "GNULICENSEPART2" - + .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "GNULICENSEPART2"; + .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "STRONGTYPING"; + .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "THEGARBAGECOLLECTOR" ; + .AND. UPPER( LEFT( cFile, AT( '.', cFile ) - 1 ) ) <> "THEIDLESTATES" @ INFILELINE, 33 SAY PAD( cfile, 47 ) FT_FUSE( "ngi\" + acfiles[ x ] ) @@ -886,7 +888,7 @@ FUNCTION procngialso2( cSeealso ) cTemp := SUBSTR( xAlso[ hPos ], 2, 1 ) - IF cTemp >= "A" .AND. cTemp < "_" + IF cTemp >= "A" .AND. cTemp < "_" .or. cTemp >= "a" .and. cTemp <= "z" nPos := AT( "()", xAlso[ hPos ] ) IF nPos > 0 AADD( aAlso, "funcam.ngo:" + ALLTRIM( xAlso[ hPos ] ) + ' ' )