diff options
author | Xavier Roche <xroche@users.noreply.github.com> | 2012-03-19 12:36:11 +0000 |
---|---|---|
committer | Xavier Roche <xroche@users.noreply.github.com> | 2012-03-19 12:36:11 +0000 |
commit | ad5b7acc19290ff91e0f42a0de448a26760fcf99 (patch) | |
tree | 2d1867758835fd0c4e443ff3cc7e5c774af85874 /src/htszlib.c |
Imported httrack 3.20.2
Diffstat (limited to 'src/htszlib.c')
-rw-r--r-- | src/htszlib.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/htszlib.c b/src/htszlib.c new file mode 100644 index 0000000..d138a1c --- /dev/null +++ b/src/htszlib.c @@ -0,0 +1,84 @@ +/* ------------------------------------------------------------ */ +/* +HTTrack Website Copier, Offline Browser for Windows and Unix +Copyright (C) Xavier Roche and other contributors + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +Important notes: + +- We hereby ask people using this source NOT to use it in purpose of grabbing +emails addresses, or collecting any other private information on persons. +This would disgrace our work, and spoil the many hours we spent on it. + + +Please visit our Website: http://www.httrack.com +*/ + + +/* ------------------------------------------------------------ */ +/* File: Unpacking subroutines using Jean-loup Gailly's Zlib */ +/* for http compressed data */ +/* Author: Xavier Roche */ +/* ------------------------------------------------------------ */ + + +/* specific definitions */ +#include <stdio.h> +#include <stdlib.h> +#include "htsbase.h" +#include "htscore.h" + +#if HTS_USEZLIB + +/* zlib */ +#include <zlib.h> +#include "htszlib.h" + +/* + Unpack file into a new file + Return value: size of the new file, or -1 if an error occured +*/ +int hts_zunpack(char* filename,char* newfile) { + if (filename && newfile) { + if (filename[0] && newfile[0]) { + gzFile gz = gzopen (filename, "rb"); + if (gz) { + FILE* fpout=fopen(fconv(newfile),"wb"); + int size=0; + if (fpout) { + int nr; + do { + char buff[1024]; + nr=gzread (gz, buff, 1024); + if (nr>0) { + size+=nr; + if ((int)fwrite(buff,1,nr,fpout) != nr) + nr=size=-1; + } + } while(nr>0); + fclose(fpout); + } else + size=-1; + gzclose(gz); + return size; + } + } + } + return -1; +} + +#endif |