summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordteske <dteske@FreeBSD.org>2013-11-07 10:47:12 +0000
committerdteske <dteske@FreeBSD.org>2013-11-07 10:47:12 +0000
commit8207da2a55ee5a6b96d9f19671b54118379a78e5 (patch)
tree30eee8f5ccb66d1f30b02211b7e6506a240630ab
parent5d865ae5b7b82b5861d4d959c0299b01270aec0f (diff)
downloadFreeBSD-src-8207da2a55ee5a6b96d9f19671b54118379a78e5.zip
FreeBSD-src-8207da2a55ee5a6b96d9f19671b54118379a78e5.tar.gz
Add f_sprintf() and f_vsprintf() to go along with previously added
f_snprintf() and f_vsnprintf() (size-constraint) functions.
-rw-r--r--usr.sbin/bsdconfig/share/strings.subr22
1 files changed, 22 insertions, 0 deletions
diff --git a/usr.sbin/bsdconfig/share/strings.subr b/usr.sbin/bsdconfig/share/strings.subr
index 0072aa7..25cceee 100644
--- a/usr.sbin/bsdconfig/share/strings.subr
+++ b/usr.sbin/bsdconfig/share/strings.subr
@@ -77,6 +77,18 @@ f_snprintf()
}'\' \)
}
+# f_sprintf $var_to_set $format [$arguments ...]
+#
+# Similar to sprintf(3), write a string into $var_to_set using printf(1) syntax
+# (`$format [$arguments ...]').
+#
+f_sprintf()
+{
+ local __var_to_set="$1"
+ shift 1 # var_to_set
+ eval "$__var_to_set"=\$\( printf -- \"\$@\" \)
+}
+
# f_vsnprintf $var_to_set $size $format $format_args
#
# Similar to vsnprintf(3), write at most $size number of bytes into $var_to_set
@@ -112,6 +124,16 @@ f_vsnprintf()
eval f_snprintf \"\$1\" \"\$2\" \"\$3\" $4
}
+# f_vsprintf $var_to_set $format $format_args
+#
+# Similar to vsprintf(3), write a string into $var_to_set using printf(1)
+# syntax (`$format $format_args').
+#
+f_vsprintf()
+{
+ eval f_sprintf \"\$1\" \"\$2\" $3
+}
+
# f_longest_line_length
#
# Simple wrapper to an awk(1) script to print the length of the longest line of
OpenPOWER on IntegriCloud