X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fada%2Fterminal_interface-curses-trace__adb.htm;h=b766f28071bee9dc69e0447b5f4fd93780fd2e19;hp=350f4fde01a67dac06be9dc995854b242f72b447;hb=refs%2Ftags%2Fv5.8;hpb=90ffd624948c543a457324ee777717e4130f2ad2 diff --git a/doc/html/ada/terminal_interface-curses-trace__adb.htm b/doc/html/ada/terminal_interface-curses-trace__adb.htm index 350f4fde..b766f280 100644 --- a/doc/html/ada/terminal_interface-curses-trace__adb.htm +++ b/doc/html/ada/terminal_interface-curses-trace__adb.htm @@ -43,19 +43,40 @@ -- @Revision: 1.6 @ -- Binding Version 01.00 ------------------------------------------------------------------------------ +with Interfaces.C; use Interfaces.C; +with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux; +with Ada.Unchecked_Conversion; -package body Terminal_Interface.Curses.Trace is +package body Terminal_Interface.Curses.Trace is - procedure Trace_On (x : Trace_Attribute_Set) is - pragma Unreferenced (x); + type C_TraceType is new C_UInt; + + function TraceAda_To_TraceC is new + Ada.Unchecked_Conversion (Source => Trace_Attribute_Set, + Target => C_TraceType); + + procedure Trace_On (x : Trace_Attribute_Set) is + procedure traceC (y : C_TraceType); + pragma Import (C, traceC, "trace"); begin - null; + traceC (TraceAda_To_TraceC (x)); end Trace_On; - procedure Trace_Put (str : String) is - pragma Unreferenced (str); + -- 75. (12) A C function that takes a variable number of arguments can + -- correspond to several Ada subprograms, taking various specific + -- numbers and types of parameters. + + procedure Trace_Put (str : String) is + procedure tracef (format : char_array; s : char_array); + pragma Import (C, tracef, "_tracef"); + Txt : char_array (0 .. str'Length); + Length : size_t; + formatstr : constant String := "%s" & ASCII.NUL; + formattxt : char_array (0 .. formatstr'Length); begin - null; + To_C (formatstr, formattxt, Length); + To_C (str, Txt, Length); + tracef (formattxt, Txt); end Trace_Put; end Terminal_Interface.Curses.Trace;