aboutsummaryrefslogtreecommitdiffstats
path: root/libs/cmdlib/cmdlib.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/cmdlib/cmdlib.cpp')
-rwxr-xr-xlibs/cmdlib/cmdlib.cpp1100
1 files changed, 550 insertions, 550 deletions
diff --git a/libs/cmdlib/cmdlib.cpp b/libs/cmdlib/cmdlib.cpp
index c1e9d8b..15cf3f6 100755
--- a/libs/cmdlib/cmdlib.cpp
+++ b/libs/cmdlib/cmdlib.cpp
@@ -1,550 +1,550 @@
-//
-// start of shared cmdlib stuff
-//
-
-
-#include "cmdlib.h"
-#include "windows.h"
-
-#define PATHSEPERATOR '/'
-
-// rad additions
-// 11.29.99
-PFN_ERR *g_pfnError = NULL;
-PFN_PRINTF *g_pfnPrintf = NULL;
-PFN_ERR_NUM *g_pfnErrorNum = NULL;
-PFN_PRINTF_NUM *g_pfnPrintfNum = NULL;
-
-
-void Error(const char *pFormat, ...)
-{
- if (g_pfnError)
- {
- va_list arg_ptr;
- va_start(arg_ptr, pFormat);
- g_pfnError(pFormat, arg_ptr);
- va_end(arg_ptr);
- }
-}
-
-void Printf(const char *pFormat, ...)
-{
- if (g_pfnPrintf)
- {
- va_list arg_ptr;
- va_start(arg_ptr, pFormat);
- g_pfnPrintf(pFormat, arg_ptr);
- va_end(arg_ptr);
- }
-}
-
-void ErrorNum(int nErr, const char *pFormat, ...)
-{
- if (g_pfnErrorNum)
- {
- va_list arg_ptr;
- va_start(arg_ptr, pFormat);
- g_pfnErrorNum(nErr, pFormat, arg_ptr);
- va_end(arg_ptr);
- }
-}
-
-void PrintfNum(int nErr, const char *pFormat, ...)
-{
- if (g_pfnPrintfNum)
- {
- va_list arg_ptr;
- va_start(arg_ptr, pFormat);
- g_pfnPrintfNum(nErr, pFormat, arg_ptr);
- va_end(arg_ptr);
- }
-}
-
-
-
-void SetErrorHandler(PFN_ERR pe)
-{
- g_pfnError = pe;
-}
-
-void SetPrintfHandler(PFN_PRINTF pe)
-{
- g_pfnPrintf = pe;
-}
-
-void SetErrorHandlerNum(PFN_ERR_NUM pe)
-{
- g_pfnErrorNum = pe;
-}
-
-void SetPrintfHandler(PFN_PRINTF_NUM pe)
-{
- g_pfnPrintfNum = pe;
-}
-
-
-
-// rad end
-
-#define MEM_BLOCKSIZE 4096
-void* qblockmalloc(size_t nSize)
-{
- void *b;
- // round up to threshold
- int nAllocSize = nSize % MEM_BLOCKSIZE;
- if ( nAllocSize > 0)
- {
- nSize += MEM_BLOCKSIZE - nAllocSize;
- }
- b = malloc(nSize + 1);
- memset (b, 0, nSize);
- return b;
-}
-
-void* qmalloc (size_t nSize)
-{
- void *b;
- b = malloc(nSize + 1);
- memset (b, 0, nSize);
- return b;
-}
-
-/*
-================
-Q_filelength
-================
-*/
-int Q_filelength (FILE *f)
-{
- int pos;
- int end;
-
- pos = ftell (f);
- fseek (f, 0, SEEK_END);
- end = ftell (f);
- fseek (f, pos, SEEK_SET);
-
- return end;
-}
-
-
-// FIXME: need error handler
-FILE *SafeOpenWrite (const char *filename)
-{
- FILE *f;
-
- f = fopen(filename, "wb");
-
- if (!f)
- {
- Error ("Error opening %s: %s",filename,strerror(errno));
- }
-
- return f;
-}
-
-FILE *SafeOpenRead (const char *filename)
-{
- FILE *f;
-
- f = fopen(filename, "rb");
-
- if (!f)
- {
- Error ("Error opening %s: %s",filename,strerror(errno));
- }
-
- return f;
-}
-
-
-void SafeRead (FILE *f, void *buffer, int count)
-{
- if ( (int)fread (buffer, 1, count, f) != count)
- Error ("File read failure");
-}
-
-
-void SafeWrite (FILE *f, const void *buffer, int count)
-{
- if ( (int)fwrite (buffer, 1, count, f) != count)
- Error ("File read failure");
-}
-
-
-
-/*
-==============
-LoadFile
-==============
-*/
-int LoadFile (const char *filename, void **bufferptr)
-{
- FILE *f;
- int length;
- void *buffer;
-
- *bufferptr = NULL;
-
- if (filename == NULL || strlen(filename) == 0)
- {
- return -1;
- }
-
- f = fopen (filename, "rb");
- if (!f)
- {
- return -1;
- }
- length = Q_filelength (f);
- buffer = qblockmalloc (length+1);
- ((char *)buffer)[length] = 0;
- SafeRead (f, buffer, length);
- fclose (f);
-
- *bufferptr = buffer;
- return length;
-}
-
-
-/*
-==============
-LoadFileNoCrash
-
-returns -1 length if not present
-==============
-*/
-int LoadFileNoCrash (const char *filename, void **bufferptr)
-{
- FILE *f;
- int length;
- void *buffer;
-
- f = fopen (filename, "rb");
- if (!f)
- return -1;
- length = Q_filelength (f);
- buffer = qmalloc (length+1);
- ((char *)buffer)[length] = 0;
- SafeRead (f, buffer, length);
- fclose (f);
-
- *bufferptr = buffer;
- return length;
-}
-
-
-/*
-==============
-SaveFile
-==============
-*/
-void SaveFile (const char *filename, void *buffer, int count)
-{
- FILE *f;
-
- f = SafeOpenWrite (filename);
- SafeWrite (f, buffer, count);
- fclose (f);
-}
-
-
-
-void DefaultExtension (char *path, char *extension)
-{
- char *src;
-//
-// if path doesn't have a .EXT, append extension
-// (extension should include the .)
-//
- src = path + strlen(path) - 1;
-
- while (*src != PATHSEPERATOR && src != path)
- {
- if (*src == '.')
- return; // it has an extension
- src--;
- }
-
- strcat (path, extension);
-}
-
-
-void DefaultPath (char *path, char *basepath)
-{
- char temp[128];
-
- if (path[0] == PATHSEPERATOR)
- return; // absolute path location
- strcpy (temp,path);
- strcpy (path,basepath);
- strcat (path,temp);
-}
-
-
-void StripFilename (char *path)
-{
- int length;
-
- length = strlen(path)-1;
- while (length > 0 && path[length] != PATHSEPERATOR)
- length--;
- path[length] = 0;
-}
-
-void StripExtension (char *path)
-{
- int length;
-
- length = strlen(path)-1;
- while (length > 0 && path[length] != '.')
- {
- length--;
- if (path[length] == '/')
- return; // no extension
- }
- if (length)
- path[length] = 0;
-}
-
-
-/*
-====================
-Extract file parts
-====================
-*/
-void ExtractFilePath (const char *path, char *dest)
-{
- const char *src;
-
- src = path + strlen(path) - 1;
-
-//
-// back up until a \ or the start
-//
- while (src != path && *(src-1) != PATHSEPERATOR)
- src--;
-
- memcpy (dest, path, src-path);
- dest[src-path] = 0;
-}
-
-void ExtractFileName (const char *path, char *dest)
-{
- const char *src;
-
- src = path + strlen(path) - 1;
-
-//
-// back up until a \ or the start
-//
- while (src != path && *(src-1) != '/'
- && *(src-1) != '\\' )
- src--;
-
- while (*src)
- {
- *dest++ = *src++;
- }
- *dest = 0;
-}
-
-void ExtractFileBase (const char *path, char *dest)
-{
- const char *src;
-
- src = path + strlen(path) - 1;
-
-//
-// back up until a \ or the start
-//
- while (src != path && *(src-1) != '/'
- && *(src-1) != '\\' )
- src--;
-
- while (*src && *src != '.')
- {
- *dest++ = *src++;
- }
- *dest = 0;
-}
-
-void ExtractFileExtension (const char *path, char *dest)
-{
- const char *src;
-
- src = path + strlen(path) - 1;
-
-//
-// back up until a . or the start
-//
- while (src != path && *(src-1) != '.')
- src--;
- if (src == path)
- {
- *dest = 0; // no extension
- return;
- }
-
- strcpy (dest,src);
-}
-
-
-void ConvertDOSToUnixName( char *dst, const char *src )
-{
- while ( *src )
- {
- if ( *src == '\\' )
- *dst = '/';
- else
- *dst = *src;
- dst++; src++;
- }
- *dst = 0;
-}
-
-
-char* StrDup(char* pStr)
-{
- if (pStr)
- {
- return strcpy(new char[strlen(pStr)+1], pStr);
- }
- return NULL;
-}
-
-char* StrDup(const char* pStr)
-{
- if (pStr)
- {
- return strcpy(new char[strlen(pStr)+1], pStr);
- }
- return NULL;
-}
-
-
-/*
-============================================================================
-
- BYTE ORDER FUNCTIONS
-
-============================================================================
-*/
-
-#ifdef _SGI_SOURCE
-#define __BIG_ENDIAN__
-#endif
-
-#ifdef __BIG_ENDIAN__
-
-short LittleShort (short l)
-{
- byte b1,b2;
-
- b1 = l&255;
- b2 = (l>>8)&255;
-
- return (b1<<8) + b2;
-}
-
-short BigShort (short l)
-{
- return l;
-}
-
-
-int LittleLong (int l)
-{
- byte b1,b2,b3,b4;
-
- b1 = l&255;
- b2 = (l>>8)&255;
- b3 = (l>>16)&255;
- b4 = (l>>24)&255;
-
- return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4;
-}
-
-int BigLong (int l)
-{
- return l;
-}
-
-
-float LittleFloat (float l)
-{
- union {byte b[4]; float f;} in, out;
-
- in.f = l;
- out.b[0] = in.b[3];
- out.b[1] = in.b[2];
- out.b[2] = in.b[1];
- out.b[3] = in.b[0];
-
- return out.f;
-}
-
-float BigFloat (float l)
-{
- return l;
-}
-
-
-#else
-
-
-short BigShort (short l)
-{
- byte b1,b2;
-
- b1 = l&255;
- b2 = (l>>8)&255;
-
- return (b1<<8) + b2;
-}
-
-short LittleShort (short l)
-{
- return l;
-}
-
-
-int BigLong (int l)
-{
- byte b1,b2,b3,b4;
-
- b1 = l&255;
- b2 = (l>>8)&255;
- b3 = (l>>16)&255;
- b4 = (l>>24)&255;
-
- return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4;
-}
-
-int LittleLong (int l)
-{
- return l;
-}
-
-float BigFloat (float l)
-{
- union {byte b[4]; float f;} in, out;
-
- in.f = l;
- out.b[0] = in.b[3];
- out.b[1] = in.b[2];
- out.b[2] = in.b[1];
- out.b[3] = in.b[0];
-
- return out.f;
-}
-
-float LittleFloat (float l)
-{
- return l;
-}
-
-
-
-#endif
-
+//
+// start of shared cmdlib stuff
+//
+
+
+#include "cmdlib.h"
+#include "windows.h"
+
+#define PATHSEPERATOR '/'
+
+// rad additions
+// 11.29.99
+PFN_ERR *g_pfnError = NULL;
+PFN_PRINTF *g_pfnPrintf = NULL;
+PFN_ERR_NUM *g_pfnErrorNum = NULL;
+PFN_PRINTF_NUM *g_pfnPrintfNum = NULL;
+
+
+void Error(const char *pFormat, ...)
+{
+ if (g_pfnError)
+ {
+ va_list arg_ptr;
+ va_start(arg_ptr, pFormat);
+ g_pfnError(pFormat, arg_ptr);
+ va_end(arg_ptr);
+ }
+}
+
+void Printf(const char *pFormat, ...)
+{
+ if (g_pfnPrintf)
+ {
+ va_list arg_ptr;
+ va_start(arg_ptr, pFormat);
+ g_pfnPrintf(pFormat, arg_ptr);
+ va_end(arg_ptr);
+ }
+}
+
+void ErrorNum(int nErr, const char *pFormat, ...)
+{
+ if (g_pfnErrorNum)
+ {
+ va_list arg_ptr;
+ va_start(arg_ptr, pFormat);
+ g_pfnErrorNum(nErr, pFormat, arg_ptr);
+ va_end(arg_ptr);
+ }
+}
+
+void PrintfNum(int nErr, const char *pFormat, ...)
+{
+ if (g_pfnPrintfNum)
+ {
+ va_list arg_ptr;
+ va_start(arg_ptr, pFormat);
+ g_pfnPrintfNum(nErr, pFormat, arg_ptr);
+ va_end(arg_ptr);
+ }
+}
+
+
+
+void SetErrorHandler(PFN_ERR pe)
+{
+ g_pfnError = pe;
+}
+
+void SetPrintfHandler(PFN_PRINTF pe)
+{
+ g_pfnPrintf = pe;
+}
+
+void SetErrorHandlerNum(PFN_ERR_NUM pe)
+{
+ g_pfnErrorNum = pe;
+}
+
+void SetPrintfHandler(PFN_PRINTF_NUM pe)
+{
+ g_pfnPrintfNum = pe;
+}
+
+
+
+// rad end
+
+#define MEM_BLOCKSIZE 4096
+void* qblockmalloc(size_t nSize)
+{
+ void *b;
+ // round up to threshold
+ int nAllocSize = nSize % MEM_BLOCKSIZE;
+ if ( nAllocSize > 0)
+ {
+ nSize += MEM_BLOCKSIZE - nAllocSize;
+ }
+ b = malloc(nSize + 1);
+ memset (b, 0, nSize);
+ return b;
+}
+
+void* qmalloc (size_t nSize)
+{
+ void *b;
+ b = malloc(nSize + 1);
+ memset (b, 0, nSize);
+ return b;
+}
+
+/*
+================
+Q_filelength
+================
+*/
+int Q_filelength (FILE *f)
+{
+ int pos;
+ int end;
+
+ pos = ftell (f);
+ fseek (f, 0, SEEK_END);
+ end = ftell (f);
+ fseek (f, pos, SEEK_SET);
+
+ return end;
+}
+
+
+// FIXME: need error handler
+FILE *SafeOpenWrite (const char *filename)
+{
+ FILE *f;
+
+ f = fopen(filename, "wb");
+
+ if (!f)
+ {
+ Error ("Error opening %s: %s",filename,strerror(errno));
+ }
+
+ return f;
+}
+
+FILE *SafeOpenRead (const char *filename)
+{
+ FILE *f;
+
+ f = fopen(filename, "rb");
+
+ if (!f)
+ {
+ Error ("Error opening %s: %s",filename,strerror(errno));
+ }
+
+ return f;
+}
+
+
+void SafeRead (FILE *f, void *buffer, int count)
+{
+ if ( (int)fread (buffer, 1, count, f) != count)
+ Error ("File read failure");
+}
+
+
+void SafeWrite (FILE *f, const void *buffer, int count)
+{
+ if ( (int)fwrite (buffer, 1, count, f) != count)
+ Error ("File read failure");
+}
+
+
+
+/*
+==============
+LoadFile
+==============
+*/
+int LoadFile (const char *filename, void **bufferptr)
+{
+ FILE *f;
+ int length;
+ void *buffer;
+
+ *bufferptr = NULL;
+
+ if (filename == NULL || strlen(filename) == 0)
+ {
+ return -1;
+ }
+
+ f = fopen (filename, "rb");
+ if (!f)
+ {
+ return -1;
+ }
+ length = Q_filelength (f);
+ buffer = qblockmalloc (length+1);
+ ((char *)buffer)[length] = 0;
+ SafeRead (f, buffer, length);
+ fclose (f);
+
+ *bufferptr = buffer;
+ return length;
+}
+
+
+/*
+==============
+LoadFileNoCrash
+
+returns -1 length if not present
+==============
+*/
+int LoadFileNoCrash (const char *filename, void **bufferptr)
+{
+ FILE *f;
+ int length;
+ void *buffer;
+
+ f = fopen (filename, "rb");
+ if (!f)
+ return -1;
+ length = Q_filelength (f);
+ buffer = qmalloc (length+1);
+ ((char *)buffer)[length] = 0;
+ SafeRead (f, buffer, length);
+ fclose (f);
+
+ *bufferptr = buffer;
+ return length;
+}
+
+
+/*
+==============
+SaveFile
+==============
+*/
+void SaveFile (const char *filename, void *buffer, int count)
+{
+ FILE *f;
+
+ f = SafeOpenWrite (filename);
+ SafeWrite (f, buffer, count);
+ fclose (f);
+}
+
+
+
+void DefaultExtension (char *path, char *extension)
+{
+ char *src;
+//
+// if path doesn't have a .EXT, append extension
+// (extension should include the .)
+//
+ src = path + strlen(path) - 1;
+
+ while (*src != PATHSEPERATOR && src != path)
+ {
+ if (*src == '.')
+ return; // it has an extension
+ src--;
+ }
+
+ strcat (path, extension);
+}
+
+
+void DefaultPath (char *path, char *basepath)
+{
+ char temp[128];
+
+ if (path[0] == PATHSEPERATOR)
+ return; // absolute path location
+ strcpy (temp,path);
+ strcpy (path,basepath);
+ strcat (path,temp);
+}
+
+
+void StripFilename (char *path)
+{
+ int length;
+
+ length = strlen(path)-1;
+ while (length > 0 && path[length] != PATHSEPERATOR)
+ length--;
+ path[length] = 0;
+}
+
+void StripExtension (char *path)
+{
+ int length;
+
+ length = strlen(path)-1;
+ while (length > 0 && path[length] != '.')
+ {
+ length--;
+ if (path[length] == '/')
+ return; // no extension
+ }
+ if (length)
+ path[length] = 0;
+}
+
+
+/*
+====================
+Extract file parts
+====================
+*/
+void ExtractFilePath (const char *path, char *dest)
+{
+ const char *src;
+
+ src = path + strlen(path) - 1;
+
+//
+// back up until a \ or the start
+//
+ while (src != path && *(src-1) != PATHSEPERATOR)
+ src--;
+
+ memcpy (dest, path, src-path);
+ dest[src-path] = 0;
+}
+
+void ExtractFileName (const char *path, char *dest)
+{
+ const char *src;
+
+ src = path + strlen(path) - 1;
+
+//
+// back up until a \ or the start
+//
+ while (src != path && *(src-1) != '/'
+ && *(src-1) != '\\' )
+ src--;
+
+ while (*src)
+ {
+ *dest++ = *src++;
+ }
+ *dest = 0;
+}
+
+void ExtractFileBase (const char *path, char *dest)
+{
+ const char *src;
+
+ src = path + strlen(path) - 1;
+
+//
+// back up until a \ or the start
+//
+ while (src != path && *(src-1) != '/'
+ && *(src-1) != '\\' )
+ src--;
+
+ while (*src && *src != '.')
+ {
+ *dest++ = *src++;
+ }
+ *dest = 0;
+}
+
+void ExtractFileExtension (const char *path, char *dest)
+{
+ const char *src;
+
+ src = path + strlen(path) - 1;
+
+//
+// back up until a . or the start
+//
+ while (src != path && *(src-1) != '.')
+ src--;
+ if (src == path)
+ {
+ *dest = 0; // no extension
+ return;
+ }
+
+ strcpy (dest,src);
+}
+
+
+void ConvertDOSToUnixName( char *dst, const char *src )
+{
+ while ( *src )
+ {
+ if ( *src == '\\' )
+ *dst = '/';
+ else
+ *dst = *src;
+ dst++; src++;
+ }
+ *dst = 0;
+}
+
+
+char* StrDup(char* pStr)
+{
+ if (pStr)
+ {
+ return strcpy(new char[strlen(pStr)+1], pStr);
+ }
+ return NULL;
+}
+
+char* StrDup(const char* pStr)
+{
+ if (pStr)
+ {
+ return strcpy(new char[strlen(pStr)+1], pStr);
+ }
+ return NULL;
+}
+
+
+/*
+============================================================================
+
+ BYTE ORDER FUNCTIONS
+
+============================================================================
+*/
+
+#ifdef _SGI_SOURCE
+#define __BIG_ENDIAN__
+#endif
+
+#ifdef __BIG_ENDIAN__
+
+short LittleShort (short l)
+{
+ byte b1,b2;
+
+ b1 = l&255;
+ b2 = (l>>8)&255;
+
+ return (b1<<8) + b2;
+}
+
+short BigShort (short l)
+{
+ return l;
+}
+
+
+int LittleLong (int l)
+{
+ byte b1,b2,b3,b4;
+
+ b1 = l&255;
+ b2 = (l>>8)&255;
+ b3 = (l>>16)&255;
+ b4 = (l>>24)&255;
+
+ return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4;
+}
+
+int BigLong (int l)
+{
+ return l;
+}
+
+
+float LittleFloat (float l)
+{
+ union {byte b[4]; float f;} in, out;
+
+ in.f = l;
+ out.b[0] = in.b[3];
+ out.b[1] = in.b[2];
+ out.b[2] = in.b[1];
+ out.b[3] = in.b[0];
+
+ return out.f;
+}
+
+float BigFloat (float l)
+{
+ return l;
+}
+
+
+#else
+
+
+short BigShort (short l)
+{
+ byte b1,b2;
+
+ b1 = l&255;
+ b2 = (l>>8)&255;
+
+ return (b1<<8) + b2;
+}
+
+short LittleShort (short l)
+{
+ return l;
+}
+
+
+int BigLong (int l)
+{
+ byte b1,b2,b3,b4;
+
+ b1 = l&255;
+ b2 = (l>>8)&255;
+ b3 = (l>>16)&255;
+ b4 = (l>>24)&255;
+
+ return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4;
+}
+
+int LittleLong (int l)
+{
+ return l;
+}
+
+float BigFloat (float l)
+{
+ union {byte b[4]; float f;} in, out;
+
+ in.f = l;
+ out.b[0] = in.b[3];
+ out.b[1] = in.b[2];
+ out.b[2] = in.b[1];
+ out.b[3] = in.b[0];
+
+ return out.f;
+}
+
+float LittleFloat (float l)
+{
+ return l;
+}
+
+
+
+#endif
+