mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Fix our printf implementation to follow spec: if a star parameter
value for a precision is negative, act as though precision weren't specified at all, that is the whole .* part of the format spec should be ignored. Our previous coding took it as .0 which is certainly wrong. Per report from Kris Jurka and local testing. Possibly this should be back-patched, but it would be good to get some more testing first; in any case there are no known cases where there's really a problem on the backend side.
This commit is contained in:
parent
9706f54d5d
commit
206b1e558a
@ -27,7 +27,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/port/snprintf.c,v 1.34 2007/03/26 21:44:11 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/port/snprintf.c,v 1.35 2008/03/18 01:49:44 tgl Exp $
|
||||
*/
|
||||
|
||||
#include "c.h"
|
||||
@ -565,7 +565,10 @@ nextch2:
|
||||
{
|
||||
precision = starval;
|
||||
if (precision < 0)
|
||||
{
|
||||
precision = 0;
|
||||
pointflag = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -590,7 +593,10 @@ nextch2:
|
||||
{
|
||||
precision = starval;
|
||||
if (precision < 0)
|
||||
{
|
||||
precision = 0;
|
||||
pointflag = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user