fteqw/engine/qclib/cmdlib.h
Spoike 9aed521689 make developer a little less spammy. move much of it to developer 2.
net_mtu "" now means something large for servers and something smaller for clients. this should give clients more freedom to screw up their connections as much as they want when servers are not configured. I dunno.
package manager now tries to include packages listed from default.fmf. note that this may include dlls etc so this isn't available for any other fmf (ie: ones specified via the commandline/file associations).
fix up trace logic to use skeletal data for skeletal models, finally fixing toneddu's big hitmodel crash. hopefully.
console links inherit background text colours, where possible.
fix text background colour weirdness for both freetype2 fonts and spaces.
qcc: implement support for mac line endings, matching scintilla's line numbers, although this breaks rogue due to stray carrage returns inside a single-line comment (easy to fix, assuming some scintilla-based editor, anyway).
server: reworked deltas overflow to do round-robin properly with priority for players, so things shouldn't stall when overloaded.

git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5067 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-03-04 19:36:06 +00:00

128 lines
3.1 KiB
C

// cmdlib.h
#ifndef __CMDLIB__
#define __CMDLIB__
#include "progsint.h"
/*#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <ctype.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdarg.h>
#include <setjmp.h>
#include <io.h>
#ifdef NeXT
#include <libc.h>
#endif
*/
// the dec offsetof macro doesn't work very well...
#define myoffsetof(type,identifier) ((size_t)&((type *)NULL)->identifier)
// set these before calling CheckParm
extern int myargc;
extern char **myargv;
//char *strupr (char *in);
//char *strlower (char *in);
int QCC_filelength (int handle);
int QCC_tell (int handle);
int QC_strcasecmp (const char *s1, const char *s2);
void QC_strlcat(char *dest, const char *src, size_t destsize);
void QC_strlcpy(char *dest, const char *src, size_t destsize);
void QC_strnlcpy(char *dest, const char *src, size_t srclen, size_t destsize);
char *QC_strcasestr(const char *haystack, const char *needle);
#ifdef _MSC_VER
#define QC_vsnprintf _vsnprintf
static void VARGS QC_snprintfz (char *dest, size_t size, const char *fmt, ...)
{
va_list args;
va_start (args, fmt);
_vsnprintf (dest, size-1, fmt, args);
va_end (args);
//make sure its terminated.
dest[size-1] = 0;
}
#else
#define QC_vsnprintf vsnprintf
#define QC_snprintfz snprintf
#endif
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
#ifndef LIKEPRINTF
#define LIKEPRINTF(x) __attribute__((format(printf,x,x+1)))
#endif
#endif
#ifndef LIKEPRINTF
#define LIKEPRINTF(x)
#endif
double I_FloatTime (void);
void VARGS QCC_Error (int errortype, const char *error, ...) LIKEPRINTF(2);
int CheckParm (char *check);
int SafeOpenWrite (char *filename, int maxsize);
int SafeOpenRead (char *filename);
void SafeRead (int handle, void *buffer, long count);
void SafeWrite (int handle, const void *buffer, long count);
pbool SafeClose(int hand);
int SafeSeek(int hand, int ofs, int mode);
void *SafeMalloc (long size);
long QCC_LoadFile (char *filename, void **bufferptr);
void QCC_SaveFile (char *filename, void *buffer, long count);
void DefaultExtension (char *path, char *extension);
void DefaultPath (char *path, char *basepath);
void StripFilename (char *path);
void StripExtension (char *path);
void ExtractFilePath (char *path, char *dest);
void ExtractFileBase (char *path, char *dest);
void ExtractFileExtension (char *path, char *dest);
long ParseNum (char *str);
unsigned short *QCC_makeutf16(char *mem, unsigned int len, int *outlen, pbool *errors);
char *QCC_SanitizeCharSet(char *mem, unsigned int *len, pbool *freeresult, int *origfmt);
char *QCC_COM_Parse (const char *data);
char *QCC_COM_Parse2 (char *data);
unsigned int utf8_check(const void *in, unsigned int *value);
extern char qcc_token[1024];
extern int qcc_eof;
#define qcc_iswhite(c) ((c) == ' ' || (c) == '\r' || (c) == '\n' || (c) == '\t' || (c) == '\v')
#define qcc_iswhitesameline(c) ((c) == ' ' || (c) == '\t')
#define qcc_islineending(c,n) ((c) == '\n' || ((c) == '\r' && (n) != '\n')) //to try to handle mac line endings, especially if they're in the middle of a line
enum
{
UTF8_RAW,
UTF8_BOM,
UTF_ANSI,
UTF16LE,
UTF16BE,
UTF32LE,
UTF32BE,
};
#endif