diff options
author | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 1999-12-09 15:48:36 +0000 |
---|---|---|
committer | Jacques Garrigue <garrigue at math.nagoya-u.ac.jp> | 1999-12-09 15:48:36 +0000 |
commit | b328a6a414a78c8c38ad2fac971f4d66b20c4995 (patch) | |
tree | 8d12ab157ad8f0cfaaedf4d971cb1ed568daeaf3 /otherlibs/labltk/browser/editor.ml | |
parent | 016ba4f8779e65c0d0e7386da8eb3424e061a258 (diff) |
last refinements
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2682 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/labltk/browser/editor.ml')
-rw-r--r-- | otherlibs/labltk/browser/editor.ml | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/otherlibs/labltk/browser/editor.ml b/otherlibs/labltk/browser/editor.ml index 26df2673b..1074fb14a 100644 --- a/otherlibs/labltk/browser/editor.ml +++ b/otherlibs/labltk/browser/editor.ml @@ -151,10 +151,10 @@ let send_phrase txt = index:(`Mark"insert",[]) then begin after := true; - if !block_start <> [] then begin - start := List.hd !block_start; - block_start := [] - end + let anon, real = + List.partition !block_start pred:(fun x -> x = -1) in + block_start := anon; + if real <> [] then start := List.hd real; end; match token with CLASS | EXTERNAL | EXCEPTION | FUNCTOR @@ -167,7 +167,9 @@ let send_phrase txt = if !after then pend := Lexing.lexeme_start buffer else start := pos else block_start := pos :: List.tl !block_start - | BEGIN | OBJECT | STRUCT | SIG -> + | BEGIN | OBJECT -> + block_start := -1 :: !block_start + | STRUCT | SIG -> block_start := Lexing.lexeme_end buffer :: !block_start | END -> if !block_start = [] then |