diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2015-02-03 15:20:45 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2015-02-03 15:20:45 -0500 |
commit | 778d498c7d9099c784f14199a319ec2a84d91191 (patch) | |
tree | fadaee36b9806768d42e9e4f4ebdaa48186b2bb9 | |
parent | 91fa7b4719ac583420d9143132ba4ccddefbc5b2 (diff) | |
download | postgresql-778d498c7d9099c784f14199a319ec2a84d91191.tar.gz postgresql-778d498c7d9099c784f14199a319ec2a84d91191.zip |
Fix breakage in GEODEBUG debug code.
LINE doesn't have an "m" field (anymore anyway). Also fix unportable
assumption that %x can print the result of pointer subtraction.
In passing, improve single_decode() in minor ways:
* Remove unnecessary leading-whitespace skip (strtod does that already).
* Make GEODEBUG message more intelligible.
* Remove entirely-useless test to see if strtod returned a silly pointer.
* Don't bother computing trailing-whitespace skip unless caller wants
an ending pointer.
This has been broken since 261c7d4b653bc3e44c31fd456d94f292caa50d8f.
Although it's only debug code, might as well fix the 9.4 branch too.
-rw-r--r-- | src/backend/utils/adt/geo_ops.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c index 8fdf77bea2f..0b13c400547 100644 --- a/src/backend/utils/adt/geo_ops.c +++ b/src/backend/utils/adt/geo_ops.c @@ -128,19 +128,19 @@ single_decode(char *str, float8 *x, char **s) if (!PointerIsValid(str)) return FALSE; - while (isspace((unsigned char) *str)) - str++; *x = strtod(str, &cp); + #ifdef GEODEBUG - printf("single_decode- (%x) try decoding %s to %g\n", (cp - str), str, *x); + printf("single_decode- decoded first %d chars of \"%s\" to %g\n", + (int) (cp - str), str, *x); #endif - if (cp <= str) - return FALSE; - while (isspace((unsigned char) *cp)) - cp++; if (s != NULL) + { + while (isspace((unsigned char) *cp)) + cp++; *s = cp; + } return TRUE; } /* single_decode() */ @@ -2901,8 +2901,8 @@ close_ps(PG_FUNCTION_ARGS) result = point_copy(&lseg->p[!yh]); /* below the lseg, take lower * end pt */ #ifdef GEODEBUG - printf("close_ps below: tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps below: tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif PG_RETURN_POINT_P(result); } @@ -2913,8 +2913,8 @@ close_ps(PG_FUNCTION_ARGS) result = point_copy(&lseg->p[yh]); /* above the lseg, take higher * end pt */ #ifdef GEODEBUG - printf("close_ps above: tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps above: tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif PG_RETURN_POINT_P(result); } @@ -2925,8 +2925,8 @@ close_ps(PG_FUNCTION_ARGS) */ tmp = line_construct_pm(pt, invm); #ifdef GEODEBUG - printf("close_ps- tmp A %f B %f C %f m %f\n", - tmp->A, tmp->B, tmp->C, tmp->m); + printf("close_ps- tmp A %f B %f C %f\n", + tmp->A, tmp->B, tmp->C); #endif result = interpt_sl(lseg, tmp); Assert(result != NULL); |