@dicepd, impressive work so far!
I remember I tried to port it many years ago but failed. One reason may have been the limited support for delegated interfaces in FPC at that time. Not sure.
ESS-Model uses sophisticated data structure and language features IIRC. I must study the code again later.
Anyway you don't need to worry about Delphi compatibility. As Graeme mentioned this project has been dead for years and it does not support latest Delphi syntax. The Lazarus port may have a future if you and other people put effort to it.
I tested your "dev" branch. It works well on Linux when compiled for QT bindings. It parses EssModel.lpr well, lazbuild.lpr and startlazarus.lpr give errors. Did not try others yet.
When I tried with both Lazarus and ESS-Model compiled for GTK2 bindings, opening the File menu froze the whole system. I will try to find reasons for it.
I use KDE, bad behaving GTK2 programs can apparently freeze it.
Many GUI controls and labels seem not properly aligned. Non-standard font size may be used, too. Not sure. Somebody should go through the forms.
How is your policy with the branches? Is "master" the stable release branch? "dev" will be merged when it is ready? If I fix something, should I do it against master or dev? Just master could be enough when there are not a huge number of contributors.
I have guillemets working in linux in the dev branch, to do this I forced the code to UTF8.
I don't know if delphi will handle UTF8 files. if this could be a problem then may have to put certain consts in a UTF8 don't edit unless you are sure your editor can keep the UTF8 encoding.
What files are you referring to? Why would an editor not keep the UTF8 encoding? Pretty much all editors support Unicode.
What is the purpose of commit 7bd0f246755, "UTF8 test", in "dev" branch?
Gitk shows identical lines. Then I created a patch and opened it in an editor and saw this:
--- a/Integrator/View/RtfdDiagram/uRtfdComponents.pas
+++ b/Integrator/View/RtfdDiagram/uRtfdComponents.pas
@@ -1,6 +1,6 @@
{
ESS-Model
- Copyright (C) 2002 Eldean AB, Peter Söderman, Ville Krumlinde
+ Copyright (C) 2002 Eldean AB, Peter Söderman, Ville Krumlinde
Portions (C) 2016 Peter Dyson. Initial Lazarus port
This program is free software; you can redistribute it and/or
@@ -815,7 +815,7 @@ begin
{$IFDEF LINUX}
Self.Caption := '<<' + ACaption + '>>';
{$ELSE}
- Self.Caption := '«' + ACaption + '»';
+ Self.Caption := '«' + ACaption + '»';
{$ENDIF LINUX}
end;
--
Looks like you changed valid UTF-8 characters into something else, maybe Windows codepage.
Please consult me about any Unicode issue if needed.
As you know LCL inherently uses UTF-8. Most files in Windows and in other systems are saved as UTF-8.
Things work well when everything is Unicode. We should get rid of the old Windows codepages ASAP.