]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/dpkgpm.cc
merged from the lp:~mvo/apt/mvo branch
[apt.git] / apt-pkg / deb / dpkgpm.cc
index 6cb8bc6b61d465d90ac66d079faa5cf2fe621e65..0e468b590a8dff59619ecb4823b071a891b04c42 100644 (file)
@@ -423,7 +423,7 @@ bool pkgDPkgPM::RunScriptsWithPkgs(const char *Cnf)
 void pkgDPkgPM::DoStdin(int master)
 {
    unsigned char input_buf[256] = {0,}; 
-   ssize_t len = read(0, input_buf, sizeof(input_buf));
+   ssize_t len = read(STDIN_FILENO, input_buf, sizeof(input_buf));
    if (len)
       FileFd::Write(master, input_buf, len);
    else
@@ -1205,7 +1205,7 @@ bool pkgDPkgPM::Go(int OutStatusFd)
 
       // if tcgetattr does not return zero there was a error
       // and we do not do any pty magic
-      if (tcgetattr(0, &tt) == 0)
+      if (tcgetattr(STDOUT_FILENO, &tt) == 0)
       {
         ioctl(0, TIOCGWINSZ, (char *)&win);
         if (openpty(&master, &slave, NULL, &tt, &win) < 0) 
@@ -1231,6 +1231,11 @@ bool pkgDPkgPM::Go(int OutStatusFd)
            tcsetattr(0, TCSAFLUSH, &rtt);
            sigprocmask(SIG_SETMASK, &original_sigmask, 0);
         }
+      } else {
+         const char *s = _("Can not write log, tcgetattr() failed for stdout");
+         fprintf(stderr, "%s", s);
+         if(d->term_out)
+            fprintf(d->term_out, "%s",s); 
       }
        // Fork dpkg
       pid_t Child;