From e516b1c04629ef5854ab90825e8084f08566f000 Mon Sep 17 00:00:00 2001
From: Marijn Haverbeke <marijn@haverbeke.nl>
Date: Mon, 10 Jul 2017 21:44:15 +0200
Subject: [PATCH] [searchcursor addon] Fix bug in binary search in adjustPos

Issue #4839
---
 addon/search/searchcursor.js | 2 +-
 test/search_test.js          | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/addon/search/searchcursor.js b/addon/search/searchcursor.js
index 03db843c..eccd81aa 100644
--- a/addon/search/searchcursor.js
+++ b/addon/search/searchcursor.js
@@ -133,7 +133,7 @@
       var mid = (min + max) >> 1
       var len = foldFunc(orig.slice(0, mid)).length
       if (len == pos) return mid
-      else if (len > pos) max = mid - 1
+      else if (len > pos) max = mid
       else min = mid + 1
     }
   }
diff --git a/test/search_test.js b/test/search_test.js
index a2509043..e3188de5 100644
--- a/test/search_test.js
+++ b/test/search_test.js
@@ -77,8 +77,9 @@
 
   test("normalize", function() {
     if (!String.prototype.normalize) return
-    var doc = new CodeMirror.Doc("yılbaşı\n수 있을까")
+    var doc = new CodeMirror.Doc("yılbaşı\n수 있을까\nLe taux d'humidité à London")
     run(doc, "s", false, 0, 5, 0, 6)
     run(doc, "이", false, 1, 2, 1, 3)
+    run(doc, "a", false, 0, 4, 0, 5, 2, 4, 2, 5, 2, 19, 2, 20)
   })
 })();
-- 
GitLab