summaryrefslogtreecommitdiffstats
path: root/libtests/lzw.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2009-07-13 00:52:13 +0200
committerJay Berkenbilt <ejb@ql.org>2009-07-13 00:52:13 +0200
commita9987ab57042ce755261492d93cb54d9ff10fc35 (patch)
treed764928987ee492a1051cff2df0236dbb4d2ed35 /libtests/lzw.cc
parent0b87334a611878e354e1aea5d26f4cd407bafc73 (diff)
downloadqpdf-a9987ab57042ce755261492d93cb54d9ff10fc35.tar.zst
Fix a few compiler errors reported correctly my MSVC 9.0.
Fix libtests test suites to pass on Windows, mostly by dealing with ascii vs. binary and NL vs. CRNL change ($td->NORMALIZE_NEWLINES). Convert some test suites to use fread instead of read. PCRE.hh: define PCRE_STATIC if on Windows. Provide cross-platform function for getting current time instead of using time(0). git-svn-id: svn+q:///qpdf/trunk@678 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'libtests/lzw.cc')
-rw-r--r--libtests/lzw.cc24
1 files changed, 20 insertions, 4 deletions
diff --git a/libtests/lzw.cc b/libtests/lzw.cc
index 034c0bb9..5bfdbbd5 100644
--- a/libtests/lzw.cc
+++ b/libtests/lzw.cc
@@ -1,6 +1,7 @@
#include <qpdf/Pl_LZWDecoder.hh>
#include <qpdf/Pl_StdioFile.hh>
+#include <qpdf/QUtil.hh>
#include <iostream>
#include <stdlib.h>
#include <string.h>
@@ -8,21 +9,36 @@
int main(int argc, char* argv[])
{
bool early_code_change = true;
- if ((argc == 2) && (strcmp(argv[1], "--no-early-code-change") == 0))
+ if ((argc == 4) && (strcmp(argv[3], "--no-early-code-change") == 0))
{
early_code_change = false;
}
- Pl_StdioFile out("stdout", stdout);
- Pl_LZWDecoder decode("decode", &out, early_code_change);
+ if (argc < 3)
+ {
+ std::cerr << "Usage: lzw infile outfile [ --no-early-code-change ]"
+ << std::endl;
+ exit(2);
+ }
try
{
+ char* infilename = argv[1];
+ char* outfilename = argv[2];
+
+ FILE* infile = QUtil::fopen_wrapper("open input file",
+ fopen(infilename, "rb"));
+ FILE* outfile = QUtil::fopen_wrapper("open output file",
+ fopen(outfilename, "wb"));
+
+ Pl_StdioFile out("output", outfile);
+ Pl_LZWDecoder decode("decode", &out, early_code_change);
+
unsigned char buf[10000];
bool done = false;
while (! done)
{
- int len = read(0, buf, sizeof(buf));
+ int len = fread(buf, 1, sizeof(buf), infile);
if (len <= 0)
{
done = true;