From 8da1f029b7544202da68100b22a2901809bf07af Mon Sep 17 00:00:00 2001
From: Michael Vogt <michael.vogt@ubuntu.com>
Date: Fri, 3 Aug 2007 11:21:19 +0200
Subject: * doc/examples/configure-index:   - updated Dir::Log::Terminal *
 apt-pkg/deb/dpkgpm.cc:   - make the terminal log optional   - rename
 Dir::Log::Name to Dir::Log::Terminal

---
 apt-pkg/deb/dpkgpm.cc | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

(limited to 'apt-pkg')

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();)
-- 
cgit v1.2.3