ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/liblzf/lzf.c
(Generate patch)

Comparing liblzf/lzf.c (file contents):
Revision 1.5 by root, Thu Mar 3 17:06:44 2005 UTC vs.
Revision 1.8 by root, Wed Sep 27 13:51:51 2006 UTC

38 38
39#include "config.h" 39#include "config.h"
40 40
41#include <stdio.h> 41#include <stdio.h>
42#include <stdlib.h> 42#include <stdlib.h>
43#include <string.h>
43#include <assert.h> 44#include <assert.h>
44 45
45#include <unistd.h> 46#include <unistd.h>
46#include <getopt.h> 47#include <getopt.h>
47 48
68} 69}
69 70
70/* 71/*
71 * Anatomy: an lzf file consists of any number of blocks in the following format: 72 * Anatomy: an lzf file consists of any number of blocks in the following format:
72 * 73 *
74 * \x00 EOF (optional)
73 * "ZV\0" 2-byte-usize <uncompressed data> 75 * "ZV\0" 2-byte-usize <uncompressed data>
74 * "ZV\1" 2-byte-csize 2-byte-usize <compressed data> 76 * "ZV\1" 2-byte-csize 2-byte-usize <compressed data>
75 * "ZV\2" 4-byte-crc32-0xdebb20e3 (NYI) 77 * "ZV\2" 4-byte-crc32-0xdebb20e3 (NYI)
76 * 78 *
77 */ 79 */
133 u8 buff1[64*1024]; 135 u8 buff1[64*1024];
134 u8 buff2[64*1024]; 136 u8 buff2[64*1024];
135 u8 header[3+2+2]; 137 u8 header[3+2+2];
136 138
137 for(;;) { 139 for(;;) {
138 if (fread (header, 3+2, 1, stdin) != 1) 140 int hdrsize = fread (header, 1, 3+2, stdin);
141
142 /* check for \0 record */
143 if (hdrsize)
144 {
145 if (!header[0])
146 break;
147 else if (hdrsize != 3+2)
148 {
149 if (feof (stdin))
150 fprintf (stderr, "decompress: invalid stream - short header\n");
151 else
152 perror ("decompress");
153
154 exit (1);
155 }
156 }
157 else
139 { 158 {
140 if (feof (stdin)) 159 if (feof (stdin))
141 break; 160 break;
142 else 161 else
143 { 162 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines