insertTags() now ignores any final space character in the selection (normally caused...
authorMr. E23 <e23@users.mediawiki.org>
Mon, 2 Feb 2004 11:57:30 +0000 (11:57 +0000)
committerMr. E23 <e23@users.mediawiki.org>
Mon, 2 Feb 2004 11:57:30 +0000 (11:57 +0000)
stylesheets/wikibits.js

index a76aeb2..d7dcf7a 100644 (file)
@@ -126,14 +126,24 @@ function insertTags(tagOpen, tagClose, sampleText) {
                var theSelection = document.selection.createRange().text;
                if(!theSelection) { theSelection=sampleText;}
                txtarea.focus();
-               document.selection.createRange().text = tagOpen + theSelection + tagClose;
+               if(theSelection.charAt(theSelection.length - 1) == " "){// exclude ending space char, if any
+                       theSelection = theSelection.substring(0, theSelection.length - 1);
+                       document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
+               } else {
+                       document.selection.createRange().text = tagOpen + theSelection + tagClose;
+               }
        // Mozilla
        } else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
                var startPos = txtarea.selectionStart;
                var endPos = txtarea.selectionEnd;
                var myText = (txtarea.value).substring(startPos, endPos);
                if(!myText) { myText=sampleText;}
-               txtarea.value = txtarea.value.substring(0, startPos) + tagOpen + myText + tagClose + txtarea.value.substring(endPos, txtarea.value.length);
+               if(myText.charAt(myText.length - 1) == " "){ // exclude ending space char, if any
+                       subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " "; 
+               } else {
+                       subst = tagOpen + myText + tagClose; 
+               }
+               txtarea.value = txtarea.value.substring(0, startPos) + subst + txtarea.value.substring(endPos, txtarea.value.length);
                txtarea.focus();
                var cPos=startPos+(tagOpen.length+myText.length+tagClose.length);
                txtarea.selectionStart=cPos;