X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/3525c773c191b5e162bb251c50c829c6abeefebc..e426a5ff1cd02797b29f5781be4d6fc8bdf44610:/apt-pkg/deb/dpkgpm.h diff --git a/apt-pkg/deb/dpkgpm.h b/apt-pkg/deb/dpkgpm.h index c552b20c9..330c788a2 100644 --- a/apt-pkg/deb/dpkgpm.h +++ b/apt-pkg/deb/dpkgpm.h @@ -23,9 +23,14 @@ class pkgDPkgPM : public pkgPackageManager { private: + bool stdin_is_dev_null; + // the buffer we use for the dpkg status-fd reading char dpkgbuf[1024]; int dpkgbuf_pos; + FILE *term_out; + FILE *history_out; + string dpkg_error; protected: @@ -43,14 +48,14 @@ class pkgDPkgPM : public pkgPackageManager // the dpkg states that are already done; the string is the package // the int is the state that is already done (e.g. a package that is // going to be install is already in state "half-installed") - map PackageOpsDone; + map PackageOpsDone; // progress reporting - int PackagesDone; - int PackagesTotal; + unsigned int PackagesDone; + unsigned int PackagesTotal; struct Item { - enum Ops {Install, Configure, Remove, Purge} Op; + enum Ops {Install, Configure, Remove, Purge, ConfigurePending, TriggersPending} Op; string File; PkgIterator Pkg; Item(Ops Op,PkgIterator Pkg,string File = "") : Op(Op), @@ -61,13 +66,17 @@ class pkgDPkgPM : public pkgPackageManager vector List; // Helpers - bool RunScripts(const char *Cnf); bool RunScriptsWithPkgs(const char *Cnf); bool SendV2Pkgs(FILE *F); + void WriteHistoryTag(string tag, string value); + // dpkg log + bool OpenLog(); + bool CloseLog(); + // input processing void DoStdin(int master); - void DoTerminalPty(int master, FILE *out); + void DoTerminalPty(int master); void DoDpkgStatusFd(int statusfd, int OutStatusFd); void ProcessDpkgStatusLine(int OutStatusFd, char *line);