mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-28 08:02:54 +00:00
Fix printf(1) ignores width and precision in %b format.
The precision with the conversion specifier b is specified by POSIX: see point 7 in the reference documentation. This corrects previous wrong log in r337440. Reference: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/printf.html PR: 229641 Reported by: Rudolf Cejka Submitted by: Garrett D'Amore (illumos) MFC after: 1 week
This commit is contained in:
parent
94e460157d
commit
702da35288
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=337458
@ -1,6 +1,7 @@
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*
|
||||
* Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
|
||||
* Copyright 2014 Garrett D'Amore <garrett@damore.org>
|
||||
* Copyright 2010 Nexenta Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 1989, 1993
|
||||
@ -375,16 +376,19 @@ printf_doformat(char *fmt, int *rval)
|
||||
char *p;
|
||||
int getout;
|
||||
|
||||
p = strdup(getstr());
|
||||
if (p == NULL) {
|
||||
/* Convert "b" to "s" for output. */
|
||||
start[strlen(start) - 1] = 's';
|
||||
if ((p = strdup(getstr())) == NULL) {
|
||||
warnx("%s", strerror(ENOMEM));
|
||||
return (NULL);
|
||||
}
|
||||
getout = escape(p, 0, &len);
|
||||
fputs(p, stdout);
|
||||
PF(start, p);
|
||||
/* Restore format for next loop. */
|
||||
|
||||
free(p);
|
||||
if (getout)
|
||||
return (end_fmt);
|
||||
exit(*rval);
|
||||
break;
|
||||
}
|
||||
case 'c': {
|
||||
|
Loading…
Reference in New Issue
Block a user