From c1069052ae942d473a647c0b551c764405b6d6b2 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Tue, 25 Nov 2014 22:32:18 +0000 Subject: [PATCH] Fix versioner regexp's (fixes #1023) --- internal/versioner/util.go | 2 +- internal/versioner/versioner_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/versioner/util.go b/internal/versioner/util.go index b5984f80..5fdc08ce 100644 --- a/internal/versioner/util.go +++ b/internal/versioner/util.go @@ -28,7 +28,7 @@ func taggedFilename(name, tag string) string { return filepath.Join(dir, withoutExt+"~"+tag+ext) } -var tagExp = regexp.MustCompile(`~([^~.]+)(?:\.[^.]+)?$`) +var tagExp = regexp.MustCompile(`.*~([^~.]+)(?:\.[^.]+)?$`) // Returns the tag from a filename, whether at the end or middle. func filenameTag(path string) string { diff --git a/internal/versioner/versioner_test.go b/internal/versioner/versioner_test.go index a1bd8674..2a95aabd 100644 --- a/internal/versioner/versioner_test.go +++ b/internal/versioner/versioner_test.go @@ -25,10 +25,14 @@ func TestTaggedFilename(t *testing.T) { {filepath.Join("foo", "bar.baz"), "tag", filepath.Join("foo", "bar~tag.baz")}, {"bar.baz", "tag", "bar~tag.baz"}, {"bar", "tag", "bar~tag"}, + {"~$ufheft2.docx", "20140612-200554", "~$ufheft2~20140612-200554.docx"}, + {"alle~4.mgz", "20141106-094415", "alle~4~20141106-094415.mgz"}, // Parsing test only {"", "tag-only", "foo/bar.baz~tag-only"}, {"", "tag-only", "bar.baz~tag-only"}, + {"", "20140612-200554", "~$ufheft2.docx~20140612-200554"}, + {"", "20141106-094415", "alle~4.mgz~20141106-094415"}, } for _, tc := range cases {