diff --git a/src/fname.mll b/src/fname.mll index 08cb1cf..c92154d 100644 --- a/src/fname.mll +++ b/src/fname.mll @@ -53,12 +53,17 @@ and lex_filename buf = parse { let parse s = - let filename, _date = + let filename, date = match String.cut '\t' s with | None -> (s, "") | Some x -> x in - if filename = "/dev/null" then + if filename = "/dev/null" || + String.is_prefix ~prefix:"1970-" date || + String.is_prefix ~prefix:"1969-" date || + String.is_suffix ~suffix:" 1970" date || + String.is_suffix ~suffix:" 1969" date then + (* See https://github.com/hannesm/patch/issues/8 *) Ok None else let lexbuf = Lexing.from_string filename in diff --git a/test/test.ml b/test/test.ml index ffe9e75..6cddc95 100644 --- a/test/test.ml +++ b/test/test.ml @@ -899,7 +899,7 @@ diff -ruaN a/test b/test |} let macos_diff_N_deletion = - operations [Patch.Edit ("a/test", "b/test")] macos_diff_N_deletion + operations [Patch.Delete "a/test"] macos_diff_N_deletion let openbsd_diff_N_deletion = {|\ diff -ruaN a/test b/test @@ -910,7 +910,7 @@ diff -ruaN a/test b/test |} let openbsd_diff_N_deletion = - operations [Patch.Edit ("a/test", "b/test")] openbsd_diff_N_deletion + operations [Patch.Delete "a/test"] openbsd_diff_N_deletion let gnu_diff_N_deletion = {|\ diff -ruaN a/test b/test @@ -921,7 +921,7 @@ diff -ruaN a/test b/test |} let gnu_diff_N_deletion = - operations [Patch.Edit ("a/test", "b/test")] gnu_diff_N_deletion + operations [Patch.Delete "a/test"] gnu_diff_N_deletion let busybox_diff_N_deletion = {|\ --- a/test