-------------------------------------------------------------------------------
-- Copyright 2021, The Trendy Terminal Developers (see AUTHORS file)
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
-- http://www.apache.org/licenses/LICENSE-2.0
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-------------------------------------------------------------------------------
with Ada.Characters.Latin_1;
with Ada.Strings.Fixed;
with Ada.Text_IO;
with Trendy_Terminal.Maps;
package body Trendy_Terminal.IO is
procedure Put (S : ASU.Unbounded_String) is
begin
Put (ASU.To_String(S));
end Put;
procedure Put_Line(S : String) is
begin
Put (S);
New_Line;
end Put_Line;
procedure Put_Line (S : ASU.Unbounded_String) is
begin
Put_Line (ASU.To_String(S));
end Put_Line;
procedure Rewrite_Line (Pos : VT100.Cursor_Position; S : String) is
begin
VT100.Hide_Cursor;
VT100.Set_Cursor_Position (Pos);
VT100.Clear_Line;
VT100.Show_Cursor;
Put (S);
end Rewrite_Line;
procedure New_Line (Num_Lines : Positive := 1) is
begin
-- TODO: very inefficient
for I in 1 .. Num_Lines loop
Put (Trendy_Terminal.Platform.End_Of_Line);
end loop;
end New_Line;
procedure Set_Col (Column : Positive) is
Cursor_Pos : VT100.Cursor_Position := VT100.Get_Cursor_Position;
begin
Cursor_Pos.Col := Column;
VT100.Set_Cursor_Position (Cursor_Pos);
end Set_Col;
end Trendy_Terminal.IO;