@@ -6446,30 +6446,34 @@ package body Src_Editor_Buffer is
64466446 -- Start_Line and End_Line.
64476447
64486448 -- Search upward for the first editable line
6449- Search_Line := Start_Line;
6450- while From_Line = 0 and then Search_Line < End_Line loop
6451- Search_Line := Search_Line + 1 ;
6452- -- Gint and Buffer_Line_Type are off by 1
6449+ -- We have tested Start_Line + 1, the next one is Start_Line + 2
6450+ Search_Line := Start_Line + 2 ;
6451+ while From_Line = 0 and then Search_Line <= End_Line loop
64536452 From_Line :=
64546453 Get_Editable_Line
6455- (Buffer, Buffer_Line_Type (Search_Line + 1 ));
6454+ (Buffer, Buffer_Line_Type (Search_Line));
6455+ Search_Line := Search_Line + 1 ;
64566456 end loop ;
64576457
64586458 -- Search downward for the last editable line
6459+ -- We have tested End_Line + 1, the previous one is End_Line
64596460 Search_Line := End_Line;
6460- while To_Line = 0 and then Search_Line > Start_Line loop
6461- Search_Line := Search_Line - 1 ;
6462- -- Gint and Buffer_Line_Type are off by 1
6461+ while To_Line = 0 and then Search_Line >= Start_Line loop
64636462 To_Line :=
64646463 Get_Editable_Line
6465- (Buffer, Buffer_Line_Type (Search_Line + 1 ));
6464+ (Buffer, Buffer_Line_Type (Search_Line));
6465+ Search_Line := Search_Line - 1 ;
64666466 end loop ;
64676467
6468+ Trace (Me, " End_Line: " & End_Line'Image);
6469+ Trace (Me, " Search_Line: " & Search_Line'Image);
6470+ Trace (Me, " To_Line: " & To_Line'Image);
6471+
64686472 -- Include all characters from the last line
64696473 To_Column :=
6470- Buffer.Editor_Buffer.New_Location (Integer (To_Line))
6471- .End_Of_Line
6472- .Column;
6474+ Buffer.Editor_Buffer.New_Location
6475+ (Line => Integer (To_Line),
6476+ Column => 1 ).End_Of_Line .Column;
64736477 end ;
64746478 end if ;
64756479
@@ -6619,11 +6623,13 @@ package body Src_Editor_Buffer is
66196623 Indent_Params : Indent_Parameters;
66206624 begin
66216625 if not Buffer.Writable then
6626+ Trace (Me, " Buffer not writable" );
66226627 End_Action (Buffer);
66236628 return False;
66246629 end if ;
66256630
66266631 if not Get_Language_Context (Lang).Can_Indent then
6632+ Trace (Me, " Language Can't Indent" );
66276633 return False;
66286634 end if ;
66296635
0 commit comments