Catrope has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/64975


Change subject: Fix internal node weirdness
......................................................................

Fix internal node weirdness

* In getDataElementOrSlice(), we were slicing one too far
* When encountering a closing for an internal node, don't traverse
  up. Doing this caused weird bugs, like inserting text where it didn't
  belong in some cases an exceptions in others, but these issues were
  parly masked by the off-by-one error in the data slice.

Change-Id: Ieda9afa95b7c1953d09e391774350a9b4148c2fe
---
M modules/ve/dm/ve.dm.Converter.js
1 file changed, 5 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/75/64975/1

diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js
index 0bb23bd..d221ed7 100644
--- a/modules/ve/dm/ve.dm.Converter.js
+++ b/modules/ve/dm/ve.dm.Converter.js
@@ -977,7 +977,7 @@
                                throw new Error( 'Unbalanced data: looking for 
closing /' +
                                        dataElement.type );
                        }
-                       dataSlice = data.slice( i, j + 1 );
+                       dataSlice = data.slice( i, j );
                } else {
                        dataSlice = data[i];
                }
@@ -1193,8 +1193,10 @@
 
                                delete domElement.veInternal;
                                delete domElement.lastOuterPost;
-                               // Ascend to parent node
-                               domElement = parentDomElement;
+                               // Ascend to parent node, except if this is an 
internal node
+                               if ( !ve.dm.nodeFactory.lookup( type ) || 
!ve.dm.nodeFactory.isNodeInternal( type ) ) {
+                                       domElement = parentDomElement;
+                               }
                        } else {
                                // Create node from data
                                if ( !this.metaItemFactory.lookup( data[i].type 
) ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/64975
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ieda9afa95b7c1953d09e391774350a9b4148c2fe
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <roan.katt...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to