| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // File: crn_platform.cpp
- // See Copyright Notice and license at the end of inc/crnlib.h
- #include "crn_core.h"
- #if CRNLIB_USE_WIN32_API
- #include "crn_winhdr.h"
- #endif
- #ifndef _MSC_VER
- int sprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, ...)
- {
- if (!sizeOfBuffer)
- return 0;
- va_list args;
- va_start(args, format);
- int c = vsnprintf(buffer, sizeOfBuffer, format, args);
- va_end(args);
- buffer[sizeOfBuffer - 1] = '\0';
- if (c < 0)
- return sizeOfBuffer - 1;
- return CRNLIB_MIN(c, (int)sizeOfBuffer - 1);
- }
- int vsprintf_s(char *buffer, size_t sizeOfBuffer, const char *format, va_list args)
- {
- if (!sizeOfBuffer)
- return 0;
- int c = vsnprintf(buffer, sizeOfBuffer, format, args);
- buffer[sizeOfBuffer - 1] = '\0';
- if (c < 0)
- return sizeOfBuffer - 1;
- return CRNLIB_MIN(c, (int)sizeOfBuffer - 1);
- }
- char* strlwr(char* p)
- {
- char *q = p;
- while (*q)
- {
- char c = *q;
- *q++ = tolower(c);
- }
- return p;
- }
- char* strupr(char *p)
- {
- char *q = p;
- while (*q)
- {
- char c = *q;
- *q++ = toupper(c);
- }
- return p;
- }
- #endif // __GNUC__
- void crnlib_debug_break(void)
- {
- CRNLIB_BREAKPOINT
- }
- #if CRNLIB_USE_WIN32_API
- #include "crn_winhdr.h"
- bool crnlib_is_debugger_present(void)
- {
- return IsDebuggerPresent() != 0;
- }
- void crnlib_output_debug_string(const char* p)
- {
- OutputDebugStringA(p);
- }
- #else
- bool crnlib_is_debugger_present(void)
- {
- return false;
- }
- void crnlib_output_debug_string(const char* p)
- {
- puts(p);
- }
- #endif // CRNLIB_USE_WIN32_API
|