reverted previous fix, it was bogus; applied similar changes at better location
authorbananeweizen <bananeweizen>
Wed, 4 Jan 2006 23:09:54 +0000 (23:09 +0000)
committerbananeweizen <bananeweizen>
Wed, 4 Jan 2006 23:09:54 +0000 (23:09 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/formatter/CodeFormatter.java

index 434287e..281ee1a 100644 (file)
@@ -1108,6 +1108,13 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
    * @deprecated There is no need to retrieve the mapped positions anymore.
    */
   public int[] getMappedPositions() {
+       if (null!=mappedPositions) {
+               for (int i=0;i<mappedPositions.length;i++) {
+                       if (mappedPositions[i]>=formattedSource.length()) {
+                               mappedPositions[i]=formattedSource.length()-1;
+                       }
+               }
+       }
     return mappedPositions;
   }
 
@@ -2479,7 +2486,7 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
       if (posToMap < 0 || posToMap >= sourceLength) {
         // protection against out of bounds position
         if (posToMap == sourceLength) {
-          mappedPositions[indexToMap] = formattedSource.length()-1;
+          mappedPositions[indexToMap] = formattedSource.length();
         }
         indexToMap = positionsToMap.length; // no more mapping
         return;
@@ -2492,9 +2499,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
         } else {
           mappedPositions[indexToMap] = posToMap + globalDelta + lineDelta;
         }
-        if (mappedPositions[indexToMap]>=formattedSource.length()) {
-               mappedPositions[indexToMap]=formattedSource.length()-1;
-        }
       }
       indexToMap++;
     }
@@ -2506,9 +2510,6 @@ public class CodeFormatter implements ITerminalSymbols, ICodeFormatter {
     while (indexInMap < mappedPositions.length && startPosition <= mappedPositions[indexInMap]
         && mappedPositions[indexInMap] < endPosition && indexInMap < indexToMap) {
       mappedPositions[indexInMap] += splitDelta;
-      if (mappedPositions[indexInMap]>=formattedSource.length()) {
-       mappedPositions[indexInMap]=formattedSource.length()-1;
-      }
       indexInMap++;
     }
   }