Keine Ahnung, was du da machst, aber Windows und Mint 18.1 sortieren in diesem Programm wie erwartet:
Ich habe es nochmals probiert, aber diesmal mit Wine und FPC 3.0.2, da bekomme ich das gleiche Ergebniss wie du.
Nativ habe ich unter Mint FPC 3.1.1 , vielleicht liegt es daran.
Ich habe genauer geguckt, bei Pascal-Versionen landen beim TStringList.QuickSort und dies sieht identisch aus.
Einziger Unterschied den ich erkenne kann, bei 3.0.2 fängt die Funktion bei Zeile 1115 an und bei 3.1.1 bei Zeile 1263.
Ich habe noch etwas gefunden:
FPC 3.0.2:
Code: Alles auswählen
function AnsiCompareStr(const S1, S2: string): integer;{$ifdef SYSUTILSINLINE}inline;{$endif}
begin
result:=widestringmanager.CompareStrAnsiStringProc(s1,s2);
end;
function AnsiCompareText(const S1, S2: string): integer;{$ifdef SYSUTILSINLINE}inline;{$endif}
begin
result:=widestringmanager.CompareTextAnsiStringProc(s1,s2);
end;
FPC 3.1.1:
Code: Alles auswählen
function AnsiCompareStr(const S1, S2: string): integer;{$ifdef SYSUTILSINLINE}inline;{$endif}
begin
// CAPSIZEINT is no-op if Sizeof(Sizeint)<=SizeOF(Integer)
result:=CAPSIZEINT(widestringmanager.CompareStrAnsiStringProc(s1,s2));
end;
function AnsiCompareText(const S1, S2: string): integer;{$ifdef SYSUTILSINLINE}inline;{$endif}
begin
// CAPSIZEINT is no-op if Sizeof(Sizeint)<=SizeOF(Integer)
result:=CAPSIZEINT(widestringmanager.CompareTextAnsiStringProc(s1,s2));
end; \0