Skip to content

Commit cecc040

Browse files
committed
Properly handle display of Icon\r files.
Related to #27
1 parent 651d623 commit cecc040

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

node/root.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ import (
66
"os"
77
"os/user"
88
"path/filepath"
9+
"regexp"
910
"syscall"
1011
"time"
1112
)
1213

14+
var whitespaceRegex = regexp.MustCompile(`\r|\r?\n`)
15+
1316
// Node - Contains all info necessary to render file or directory
1417
type Node struct {
1518
Icon rune
@@ -64,14 +67,16 @@ func New(file os.FileInfo) Node {
6467
}
6568

6669
func name(file os.FileInfo) string {
70+
baseName := file.Name()
71+
baseName = whitespaceRegex.ReplaceAllString(baseName, "?")
6772
if !file.IsDir() {
68-
return file.Name()
73+
return baseName
6974
}
70-
name := fmt.Sprintf("%s/", file.Name())
75+
name := fmt.Sprintf("%s/", baseName)
7176
// inject name for current and parent directories
7277
// TODO: properly inject names for non-current directories
73-
if file.Name() == "." || file.Name() == ".." {
74-
fullpath, _ := filepath.Abs(file.Name())
78+
if baseName == "." || baseName == ".." {
79+
fullpath, _ := filepath.Abs(baseName)
7580
name = fmt.Sprintf("%s [%s]", name, filepath.Base(fullpath))
7681
}
7782
return name

0 commit comments

Comments
 (0)