anchor.diff:    end;
   end;
   
  -procedure TfpgBaseTextEdit.DrawLine(const I, Y: Integer);
  +procedure TfpgBaseTextEdit.DrawLine(const ALineIndex, Y: Integer);
   var
     X: Integer;
     GSz: Integer;
  
positive.code:     procedure   HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: boolean); override;
      { -- local widget functions -- }
      procedure   DrawVisible; virtual;
      procedure   DrawLine(const I, Y: Integer); virtual;
      procedure   FormatLine(const I, X, Y: Integer);
      procedure   DrawCaret(const X, Y: Integer); virtual;
      { -- to be published --}
      property    FontDesc: string read GetFontDesc write SetFontDesc;
  
negative.code:   else
      GSz := GetClientRect.Left + 1; // gutter size if no gutter panel
  
    if ALineIndex < FLines.Count then
    begin
      X := -(HPos * FChrW) + GSz;
      FormatLine(ALineIndex, X, Y);
    end;
  end;
  
  procedure TfpgBaseTextEdit.FormatLine(const ALineIndex, X, Y: Integer);
  var
    S, CorrectS, SS: TfpgString;
    TI, Si, Ei, T: Integer;
  