]> git.lizzy.rs Git - micro.git/commitdiff
Count replacements in replaceall correctly
authorZachary Yedidia <zyedidia@gmail.com>
Sat, 3 Mar 2018 00:32:23 +0000 (19:32 -0500)
committerZachary Yedidia <zyedidia@gmail.com>
Sat, 3 Mar 2018 00:32:23 +0000 (19:32 -0500)
Fixes #1055

cmd/micro/command.go

index 9cbd32590f6bdc333a319850608fe6cd2b7107cc..89f2d22fd586f85f8adc6c98f7cb31cf0d20a12d 100644 (file)
@@ -590,13 +590,15 @@ func Replace(args []string) {
        replaceAll := func() {
                var deltas []Delta
                for i := 0; i < view.Buf.LinesNum(); i++ {
-                       newText := regex.ReplaceAll(view.Buf.lines[i].data, replaceBytes)
+                       newText := regex.ReplaceAllFunc(view.Buf.lines[i].data, func(in []byte) []byte {
+                               found++
+                               return replaceBytes
+                       })
 
                        from := Loc{0, i}
                        to := Loc{utf8.RuneCount(view.Buf.lines[i].data), i}
 
                        deltas = append(deltas, Delta{string(newText), from, to})
-                       found++
                }
                view.Buf.MultipleReplace(deltas)
        }