summaryrefslogtreecommitdiffstats
path: root/otherlibs/labltk/browser/editor.ml
diff options
context:
space:
mode:
authorJacques Garrigue <garrigue at math.nagoya-u.ac.jp>1999-12-09 15:48:36 +0000
committerJacques Garrigue <garrigue at math.nagoya-u.ac.jp>1999-12-09 15:48:36 +0000
commitb328a6a414a78c8c38ad2fac971f4d66b20c4995 (patch)
tree8d12ab157ad8f0cfaaedf4d971cb1ed568daeaf3 /otherlibs/labltk/browser/editor.ml
parent016ba4f8779e65c0d0e7386da8eb3424e061a258 (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.ml12
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