This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch master
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=bedfaeb58945622d19ed2bbb2eaf65b8f6152b5d

commit bedfaeb58945622d19ed2bbb2eaf65b8f6152b5d
Author: Guillem Jover <[email protected]>
AuthorDate: Tue Mar 2 00:25:59 2010 +0100

    dpkg: Make it possible for the compiler to check printf format
    
    By using the format as a string literal in the actual function we let
    the compiler check for its validity against the arguments passed.
    
    Warned-by: gcc -Wformat-nonliteral (from -Wformat=2)
---
 debian/changelog |  2 ++
 src/depcon.c     | 29 +++++++++++++++++------------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 84089df4f..735083284 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -184,6 +184,8 @@ dpkg (1.20.0) UNRELEASED; urgency=medium
     - update-alternatives: Move error context setup before calling setjmp(),
       so that cppcheck stops being confused.
     - test: Reformat 200_Dpkg_Shlibs.cpp for coding style conformance.
+    - dpkg: Make it possible for the compiler to check printf() format
+      string arguments on dependency printer.
   * Build system:
     - Bump minimal Perl version to 5.24.1.
     - Add a serial versioning to the m4 files.
diff --git a/src/depcon.c b/src/depcon.c
index 593edfb8c..2e82741db 100644
--- a/src/depcon.c
+++ b/src/depcon.c
@@ -239,39 +239,44 @@ findbreakcycle(struct pkginfo *pkg)
 }
 
 void describedepcon(struct varbuf *addto, struct dependency *dep) {
-  const char *fmt;
   struct varbuf depstr = VARBUF_INIT;
 
+  varbufdependency(&depstr, dep);
+  varbuf_end_str(&depstr);
+
   switch (dep->type) {
   case dep_depends:
-    fmt = _("%s depends on %s");
+    varbuf_printf(addto, _("%s depends on %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_predepends:
-    fmt = _("%s pre-depends on %s");
+    varbuf_printf(addto, _("%s pre-depends on %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_recommends:
-    fmt = _("%s recommends %s");
+    varbuf_printf(addto, _("%s recommends %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_suggests:
-    fmt = _("%s suggests %s");
+    varbuf_printf(addto, _("%s suggests %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_breaks:
-    fmt = _("%s breaks %s");
+    varbuf_printf(addto, _("%s breaks %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_conflicts:
-    fmt = _("%s conflicts with %s");
+    varbuf_printf(addto, _("%s conflicts with %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   case dep_enhances:
-    fmt = _("%s enhances %s");
+    varbuf_printf(addto, _("%s enhances %s"),
+                  pkg_name(dep->up, pnaw_nonambig), depstr.buf);
     break;
   default:
     internerr("unknown deptype '%d'", dep->type);
   }
 
-  varbufdependency(&depstr, dep);
-  varbuf_end_str(&depstr);
-
-  varbuf_printf(addto, fmt, pkg_name(dep->up, pnaw_nonambig), depstr.buf);
   varbuf_destroy(&depstr);
 }
 

-- 
Dpkg.Org's dpkg

Reply via email to