X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=common.h;h=47e62f937a8eca73b7915194e4307d6536be9294;hb=f1b592d15497eb165a81f91541a165a2c42d6d41;hp=cfff75b3400bdfd98a5728d3823be24cf4d89103;hpb=2e15bc6786ccbc592f4d2074460d194c9e54566e;p=xonotic%2Fdarkplaces.git diff --git a/common.h b/common.h index cfff75b3..47e62f93 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) @@ -201,8 +202,10 @@ float MSG_ReadAngle (protocolversion_t protocol); extern char com_token[MAX_INPUTLINE]; -int COM_ParseToken(const char **datapointer, int returnnewline); -int COM_ParseTokenConsole(const char **datapointer); +int COM_ParseToken_Simple(const char **datapointer, int returnnewline); +int COM_ParseToken_QuakeC(const char **datapointer, int returnnewline); +int COM_ParseToken_VM_Tokenize(const char **datapointer, int returnnewline); +int COM_ParseToken_Console(const char **datapointer); extern int com_argc; extern const char **com_argv; @@ -210,10 +213,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,9 +227,22 @@ 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) +// 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 +#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 + //============================================================================ @@ -255,6 +270,8 @@ typedef enum gamemode_e GAME_NETHERWORLD, GAME_THEHUNTED, GAME_DEFEATINDETAIL2, + GAME_DARSANA, + GAME_CONTAGIONTHEORY, } gamemode_t; @@ -272,18 +289,25 @@ int COM_StringBeginsWith(const char *s, const char *match); int COM_ReadAndTokenizeLine(const char **text, char **argv, int maxargc, char *tokenbuf, int tokenbufsize, const char *commentprefix); +size_t COM_StringLengthNoColors(const char *s, size_t size_s, qboolean *valid); +qboolean COM_StringDecolorize(const char *in, size_t size_in, char *out, size_t size_out, qboolean escape_carets); +void COM_ToLowerString (const char *in, char *out, size_t size_out); +void COM_ToUpperString (const char *in, char *out, size_t size_out); + 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);