diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2007-08-03 11:23:25 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2007-08-03 11:23:25 +0200 |
commit | 5aa5a030bb4f2d46a30526377c5309dc20dbe2af (patch) | |
tree | 478edc1ae73decd517d0655840f351610f94e1bc /apt-pkg/deb/dpkgpm.cc | |
parent | 0408d8c3b23367d09980cb27a5225a9f034d7610 (diff) | |
parent | 8da1f029b7544202da68100b22a2901809bf07af (diff) |
* merged from dpkg-log branch
Diffstat (limited to 'apt-pkg/deb/dpkgpm.cc')
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 8cb076edd..aa840f85e 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -357,8 +357,9 @@ void pkgDPkgPM::DoTerminalPty(int master, FILE *term_out) int len=read(master, term_buf, sizeof(term_buf)); if(len <= 0) return; - fwrite(term_buf, len, sizeof(char), term_out); write(1, term_buf, len); + if(term_out) + fwrite(term_buf, len, sizeof(char), term_out); } /*}}}*/ // DPkgPM::ProcessDpkgStatusBuf /*{{{*/ @@ -564,17 +565,21 @@ bool pkgDPkgPM::Go(int OutStatusFd) if(not FileExists(logdir)) return _error->Error(_("Directory '%s' missing"), logdir.c_str()); string logfile_name = flCombine(logdir, - _config->Find("Dir::Log::Name")); - FILE *term_out = fopen(logfile_name.c_str(),"a"); - chmod(logfile_name.c_str(), 0600); - // output current time - char outstr[200]; - time_t t = time(NULL); - struct tm *tmp = localtime(&t); - strftime(outstr, sizeof(outstr), "%F %T", tmp); - fprintf(term_out, "Log started: "); - fprintf(term_out, outstr); - fprintf(term_out, "\n"); + _config->Find("Dir::Log::Terminal")); + FILE *term_out = NULL; + if (!logfile_name.empty()) + { + term_out = fopen(logfile_name.c_str(),"a"); + chmod(logfile_name.c_str(), 0600); + // output current time + char outstr[200]; + time_t t = time(NULL); + struct tm *tmp = localtime(&t); + strftime(outstr, sizeof(outstr), "%F %T", tmp); + fprintf(term_out, "\nLog started: "); + fprintf(term_out, outstr); + fprintf(term_out, "\n"); + } // this loop is runs once per operation for (vector<Item>::iterator I = List.begin(); I != List.end();) |