]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/dpkgpm.cc
Slovak translation update
[apt.git] / apt-pkg / deb / dpkgpm.cc
index bb04697527398fe8333df0dccde168edeb398e18..565f01b842656421cc8878feddab4b23b88253e4 100644 (file)
@@ -49,6 +49,7 @@ namespace
     std::make_pair("install",   N_("Installing %s")),
     std::make_pair("configure", N_("Configuring %s")),
     std::make_pair("remove",    N_("Removing %s")),
     std::make_pair("install",   N_("Installing %s")),
     std::make_pair("configure", N_("Configuring %s")),
     std::make_pair("remove",    N_("Removing %s")),
+    std::make_pair("purge",    N_("Completely removing %s")),
     std::make_pair("trigproc",  N_("Running post-installation trigger %s"))
   };
 
     std::make_pair("trigproc",  N_("Running post-installation trigger %s"))
   };
 
@@ -560,15 +561,16 @@ bool pkgDPkgPM::OpenLog()
    if (!logfile_name.empty())
    {
       term_out = fopen(logfile_name.c_str(),"a");
    if (!logfile_name.empty())
    {
       term_out = fopen(logfile_name.c_str(),"a");
+      if (term_out == NULL)
+        return _error->WarningE(_("Could not open file '%s'"), logfile_name.c_str());
+
       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);
       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, "%s", outstr);
-      fprintf(term_out, "\n");
+      fprintf(term_out, "\nLog started: %s\n", outstr);
    }
    return true;
 }
    }
    return true;
 }
@@ -865,32 +867,36 @@ bool pkgDPkgPM::Go(int OutStatusFd)
 
       struct   termios tt;
       struct   winsize win;
 
       struct   termios tt;
       struct   winsize win;
-      int      master;
-      int      slave;
+      int      master = -1;
+      int      slave = -1;
 
 
-      // FIXME: setup sensible signal handling (*ick*)
-      tcgetattr(0, &tt);
-      ioctl(0, TIOCGWINSZ, (char *)&win);
-      if (openpty(&master, &slave, NULL, &tt, &win) < 0) 
+      // if tcgetattr does not return zero there was a error
+      // and we do not do any pty magic
+      if (tcgetattr(0, &tt) == 0)
       {
       {
-        const char *s = _("Can not write log, openpty() "
-                          "failed (/dev/pts not mounted?)\n");
-        fprintf(stderr, "%s",s);
-        fprintf(term_out, "%s",s);
-        master = slave = -1;
-      }  else {
-        struct termios rtt;
-        rtt = tt;
-        cfmakeraw(&rtt);
-        rtt.c_lflag &= ~ECHO;
-        // block SIGTTOU during tcsetattr to prevent a hang if
-        // the process is a member of the background process group
-        // http://www.opengroup.org/onlinepubs/000095399/functions/tcsetattr.html
-        sigemptyset(&sigmask);
-        sigaddset(&sigmask, SIGTTOU);
-        sigprocmask(SIG_BLOCK,&sigmask, &original_sigmask);
-        tcsetattr(0, TCSAFLUSH, &rtt);
-        sigprocmask(SIG_SETMASK, &original_sigmask, 0);
+        ioctl(0, TIOCGWINSZ, (char *)&win);
+        if (openpty(&master, &slave, NULL, &tt, &win) < 0) 
+        {
+           const char *s = _("Can not write log, openpty() "
+                             "failed (/dev/pts not mounted?)\n");
+           fprintf(stderr, "%s",s);
+            if(term_out)
+              fprintf(term_out, "%s",s);
+           master = slave = -1;
+        }  else {
+           struct termios rtt;
+           rtt = tt;
+           cfmakeraw(&rtt);
+           rtt.c_lflag &= ~ECHO;
+           // block SIGTTOU during tcsetattr to prevent a hang if
+           // the process is a member of the background process group
+           // http://www.opengroup.org/onlinepubs/000095399/functions/tcsetattr.html
+           sigemptyset(&sigmask);
+           sigaddset(&sigmask, SIGTTOU);
+           sigprocmask(SIG_BLOCK,&sigmask, &original_sigmask);
+           tcsetattr(0, TCSAFLUSH, &rtt);
+           sigprocmask(SIG_SETMASK, &original_sigmask, 0);
+        }
       }
 
        // Fork dpkg
       }
 
        // Fork dpkg