updated for version 7.4.635
Problem: If no NL or CR is found in the first block of a file then the
'fileformat' may be set to "mac". (Issue 77)
Solution: Check if a CR was found. (eswald)
diff --git a/src/fileio.c b/src/fileio.c
index 47814fa..319c7ba 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2101,6 +2101,10 @@
{
for (p = ptr; p < ptr + size; ++p)
{
+ /* Reset the carriage return counter. */
+ if (try_mac)
+ try_mac = 1;
+
if (*p == NL)
{
if (!try_unix
@@ -2110,6 +2114,8 @@
fileformat = EOL_UNIX;
break;
}
+ else if (*p == CAR && try_mac)
+ try_mac++;
}
/* Don't give in to EOL_UNIX if EOL_MAC is more likely */
@@ -2133,6 +2139,10 @@
fileformat = EOL_MAC;
}
}
+ else if (fileformat == EOL_UNKNOWN && try_mac == 1)
+ /* Looking for CR but found no end-of-line markers at
+ * all: use the default format. */
+ fileformat = default_fileformat();
}
/* No NL found: may use Mac format */