- // scan the file lines
- size_t nUnix = 0, // number of '\n's alone
- nDos = 0, // number of '\r\n'
- nMac = 0; // number of '\r's
-
- // we take MAX_LINES_SCAN in the beginning, middle and the end of file
- #define MAX_LINES_SCAN (10)
- size_t nCount = m_aLines.Count() / 3,
- nScan = nCount > 3*MAX_LINES_SCAN ? MAX_LINES_SCAN : nCount / 3;
-
- #define AnalyseLine(n) \
- switch ( m_aTypes[n] ) { \
- case Type_Unix: nUnix++; break; \
- case Type_Dos: nDos++; break; \
- case Type_Mac: nMac++; break; \
- default: wxFAIL_MSG(_("unknown line terminator")); \
- }
-
- size_t n;
- for ( n = 0; n < nScan; n++ ) // the beginning
- AnalyseLine(n);
- for ( n = (nCount - nScan)/2; n < (nCount + nScan)/2; n++ )
- AnalyseLine(n);
- for ( n = nCount - nScan; n < nCount; n++ )
- AnalyseLine(n);