|Don't ask to ask, just ask
You can't do this, it isn't enough.
In some situations, mostly ugly ones involving CVS, you can end up with mixed carriage returns in the file. Some Mac person edits 50 lines in the middle and the result is a mixed mess.
So there are cases where doing anything by doing the two part, "detect the first and then process assuming it stays the same" just won't be good enough.
You really do need to do some preprocessing to "localize" all of the newlines.