Skip to content

Commit 990919f

Browse files
committed
feat: let Get_Line respect a Line_Terminator_Set
1 parent 667a0ab commit 990919f

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

source/streams/implementation/vss-text_streams-file_input.adb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,11 @@ package body VSS.Text_Streams.File_Input is
9898
--------------
9999

100100
procedure Get_Line
101-
(Self : in out File_Input_Text_Stream'Class;
102-
Line : out VSS.Strings.Virtual_String'Class;
103-
Success : out Boolean)
101+
(Self : in out File_Input_Text_Stream'Class;
102+
Line : out VSS.Strings.Virtual_String'Class;
103+
Success : out Boolean;
104+
Terminators : VSS.Strings.Line_Terminator_Set :=
105+
VSS.Strings.New_Line_Function)
104106
is
105107

106108
use type VSS.Characters.Virtual_Character;
@@ -120,7 +122,9 @@ package body VSS.Text_Streams.File_Input is
120122
At_EOL : Boolean := False;
121123
begin
122124
loop
123-
if Last_Character.Element = VSS.Characters.Latin.Line_Feed then
125+
if Self.Buffer.Slice (First_Character, Last_Character)
126+
.Ends_With (Terminators)
127+
then
124128
At_EOL := True;
125129
exit;
126130
end if;

source/streams/vss-text_streams-file_input.ads

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ package VSS.Text_Streams.File_Input is
3434
-- Encoding can be set only when file is not open.
3535

3636
procedure Get_Line
37-
(Self : in out File_Input_Text_Stream'Class;
38-
Line : out VSS.Strings.Virtual_String'Class;
39-
Success : out Boolean);
37+
(Self : in out File_Input_Text_Stream'Class;
38+
Line : out VSS.Strings.Virtual_String'Class;
39+
Success : out Boolean;
40+
Terminators : VSS.Strings.Line_Terminator_Set :=
41+
VSS.Strings.New_Line_Function);
4042

4143
procedure Close (Self : in out File_Input_Text_Stream'Class);
4244
-- Close file.

0 commit comments

Comments
 (0)