On 10.10.2015 12:35, Michael Van Canneyt wrote:

Hi,

Mainly for Mattias, I suppose:

The SetString routine in the system unit has become a compiler procedure in 3.0:

{$ifdef FPC_HAS_CPSTRING}
Procedure fpc_setstring_ansistr_pansichar(out S : RawByteString; Buf : PAnsiChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
{$else}
Procedure SetString(out S : AnsiString; Buf : PAnsiChar; Len : SizeInt);
{$endif}
begin
  SetLength(S,Len);
{$ifdef FPC_HAS_CPSTRING}
  SetCodePage(S,cp,false);
{$endif}
  If (Buf<>Nil) then
    fpc_pchar_ansistr_intern_charmove(Buf,0,S,0,Len);
end;

This means the codetools are no longer able to find the SetString declaration.

Is there any way to fix this kind of things (i.e. find compiler procs) in the code tools ?

Yes, see TIdentCompletionTool.GatherPredefinedIdentifiers() in IdentCompletionTool.pas

Add this line there:

AddCompilerProcedure('SetString','out S:RawByteString;Buf:PAnsiChar;Len:SizeInt;cp:TSystemCodePage');

Ondrej

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to