]> err.no Git - dpkg/commitdiff
dpkg: Move trig_file_activate call from namenodetouse to its callers
authorGuillem Jover <guillem@debian.org>
Sun, 6 Jul 2008 18:34:54 +0000 (21:34 +0300)
committerGuillem Jover <guillem@debian.org>
Thu, 10 Jul 2008 06:15:59 +0000 (09:15 +0300)
ChangeLog
src/archives.c
src/help.c
src/main.h
src/processarc.c
src/remove.c

index 9962ff4d0150fffed99ff9418ce1e9b0ebf66763..4ddf96222aafa8f5aaaf02e8c077302630773fb8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-07-06  Guillem Jover  <guillem@debian.org>
+
+       * src/main.h: Remove comment about side effect in namenodetouse.
+       * src/help.c (namenodetouse): Move call to trig_file_activate to ...
+       * src/archives.c (tarobject): ... here.
+       * src/processarc.c (process_archive): Likewise.
+       * src/remove.c (removal_bulk_remove_files): Likewise.
+       (removal_bulk_remove_leftover_dirs): Likewise.
+
 2008-07-06  Michel Lespinasse  <walken@zoy.org>
 
        * dselect/baselist.cc (baselist::startdisplay): Create the
index 2c7c248d206cf77588aa284d0e94e396d014ef40..70fe4c5a601ded23ae43506721e5d811a8364db1 100644 (file)
@@ -400,6 +400,7 @@ int tarobject(struct TarInfo *ti) {
   static struct varbuf conffderefn, hardlinkfn, symlinkfn;
   static int fd;
   const char *usename;
+  struct filenamenode *usenode;
 
   struct conffile *conff;
   struct tarcontext *tc= (struct tarcontext*)ti->UserData;
@@ -450,7 +451,10 @@ int tarobject(struct TarInfo *ti) {
     }
   }
 
-  usename= namenodetouse(nifd->namenode,tc->pkg)->name + 1; /* Skip the leading `/' */
+  usenode = namenodetouse(nifd->namenode, tc->pkg);
+  usename = usenode->name + 1; /* Skip the leading '/'. */
+
+  trig_file_activate(usenode, tc->pkg);
 
   if (nifd->namenode->flags & fnnf_new_conff) {
     /* If it's a conffile we have to extract it next to the installed
index 26385cb5b94597c6bcbdce4eaa7105863427930e..9c9030e3de9cbd73eaeec0b90f79cad0664aad51 100644 (file)
@@ -53,7 +53,7 @@ struct filenamenode *namenodetouse(struct filenamenode *namenode, struct pkginfo
   
   if (!namenode->divert) {
     r = namenode;
-    goto found;
+    return r;
   }
   
   debug(dbg_eachfile,"namenodetouse namenode=`%s' pkg=%s",
@@ -70,8 +70,6 @@ struct filenamenode *namenodetouse(struct filenamenode *namenode, struct pkginfo
         namenode->divert->pkg ? namenode->divert->pkg->name : "<none>",
         r->name);
 
- found:
-  trig_file_activate(r, pkg);
   return r;
 }
 
index 49a197367171ea8bce30b8b151264b2081776eff..a1a30c0f46f735edfee7f62b3f9194590ff70eb7 100644 (file)
@@ -208,9 +208,6 @@ int chmodsafe_unlink_statted(const char *pathname, const struct stat *stab,
                             const char **failed);
 void checkpath(void);
 
-/* NB side effect! This not only computes the appropriate filename
- * to use including thinking about any diversions, but also activates
- * any file triggers. */
 struct filenamenode *namenodetouse(struct filenamenode*, struct pkginfo*);
 
 /* all ...'s are const char*'s ... */
index a3b455d4e18b1dfcd481faab7026fa2c8ac99988..b0582b9beebf817effdc380dc047a4f6474d45a6 100644 (file)
@@ -632,12 +632,17 @@ void process_archive(const char *filename) {
    */
   reversefilelist_init(&rlistit,pkg->clientdata->files);
   while ((namenode= reversefilelist_next(&rlistit))) {
+    struct filenamenode *usenode;
+
     if ((namenode->flags & fnnf_new_conff) ||
         (namenode->flags & fnnf_new_inarchive))
       continue;
 
+    usenode = namenodetouse(namenode, pkg);
+    trig_file_activate(usenode, pkg);
+
     fnamevb.used= fnameidlu;
-    varbufaddstr(&fnamevb, namenodetouse(namenode,pkg)->name);
+    varbufaddstr(&fnamevb, usenode->name);
     varbufaddc(&fnamevb,0);
 
     if (!stat(namenode->name,&stab) && S_ISDIR(stab.st_mode)) {
index 1f80a4a8289e4e3818f620c5291bee0f1ac3f664..679441e628cc5fe1c704ddcca22d2c7368d4bb6b 100644 (file)
@@ -213,15 +213,21 @@ static void removal_bulk_remove_files(
     reversefilelist_init(&rlistit,pkg->clientdata->files);
     leftover = NULL;
     while ((namenode= reversefilelist_next(&rlistit))) {
+      struct filenamenode *usenode;
+
       debug(dbg_eachfile, "removal_bulk `%s' flags=%o",
             namenode->name, namenode->flags);
       if (namenode->flags & fnnf_old_conff) {
         push_leftover(&leftover,namenode);
         continue;
       }
+
+      usenode = namenodetouse(namenode, pkg);
+      trig_file_activate(usenode, pkg);
+
       varbufreset(&fnvb);
       varbufaddstr(&fnvb,instdir);
-      varbufaddstr(&fnvb,namenodetouse(namenode,pkg)->name);
+      varbufaddstr(&fnvb, usenode->name);
       before= fnvb.used;
       
       varbufaddstr(&fnvb,DPKGTEMPEXT);
@@ -340,6 +346,8 @@ static void removal_bulk_remove_leftover_dirs(struct pkginfo *pkg) {
   reversefilelist_init(&rlistit,pkg->clientdata->files);
   leftover = NULL;
   while ((namenode= reversefilelist_next(&rlistit))) {
+    struct filenamenode *usenode;
+
     debug(dbg_eachfile, "removal_bulk `%s' flags=%o",
           namenode->name, namenode->flags);
     if (namenode->flags & fnnf_old_conff) {
@@ -347,9 +355,12 @@ static void removal_bulk_remove_leftover_dirs(struct pkginfo *pkg) {
       continue;
     }
 
+    usenode = namenodetouse(namenode, pkg);
+    trig_file_activate(usenode, pkg);
+
     varbufreset(&fnvb);
     varbufaddstr(&fnvb,instdir);
-    varbufaddstr(&fnvb,namenodetouse(namenode,pkg)->name);
+    varbufaddstr(&fnvb, usenode->name);
     varbufaddc(&fnvb,0);
 
     if (!stat(fnvb.buf,&stab) && S_ISDIR(stab.st_mode)) {