The following commit has been merged in the master branch:
commit 0f96ab4c3465785911cea9ec73c7c3fa9f4467b6
Author: Guillem Jover <[email protected]>
Date:   Sat Feb 27 21:48:24 2010 +0100

    libdpkg: Add new trigdef_update_printf to avoid exposing trig_new_deferred
    
    Make trig_new_deferred static and create a printer function for it.

diff --git a/lib/dpkg/dpkg-db.h b/lib/dpkg/dpkg-db.h
index 8375b7a..5888048 100644
--- a/lib/dpkg/dpkg-db.h
+++ b/lib/dpkg/dpkg-db.h
@@ -232,7 +232,6 @@ struct trigdefmeths {
 };
 
 void trigdef_set_methods(const struct trigdefmeths *methods);
-extern FILE *trig_new_deferred;
 
 /* Return values:
  *  -1  Lock ENOENT with O_CREAT (directory does not exist)
@@ -242,7 +241,7 @@ extern FILE *trig_new_deferred;
  *   2  ok                                        }  trigdef_update_done!
  */
 int trigdef_update_start(enum trigdef_updateflags uf, const char *admindir);
-
+void trigdef_update_printf(const char *format, ...) DPKG_ATTR_PRINTF(1);
 int trigdef_yylex(void);
 void trigdef_process_done(void);
 
diff --git a/lib/dpkg/trigdeferred.l b/lib/dpkg/trigdeferred.l
index 11412b4..5832c17 100644
--- a/lib/dpkg/trigdeferred.l
+++ b/lib/dpkg/trigdeferred.l
@@ -88,8 +88,7 @@ static const struct trigdefmeths *trigdef;
 
 static int lock_fd = -1;
 static FILE *old_deferred;
-
-FILE *trig_new_deferred;
+static FILE *trig_new_deferred;
 
 static void
 constructfn(struct varbuf *vb, const char *admindir, const char *tail)
@@ -179,6 +178,16 @@ trigdef_set_methods(const struct trigdefmeths *methods)
 }
 
 void
+trigdef_update_printf(const char *format, ...)
+{
+       va_list ap;
+
+       va_start(ap, format);
+       vfprintf(trig_new_deferred, format, ap);
+       va_end(ap);
+}
+
+void
 trigdef_process_done(void)
 {
        int r;
diff --git a/src/trigcmd.c b/src/trigcmd.c
index b1e82d9..7d7001e 100644
--- a/src/trigcmd.c
+++ b/src/trigcmd.c
@@ -107,14 +107,14 @@ noawait(const struct cmdinfo *ci, const char *value)
 static void
 yespackage(const char *awname)
 {
-       fprintf(trig_new_deferred, " %s", awname);
+       trigdef_update_printf(" %s", awname);
 }
 
 static void
 tdm_add_trig_begin(const char *trig)
 {
        ctrig = !strcmp(trig, activate);
-       fputs(trig, trig_new_deferred);
+       trigdef_update_printf("%s", trig);
        if (!ctrig || done_trig)
                return;
        yespackage(bypackage);
@@ -132,7 +132,7 @@ tdm_add_package(const char *awname)
 static void
 tdm_add_trig_end(void)
 {
-       fputc('\n', trig_new_deferred);
+       trigdef_update_printf("\n");
 }
 
 static const struct trigdefmeths tdm_add = {
@@ -227,8 +227,7 @@ main(int argc, const char *const *argv)
        if (uf >= 0) {
                trigdef_yylex();
                if (!done_trig)
-                       fprintf(trig_new_deferred, "%s %s\n",
-                               activate, bypackage);
+                       trigdef_update_printf("%s %s\n", activate, bypackage);
                trigdef_process_done();
        }
 

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to