projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was generated by cvs2svn to track changes on a CVS vendor
[unix-history]
/
gnu
/
usr.bin
/
gzip
/
unlzw.c
diff --git
a/gnu/usr.bin/gzip/unlzw.c
b/gnu/usr.bin/gzip/unlzw.c
index
0687c1b
..
15d2a31
100644
(file)
--- a/
gnu/usr.bin/gzip/unlzw.c
+++ b/
gnu/usr.bin/gzip/unlzw.c
@@
-7,11
+7,10
@@
* to accommodate in-memory decompression.
*/
* to accommodate in-memory decompression.
*/
-#if
ndef lint
-static char rcsid[] = "$Id: unlzw.c,v 0.1
3 1993/05/27 10:32:5
5 jloup Exp $";
+#if
def RCSID
+static char rcsid[] = "$Id: unlzw.c,v 0.1
5 1993/06/10 13:28:3
5 jloup Exp $";
#endif
#endif
-#include <stdio.h>
#include <sys/types.h>
#include "tailor.h"
#include <sys/types.h>
#include "tailor.h"
@@
-263,6
+262,7
@@
int unlzw(in, out)
read_error();
}
insize += rsize;
read_error();
}
insize += rsize;
+ bytes_in += (ulg)rsize;
}
inbits = ((rsize != 0) ? ((long)insize - insize%n_bits)<<3 :
((long)insize<<3)-(n_bits-1));
}
inbits = ((rsize != 0) ? ((long)insize - insize%n_bits)<<3 :
((long)insize<<3)-(n_bits-1));
@@
-281,8
+281,10
@@
int unlzw(in, out)
goto resetbuf;
}
input(inbuf,posbits,code,n_bits,bitmask);
goto resetbuf;
}
input(inbuf,posbits,code,n_bits,bitmask);
-
+ Tracev((stderr, "%d ", code));
+
if (oldcode == -1) {
if (oldcode == -1) {
+ if (code >= 256) error("corrupt input.");
outbuf[outpos++] = (char_type)(finchar = (int)(oldcode=code));
continue;
}
outbuf[outpos++] = (char_type)(finchar = (int)(oldcode=code));
continue;
}
@@
-313,9
+315,11
@@
int unlzw(in, out)
posbits, p[-1],p[0],p[1],p[2],p[3]);
#endif
if (!test && outpos > 0) {
posbits, p[-1],p[0],p[1],p[2],p[3]);
#endif
if (!test && outpos > 0) {
- write_buf(out, outbuf, outpos);
+ write_buf(out, (char*)outbuf, outpos);
+ bytes_out += (ulg)outpos;
}
}
- error("corrupt input. Use zcat to recover some data.");
+ error(to_stdout ? "corrupt input." :
+ "corrupt input. Use zcat to recover some data.");
}
*--stackp = (char_type)finchar;
code = oldcode;
}
*--stackp = (char_type)finchar;
code = oldcode;
@@
-341,7
+345,10
@@
int unlzw(in, out)
outpos += i;
}
if (outpos >= OUTBUFSIZ) {
outpos += i;
}
if (outpos >= OUTBUFSIZ) {
- if (!test) write_buf(out, outbuf, outpos);
+ if (!test) {
+ write_buf(out, (char*)outbuf, outpos);
+ bytes_out += (ulg)outpos;
+ }
outpos = 0;
}
stackp+= i;
outpos = 0;
}
stackp+= i;
@@
-360,10
+367,11
@@
int unlzw(in, out)
}
oldcode = incode; /* Remember previous code. */
}
}
oldcode = incode; /* Remember previous code. */
}
- bytes_in += rsize;
-
} while (rsize != 0);
} while (rsize != 0);
- if (!test && outpos > 0) write_buf(out, outbuf, outpos);
+ if (!test && outpos > 0) {
+ write_buf(out, (char*)outbuf, outpos);
+ bytes_out += (ulg)outpos;
+ }
return OK;
}
return OK;
}