X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=common.h;h=b1a7b90b2b6f9a52edee790c8a81beb7b0e779ba;hb=b5f8ec25b4fc3660e24246661c2ba6266e2dff63;hp=1306776e50afb2f1dbc81df3df418db636d57cb1;hpb=9f904fa9411f2b09cd33a5ee11639ae46b17c0e1;p=xonotic%2Fdarkplaces.git diff --git a/common.h b/common.h index 1306776e..b1a7b90b 100644 --- a/common.h +++ b/common.h @@ -84,8 +84,9 @@ void Com_BlockFullChecksum (void *buffer, int len, unsigned char *outbuf); #endif // If we still don't know the CPU endianess at this point, we try to guess +// normally including sys/types.h includes endian.h for the platform, which defines BYTE_ORDER, LITTLE_ENDIAN, and BIG_ENDIAN, however endian.h is a BSD-ism, and may not be present on all platforms (particularly windows) #ifndef BYTE_ORDER -# if defined(WIN32) +# if defined(WIN32) || defined (__i386) || defined(__amd64) # define BYTE_ORDER LITTLE_ENDIAN # else # if defined(SUNOS) @@ -210,10 +211,9 @@ extern const char **com_argv; int COM_CheckParm (const char *parm); void COM_Init (void); void COM_Shutdown (void); -void COM_InitArgv (void); void COM_InitGameType (void); -char *va(const char *format, ...); +char *va(const char *format, ...) DP_FUNC_PRINTF(1); // does a varargs printf into a temp buffer @@ -225,14 +225,20 @@ char *va(const char *format, ...); // return the number of printed characters, excluding the final '\0' // or return -1 if the buffer isn't big enough to contain the entire string. // buffer is ALWAYS null-terminated -extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...); +extern int dpsnprintf (char *buffer, size_t buffersize, const char *format, ...) DP_FUNC_PRINTF(3); extern int dpvsnprintf (char *buffer, size_t buffersize, const char *format, va_list args); // A bunch of functions are forbidden for security reasons (and also to please MSVS 2005, for some of them) -#define strcat DO_NOT_USE_STRCAT__USE_STRLCAT +// LordHavoc: added #undef lines here to avoid warnings in Linux +#undef strcat +#define strcat DO_NOT_USE_STRCAT__USE_STRLCAT_OR_MEMCPY +#undef strncat #define strncat DO_NOT_USE_STRNCAT__USE_STRLCAT_OR_MEMCPY -//#define strcpy DO_NOT_USE_STRCPY__USE_STRLCPY +#undef strcpy +#define strcpy DO_NOT_USE_STRCPY__USE_STRLCPY_OR_MEMCPY +#undef strncpy #define strncpy DO_NOT_USE_STRNCPY__USE_STRLCPY_OR_MEMCPY +//#undef sprintf //#define sprintf DO_NOT_USE_SPRINTF__USE_DPSNPRINTF @@ -262,6 +268,8 @@ typedef enum gamemode_e GAME_NETHERWORLD, GAME_THEHUNTED, GAME_DEFEATINDETAIL2, + GAME_DARSANA, + GAME_CONTAGIONTHEORY, } gamemode_t; @@ -281,16 +289,18 @@ int COM_ReadAndTokenizeLine(const char **text, char **argv, int maxargc, char *t typedef struct stringlist_s { - struct stringlist_s *next; - char *text; + // maxstrings changes as needed, causing reallocation of strings[] array + int maxstrings; + int numstrings; + char **strings; } stringlist_t; int matchpattern(const char *in, const char *pattern, int caseinsensitive); -stringlist_t *stringlistappend(stringlist_t *current, char *text); -void stringlistfree(stringlist_t *current); -stringlist_t *stringlistsort(stringlist_t *start); -stringlist_t *listdirectory(const char *path); -void freedirectory(stringlist_t *list); +void stringlistinit(stringlist_t *list); +void stringlistfreecontents(stringlist_t *list); +void stringlistappend(stringlist_t *list, char *text); +void stringlistsort(stringlist_t *list); +void listdirectory(stringlist_t *list, const char *path); char *SearchInfostring(const char *infostring, const char *key);