fixed special case;
authorimmler@in.tum.de
Thu, 27 Aug 2009 10:51:09 +0200
changeset 346703f20110dfe2f
parent 34669 a6554ba34ab2
child 34671 51e98c01cbd6
fixed special case;
fixed conversion of offsets
src/Tools/jEdit/src/proofdocument/Change.scala
src/Tools/jEdit/src/proofdocument/ProofDocument.scala
     1.1 --- a/src/Tools/jEdit/src/proofdocument/Change.scala	Thu Aug 27 10:51:09 2009 +0200
     1.2 +++ b/src/Tools/jEdit/src/proofdocument/Change.scala	Thu Aug 27 10:51:09 2009 +0200
     1.3 @@ -15,7 +15,8 @@
     1.4  
     1.5  case class Insert(start: Int, added: String) extends Edit {
     1.6    def from_where(x: Int) =
     1.7 -    if (start <= x && start + added.length <= x) x - added.length else x
     1.8 +    if (start > x) x
     1.9 +    else (x - added.length) max start
    1.10  
    1.11    def where_to(x: Int) =
    1.12      if (start <= x) x + added.length else x
    1.13 @@ -26,7 +27,8 @@
    1.14      if (start <= x) x + removed.length else x
    1.15  
    1.16    def where_to(x: Int) =
    1.17 -    if (start <= x && start + removed.length <= x) x - removed.length else x
    1.18 +    if (start > x) x
    1.19 +    else (x - removed.length) max start
    1.20  }
    1.21  // TODO: merge multiple inserts?
    1.22  
     2.1 --- a/src/Tools/jEdit/src/proofdocument/ProofDocument.scala	Thu Aug 27 10:51:09 2009 +0200
     2.2 +++ b/src/Tools/jEdit/src/proofdocument/ProofDocument.scala	Thu Aug 27 10:51:09 2009 +0200
     2.3 @@ -209,11 +209,15 @@
     2.4        } else Nil
     2.5  
     2.6      val split_end =
     2.7 -      if (after_change.isDefined && cmd_after_change.isDefined) {
     2.8 +      if (after_change.isDefined) {
     2.9          val unchanged = new_tokens.dropWhile(_ != after_change.get)
    2.10 -        if (unchanged.exists(_ == cmd_after_change.get.tokens.first))
    2.11 -          unchanged.takeWhile(_ != cmd_after_change.get.tokens.first).toList
    2.12 -        else Nil
    2.13 +        if(cmd_after_change.isDefined) {
    2.14 +          if (unchanged.exists(_ == cmd_after_change.get.tokens.first))
    2.15 +            unchanged.takeWhile(_ != cmd_after_change.get.tokens.first).toList
    2.16 +          else Nil
    2.17 +        } else {
    2.18 +          unchanged
    2.19 +        }
    2.20        } else Nil
    2.21  
    2.22      val rescan_begin =