]> granicus.if.org Git - postgis/commitdiff
Added a trailing zeros trimmer
authorSandro Santilli <strk@keybit.net>
Fri, 15 Oct 2004 09:41:01 +0000 (09:41 +0000)
committerSandro Santilli <strk@keybit.net>
Fri, 15 Oct 2004 09:41:01 +0000 (09:41 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@1005 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/liblwgeom.c
lwgeom/liblwgeom.h

index db91d78946627b4121b627525d3191a3c6dcf2ab..84436ddf4311e0cc09cd2ca0efafdfba05ae2fef 100644 (file)
@@ -136,3 +136,36 @@ lwfree(void *mem)
 {
        return lwfree_var(mem);
 }
+
+/*
+ * Removes trailing zeros and dot for a %f formatted number.
+ * Modifies input.
+ */
+void
+trim_trailing_zeros(char *str)
+{
+       char *ptr, *totrim=NULL;
+       int len;
+       int i;
+
+       //lwnotice("input: %s", str);
+       
+       ptr = strchr(str, '.');
+       if ( ! ptr ) return; // no dot, no decimal digits
+
+       //lwnotice("ptr: %s", ptr);
+
+       len = strlen(ptr);
+       for (i=len-1; i; i--)
+       {
+               if ( ptr[i] != '0' ) break;
+               totrim=&ptr[i];
+       }
+       if ( totrim )
+       {
+               if ( ptr == totrim-1 ) *ptr = '\0';
+               else *totrim = '\0';
+       }
+       
+       //lwnotice("output: %s", str);
+}
index 1ead401c3765bede1f0b21d27072463904c3209e..2e0fe83115fb5434a87de362e0e64577ef4265c4 100644 (file)
@@ -1020,4 +1020,7 @@ extern void *lwalloc(size_t size);
 extern void *lwrealloc(void *mem, size_t size);
 extern void lwfree(void *mem);
 
+/* Utilities */
+extern void trim_trailing_zeros(char *num);
+
 #endif // !defined _LIBLWGEOM_H