changeset 6635:050e6df85f99 v7.4.643

updated for version 7.4.643 Problem: Using the default file format for Mac files. (Issue 77) Solution: Reset the try_mac counter in the right place. (Oswald)
author Bram Moolenaar <bram@vim.org>
date Fri, 27 Feb 2015 17:48:09 +0100
parents 276a903321b8
children 788da372a668
files src/fileio.c src/testdir/test30.in src/testdir/test30.ok src/version.c
diffstat 4 files changed, 52 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2099,12 +2099,12 @@ rewind_retry:
 		/* First try finding a NL, for Dos and Unix */
 		if (try_dos || try_unix)
 		{
+		    /* Reset the carriage return counter. */
+		    if (try_mac)
+			try_mac = 1;
+
 		    for (p = ptr; p < ptr + size; ++p)
 		    {
-			/* Reset the carriage return counter. */
-			if (try_mac)
-			    try_mac = 1;
-
 			if (*p == NL)
 			{
 			    if (!try_unix
--- a/src/testdir/test30.in
+++ b/src/testdir/test30.in
@@ -7,37 +7,33 @@ STARTTEST
 :" first write three test files, one in each format
 :set fileformat=unix
 :set fileformats=
-:/^1/w! XX1
-:/^2/w! XX2
-:/^3/w! XX3
-:/^4/w! XX4
-:/^5/w! XX5
-:/^6/w! XX6
-:/^7/w! XX7
-:/^8/w! XX8
-:/^9/w! XX9
-:/^10/w! XX10
 :/^unix/;/eof/-1w! XXUnix
 :/^dos/;/eof/-1w! XXDos
 :set bin noeol
 :$w! XXMac
+Gonoeol
+:$w! XXEol
 :set nobin eol
+:enew!
 :bwipe XXUnix XXDos XXMac
 :" create mixed format files
 :if has("vms")
 : !copy XXUnix,XXDos XXUxDs.
 : !copy XXUnix,XXMac XXUxMac.
 : !copy XXDos,XXMac  XXDosMac.
+: !copy XXMac,XXEol  XXMacEol.
 : !copy XXUnix,XXDos,XXMac XXUxDsMc.
 :elseif has("win32")
 : !copy /b XXUnix+XXDos XXUxDs
 : !copy /b XXUnix+XXMac XXUxMac
 : !copy /b XXDos+XXMac XXDosMac
+: !copy /b XXMac+XXEol XXMacEol
 : !copy /b XXUnix+XXDos+XXMac XXUxDsMc
 :else
 : !cat XXUnix XXDos >XXUxDs
 : !cat XXUnix XXMac >XXUxMac
 : !cat XXDos XXMac >XXDosMac
+: !cat XXMac XXEol >XXMacEol
 : !cat XXUnix XXDos XXMac >XXUxDsMc
 :endif
 :"
@@ -102,26 +98,48 @@ STARTTEST
 :e! XXDosMac
 :w! XXtt53
 :bwipe XXDosMac
+:e! XXEol
+ggO=&ffs
+:=&ff
+:w! XXtt54
+:bwipe XXEol
 :set fileformats=dos,mac
 :e! XXUxDs
 :w! XXtt61
 :bwipe XXUxDs
 :e! XXUxMac
-:w! XXtt62
+ggO=&ffs
+:=&ff
+:w! XXtt62
 :bwipe XXUxMac
 :e! XXUxDsMc
 :w! XXtt63
 :bwipe XXUxDsMc
+:e! XXMacEol
+ggO=&ffs
+:=&ff
+:w! XXtt64
+:bwipe XXMacEol
 :"
 :" try reading and writing with 'fileformats' set to three formats
 :set fileformats=unix,dos,mac
 :e! XXUxDsMc
 :w! XXtt71
 :bwipe XXUxDsMc
+:e! XXEol
+ggO=&ffs
+:=&ff
+:w! XXtt72
+:bwipe XXEol
 :set fileformats=mac,dos,unix
 :e! XXUxDsMc
 :w! XXtt81
 :bwipe XXUxDsMc
+:e! XXEol
+ggO=&ffs
+:=&ff
+:w! XXtt82
+:bwipe XXEol
 :" try with 'binary' set
 :set fileformats=mac,unix,dos
 :set binary
@@ -155,11 +173,15 @@ ggdGaEND:w >>XXtt01
 :w >>XXtt51
 :w >>XXtt52
 :w >>XXtt53
+:w >>XXtt54
 :w >>XXtt61
 :w >>XXtt62
 :w >>XXtt63
+:w >>XXtt64
 :w >>XXtt71
+:w >>XXtt72
 :w >>XXtt81
+:w >>XXtt82
 :w >>XXtt91
 :w >>XXtt92
 :w >>XXtt93
@@ -186,11 +208,15 @@ Go4:$r XXtt41
 Go5:$r XXtt51
 :$r XXtt52
 :$r XXtt53
+:$r XXtt54
 Go6:$r XXtt61
 :$r XXtt62
 :$r XXtt63
+:$r XXtt64
 Go7:$r XXtt71
+:$r XXtt72
 Go8:$r XXtt81
+:$r XXtt82
 Go9:$r XXtt91
 :$r XXtt92
 :$r XXtt93
@@ -200,17 +226,6 @@ Go10:$r XXUnix
 :qa!
 ENDTEST
 
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-
 unix
 unix
 eof
--- a/src/testdir/test30.ok
+++ b/src/testdir/test30.ok
@@ -70,12 +70,16 @@ END
 dos
 dos
 mac
mac
END
+unix,mac:unix
+noeol
+END
 6
 unix
 unix
 dos
 dos
 END
+dos,mac:dos
 unix
 unix
 mac
mac
@@ -86,6 +90,7 @@ dos
 dos
 mac
mac
 END
+dos,mac:mac
mac
mac
noeol
END
 7
 unix
 unix
@@ -93,6 +98,9 @@ dos
 dos
 mac
mac
 END
+unix,dos,mac:unix
+noeol
+END
 8
 unix
 unix
@@ -100,6 +108,7 @@ dos
 dos
 mac
mac
 END
+mac,dos,unix:mac
noeol
END
 9
 unix
 unix
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    643,
+/**/
     642,
 /**/
     641,