From: Jason Woofenden Date: Mon, 7 Mar 2016 01:24:28 +0000 (-0500) Subject: bugfix in ws dedup when rm 1st space in inline X-Git-Url: https://jasonwoof.com/gitweb/?p=peach-html5-editor.git;a=commitdiff_plain;h=e6a74ba720a95ea89a2c244ea08437fd23e55c1c bugfix in ws dedup when rm 1st space in inline --- 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)