mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-11-03 15:26:12 -08:00 
			
		
		
		
	WIP: Restructuring project
This commit is contained in:
		
							
								
								
									
										42
									
								
								base/dependencies/printing.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								base/dependencies/printing.hpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
#ifdef GEN_INTELLISENSE_DIRECTIVES
 | 
			
		||||
#	pragma once
 | 
			
		||||
#	include "string_ops.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#pragma region Printing
 | 
			
		||||
 | 
			
		||||
typedef struct FileInfo FileInfo;
 | 
			
		||||
 | 
			
		||||
#ifndef GEN_PRINTF_MAXLEN
 | 
			
		||||
#	define GEN_PRINTF_MAXLEN kilobytes(128)
 | 
			
		||||
#endif
 | 
			
		||||
typedef char PrintF_Buffer[GEN_PRINTF_MAXLEN];
 | 
			
		||||
 | 
			
		||||
// NOTE: A locally persisting buffer is used internally
 | 
			
		||||
char*  str_fmt_buf       ( char const* fmt, ... );
 | 
			
		||||
char*  str_fmt_buf_va    ( char const* fmt, va_list va );
 | 
			
		||||
ssize  str_fmt           ( char* str, ssize n, char const* fmt, ... );
 | 
			
		||||
ssize  str_fmt_va        ( char* str, ssize n, char const* fmt, va_list va );
 | 
			
		||||
ssize  str_fmt_out_va    ( char const* fmt, va_list va );
 | 
			
		||||
ssize  str_fmt_out_err   ( char const* fmt, ... );
 | 
			
		||||
ssize  str_fmt_out_err_va( char const* fmt, va_list va );
 | 
			
		||||
ssize  str_fmt_file      ( FileInfo* f, char const* fmt, ... );
 | 
			
		||||
ssize  str_fmt_file_va   ( FileInfo* f, char const* fmt, va_list va );
 | 
			
		||||
 | 
			
		||||
constexpr
 | 
			
		||||
char const* Msg_Invalid_Value = "INVALID VALUE PROVIDED";
 | 
			
		||||
 | 
			
		||||
inline
 | 
			
		||||
ssize log_fmt(char const* fmt, ...)
 | 
			
		||||
{
 | 
			
		||||
	ssize res;
 | 
			
		||||
	va_list va;
 | 
			
		||||
 | 
			
		||||
	va_start(va, fmt);
 | 
			
		||||
	res = str_fmt_out_va(fmt, va);
 | 
			
		||||
	va_end(va);
 | 
			
		||||
 | 
			
		||||
	return res;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#pragma endregion Printing
 | 
			
		||||
		Reference in New Issue
	
	Block a user