From e6a74ba720a95ea89a2c244ea08437fd23e55c1c Mon Sep 17 00:00:00 2001 From: Jason Woofenden Date: Sun, 6 Mar 2016 20:24:28 -0500 Subject: [PATCH] bugfix in ws dedup when rm 1st space in inline --- editor.coffee | 12 +++++++++--- editor_tests_compiled.html | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/editor.coffee b/editor.coffee index da7b393..45d505b 100644 --- a/editor.coffee +++ b/editor.coffee @@ -352,8 +352,8 @@ tree_dedup_space = (tree) -> if n.type is TYPE_TEXT i = 0 while i < n.text.length # don't foreach, cb might remove chars - removed = cb n, i - unless removed + advance = cb n, i + if advance i += 1 if n.type is TYPE_TAG block = is_display_block n.el @@ -434,8 +434,14 @@ tree_dedup_space = (tree) -> next = n next_i = i next_px = null + advance = true if cur? removed = operate() + # don't advance (to the next character next time) if we removed a + # character from the same text node as ``next``, because doing so + # renumbers the indexes in that string + if removed and cur is next + advance = false else removed = false unless removed @@ -445,7 +451,7 @@ tree_dedup_space = (tree) -> cur = next cur_i = next_i cur_px = next_px - return removed + return advance queue null iterate tree, queue queue null diff --git a/editor_tests_compiled.html b/editor_tests_compiled.html index 13338cf..8a51f25 100644 --- a/editor_tests_compiled.html +++ b/editor_tests_compiled.html @@ -16,7 +16,7 @@

Peach HTML5 Editor test page (compiled version)

This version of the editor test page requires that you've compiled all the source files. (Just run make).

-

HTML view. Changes here propagate when you remove your cursor (press tab or click outside)