X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=tool%2Fpacker.cpp;fp=tool%2Fpacker.cpp;h=fa4d7e236a943ba3361507cb5ff0b2bcf559415a;hb=52fb63aded47733fa67e871ce0bd360b9eea7468;hp=d54d333e3affc244e80ce9653cbc4867f66f43fe;hpb=8a412367448c55916380ce7040ddbd0a75fa722e;p=libs%2Fdatafile.git diff --git a/tool/packer.cpp b/tool/packer.cpp index d54d333..fa4d7e2 100644 --- a/tool/packer.cpp +++ b/tool/packer.cpp @@ -55,11 +55,10 @@ void Packer::pack_file(const string &fn) IO::BufferedFile in(fn); ObjectList objects; - bool raw = detect_raw(in); - if(raw) - transfer_raw(in, *tmp_file); - else + if(detect_data(in)) transfer_datafile(in, fn, *tmp_file, objects); + else + transfer_unknown(in, *tmp_file); unsigned length = tmp_file->tell()-offset; @@ -72,12 +71,12 @@ void Packer::pack_file(const string &fn) dir_alloc += 100+objects.size()*100; } -bool Packer::detect_raw(IO::Seekable &in) +bool Packer::detect_data(IO::Seekable &in) { IO::SeekOffset offset = in.tell(); - bool raw = false; + bool data = true; DataFile::Parser parser(in, "-"); - while(!raw && parser && in.tell()<10240) + while(data && parser && in.tell()<10240) { try { @@ -85,11 +84,11 @@ bool Packer::detect_raw(IO::Seekable &in) } catch(...) { - raw = true; + data = false; } } in.seek(offset, IO::S_BEG); - return raw; + return data; } void Packer::transfer_datafile(IO::Base &in, const string &fn, IO::Base &out, ObjectList &objects) @@ -124,7 +123,7 @@ void Packer::transfer_datafile(IO::Base &in, const string &fn, IO::Base &out, Ob delete writer; } -void Packer::transfer_raw(IO::Base &in, IO::Base &out) +void Packer::transfer_unknown(IO::Base &in, IO::Base &out) { while(!in.eof()) {