From a0945b1210100d17e8ebca66ca104cbbc406dac4 Mon Sep 17 00:00:00 2001 From: Timur Ismagilov Date: Sat, 1 Jun 2024 23:10:09 +0300 Subject: [PATCH] Fix the notorious renaming bug Fixes: #226 #220 --- shroom/rename.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/shroom/rename.go b/shroom/rename.go index 4f7205c..e0d7860 100644 --- a/shroom/rename.go +++ b/shroom/rename.go @@ -7,8 +7,10 @@ import ( "github.com/bouncepaw/mycorrhiza/categories" "github.com/bouncepaw/mycorrhiza/cfg" "github.com/bouncepaw/mycorrhiza/files" + "path" "path/filepath" "regexp" + "strings" "github.com/bouncepaw/mycorrhiza/history" "github.com/bouncepaw/mycorrhiza/hyphae" @@ -41,8 +43,10 @@ func Rename(oldHypha hyphae.ExistingHypha, newName string, recursive bool, leave var ( re = regexp.MustCompile(`(?i)` + oldHypha.CanonicalName()) replaceName = func(str string) string { - // Can we drop that util.CanonicalName? - return re.ReplaceAllString(util.CanonicalName(str), newName) + namepart := strings.TrimPrefix(str, files.HyphaeDir()) + // Can we drop that util.CanonicalName?: + replaced := re.ReplaceAllString(util.CanonicalName(namepart), newName) + return path.Join(files.HyphaeDir(), replaced) } hyphaeToRename = findHyphaeToRename(oldHypha, recursive) renameMap, err = renamingPairs(hyphaeToRename, replaceName) @@ -75,7 +79,7 @@ func Rename(oldHypha hyphae.ExistingHypha, newName string, recursive bool, leave for _, h := range hyphaeToRename { var ( oldName = h.CanonicalName() - newName = replaceName(oldName) + newName = re.ReplaceAllString(oldName, newName) ) hyphae.RenameHyphaTo(h, newName, replaceName) backlinks.UpdateBacklinksAfterRename(h, oldName)