> mame.ini is read twice to allow the first found mame.ini to set the inipath to > something different and have it take effect.
Interesting choice. Did not changing it on the fly work out as good or other reasons? Was it too far apart from where the inipath was needed? Or just a leftover from an older part of the design?
You peaked my curiosity. I am interested in choices people make on design, sometimes I am not saying it is bad or good. I personally would have went with a buffered read and a two pass across the buffer. But that has drawbacks too. Sometimes seeing why others come up with their choices is an interesting way to learn something new.