Ver Fonte

Fix incorrect filename parsing

When the file creation year, file size and filename contains the same
substring the parsed filename should contains only the correct filename
Svett Ralchev há 9 anos atrás
pai
commit
08566066b1
2 ficheiros alterados com 4 adições e 1 exclusões
  1. 2 1
      ftp.go
  2. 2 0
      parse_test.go

+ 2 - 1
ftp.go

@@ -4,6 +4,7 @@ package ftp
 import (
 	"bufio"
 	"errors"
+	"fmt"
 	"io"
 	"net"
 	"net/textproto"
@@ -342,7 +343,7 @@ func parseLsListLineName(line string, fields []string, offset int) string {
 		return ""
 	}
 
-	match := fields[offset-1]
+	match := fmt.Sprintf(" %s ", fields[offset-1])
 	index := strings.Index(line, match)
 	if index == -1 {
 		return ""

+ 2 - 0
parse_test.go

@@ -24,6 +24,8 @@ var listTests = []line{
 	// UNIX ls -l style
 	{"drwxr-xr-x    3 110      1002            3 Dec 02  2009 pub", "pub", 0, EntryTypeFolder, time.Date(2009, time.December, 2, 0, 0, 0, 0, time.UTC)},
 	{"drwxr-xr-x    3 110      1002            3 Dec 02  2009 p u b", "p u b", 0, EntryTypeFolder, time.Date(2009, time.December, 2, 0, 0, 0, 0, time.UTC)},
+	{"-rw-r--r--   1 marketwired marketwired    12016 Mar 16  2016 2016031611G087802-001.newsml", "2016031611G087802-001.newsml", 12016, EntryTypeFile, time.Date(2016, time.March, 16, 0, 0, 0, 0, time.UTC)},
+
 	{"-rwxr-xr-x    3 110      1002            1234567 Dec 02  2009 fileName", "fileName", 1234567, EntryTypeFile, time.Date(2009, time.December, 2, 0, 0, 0, 0, time.UTC)},
 	{"lrwxrwxrwx   1 root     other          7 Jan 25 00:17 bin -> usr/bin", "bin -> usr/bin", 0, EntryTypeLink, time.Date(thisYear, time.January, 25, 0, 17, 0, 0, time.UTC)},