The following commit has been merged in the master branch:
commit b8038ef4721d53bb037583b9355a1f00dbcdc740
Author: Guillem Jover <guil...@debian.org>
Date:   Sun May 22 16:11:40 2011 +0200

    libdpkg: Properly reset filetriggers_edited in trig_file_interests_save
    
    The function was not resetting filetriggers_edited when no triggers were
    left, and duplicated part of the existing functionality.
    
    Refactor into trig_file_interests_remove() and
    trig_file_interests_update() to make them use the same main code path.
    
    Regression introduced in commit 83b591340ec92cf0e9814e8403da7711cbbc6b46.

diff --git a/lib/dpkg/triglib.c b/lib/dpkg/triglib.c
index 81619fc..50b6012 100644
--- a/lib/dpkg/triglib.c
+++ b/lib/dpkg/triglib.c
@@ -550,23 +550,19 @@ edited:
        filetriggers_edited = 1;
 }
 
-void
-trig_file_interests_save(void)
+static void
+trig_file_interests_remove(void)
+{
+       if (unlink(triggersfilefile) && errno != ENOENT)
+               ohshite(_("cannot remove `%.250s'"), triggersfilefile);
+}
+
+static void
+trig_file_interests_update(void)
 {
        struct trigfileint *tfi;
        FILE *nf;
 
-       if (filetriggers_edited <= 0)
-               return;
-
-       if (!filetriggers.head) {
-               /* No file trigger left, drop the file */
-               if (unlink(triggersfilefile) && errno != ENOENT)
-                       ohshite(_("cannot remove `%.250s'"), triggersfilefile);
-               dir_sync_path(triggersdir);
-               return;
-       }
-
        nf = fopen(triggersnewfilefile, "w");
        if (!nf)
                ohshite(_("unable to create new file triggers file `%.250s'"),
@@ -594,6 +590,18 @@ trig_file_interests_save(void)
        if (rename(triggersnewfilefile, triggersfilefile))
                ohshite(_("unable to install new file triggers file as 
`%.250s'"),
                        triggersfilefile);
+}
+
+void
+trig_file_interests_save(void)
+{
+       if (filetriggers_edited <= 0)
+               return;
+
+       if (!filetriggers.head)
+               trig_file_interests_remove();
+       else
+               trig_file_interests_update();
 
        dir_sync_path(triggersdir);
 

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to