normalize newlines for cross platform consistency