]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/cmdlib/cmdlib.cpp
uncrustify! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / libs / cmdlib / cmdlib.cpp
index 8e904fa746dd8cdff5cf992e456991c28380cd42..b27919ff7f0fc42265d922b2c42ea42293a09056 100644 (file)
@@ -1,34 +1,34 @@
 /*
-Copyright (C) 1999-2007 id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 1999-2007 id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-GtkRadiant is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   GtkRadiant is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
 //
 // start of shared cmdlib stuff
-// 
+//
 
 #include "cmdlib.h"
 
 #ifdef _WIN32
   #include <windows.h>
 #endif
-#if defined (__linux__) || defined (__APPLE__)
+#if defined ( __linux__ ) || defined ( __APPLE__ )
   #include <unistd.h>
 #endif
 
@@ -36,461 +36,435 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 // NOTE: we don't use this crap .. with the total mess of mixing win32/unix paths we need to recognize both '/' and '\\'
 #define PATHSEPERATOR   '/'
 
-#if defined (__linux__) || defined (__APPLE__)
-bool Q_Exec(const char *cmd, char *cmdline, const char *execdir, bool bCreateConsole)
-{
-  char fullcmd[2048];
-  char *pCmd;
+#if defined ( __linux__ ) || defined ( __APPLE__ )
+bool Q_Exec( const char *cmd, char *cmdline, const char *execdir, bool bCreateConsole ){
+       char fullcmd[2048];
+       char *pCmd;
 #ifdef _DEBUG
-  printf("Q_Exec damnit\n");
+       printf( "Q_Exec damnit\n" );
 #endif
-  switch (fork())
-  {
-  case -1:
-    return true;
-    break;
-  case 0:
-    // always concat the command on linux
-    if (cmd)
-    {
-      strcpy(fullcmd, cmd);
-    }
-    else
-      fullcmd[0] = '\0';
-    if (cmdline)
-    {
-      strcat(fullcmd, " ");
-      strcat(fullcmd, cmdline);
-    }
-    pCmd = fullcmd;
-    while (*pCmd == ' ')
-      pCmd++;
+       switch ( fork() )
+       {
+       case -1:
+               return true;
+               break;
+       case 0:
+               // always concat the command on linux
+               if ( cmd ) {
+                       strcpy( fullcmd, cmd );
+               }
+               else{
+                       fullcmd[0] = '\0';
+               }
+               if ( cmdline ) {
+                       strcat( fullcmd, " " );
+                       strcat( fullcmd, cmdline );
+               }
+               pCmd = fullcmd;
+               while ( *pCmd == ' ' )
+                       pCmd++;
 #ifdef _DEBUG
-    printf("Running system...\n");
-    printf("Command: %s\n", pCmd);
+               printf( "Running system...\n" );
+               printf( "Command: %s\n", pCmd );
 #endif
-    system( pCmd );
+               system( pCmd );
 #ifdef _DEBUG
-    printf ("system() returned\n");
+               printf( "system() returned\n" );
 #endif
-    _exit (0);
-    break;
-  }
-  return true;
+               _exit( 0 );
+               break;
+       }
+       return true;
 }
 #endif
 
 #ifdef _WIN32
 // NOTE TTimo windows is VERY nitpicky about the syntax in CreateProcess
-bool Q_Exec(const char *cmd, char *cmdline, const char *execdir, bool bCreateConsole)
-{
-  PROCESS_INFORMATION ProcessInformation;
-  STARTUPINFO startupinfo = {0};
-  DWORD dwCreationFlags;
-  GetStartupInfo (&startupinfo);
-  if (bCreateConsole)
-    dwCreationFlags = CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS;
-  else
-    dwCreationFlags = DETACHED_PROCESS | NORMAL_PRIORITY_CLASS;
-  const char *pCmd;
-  char *pCmdline;
-  pCmd = cmd;
-  if (pCmd)
-  {
-    while (*pCmd == ' ')
-      pCmd++;
-  }
-  pCmdline = cmdline;
-  if (pCmdline)
-  {
-    while (*pCmdline == ' ')
-      pCmdline++;
-  }
-  if (CreateProcess(
-                    pCmd,
-                    pCmdline,
-                    NULL,
-                    NULL,
-                    FALSE,
-                    dwCreationFlags,
-                    NULL,
-                    execdir,
-                    &startupinfo,
-                    &ProcessInformation
-                    ))
-    return true;
-  return false;
+bool Q_Exec( const char *cmd, char *cmdline, const char *execdir, bool bCreateConsole ){
+       PROCESS_INFORMATION ProcessInformation;
+       STARTUPINFO startupinfo = {0};
+       DWORD dwCreationFlags;
+       GetStartupInfo( &startupinfo );
+       if ( bCreateConsole ) {
+               dwCreationFlags = CREATE_NEW_CONSOLE | NORMAL_PRIORITY_CLASS;
+       }
+       else{
+               dwCreationFlags = DETACHED_PROCESS | NORMAL_PRIORITY_CLASS;
+       }
+       const char *pCmd;
+       char *pCmdline;
+       pCmd = cmd;
+       if ( pCmd ) {
+               while ( *pCmd == ' ' )
+                       pCmd++;
+       }
+       pCmdline = cmdline;
+       if ( pCmdline ) {
+               while ( *pCmdline == ' ' )
+                       pCmdline++;
+       }
+       if ( CreateProcess(
+                        pCmd,
+                        pCmdline,
+                        NULL,
+                        NULL,
+                        FALSE,
+                        dwCreationFlags,
+                        NULL,
+                        execdir,
+                        &startupinfo,
+                        &ProcessInformation
+                        ) ) {
+               return true;
+       }
+       return false;
 }
 #endif
 
 #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* 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;
 }
 
 //++timo NOTE: can be replaced by g_malloc0(nSize+1) when moving to glib memory handling
-void* qmalloc (size_t nSize)
-{
-  void *b;
-  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;
+   ================
+   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;
 }
 
-void DefaultExtension (char *path, char *extension)
-{
-  char    *src;
+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;
+       src = path + strlen( path ) - 1;
 
-  while (*src != PATHSEPERATOR && src != path)
-  {
-    if (*src == '.')
-      return;                 // it has an extension
-    src--;
-  }
+       while ( *src != PATHSEPERATOR && src != path )
+       {
+               if ( *src == '.' ) {
+                       return;           // it has an extension
+               }
+               src--;
+       }
 
-  strcat (path, extension);
+       strcat( path, extension );
 }
 
-void DefaultPath (char *path, char *basepath)
-{
-  char    temp[128];
+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);
+       if ( path[0] == PATHSEPERATOR ) {
+               return;               // absolute path location
+       }
+       strcpy( temp,path );
+       strcpy( path,basepath );
+       strcat( path,temp );
 }
 
 
-void    StripFilename (char *path)
-{
-  int             length;
+void    StripFilename( char *path ){
+       int length;
 
-  length = strlen(path)-1;
-  while (length > 0 && path[length] != PATHSEPERATOR)
-    length--;
-  path[length] = 0;
+       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;
+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;
+   ====================
+   Extract file parts
+   ====================
+ */
+void ExtractFilePath( const char *path, char *dest ){
+       const char *src;
 
-  src = path + strlen(path) - 1;
+       src = path + strlen( path ) - 1;
 
 //
 // back up until a \ or the start
 //
-  while (src != path && *(src-1) != '/' && *(src-1) != '\\')
-    src--;
+       while ( src != path && *( src - 1 ) != '/' && *( src - 1 ) != '\\' )
+               src--;
 
-  memcpy (dest, path, src-path);
-  dest[src-path] = 0;
+       memcpy( dest, path, src - path );
+       dest[src - path] = 0;
 }
 
-void ExtractFileName (const char *path, char *dest)
-{
-  const char *src;
+void ExtractFileName( const char *path, char *dest ){
+       const char *src;
 
-  src = path + strlen(path) - 1;
+       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;
+       while ( src != path && *( src - 1 ) != '/'
+                       && *( src - 1 ) != '\\' )
+               src--;
+
+       while ( *src )
+       {
+               *dest++ = *src++;
+       }
+       *dest = 0;
 }
 
-inline const char* path_get_filename_start(const char* path)
-{
-  {
-    const char* last_forward_slash = strrchr(path, '/');
-    if(last_forward_slash != NULL)
-      return last_forward_slash + 1;
-  }
-
-  {
-    const char* last_backward_slash = strrchr(path, '\\');
-    if(last_backward_slash != NULL)
-      return last_backward_slash + 1;
-  }
-
-  return path;
+inline const char* path_get_filename_start( const char* path ){
+       {
+               const char* last_forward_slash = strrchr( path, '/' );
+               if ( last_forward_slash != NULL ) {
+                       return last_forward_slash + 1;
+               }
+       }
+
+       {
+               const char* last_backward_slash = strrchr( path, '\\' );
+               if ( last_backward_slash != NULL ) {
+                       return last_backward_slash + 1;
+               }
+       }
+
+       return path;
 }
 
-inline unsigned int filename_get_base_length(const char* filename)
-{
-  const char* last_period = strrchr(filename, '.');
-  return (last_period != NULL) ? last_period - filename : strlen(filename);
+inline unsigned int filename_get_base_length( const char* filename ){
+       const char* last_period = strrchr( filename, '.' );
+       return ( last_period != NULL ) ? last_period - filename : strlen( filename );
 }
 
-void ExtractFileBase (const char *path, char *dest)
-{
-  const char* filename = path_get_filename_start(path);
-  unsigned int length = filename_get_base_length(filename);
-  strncpy(dest, filename, length);
-  dest[length] = '\0';
+void ExtractFileBase( const char *path, char *dest ){
+       const char* filename = path_get_filename_start( path );
+       unsigned int length = filename_get_base_length( filename );
+       strncpy( dest, filename, length );
+       dest[length] = '\0';
 }
 
-void ExtractFileExtension (const char *path, char *dest)
-{
-  const char *src;
+void ExtractFileExtension( const char *path, char *dest ){
+       const char *src;
 
-  src = path + strlen(path) - 1;
+       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);
+       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;
+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( 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;
+char* StrDup( const char* pStr ){
+       if ( pStr ) {
+               return strcpy( new char[strlen( pStr ) + 1], pStr );
+       }
+       return NULL;
 }
 
-void CreateDirectoryPath (const char *path) {
-  char base[PATH_MAX];
-  char *src;
-  char back;
-  
-  ExtractFilePath(path, base);
-
-  src = base+1;
-  while (1) {
-    while (*src != '\0' && *src != '/' && *src != '\\') {
-      src++;
-    }
-    if (*src == '\0') {
-      break;
-    }
-    back = *src; *src = '\0';
-    Q_mkdir(base, 0755);
-    *src = back; src++;
-  }
+void CreateDirectoryPath( const char *path ) {
+       char base[PATH_MAX];
+       char *src;
+       char back;
+
+       ExtractFilePath( path, base );
+
+       src = base + 1;
+       while ( 1 ) {
+               while ( *src != '\0' && *src != '/' && *src != '\\' ) {
+                       src++;
+               }
+               if ( *src == '\0' ) {
+                       break;
+               }
+               back = *src; *src = '\0';
+               Q_mkdir( base, 0755 );
+               *src = back; src++;
+       }
 }
 
 /*
-============================================================================
+   ============================================================================
 
           BYTE ORDER FUNCTIONS
 
-============================================================================
-*/
+   ============================================================================
+ */
 
 #ifdef _SGI_SOURCE
-  #define      __BIG_ENDIAN__
+  #define   __BIG_ENDIAN__
 #endif
 
 #ifdef __BIG_ENDIAN__
 
-short   LittleShort (short l)
-{
-  byte    b1,b2;
+short   LittleShort( short l ){
+       byte b1,b2;
 
-  b1 = l&255;
-  b2 = (l>>8)&255;
+       b1 = l & 255;
+       b2 = ( l >> 8 ) & 255;
 
-  return(b1<<8) + b2;
+       return ( b1 << 8 ) + b2;
 }
 
-short   BigShort (short l)
-{
-  return l;
+short   BigShort( short l ){
+       return l;
 }
 
 
-int    LittleLong (int l)
-{
-  byte    b1,b2,b3,b4;
+int    LittleLong( int l ){
+       byte b1,b2,b3,b4;
 
-  b1 = l&255;
-  b2 = (l>>8)&255;
-  b3 = (l>>16)&255;
-  b4 = (l>>24)&255;
+       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;
+       return ( (int)b1 << 24 ) + ( (int)b2 << 16 ) + ( (int)b3 << 8 ) + b4;
 }
 
-int    BigLong (int l)
-{
-  return l;
+int    BigLong( int l ){
+       return l;
 }
 
 
-float LittleFloat (float l)
-{
-  union
-  {
-    byte b[4]; float f;
-  } in, out;
+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];
+       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;
+       return out.f;
 }
 
-float BigFloat (float l)
-{
-  return l;
+float BigFloat( float l ){
+       return l;
 }
 
 #else
 
-short   BigShort (short l)
-{
-  byte    b1,b2;
+short   BigShort( short l ){
+       byte b1,b2;
 
-  b1 = l&255;
-  b2 = (l>>8)&255;
+       b1 = l & 255;
+       b2 = ( l >> 8 ) & 255;
 
-  return(b1<<8) + b2;
+       return ( b1 << 8 ) + b2;
 }
 
-short   LittleShort (short l)
-{
-  return l;
+short   LittleShort( short l ){
+       return l;
 }
 
 
-int    BigLong (int l)
-{
-  byte    b1,b2,b3,b4;
+int    BigLong( int l ){
+       byte b1,b2,b3,b4;
 
-  b1 = l&255;
-  b2 = (l>>8)&255;
-  b3 = (l>>16)&255;
-  b4 = (l>>24)&255;
+       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;
+       return ( (int)b1 << 24 ) + ( (int)b2 << 16 ) + ( (int)b3 << 8 ) + b4;
 }
 
-int    LittleLong (int l)
-{
-  return l;
+int    LittleLong( int l ){
+       return l;
 }
 
-float BigFloat (float l)
-{
-  union
-  {
-    byte b[4]; float f;
-  } in, out;
+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];
+       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;
+       return out.f;
 }
 
-float LittleFloat (float l)
-{
-  return l;
+float LittleFloat( float l ){
+       return l;
 }
 
 #endif