mirror of
https://github.com/Ed94/gencpp.git
synced 2024-11-10 02:54:53 -08:00
Ed_
c5afede7b5
Removing the gen. namespace from the files for components, dependencies, and file_processors. They are only necessary if the include directory is transparent, and in my case those are not. Made a docs directory. I'm offloading information from the main readme to there along with additional informationn I end up elaborating on down the line. Enum tables were moved to their own directory (project/enums). Library will not compile for now. Major refactor occuring with parsing related components.
64 lines
1.3 KiB
C++
64 lines
1.3 KiB
C++
#pragma region Printing
|
|
|
|
struct FileInfo;
|
|
|
|
#ifndef GEN_PRINTF_MAXLEN
|
|
# define GEN_PRINTF_MAXLEN kilobytes(128)
|
|
#endif
|
|
|
|
// 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 );
|
|
sw str_fmt_va ( char* str, sw n, char const* fmt, va_list va );
|
|
sw str_fmt_out_va ( char const* fmt, va_list va );
|
|
sw str_fmt_out_err ( char const* fmt, ... );
|
|
sw str_fmt_out_err_va( char const* fmt, va_list va );
|
|
|
|
// TODO : Move these to file handling.
|
|
|
|
sw str_fmt_file ( FileInfo* f, char const* fmt, ... );
|
|
sw str_fmt_file_va ( FileInfo* f, char const* fmt, va_list va )
|
|
|
|
constexpr
|
|
char const* Msg_Invalid_Value = "INVALID VALUE PROVIDED";
|
|
|
|
inline
|
|
sw log_fmt(char const* fmt, ...)
|
|
{
|
|
sw res;
|
|
va_list va;
|
|
|
|
va_start(va, fmt);
|
|
res = str_fmt_out_va(fmt, va);
|
|
va_end(va);
|
|
|
|
return res;
|
|
}
|
|
|
|
inline
|
|
sw fatal(char const* fmt, ...)
|
|
{
|
|
local_persist thread_local
|
|
char buf[GEN_PRINTF_MAXLEN] = { 0 };
|
|
|
|
va_list va;
|
|
|
|
#if Build_Debug
|
|
va_start(va, fmt);
|
|
str_fmt_va(buf, GEN_PRINTF_MAXLEN, fmt, va);
|
|
va_end(va);
|
|
|
|
assert_crash(buf);
|
|
return -1;
|
|
#else
|
|
va_start(va, fmt);
|
|
str_fmt_out_err_va( fmt, va);
|
|
va_end(va);
|
|
|
|
exit(1);
|
|
return -1;
|
|
#endif
|
|
}
|
|
|
|
#pragma endregion Printing
|