Use copy_file from utilty.c, remove some char defines
authorGlenn L McGrath <bug1@ihug.co.nz>
Sat, 10 Feb 2001 14:53:08 +0000 (14:53 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Sat, 10 Feb 2001 14:53:08 +0000 (14:53 -0000)
archival/dpkg.c
dpkg.c

index eab2ace..24b0204 100644 (file)
 #endif
 
 #define BUFSIZE                4096
+#define DEPENDSMAX     64      /* maximum number of depends we can handle */
+
 #define ADMINDIR "/var/lib/dpkg"
 #define STATUSFILE     ADMINDIR ## "/status.udeb"
 #define DPKGCIDIR      ADMINDIR ## "/tmp.ci/"
-#define INFODIR                ADMINDIR ## "/info/"
-#define UDPKG_QUIET    "UDPKG_QUIET"
-#define DEPENDSMAX     64      /* maximum number of depends we can handle */
+static const char infodir[] = "/var/lib/dpkg/info/";
+static const char udpkg_quiet[] = "UDPKG_QUIET";
 
 //static const int status_wantstart    = 0;
 //static const int status_wantunknown  = (1 << 0);
@@ -379,7 +380,7 @@ static void *status_read(void)
                perror(STATUSFILE);
                return 0;
        }
-       if (getenv(UDPKG_QUIET) == NULL)
+       if (getenv(udpkg_quiet) == NULL)
                printf("(Reading database...)\n");
        while (!feof(f))
        {
@@ -452,7 +453,7 @@ static int status_merge(void *status, package_t *pkgs)
                perror(STATUSFILE ".new");
                return 0;
        }
-       if (getenv(UDPKG_QUIET) == NULL)
+       if (getenv(udpkg_quiet) == NULL)
                printf("(Updating database...)\n");
        while (fgets(buf, BUFSIZE, fin) && !feof(fin))
        {
@@ -535,38 +536,6 @@ static int is_file(const char *fn)
        return S_ISREG(statbuf.st_mode);
 }
 
-static int dpkg_copyfile(const char *src, const char *dest)
-{
-       /* copy a (regular) file if it exists, preserving the mode, mtime 
-        * and atime */
-       char buf[8192];
-       int infd, outfd;
-       int r;
-       struct stat srcStat;
-       struct utimbuf times;
-
-       if (stat(src, &srcStat) < 0) 
-       {
-               if (errno == 2) return 0; else return -1;
-       }
-       if ((infd = open(src, O_RDONLY)) < 0) 
-               return -1;
-       if ((outfd = open(dest, O_WRONLY|O_CREAT|O_TRUNC, srcStat.st_mode)) < 0)
-               return -1;
-       while ((r = read(infd, buf, sizeof(buf))) > 0)
-       {
-               if (write(outfd, buf, r) < 0)
-                       return -1;
-       }
-       close(outfd);
-       close(infd);
-       if (r < 0) return -1;
-       times.actime = srcStat.st_atime;
-       times.modtime = srcStat.st_mtime;
-       if (utime(dest, &times) < 0) return -1;
-       return 1;
-}
-
 static int dpkg_doconfigure(package_t *pkg)
 {
        int r;
@@ -574,7 +543,7 @@ static int dpkg_doconfigure(package_t *pkg)
        char buf[1024];
        DPRINTF("Configuring %s\n", pkg->package);
        pkg->status &= status_statusmask;
-       snprintf(postinst, sizeof(postinst), "%s%s.postinst", INFODIR, pkg->package);
+       snprintf(postinst, sizeof(postinst), "%s%s.postinst", infodir, pkg->package);
        if (is_file(postinst))
        {
                snprintf(buf, sizeof(buf), "%s configure", postinst);
@@ -616,8 +585,8 @@ static int dpkg_dounpack(package_t *pkg)
                        snprintf(buf, sizeof(buf), "%s%s/%s",
                                DPKGCIDIR, pkg->package, adminscripts[i]);
                        snprintf(buf2, sizeof(buf), "%s%s.%s", 
-                               INFODIR, pkg->package, adminscripts[i]);
-                       if (dpkg_copyfile(buf, buf2) < 0)
+                               infodir, pkg->package, adminscripts[i]);
+                       if (copy_file(buf, buf2, TRUE, FALSE, FALSE) < 0)
                        {
                                fprintf(stderr, "Cannot copy %s to %s: %s\n", 
                                        buf, buf2, strerror(errno));
@@ -636,7 +605,7 @@ static int dpkg_dounpack(package_t *pkg)
                                        "ar -p %s data.tar.gz|zcat|tar -tf -", 
                                        pkg->file);
                                snprintf(buf2, sizeof(buf2),
-                                       "%s%s.list", INFODIR, pkg->package);
+                                       "%s%s.list", infodir, pkg->package);
                                if ((infp = popen(buf, "r")) == NULL ||
                                    (outfp = fopen(buf2, "w")) == NULL)
                                {
diff --git a/dpkg.c b/dpkg.c
index eab2ace..24b0204 100644 (file)
--- a/dpkg.c
+++ b/dpkg.c
 #endif
 
 #define BUFSIZE                4096
+#define DEPENDSMAX     64      /* maximum number of depends we can handle */
+
 #define ADMINDIR "/var/lib/dpkg"
 #define STATUSFILE     ADMINDIR ## "/status.udeb"
 #define DPKGCIDIR      ADMINDIR ## "/tmp.ci/"
-#define INFODIR                ADMINDIR ## "/info/"
-#define UDPKG_QUIET    "UDPKG_QUIET"
-#define DEPENDSMAX     64      /* maximum number of depends we can handle */
+static const char infodir[] = "/var/lib/dpkg/info/";
+static const char udpkg_quiet[] = "UDPKG_QUIET";
 
 //static const int status_wantstart    = 0;
 //static const int status_wantunknown  = (1 << 0);
@@ -379,7 +380,7 @@ static void *status_read(void)
                perror(STATUSFILE);
                return 0;
        }
-       if (getenv(UDPKG_QUIET) == NULL)
+       if (getenv(udpkg_quiet) == NULL)
                printf("(Reading database...)\n");
        while (!feof(f))
        {
@@ -452,7 +453,7 @@ static int status_merge(void *status, package_t *pkgs)
                perror(STATUSFILE ".new");
                return 0;
        }
-       if (getenv(UDPKG_QUIET) == NULL)
+       if (getenv(udpkg_quiet) == NULL)
                printf("(Updating database...)\n");
        while (fgets(buf, BUFSIZE, fin) && !feof(fin))
        {
@@ -535,38 +536,6 @@ static int is_file(const char *fn)
        return S_ISREG(statbuf.st_mode);
 }
 
-static int dpkg_copyfile(const char *src, const char *dest)
-{
-       /* copy a (regular) file if it exists, preserving the mode, mtime 
-        * and atime */
-       char buf[8192];
-       int infd, outfd;
-       int r;
-       struct stat srcStat;
-       struct utimbuf times;
-
-       if (stat(src, &srcStat) < 0) 
-       {
-               if (errno == 2) return 0; else return -1;
-       }
-       if ((infd = open(src, O_RDONLY)) < 0) 
-               return -1;
-       if ((outfd = open(dest, O_WRONLY|O_CREAT|O_TRUNC, srcStat.st_mode)) < 0)
-               return -1;
-       while ((r = read(infd, buf, sizeof(buf))) > 0)
-       {
-               if (write(outfd, buf, r) < 0)
-                       return -1;
-       }
-       close(outfd);
-       close(infd);
-       if (r < 0) return -1;
-       times.actime = srcStat.st_atime;
-       times.modtime = srcStat.st_mtime;
-       if (utime(dest, &times) < 0) return -1;
-       return 1;
-}
-
 static int dpkg_doconfigure(package_t *pkg)
 {
        int r;
@@ -574,7 +543,7 @@ static int dpkg_doconfigure(package_t *pkg)
        char buf[1024];
        DPRINTF("Configuring %s\n", pkg->package);
        pkg->status &= status_statusmask;
-       snprintf(postinst, sizeof(postinst), "%s%s.postinst", INFODIR, pkg->package);
+       snprintf(postinst, sizeof(postinst), "%s%s.postinst", infodir, pkg->package);
        if (is_file(postinst))
        {
                snprintf(buf, sizeof(buf), "%s configure", postinst);
@@ -616,8 +585,8 @@ static int dpkg_dounpack(package_t *pkg)
                        snprintf(buf, sizeof(buf), "%s%s/%s",
                                DPKGCIDIR, pkg->package, adminscripts[i]);
                        snprintf(buf2, sizeof(buf), "%s%s.%s", 
-                               INFODIR, pkg->package, adminscripts[i]);
-                       if (dpkg_copyfile(buf, buf2) < 0)
+                               infodir, pkg->package, adminscripts[i]);
+                       if (copy_file(buf, buf2, TRUE, FALSE, FALSE) < 0)
                        {
                                fprintf(stderr, "Cannot copy %s to %s: %s\n", 
                                        buf, buf2, strerror(errno));
@@ -636,7 +605,7 @@ static int dpkg_dounpack(package_t *pkg)
                                        "ar -p %s data.tar.gz|zcat|tar -tf -", 
                                        pkg->file);
                                snprintf(buf2, sizeof(buf2),
-                                       "%s%s.list", INFODIR, pkg->package);
+                                       "%s%s.list", infodir, pkg->package);
                                if ((infp = popen(buf, "r")) == NULL ||
                                    (outfp = fopen(buf2, "w")) == NULL)
                                {