X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/b2e465d6d32d2dc884f58b94acb7e35f671a87fe..1979e742ad5e2a0b6e547fbe3f4c4066b5a9bd2e:/ftparchive/multicompress.cc diff --git a/ftparchive/multicompress.cc b/ftparchive/multicompress.cc index 932ad6758..a3512c787 100644 --- a/ftparchive/multicompress.cc +++ b/ftparchive/multicompress.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: multicompress.cc,v 1.2 2001/02/20 07:03:18 jgg Exp $ +// $Id: multicompress.cc,v 1.4 2003/02/10 07:34:41 doogie Exp $ /* ###################################################################### MultiCompressor @@ -20,6 +20,7 @@ #include "multicompress.h" +#include #include #include #include @@ -28,8 +29,11 @@ #include #include #include +#include /*}}}*/ +using namespace std; + const MultiCompress::CompType MultiCompress::Compressors[] = {{".","",0,0,0,1}, {"gzip",".gz","gzip","-9n","-d",2}, @@ -68,7 +72,7 @@ MultiCompress::MultiCompress(string Output,string Compress, // Hmm.. unknown. if (Comp->Name == 0) { - _error->Warning("Unknown Compresison Algorithm '%s'",string(Start,I).c_str()); + _error->Warning(_("Unknown compression algorithm '%s'"),string(Start,I).c_str()); continue; } @@ -98,7 +102,7 @@ MultiCompress::MultiCompress(string Output,string Compress, if (Outputs == 0) { - _error->Error("Compressed output %s needs a compression set",Output.c_str()); + _error->Error(_("Compressed output %s needs a compression set"),Output.c_str()); return; } @@ -165,7 +169,7 @@ bool MultiCompress::Start() // Create a data pipe int Pipe[2] = {-1,-1}; if (pipe(Pipe) != 0) - return _error->Errno("pipe","Failed to create IPC pipe to subprocess"); + return _error->Errno("pipe",_("Failed to create IPC pipe to subprocess")); for (int I = 0; I != 2; I++) SetCloseExec(Pipe[I],true); @@ -191,10 +195,10 @@ bool MultiCompress::Start() close(Pipe[0]); Input = fdopen(Pipe[1],"w"); if (Input == 0) - return _error->Errno("fdopen","Failed to create FILE*"); + return _error->Errno("fdopen",_("Failed to create FILE*")); if (Outputter == -1) - return _error->Errno("fork","Failed to fork"); + return _error->Errno("fork",_("Failed to fork")); return true; } /*}}}*/ @@ -208,7 +212,7 @@ bool MultiCompress::Die() fclose(Input); Input = 0; - bool Res = ExecWait(Outputter,"Compress Child",false); + bool Res = ExecWait(Outputter,_("Compress child"),false); Outputter = -1; return Res; } @@ -231,7 +235,7 @@ bool MultiCompress::Finalize(unsigned long &OutSize) { struct stat St; if (stat(I->Output.c_str(),&St) != 0) - return _error->Error("Internal Error, Failed to create %s", + return _error->Error(_("Internal error, failed to create %s"), I->Output.c_str()); if (I->OldMTime != St.st_mtime) @@ -267,7 +271,7 @@ bool MultiCompress::Finalize(unsigned long &OutSize) /* This opens the compressor, either in compress mode or decompress mode. FileFd is always the compressor input/output file, OutFd is the created pipe, Input for Compress, Output for Decompress. */ -bool MultiCompress::OpenCompress(const CompType *Prog,int &Pid,int FileFd, +bool MultiCompress::OpenCompress(const CompType *Prog,pid_t &Pid,int FileFd, int &OutFd,bool Comp) { Pid = -1; @@ -282,7 +286,7 @@ bool MultiCompress::OpenCompress(const CompType *Prog,int &Pid,int FileFd, // Create a data pipe int Pipe[2] = {-1,-1}; if (pipe(Pipe) != 0) - return _error->Errno("pipe","Failed to create subprocess IPC"); + return _error->Errno("pipe",_("Failed to create subprocess IPC")); for (int J = 0; J != 2; J++) SetCloseExec(Pipe[J],true); @@ -317,7 +321,7 @@ bool MultiCompress::OpenCompress(const CompType *Prog,int &Pid,int FileFd, Args[1] = Prog->UnCompArgs; Args[2] = 0; execvp(Args[0],(char **)Args); - cerr << "Failed to exec compressor " << Args[0] << endl; + cerr << _("Failed to exec compressor ") << Args[0] << endl; _exit(100); }; if (Comp == true) @@ -330,7 +334,7 @@ bool MultiCompress::OpenCompress(const CompType *Prog,int &Pid,int FileFd, // MultiCompress::OpenOld - Open an old file /*{{{*/ // --------------------------------------------------------------------- /* This opens one of the original output files, possibly decompressing it. */ -bool MultiCompress::OpenOld(int &Fd,int &Proc) +bool MultiCompress::OpenOld(int &Fd,pid_t &Proc) { Files *Best = Outputs; for (Files *I = Outputs; I != 0; I = I->Next) @@ -352,11 +356,11 @@ bool MultiCompress::OpenOld(int &Fd,int &Proc) // MultiCompress::CloseOld - Close the old file /*{{{*/ // --------------------------------------------------------------------- /* */ -bool MultiCompress::CloseOld(int Fd,int Proc) +bool MultiCompress::CloseOld(int Fd,pid_t Proc) { close(Fd); if (Proc != -1) - if (ExecWait(Proc,"decompressor",false) == false) + if (ExecWait(Proc,_("decompressor"),false) == false) return false; return true; } @@ -399,7 +403,7 @@ bool MultiCompress::Child(int FD) { if (write(I->Fd,Buffer,Res) != Res) { - _error->Errno("write","IO to subprocess/file failed"); + _error->Errno("write",_("IO to subprocess/file failed")); break; } } @@ -435,7 +439,7 @@ bool MultiCompress::Child(int FD) while (Missing == false) { int CompFd = -1; - int Proc = -1; + pid_t Proc = -1; if (OpenOld(CompFd,Proc) == false) { _error->Discard(); @@ -451,7 +455,7 @@ bool MultiCompress::Child(int FD) if (Res == 0) break; if (Res < 0) - return _error->Errno("read","Failed to read while computing MD5"); + return _error->Errno("read",_("Failed to read while computing MD5")); NewFileSize += Res; OldMD5.Add(Buffer,Res); } @@ -468,7 +472,7 @@ bool MultiCompress::Child(int FD) { I->TmpFile.Close(); if (unlink(I->TmpFile.Name().c_str()) != 0) - _error->Errno("unlink","Problem unlinking %s", + _error->Errno("unlink",_("Problem unlinking %s"), I->TmpFile.Name().c_str()); } return !_error->PendingError(); @@ -483,7 +487,7 @@ bool MultiCompress::Child(int FD) fchmod(I->TmpFile.Fd(),Permissions); if (rename(I->TmpFile.Name().c_str(),I->Output.c_str()) != 0) - _error->Errno("rename","Failed to rename %s to %s", + _error->Errno("rename",_("Failed to rename %s to %s"), I->TmpFile.Name().c_str(),I->Output.c_str()); I->TmpFile.Close(); }