don't fallback
use gnu99, ref #1
use built in method to check windows env, ref #1
Merge branch 'windows'