summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortb <tb@openbsd.org>2017-12-15 12:17:49 +0000
committertb <tb@openbsd.org>2017-12-15 12:17:49 +0000
commitbf0ce9fc072fd61e108eb043ad64ef3f3c83fdeb (patch)
tree4eba489d947b0449dad9a96ecdf8d72dd3a4f88d
parentFix formatting of libfuse version info. (diff)
downloadwireguard-openbsd-bf0ce9fc072fd61e108eb043ad64ef3f3c83fdeb.tar.xz
wireguard-openbsd-bf0ce9fc072fd61e108eb043ad64ef3f3c83fdeb.zip
Make sure the double is cast to a long if the format string is %D, %O, %U.
Fixes output of e.g. 'jot -w %D 11 -5'. ok martijn
-rw-r--r--usr.bin/jot/jot.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr.bin/jot/jot.c b/usr.bin/jot/jot.c
index 0de3a510136..63c77bbb6fb 100644
--- a/usr.bin/jot/jot.c
+++ b/usr.bin/jot/jot.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: jot.c,v 1.36 2016/09/02 14:23:09 tb Exp $ */
+/* $OpenBSD: jot.c,v 1.37 2017/12/15 12:17:49 tb Exp $ */
/* $NetBSD: jot.c,v 1.3 1994/12/02 20:29:43 pk Exp $ */
/*-
@@ -420,12 +420,16 @@ getformat(void)
intdata = true;
break;
case 'D':
+ /* %lD is undefined */
if (!longdata) {
+ longdata = true; /* %D behaves as %ld */
intdata = true;
break;
}
case 'O': case 'U':
+ /* %lO and %lU are undefined */
if (!longdata) {
+ longdata = true; /* %O, %U behave as %lo, %lu */
intdata = nosign = true;
break;
}