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

