On 18/08/2019 11:17, Bo Berglund via lazarus wrote:
So this Lazarus installer successfully deposits a working Lazarus
*without* the initial message about disabling the pascal scripting.

And Lazarus options seems to be exactly like the 2.0.4 I installed
previously.
So the message I previously saw about deactivating scripting seems to
be an *installer* bug when in fact the installation has succeeded all
the time...
I doubt it. Nothing was fixed that could have triggered this.
Most likely some condition changed. Maybe simple because of the code grew a few bytes.... Something like this normally points to incorrect mem access. But running in valgrind revealed nothing.

Of course PascalScript has different code for each target CPU and OS. (linux vs win // but not diff version of win afaik).


Now after getting 2.0.5 working in Win7 I returned to the RPi4

The editormacroscript.xml now contains this:

<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
   <EMS>
     <Settings SelfTestError="Replace All [Exp: True / Got: False /
Info: False  / SynTxt: Test abc abcde 123
]" SelfTestFailed="1"/>
   </EMS>
</CONFIG>

Does this explain what is wrong on the RPi4 installation?
Unfortunately not. This will require deeper debugging. Potentially quite a lot.

I do not have access to an RP at the moment.  I planed to set one up (or get QEMU to work) for more than 2 years now... But didn't find the time. So that may still be a long time before I get to it.

If you want to go on trying to see if we can find anything, then please open
  components\macroscript\emscriptclasses.pas
around line 555
replace TEmsSynWrapper.EMS_SearchReplace
with:

function TEmsSynWrapper.EMS_SearchReplace(ASearch, AReplace: string;
  AOptions: TSynSearchOptions): integer;
begin
debugln(['*** EMS_SearchReplace ASearch ', ord(ssoReplaceAll), ' / ', integer([ssoReplaceAll])]); debugln(['*** EMS_SearchReplace ', Pointer(ASearch), ' / ', Pointer(AReplace), ' / ', integer(AOptions), ' / ', Pointer(self)]);
debugln(['*** EMS_SearchReplace ASearch ', ASearch, ' / ', AReplace]);
debugln(['*** EMS_SearchReplace ASearch ', length(ASearch), ' / ', length(AReplace)]); debugln(['*** EMS_SearchReplace ASearch ', RawByteString(ASearch), ' / ', RawByteString(AReplace)]); debugln(['*** EMS_SearchReplace ASearch ', StringCodePage((ASearch)), ' / ', StringCodePage((AReplace))]); debugln(['*** EMS_SearchReplace ASearch ', StringCodePage(RawByteString(ASearch)), ' / ', StringCodePage(RawByteString(AReplace))]); debugln(['*** EMS_SearchReplace ASearch ', self.Text, ' / ', dbgs(CaretXY)]);
  Result := SearchReplace(ASearch, AReplace, AOptions);
debugln(['*** EMS_SearchReplace ASearch ', Result]);
debugln(['*** EMS_SearchReplace ASearch ', self.Text, ' / ', dbgs(CaretXY)]);
end;

Start lazarus from console, so you can get the output. Copy the output.
The output only matters, if the error occurs. So self-testing must be re-enabled.

--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to