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