with System ; use System ;
with Interfaces.C ;
package body images is
function snprintf
(buffer : System.Address ;
bufsize : Interfaces.C.size_t ;
format : Interfaces.C.char_array ;
value : Interfaces.C.int) return Interfaces.C.int
with Import,
Convention => C_Variadic_3,
External_Name => "snprintf";
function Image( format : String ; value : Integer ) return String is
buffer : aliased String(1..32) ;
imglen : Interfaces.C.int ;
begin
imglen := snprintf( buffer(1)'Address , Interfaces.C.size_t(buffer'length) ,
Interfaces.C.To_C( format ) ,
Interfaces.C.int(value) ) ;
return buffer(1..Integer(imglen ));
end Image ;
function snprintf
(buffer : System.Address ;
bufsize : Interfaces.C.size_t ;
format : Interfaces.C.char_array ;
value : Interfaces.C.double ) return Interfaces.C.int
with Import,
Convention => C_Variadic_3,
External_Name => "snprintf";
function Image( format : String ; value : float ) return String is
buffer : aliased String(1..32) ;
imglen : Interfaces.C.int ;
begin
imglen := snprintf( buffer(1)'Address , Interfaces.C.size_t(buffer'length) ,
Interfaces.C.To_C( format ) ,
Interfaces.C.double(value) ) ;
return buffer(1..Integer(imglen ));
end Image ;
function Image( format : String ; value : Long_Float ) return String is
buffer : aliased String(1..64) ;
imglen : Interfaces.C.int ;
begin
imglen := snprintf( buffer(1)'Address , Interfaces.C.size_t(buffer'length) ,
Interfaces.C.To_C( format ) ,
Interfaces.C.double(value) ) ;
return buffer(1..Integer(imglen));
end Image ;
function snprintf
(buffer : System.Address ;
bufsize : Interfaces.C.size_t ;
format : Interfaces.C.char_array ;
value : Interfaces.C.char_array ) return Interfaces.C.int
with Import,
Convention => C_Variadic_3,
External_Name => "snprintf";
function Image( format : String ; value : String ) return String is
buffer : aliased String(1..128) ;
imglen : Interfaces.C.int ;
begin
imglen := snprintf( buffer(1)'Address , Interfaces.C.size_t(buffer'length) ,
Interfaces.C.To_C(format) ,
Interfaces.C.To_C(value)) ;
return buffer(1..Integer(imglen));
end Image ;
end images ;