From 3d1120af1044c7e5b9818944bd648fbaaf7c71eb Mon Sep 17 00:00:00 2001 From: Theo Buehler Date: Fri, 15 Dec 2017 12:17:50 +0000 Subject: 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 --- usr.bin/jot/jot.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'usr.bin/jot') 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; } -- cgit v1.2.3