Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Add a %q format -- package architecture
Matthew Seaman committed 12 years ago
commit 10676e0a4902727cf798ba2812580fb31094adf9
parent 6758b74
2 files changed +25 -3
modified libpkg/pkg_printf.c
@@ -138,9 +138,7 @@
 * n  pkg          name
 * o  pkg          origin
 * p  pkg          prefix
-
 *
-
 * q
-
 *
+
 * q  pkg	   architecture / ABI
 * r  pkg          List of requirements
 * rk pkg_dep      requirement lock status
 * rn pkg_dep      requirement name
@@ -634,6 +632,15 @@ static const struct pkg_printf_fmt fmt[] = {
		PP_ALL,
		&format_prefix,
	},
+
	[PP_PKG_ARCHITECTURE] =
+
	{
+
		'q',
+
		'\0',
+
		false,
+
		true,
+
		PP_ALL,
+
		&format_architecture,
+
	},
	[PP_PKG_REQUIREMENT_LOCK] =
	{
		'r',
@@ -1580,6 +1587,19 @@ format_prefix(struct sbuf *sbuf, const void *data, struct percent_esc *p)
}

/*
+
 * %q -- pkg architecture a.k.a ABI string.  Accepts field-width, left-align
+
 */
+
struct sbuf *
+
format_architecture(struct sbuf *sbuf, const void *data, struct percent_esc *p)
+
{
+
	const struct pkg	*pkg = data;
+
	const char		*arch;
+

+
	pkg_get(pkg, PKG_ARCH, &arch);
+
	return (string_val(sbuf, arch, p));
+
}
+

+
/*
 * %r -- Requirements. List of pkgs. Can be optionally followed by
 * per-field format string in %{ %| %} using any pkg_printf() *scalar*
 * formats. Defaults to printing "%{%rn-%rv\n%|%}" for each dependency.
modified libpkg/private/pkg_printf.h
@@ -125,6 +125,7 @@ typedef enum _fmt_code_t {
	PP_PKG_NAME,
	PP_PKG_ORIGIN,
	PP_PKG_PREFIX,
+
	PP_PKG_ARCHITECTURE,
	PP_PKG_REQUIREMENT_LOCK,
	PP_PKG_REQUIREMENT_NAME,
	PP_PKG_REQUIREMENT_ORIGIN,
@@ -204,6 +205,7 @@ _static struct sbuf *format_maintainer(struct sbuf *, const void *, struct perce
_static struct sbuf *format_name(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_origin(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_prefix(struct sbuf *, const void *, struct percent_esc *);
+
_static struct sbuf *format_architecture(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_requirements(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_flatsize(struct sbuf *, const void *, struct percent_esc *);
_static struct sbuf *format_install_tstamp(struct sbuf *, const void *, struct percent_esc *);