BASIC-XER value printing fixed for REAL values


git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@876 59561ff5-6e30-0410-9f3c-9617f08c8826
diff --git a/skeletons/REAL.c b/skeletons/REAL.c
index 92b42d2..6ec6b6e 100644
--- a/skeletons/REAL.c
+++ b/skeletons/REAL.c
@@ -187,16 +187,24 @@
 		 */
 		char *end = buf + buflen;
 		char *last_zero = end;
+		int stoplooking = 0;
 		char *z;
 		for(z = end - 1; z > buf; z--) {
 			switch(*z) {
-			case 0x030:
-				last_zero = z;
+			case 0x30:
+				if(!stoplooking)
+					last_zero = z;
+				continue;
 			case 0x31: case 0x32: case 0x33: case 0x34:
 			case 0x35: case 0x36: case 0x37: case 0x38: case 0x39:
+				stoplooking = 1;
 				continue;
 			default:	/* Catch dot and other separators */
-				*z = 0x2e;	/* Replace possible comma */
+				/*
+				 * Replace possible comma (which may even
+				 * be not a comma at all: locale-defined).
+				 */
+				*z = 0x2e;
 				if(last_zero == z + 1) {	/* leave x.0 */
 					last_zero++;
 				}