Upload New File

master
bright 3 years ago
parent 22c2ba3a2e
commit a0dbb19ec7

@ -0,0 +1,550 @@
/*
* MINICRT.H
*
* Header file for minicrt based applications. Function prototypes and
* appropriate #defines to default to their use and define Unicode-
* conditional functions.
*
* Copyright (c) 2014-2017 Malcolm J. Smith
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef HAVE_MINICRT_FILE
#undef FILE
typedef struct _minicrt_file {
HANDLE hFile;
} minicrt_file, *pminicrt_file;
#define FILE minicrt_file
#define HAVE_MINICRT_FILE 1
#endif
void * mini_memcpy(void * dest, void * src, unsigned int len);
int mini_memcmp(const void * buf1, const void * buf2, unsigned int len);
void * mini_memmove(void * dest, void * src, unsigned int len);
void * mini_memset(void * dest, char c, unsigned int len);
void mini_srand(unsigned int seed);
int mini_rand();
void mini_searchenvex_s(const char * filename, const char * env, char * buffer, unsigned int len, int * component);
void mini_wsearchenvex_s(const wchar_t * filename, const wchar_t * env, wchar_t * buffer, unsigned int len, int * component);
void mini_searchenv_s(const char * filename, const char * env, char * buffer, unsigned int len);
void mini_wsearchenv_s(const wchar_t * filename, const wchar_t * env, wchar_t * buffer, unsigned int len);
void mini_searchenv(const char * filename, const char * env, char * buffer);
void mini_wsearchenv(const wchar_t * filename, const wchar_t * env, wchar_t * buffer);
FILE * mini_fopen(char * filename, char * mode);
FILE * mini_wfopen(wchar_t * filename, wchar_t * mode);
char * mini_fgets(char * string, int n, FILE * fp);
wchar_t * mini_fgetws(wchar_t * string, int n, FILE * fp);
int mini_fclose(FILE * fp);
int mini_atoi(char * str);
int mini_wtoi(wchar_t * str);
char * mini_strncat(char * dest, const char * src, unsigned int len);
wchar_t * mini_wcsncat(wchar_t * dest, const wchar_t * src, unsigned int len);
char * mini_strcat_s(char * dest, unsigned int len, const char * src);
wchar_t * mini_wcscat_s(wchar_t * dest, unsigned int len, const wchar_t * src);
char * mini_strchr(const char * str, char ch);
wchar_t * mini_wcschr(const wchar_t * str, wchar_t ch);
char * mini_strstr(const char * str, char * search);
wchar_t * mini_wcsstr(const wchar_t * str, wchar_t * search);
char * mini_strrchr(const char * str, char ch);
wchar_t * mini_wcsrchr(const wchar_t * str, wchar_t ch);
char * mini_strupr(char * str);
wchar_t * mini_wcsupr(wchar_t * str);
char * mini_strlwr(char * str);
wchar_t * mini_wcslwr(wchar_t * str);
int mini_strcmp(const char * str1, const char * str2);
int mini_wcscmp(const wchar_t * str1, const wchar_t * str2);
int mini_stricmp(const char * str1, const char * str2);
int mini_wcsicmp(const wchar_t * str1, const wchar_t * str2);
int mini_strncmp(const char * str1, const char * str2, unsigned int count);
int mini_wcsncmp(const wchar_t * str1, const wchar_t * str2, unsigned int count);
int mini_strnicmp(const char * str1, const char * str2, unsigned int count);
int mini_wcsnicmp(const wchar_t * str1, const wchar_t * str2, unsigned int count);
int mini_strspn(char * str, char * chars);
int mini_wcsspn(wchar_t * str, wchar_t * chars);
int mini_strcspn(char * str, char * chars);
int mini_wcscspn(wchar_t * str, wchar_t * chars);
char * mini_strtok_s(char * str, char * match, char ** context);
wchar_t * mini_wcstok_s(wchar_t * str, wchar_t * match, wchar_t ** context);
char * mini_strtok(char * str, char * match);
wchar_t * mini_wcstok(wchar_t * str, wchar_t * match);
int mini_strlen(const char * str);
int mini_wcslen(const wchar_t * str);
int mini_vsprintf_s(char * szDest, unsigned int len, const char * szFmt, va_list marker);
int mini_vswprintf_s(wchar_t * szDest, unsigned int len, const wchar_t * szFmt, va_list marker);
int mini_vsprintf_size(const char * szFmt, va_list marker);
int mini_vswprintf_size(const wchar_t * szFmt, va_list marker);
int mini_sprintf_s(char * szDest, unsigned int len, const char * szFmt, ...);
int mini_swprintf_s(wchar_t * szDest, unsigned int len, const wchar_t * szFmt, ...);
int mini_sprintf(char * szDest, const char * szFmt, ...);
int mini_swprintf(wchar_t * szDest, const wchar_t * szFmt, ...);
int mini_fprintf(FILE * fp, const char * szFmt, ...);
int mini_fwprintf(FILE * fp, const wchar_t * szFmt, ...);
int mini_printf(const char * szFmt, ...);
int mini_wprintf(const wchar_t * szFmt, ...);
//
// Map tchar versions to the correct place
//
#ifdef UNICODE
#define mini_tsearchenv mini_wsearchenv
#define mini_tsearchenv_s mini_wsearchenv_s
#define mini_tsearchenvex_s mini_wsearchenvex_s
#define mini_ftopen mini_wfopen
#define mini_ftgets mini_fgetws
#define mini_ttoi mini_wtoi
#define mini_tcsncat mini_wcsncat
#define mini_tcscat_s mini_wcscat_s
#define mini_tcschr mini_wcschr
#define mini_tcsrchr mini_wcsrchr
#define mini_tcsstr mini_wcsstr
#define mini_tcsupr mini_wcsupr
#define mini_tcslwr mini_wcslwr
#define mini_tcscmp mini_wcscmp
#define mini_tcsncmp mini_wcsncmp
#define mini_tcsicmp mini_wcsicmp
#define mini_tcsnicmp mini_wcsnicmp
#define mini_tcsspn mini_wcsspn
#define mini_tcscspn mini_wcscspn
#define mini_tcstok_s mini_wcstok_s
#define mini_tcstok mini_wcstok
#define mini_tcslen mini_wcslen
#define mini_vstprintf_s mini_vswprintf_s
#define mini_vstprintf_size mini_vswprintf_size
#define mini_stprintf_s mini_swprintf_s
#define mini_stprintf mini_swprintf
#define mini_ftprintf mini_fwprintf
#define mini_tprintf mini_wprintf
#else
#define mini_tsearchenv mini_searchenv
#define mini_tsearchenv_s mini_searchenv_s
#define mini_tsearchenvex_s mini_searchenvex_s
#define mini_ftopen mini_fopen
#define mini_ftgets mini_fgets
#define mini_ttoi mini_atoi
#define mini_tcsncat mini_strncat
#define mini_tcscat_s mini_strcat_s
#define mini_tcschr mini_strchr
#define mini_tcsrchr mini_strrchr
#define mini_tcsstr mini_strstr
#define mini_tcsupr mini_strupr
#define mini_tcslwr mini_strlwr
#define mini_tcscmp mini_strcmp
#define mini_tcsncmp mini_strncmp
#define mini_tcsicmp mini_stricmp
#define mini_tcsnicmp mini_strnicmp
#define mini_tcsspn mini_strspn
#define mini_tcscspn mini_strcspn
#define mini_tcstok_s mini_strtok_s
#define mini_tcstok mini_strtok
#define mini_tcslen mini_strlen
#define mini_vstprintf_s mini_vsprintf_s
#define mini_vstprintf_size mini_vsprintf_size
#define mini_stprintf_s mini_sprintf_s
#define mini_stprintf mini_sprintf
#define mini_ftprintf mini_fprintf
#define mini_tprintf mini_printf
#endif
#ifndef MINICRT_BUILD
//
// Have apps use them by default
//
#undef _tsearchenv
#define _tsearchenv mini_tsearchenv
#undef searchenv
#define searchenv mini_searchenv
#undef _wsearchenv
#define _wsearchenv mini_wsearchenv
#undef _tsearchenv_s
#define _tsearchenv_s mini_tsearchenv_s
#undef searchenv_s
#define searchenv_s mini_searchenv_s
#undef _wsearchenv_s
#define _wsearchenv_s mini_wsearchenv_s
#undef _tsearchenvex_s
#define _tsearchenvex_s mini_tsearchenvex_s
#undef searchenvex_s
#define searchenvex_s mini_searchenvex_s
#undef _wsearchenvex_s
#define _wsearchenvex_s mini_wsearchenvex_s
#undef ftopen
#define ftopen mini_ftopen
#undef fopen
#define fopen mini_fopen
#undef _wfopen
#define _wfopen mini_wfopen
#undef ftgets
#define ftgets mini_ftgets
#undef fgets
#define fgets mini_fgets
#undef fgetws
#define fgetws mini_fgetws
#undef fclose
#define fclose mini_fclose
#undef _ttoi
#define _ttoi mini_ttoi
#undef atoi
#define atoi mini_atoi
#undef wtoi
#define wtoi mini_wtoi
#undef _tcschr
#define _tcschr mini_tcschr
#undef strchr
#define strchr mini_strchr
#undef wcschr
#define wcschr mini_wcschr
#undef _tcsrchr
#define _tcsrchr mini_tcsrchr
#undef strrchr
#define strrchr mini_strrchr
#undef wcsrchr
#define wcsrchr mini_wcsrchr
#undef _tcsstr
#define _tcsstr mini_tcsstr
#undef strstr
#define strstr mini_strstr
#undef wcsstr
#define wcsstr mini_wcsstr
#undef _tcsncat
#define _tcsncat mini_tcsncat
#undef strncat
#define strncat mini_strncat
#undef wcsncat
#define wcsncat mini_wcsncat
#undef _tcscat_s
#define _tcscat_s mini_tcscat_s
#undef strcat_s
#define strcat_s mini_strcat_s
#undef wcscat_s
#define wcscat_s mini_wcscat_s
#undef _tcscat
#define _tcscat(a,b) mini_tcscat_s(a, (unsigned int)-1, b)
#undef strcat
#define strcat(a,b) mini_strcat_s(a, (unsigned int)-1, b)
#undef wcscat
#define wcscat(a,b) mini_wcscat_s(a, (unsigned int)-1, b)
#undef _tcsupr
#define _tcsupr mini_tcsupr
#undef _strupr
#define _strupr mini_strupr
#undef _wcsupr
#define _wcsupr mini_wcsupr
#undef _tcslwr
#define _tcslwr mini_tcslwr
#undef _strlwr
#define _strlwr mini_strlwr
#undef _wcslwr
#define _wcslwr mini_wcslwr
#undef strcmp
#define strcmp mini_strcmp
#undef wcscmp
#define wcscmp mini_wcscmp
#undef _tcscmp
#define _tcscmp mini_tcscmp
#undef stricmp
#define stricmp mini_stricmp
#undef wcsicmp
#define wcsicmp mini_wcsicmp
#undef tcsicmp
#define tcsicmp mini_tcsicmp
#undef _stricmp
#define _stricmp mini_stricmp
#undef _wcsicmp
#define _wcsicmp mini_wcsicmp
#undef _tcsicmp
#define _tcsicmp mini_tcsicmp
#undef strncmp
#define strncmp mini_strncmp
#undef wcsncmp
#define wcsncmp mini_wcsncmp
#undef _tcsncmp
#define _tcsncmp mini_tcsncmp
#undef strnicmp
#define strnicmp mini_strnicmp
#undef wcsnicmp
#define wcsnicmp mini_wcsnicmp
#undef _tcsnicmp
#define _tcsnicmp mini_tcsnicmp
#undef _strnicmp
#define _strnicmp mini_strnicmp
#undef _wcsnicmp
#define _wcsnicmp mini_wcsnicmp
#undef strspn
#define strspn mini_strspn
#undef wcsspn
#define wcsspn mini_wcsspn
#undef _tcsspn
#define _tcsspn mini_tcsspn
#undef strcspn
#define strcspn mini_strcspn
#undef wcscspn
#define wcscspn mini_wcscspn
#undef _tcscspn
#define _tcscspn mini_tcscspn
#undef _tcstok_s
#define _tcstok_s mini_tcstok_s
#undef strtok_s
#define strtok_s mini_strtok_s
#undef wcstok_s
#define wcstok_s mini_wcstok_s
#undef _tcstok
#define _tcstok mini_tcstok
#undef strtok
#define strtok mini_strtok
#undef wcstok
#define wcstok mini_wcstok
#undef _tcslen
#define _tcslen mini_tcslen
#undef strlen
#define strlen mini_strlen
#undef wcslen
#define wcslen mini_wcslen
#undef _memcpy
#define _memcpy mini_memcpy
#undef memcpy
#define memcpy mini_memcpy
#undef _memmove
#define _memmove mini_memmove
#undef memmove
#define memmove mini_memmove
#undef memset
#define memset mini_memset
#undef memcmp
#define memcmp mini_memcmp
#undef rand
#define rand mini_rand
#undef srand
#define srand mini_srand
#undef _stprintf_s
#define _stprintf_s mini_stprintf_s
#undef sprintf_s
#define sprintf_s mini_sprintf_s
#undef swprintf_s
#define swprintf_s mini_swprintf_s
#undef _sntprintf
#define _sntprintf mini_stprintf_s
#undef _snprintf
#define _snprintf mini_sprintf_s
#undef _snwprintf
#define _snwprintf mini_swprintf_s
#undef _stprintf
#define _stprintf mini_stprintf
#undef sprintf
#define sprintf mini_sprintf
#undef swprintf
#define swprintf mini_swprintf
#undef _ftprintf
#define _ftprintf mini_ftprintf
#undef fprintf
#define fprintf mini_fprintf
#undef fwprintf
#define fwprintf mini_fwprintf
#undef _tprintf
#define _tprintf mini_tprintf
#undef printf
#define printf mini_printf
#undef wprintf
#define wprintf mini_wprintf
#undef _tcscpy
#define _tcscpy(a,b) mini_stprintf_s(a, (unsigned int)-1, _T("%s"), b)
#undef strcpy
#define strcpy(a,b) mini_sprintf_s(a, (unsigned int)-1, "%s", b)
#undef wcscpy
#define wcscpy(a,b) mini_swprintf_s(a, (unsigned int)-1, L"%s", b)
#endif // MINICRT_BUILD
//
// Easy ones, just take them from Win32
//
#undef malloc
#define malloc(x) HeapAlloc(GetProcessHeap(), 0, x)
#undef realloc
#define realloc(x,s) HeapReAlloc(GetProcessHeap(), 0, x, s)
#undef free
#define free(x) HeapFree(GetProcessHeap(), 0, x)
#undef exit
#define exit ExitProcess
#undef stdin
#define stdin (FILE*)0
#undef stdout
#define stdout (FILE*)1
#undef stderr
#define stderr (FILE*)2
#undef RAND_MAX
#define RAND_MAX 32768
#undef INT_MAX
#define INT_MAX (0x7fffffff)
#undef UINT_MAX
#define UINT_MAX (0xffffffff)
#ifdef __cplusplus
}
#endif
// vim:sw=4:ts=4:et:
Loading…
Cancel
Save