TStringList - баг или фича ?

В основном не использовал классы при загрузке/сохранении, но решил попробовать.
Возник вопрос, почему TStringList сохраняет лишнюю строку. Или так он и задуман ?
Если в файле a.txt нет ничего, то и b.txt имеет нулевую длину. Но если в a.txt добавить хоть одну латинскую букву, то в b.txt появится лишний перевод строки. Или это особенность моей версии компилятора ?
Возник вопрос, почему TStringList сохраняет лишнюю строку. Или так он и задуман ?
- Код: Выделить всё
{$MODE OBJFPC}{$H+}
uses classes;
var
Lines: TStringList;
begin
Lines := TStringList.Create;
Lines.LoadFromFile('a.txt');
Lines.SaveToFile('b.txt');
Lines.Free;
end.
Если в файле a.txt нет ничего, то и b.txt имеет нулевую длину. Но если в a.txt добавить хоть одну латинскую букву, то в b.txt появится лишний перевод строки. Или это особенность моей версии компилятора ?