⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zlib.diff

📁 qtopia-phone-2.2.0下png工具库源代码实现。
💻 DIFF
📖 第 1 页 / 共 5 页
字号:
      }      s->stream.avail_in--;      return *(s->stream.next_in)++;--- 257,273 ----  local int get_byte(s)      gz_stream *s;  {!     if (s->z_eof) return -1;      if (s->stream.avail_in == 0) {!         SetLastError(NO_ERROR);!         if (!ReadFile(s->file, s->inbuf, Z_BUFSIZE, &s->stream.avail_in, NULL)) {!             s->z_err = Z_ERRNO;!         }!         if (s->stream.avail_in == 0) {!             s->z_eof = 1;!             return -1;!         }!         s->stream.next_in = s->inbuf;      }      s->stream.avail_in--;      return *(s->stream.next_in)++;****************** 270,291 ****        /* Check the gzip magic header */      for (len = 0; len < 2; len++) {! 	c = get_byte(s);! 	if (c != gz_magic[len]) {! 	    if (len != 0) s->stream.avail_in++, s->stream.next_in--;! 	    if (c != EOF) {! 		s->stream.avail_in++, s->stream.next_in--;! 		s->transparent = 1;! 	    }! 	    s->z_err = s->stream.avail_in != 0 ? Z_OK : Z_STREAM_END;! 	    return;! 	}      }      method = get_byte(s);      flags = get_byte(s);      if (method != Z_DEFLATED || (flags & RESERVED) != 0) {! 	s->z_err = Z_DATA_ERROR;! 	return;      }        /* Discard time, xflags and OS code: */--- 292,313 ----        /* Check the gzip magic header */      for (len = 0; len < 2; len++) {!         c = get_byte(s);!         if (c != gz_magic[len]) {!             if (len != 0) s->stream.avail_in++, s->stream.next_in--;!             if (c != -1) {!                 s->stream.avail_in++, s->stream.next_in--;!                 s->transparent = 1;!             }!             s->z_err = s->stream.avail_in != 0 ? Z_OK : Z_STREAM_END;!             return;!         }      }      method = get_byte(s);      flags = get_byte(s);      if (method != Z_DEFLATED || (flags & RESERVED) != 0) {!         s->z_err = Z_DATA_ERROR;!         return;      }        /* Discard time, xflags and OS code: */****************** 292,310 ****      for (len = 0; len < 6; len++) (void)get_byte(s);        if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */! 	len  =  (uInt)get_byte(s);! 	len += ((uInt)get_byte(s))<<8;! 	/* len is garbage if EOF but the loop below will quit anyway */! 	while (len-- != 0 && get_byte(s) != EOF) ;      }      if ((flags & ORIG_NAME) != 0) { /* skip the original file name */! 	while ((c = get_byte(s)) != 0 && c != EOF) ;      }      if ((flags & COMMENT) != 0) {   /* skip the .gz file comment */! 	while ((c = get_byte(s)) != 0 && c != EOF) ;      }      if ((flags & HEAD_CRC) != 0) {  /* skip the header crc */! 	for (len = 0; len < 2; len++) (void)get_byte(s);      }      s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;  }--- 314,332 ----      for (len = 0; len < 6; len++) (void)get_byte(s);        if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */!         len  =  (uInt)get_byte(s);!         len += ((uInt)get_byte(s))<<8;!         /* len is garbage if EOF but the loop below will quit anyway */!         while (len-- != 0 && get_byte(s) != -1) ;      }      if ((flags & ORIG_NAME) != 0) { /* skip the original file name */!         while ((c = get_byte(s)) != 0 && c != -1) ;      }      if ((flags & COMMENT) != 0) {   /* skip the .gz file comment */!         while ((c = get_byte(s)) != 0 && c != -1) ;      }      if ((flags & HEAD_CRC) != 0) {  /* skip the header crc */!         for (len = 0; len < 2; len++) (void)get_byte(s);      }      s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;  }****************** 323,343 ****      TRYFREE(s->msg);        if (s->stream.state != NULL) {! 	if (s->mode == 'w') {  #ifdef NO_DEFLATE! 	    err = Z_STREAM_ERROR;  #else! 	    err = deflateEnd(&(s->stream));  #endif! 	} else if (s->mode == 'r') {! 	    err = inflateEnd(&(s->stream));! 	}!     }!     if (s->file != NULL && fclose(s->file)) {! #ifdef ESPIPE! 	if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */! #endif! 	    err = Z_ERRNO;      }      if (s->z_err < 0) err = s->z_err;  --- 345,362 ----      TRYFREE(s->msg);        if (s->stream.state != NULL) {!         if (s->mode == 'w') {  #ifdef NO_DEFLATE!             err = Z_STREAM_ERROR;  #else!             err = deflateEnd(&(s->stream));  #endif!         } else if (s->mode == 'r') {!             err = inflateEnd(&(s->stream));!         }!     }!     if (s->file != NULL && !CloseHandle(s->file)) {!         err = Z_ERRNO;      }      if (s->z_err < 0) err = s->z_err;  ****************** 360,365 ****--- 379,385 ----      gz_stream *s = (gz_stream*)file;      Bytef *start = (Bytef*)buf; /* starting point for crc computation */      Byte  *next_out; /* == stream.next_out but not forced far (for MSDOS) */+     DWORD size;        if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR;  ****************** 372,440 ****        while (s->stream.avail_out != 0) {  ! 	if (s->transparent) {! 	    /* Copy first the lookahead bytes: */! 	    uInt n = s->stream.avail_in;! 	    if (n > s->stream.avail_out) n = s->stream.avail_out;! 	    if (n > 0) {! 		zmemcpy(s->stream.next_out, s->stream.next_in, n);! 		next_out += n;! 		s->stream.next_out = next_out;! 		s->stream.next_in   += n;! 		s->stream.avail_out -= n;! 		s->stream.avail_in  -= n;! 	    }! 	    if (s->stream.avail_out > 0) {! 		s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out,! 					     s->file);! 	    }! 	    len -= s->stream.avail_out;! 	    s->stream.total_in  += (uLong)len;! 	    s->stream.total_out += (uLong)len;              if (len == 0) s->z_eof = 1;! 	    return (int)len;! 	}          if (s->stream.avail_in == 0 && !s->z_eof) {  !             errno = 0;!             s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file);              if (s->stream.avail_in == 0) {                  s->z_eof = 1;- 		if (ferror(s->file)) {- 		    s->z_err = Z_ERRNO;- 		    break;- 		}              }              s->stream.next_in = s->inbuf;          }          s->z_err = inflate(&(s->stream), Z_NO_FLUSH);  ! 	if (s->z_err == Z_STREAM_END) {! 	    /* Check CRC and original size */! 	    s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));! 	    start = s->stream.next_out;! ! 	    if (getLong(s) != s->crc) {! 		s->z_err = Z_DATA_ERROR;! 	    } else {! 	        (void)getLong(s);                  /* The uncompressed length returned by above getlong() may                   * be different from s->stream.total_out) in case of! 		 * concatenated .gz files. Check for such files:! 		 */! 		check_header(s);! 		if (s->z_err == Z_OK) {! 		    uLong total_in = s->stream.total_in;! 		    uLong total_out = s->stream.total_out;! ! 		    inflateReset(&(s->stream));! 		    s->stream.total_in = total_in;! 		    s->stream.total_out = total_out;! 		    s->crc = crc32(0L, Z_NULL, 0);! 		}! 	    }! 	}! 	if (s->z_err != Z_OK || s->z_eof) break;      }      s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));  --- 392,461 ----        while (s->stream.avail_out != 0) {  !         if (s->transparent) {!             /* Copy first the lookahead bytes: */!             uInt n = s->stream.avail_in;!             if (n > s->stream.avail_out) n = s->stream.avail_out;!             if (n > 0) {!                 zmemcpy(s->stream.next_out, s->stream.next_in, n);!                 next_out += n;!                 s->stream.next_out = next_out;!                 s->stream.next_in   += n;!                 s->stream.avail_out -= n;!                 s->stream.avail_in  -= n;!             }!             if (s->stream.avail_out > 0) {!                 if (ReadFile(s->file, next_out, s->stream.avail_out, &size, NULL)) {!                     s->stream.avail_out -= size;!                 }!             }!             len -= s->stream.avail_out;!             s->stream.total_in  += (uLong)len;!             s->stream.total_out += (uLong)len;              if (len == 0) s->z_eof = 1;!             return (int)len;!         }          if (s->stream.avail_in == 0 && !s->z_eof) {  !             SetLastError(NO_ERROR);!             if (!ReadFile(s->file, s->inbuf, Z_BUFSIZE, &s->stream.avail_in, NULL)) {!                 s->z_eof = 1;!                 s->z_err = Z_ERRNO;!                 break;!             }              if (s->stream.avail_in == 0) {                  s->z_eof = 1;              }              s->stream.next_in = s->inbuf;          }          s->z_err = inflate(&(s->stream), Z_NO_FLUSH);  !         if (s->z_err == Z_STREAM_END) {!             /* Check CRC and original size */!             s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));!             start = s->stream.next_out;! !             if (getLong(s) != s->crc) {!                 s->z_err = Z_DATA_ERROR;!             } else {!                 (void)getLong(s);                  /* The uncompressed length returned by above getlong() may                   * be different from s->stream.total_out) in case of!                  * concatenated .gz files. Check for such files:!                  */!                 check_header(s);!                 if (s->z_err == Z_OK) {!                     uLong total_in = s->stream.total_in;!                     uLong total_out = s->stream.total_out;! !                     inflateReset(&(s->stream));!                     s->stream.total_in = total_in;!                     s->stream.total_out = total_out;!                     s->crc = crc32(0L, Z_NULL, 0);!                 }!             }!         }!         if (s->z_err != Z_OK || s->z_eof) break;      }      s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));  ****************** 489,494 ****--- 510,516 ----      unsigned len;  {      gz_stream *s = (gz_stream*)file;+     DWORD size;        if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;  ****************** 500,506 ****          if (s->stream.avail_out == 0) {                s->stream.next_out = s->outbuf;!             if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {                  s->z_err = Z_ERRNO;                  break;              }--- 522,528 ----          if (s->stream.avail_out == 0) {                s->stream.next_out = s->outbuf;!             if (!WriteFile(s->file, s->outbuf, Z_BUFSIZE, &size, NULL) || size != Z_BUFSIZE) {                  s->z_err = Z_ERRNO;                  break;              }****************** 527,540 ****      char buf[Z_PRINTF_BUFSIZE];      va_list va;      int len;        va_start(va, format);! #ifdef HAS_vsnprintf!     (void)vsnprintf(buf, sizeof(buf), format, va);! #else!     (void)vsprintf(buf, format, va);! #endif      va_end(va);      len = strlen(buf); /* some *sprintf don't return the nb of bytes written */      if (len <= 0) return 0;  --- 549,574 ----      char buf[Z_PRINTF_BUFSIZE];      va_list va;      int len;+     TCHAR form[Z_PRINTF_BUFSIZE];+     TCHAR tbuf[Z_PRINTF_BUFSIZE];+     int n;        va_start(va, format);!     MultiByteToWideChar(CP_ACP, 0, format, -1, form, Z_PRINTF_BUFSIZE);!     len = lstrlen(form);!     for ( n = 0; n < len; n++ ) {!         if ( TEXT('%') == form[n] ) {!             n++;!             if ( TEXT('c') == form[n] ) {!                 form[n] = TEXT('C');!             } else if ( TEXT('s') == form[n] ) {!                 form[n] = TEXT('S');!             }!         }!     }!     (void)vswprintf(tbuf, form, va);      va_end(va);+     WideCharToMultiByte(CP_ACP, 0, tbuf, -1, buf, Z_PRINTF_BUFSIZE, NULL, NULL);      len = strlen(buf); /* some *sprintf don't return the nb of bytes written */      if (len <= 0) return 0;  ****************** 543,553 ****  #else /* not ANSI C */    int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,! 	               a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)      gzFile file;      const char *format;      int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,! 	a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;  {      char buf[Z_PRINTF_BUFSIZE];      int len;--- 577,587 ----  #else /* not ANSI C */    int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,!                        a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)      gzFile file;      const char *format;      int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,!         a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;  {      char buf[Z_PRINTF_BUFSIZE];      int len;****************** 554,563 ****    #ifdef HAS_snprintf      snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,! 	     a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);  #else      sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,! 	    a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);  #endif      len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */      if (len <= 0) return 0;--- 588,597 ----    #ifdef HAS_snprintf      snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,!              a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);  #else      sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,!             a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);  #endif      len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */      if (len <= 0) return 0;****************** 604,609 ****--- 638,644 ----      uInt len;      int done = 0;      gz_stream *s = (gz_stream*)file;+     DWORD size;        if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;  ****************** 613,619 ****          len = Z_BUFSIZE - s->stream.avail_out;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -