-- Abstract :
--
-- see spec.
--
-- Copyright (C) 2020 Free Software Foundation All Rights Reserved.
--
-- This library is free software; you can redistribute it and/or modify it
-- under terms of the GNU General Public License as published by the Free
-- Software Foundation; either version 3, or (at your option) any later
-- version. This library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE.
pragma License (Modified_GPL);
package body SAL.Unix_Text_IO is
use Ada.Streams.Stream_IO;
procedure Create
(File : in out File_Type;
Mode : in File_Mode := Out_File;
Name : in String := "";
Form : in String := "")
is begin
Create
(File.Stream,
(case Mode is
when In_File => Ada.Streams.Stream_IO.In_File,
when Out_File => Ada.Streams.Stream_IO.Out_File,
when Append_File => Ada.Streams.Stream_IO.Append_File),
Name, Form);
end Create;
procedure Close (File : in out File_Type)
is begin
Close (File.Stream);
end Close;
procedure Put (File : in File_Type; Item : in Character)
is begin
Write (File.Stream, (1 => Ada.Streams.Stream_Element (Character'Pos (Item))));
end Put;
procedure Put (File : in File_Type; Item : in String)
is
use Ada.Streams;
Stream_Item : constant Stream_Element_Array :=
(for I in Stream_Element_Offset (Item'First) .. Stream_Element_Offset (Item'Last) =>
Stream_Element (Character'Pos (Item (Integer (I)))));
begin
Write (File.Stream, Stream_Item);
end Put;
procedure Put_Line (File : in File_Type; Item : in String)
is begin
Put (File, Item); New_Line (File);
end Put_Line;
procedure New_Line (File : in File_Type)
is begin
Write (File.Stream, (1 => Ada.Streams.Stream_Element (Character'Pos (ASCII.LF))));
end New_Line;
end SAL.Unix_Text_IO;