Open jarroddavis68 opened 10 months ago
I created a simple .h file with just the struct you mentioned above. When I translate this using version 1.4.1 of Chet, I get the following output (as expected):
unit test;
{ This unit is automatically generated by Chet:
https://github.com/neslib/Chet }
{$MINENUMSIZE 4}
interface
const
{$IF Defined(WIN32)}
LIB_TEST = 'Test_win32.dll';
_PU = '';
{$ELSE}
{$MESSAGE Error 'Unsupported platform'}
{$ENDIF}
type
// Forward declarations
Punz_file_info_s = ^unz_file_info_s;
unz_file_info_s = record
version: Integer;
version_needed: Integer;
flag: Integer;
compression_method: Integer;
dosDate: Integer;
crc: Integer;
compressed_size: Integer;
uncompressed_size: Integer;
size_filename: Integer;
size_file_extra: Integer;
size_file_comment: Integer;
disk_num_start: Integer;
internal_fa: Integer;
external_fa: Integer;
tmu_date: Integer;
end;
unz_file_info = unz_file_info_s;
implementation
end.
It correctly translated all the fields in the struct. Can you create a reproducible scenario, or send me the complete project?
Ahh, I think I see what is going on. It would seem the post processing script command CreateDynamicImport(0) is causing the issue. I will look into this. Sorry for the confusion. In my project I had it defined.
Ok, I've identified the source of the problem, until I can issue a PR, if you are using post processing, just replace:
RemoveAllLines('external', 2);
with RemoveAllLines('external ', 2);
in function TScriptStringList.CreateDynamicImport(aType: Integer): Boolean;
If I have a struct such as this:
when converted, it will create this and cut off the last two fields?? Do you limit the total number of fields or what is going on with this? How can I fix it?