]> git.gag.com Git - fw/sdcc/commitdiff
fixed the printf("%d", int(0)) bug
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 19 Aug 2000 12:10:54 +0000 (12:10 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 19 Aug 2000 12:10:54 +0000 (12:10 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@323 4a8a32a2-be11-0410-ad9d-d568d2c75423

device/lib/vprintf.c

index 12a7cdb88a2aff6e39eb1cda58083959f1d5140c..505576efa5100b37c4855e1bd6ce049f52b16d3f 100644 (file)
@@ -306,9 +306,9 @@ get_conversion_spec:
 
        length=0;
         lsd = 1;
-       while( (value.byte[0] != 0) || (value.byte[1] != 0) ||
-              (value.byte[2] != 0) || (value.byte[3] != 0) )
-       {
+
+       //jwk20000814: do this at least once, e.g.: printf ("%d", (int)0);
+       do {
           value.byte[4] = 0;
          calculate_digit();
 
@@ -328,8 +328,9 @@ _endasm;
 
          length++;
           lsd = ~lsd;
-       }
-
+       } while( (value.byte[0] != 0) || (value.byte[1] != 0) ||
+                (value.byte[2] != 0) || (value.byte[3] != 0) );
+       
        if (width == 0)
        {
          // default width. We set it to 1 to output