Follow-up Comment #2, bug #19079 (project avr-libc):
I included a patch file.
Here are comment on the patch:
do {
i = getc(stream);
} while (isspace(i));
if (i == EOF)
goto leave;
this was remove. Reason:
Man file state: Matches a sequence of non-white-space characters...
Obviosly that part of code as the exact purpose of removing any leading
space(or white-space characters). As a second remark, we dont yet decrement
width(hit, bug is sscanf eats 1 char too much)
.
Next modif:
- while (width-- > 0)
+ do
Using a post decrement tation will end up in the following senarion. if
Width == 6, we will loop 6 time, this way we will read 6 char from the stream.
Didn't we just read 1 earlyer?
next modification: Bring
if ((i = getc(stream)) == EOF)
break;
just after the do
Since we are going to do some test condition on var i, we better have
something in it. I guess it was done later on due to the fact that it was red
in the part I removed earlyer.
final modif:
while (--width > 0);
To close the do-while, this will ensure a width reading.
I have not done much testing on it, just things that came to my mind.
Comment are welcome
Fred
(file #14213)
_______________________________________________________
Additional Item Attachment:
File name: 19079_patch.txt Size:1 KB
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?19079>
_______________________________________________
Message posté via/par Savannah
http://savannah.nongnu.org/
_______________________________________________
AVR-libc-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/avr-libc-dev