Actually, empty lines are equivalent to one (1) char. fgets() will only return 0 when reach the end of the file or if the file is totally empty. Well, that's what I noticed in the tests.
Code:
// fgets=1
[Section] // fgets=10
key=value // fgets=10
// fgets=1
[Section] // fgets=10
key=value // fgets=10
// fgets=1
[Section] // fgets=10
key=value // fgets=10
// fgets=1
// fgets=1
[Section] // fgets=10
key=value // fgets=10
// fgets=0
__________________