]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/parse.cpp
uncrustify! now the code is only ugly on the *inside*
[xonotic/netradiant.git] / radiant / parse.cpp
index 3760bf0038e9e24a73616978f91d8009ad70b14e..c37b74e760c7f8c2dec2589f91d5dde41136d120 100644 (file)
 /*
-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
+ */
 
 #include "stdafx.h"
 
-char     token[MAXTOKEN];
-qboolean  unget;
-char*    script_p;
-int      scriptline;
+char token[MAXTOKEN];
+qboolean unget;
+char*     script_p;
+int scriptline;
 
 // Hydra: added support for GetTokenExtra()
 char *currentdelimiters;
-qboolean  script_keepdelimiter;
+qboolean script_keepdelimiter;
 
-void StartTokenParsing (char *data)
-{
-  scriptline = 1;
-  script_p = data;
-  unget = false;
+void StartTokenParsing( char *data ){
+       scriptline = 1;
+       script_p = data;
+       unget = false;
 
-  // Hydra: added support for GetTokenExtra()
-  currentdelimiters = NULL;
-  script_keepdelimiter = true;
+       // Hydra: added support for GetTokenExtra()
+       currentdelimiters = NULL;
+       script_keepdelimiter = true;
 }
 
 
-qboolean GetToken (qboolean crossline)
-{
-  char    *token_p;
-  
-  if (unget)                         // is a token already waiting?
-  {
-    unget = false;
-    return true;
-  }
-  
-  //
-  // skip space
-  //
+qboolean GetToken( qboolean crossline ){
+       char    *token_p;
+
+       if ( unget ) {                   // is a token already waiting?
+               unget = false;
+               return true;
+       }
+
+       //
+       // skip space
+       //
 skipspace:
-  while (*script_p <= 32)
-  {
-    if (!*script_p)
-    {
-      if (!crossline)
-        Sys_Printf("Warning: Line %i is incomplete [01]\n",scriptline);
-      return false;
-    }
-    
-    if (*script_p++ == '\n')
-    {
-      if (!crossline)
-        Sys_Printf("Warning: Line %i is incomplete [02]\n",scriptline);
-      scriptline++;
-    }
-  }
-  
-  if (script_p[0] == '/' && script_p[1] == '/')        // comment field
-  {
-    if (!crossline)
-      Sys_Printf("Warning: Line %i is incomplete [03]\n",scriptline);
-    while (*script_p++ != '\n')
-      if (!*script_p)
-      {
-        if (!crossline)
-          Sys_Printf("Warning: Line %i is incomplete [04]\n",scriptline);
-        return false;
-      }
-      scriptline++; // Hydra: fixed bad line numbers problem
-      goto skipspace;
-  }
-  
-  //
-  // copy token
-  //
-  token_p = token;
-  
-  if (*script_p == '"')
-  {
-    script_p++;
-    while ( *script_p != '"' )
-    {
-      if (!*script_p)
-        Error ("EOF inside quoted token");
-      *token_p++ = *script_p++;
-      if (token_p == &token[MAXTOKEN])
-        Error ("Token too large on line %i",scriptline);
-    }
-    script_p++;
-  }
-  else 
-  while ( *script_p > 32 )
-  {
-    // Hydra: added support for GetTokenExtra(), care was taken to maintain speed
-    if((currentdelimiters) && (!script_keepdelimiter) && (strchr(currentdelimiters,*(script_p))))
-      break;
-
-    *token_p++ = *script_p++;
-    if (token_p == &token[MAXTOKEN])
-      Error ("Token too large on line %i",scriptline);
-
-    // Hydra: added support for GetTokenExtra()
-    if((currentdelimiters) && (strchr(currentdelimiters,*(script_p-1))))
-      break;
-
-  }
-  
-  *token_p = 0;
-  
-  return true;
+       while ( *script_p <= 32 )
+       {
+               if ( !*script_p ) {
+                       if ( !crossline ) {
+                               Sys_Printf( "Warning: Line %i is incomplete [01]\n",scriptline );
+                       }
+                       return false;
+               }
+
+               if ( *script_p++ == '\n' ) {
+                       if ( !crossline ) {
+                               Sys_Printf( "Warning: Line %i is incomplete [02]\n",scriptline );
+                       }
+                       scriptline++;
+               }
+       }
+
+       if ( script_p[0] == '/' && script_p[1] == '/' ) { // comment field
+               if ( !crossline ) {
+                       Sys_Printf( "Warning: Line %i is incomplete [03]\n",scriptline );
+               }
+               while ( *script_p++ != '\n' )
+                       if ( !*script_p ) {
+                               if ( !crossline ) {
+                                       Sys_Printf( "Warning: Line %i is incomplete [04]\n",scriptline );
+                               }
+                               return false;
+                       }
+               scriptline++; // Hydra: fixed bad line numbers problem
+               goto skipspace;
+       }
+
+       //
+       // copy token
+       //
+       token_p = token;
+
+       if ( *script_p == '"' ) {
+               script_p++;
+               while ( *script_p != '"' )
+               {
+                       if ( !*script_p ) {
+                               Error( "EOF inside quoted token" );
+                       }
+                       *token_p++ = *script_p++;
+                       if ( token_p == &token[MAXTOKEN] ) {
+                               Error( "Token too large on line %i",scriptline );
+                       }
+               }
+               script_p++;
+       }
+       else{
+               while ( *script_p > 32 )
+               {
+                       // Hydra: added support for GetTokenExtra(), care was taken to maintain speed
+                       if ( ( currentdelimiters ) && ( !script_keepdelimiter ) && ( strchr( currentdelimiters,*( script_p ) ) ) ) {
+                               break;
+                       }
+
+                       *token_p++ = *script_p++;
+                       if ( token_p == &token[MAXTOKEN] ) {
+                               Error( "Token too large on line %i",scriptline );
+                       }
+
+                       // Hydra: added support for GetTokenExtra()
+                       if ( ( currentdelimiters ) && ( strchr( currentdelimiters,*( script_p - 1 ) ) ) ) {
+                               break;
+                       }
+
+               }
+       }
+
+       *token_p = 0;
+
+       return true;
 }
 
-void UngetToken (void)
-{
-  unget = true;
+void UngetToken( void ){
+       unget = true;
 }
 
 /*
-==============
-GetTokenExtra
+   ==============
+   GetTokenExtra
 
-This function expands the use of GetToken() so it can be used to parse
-more complex file formats.
+   This function expands the use of GetToken() so it can be used to parse
+   more complex file formats.
 
-Hydra - Notes:
-You can use this function to split a string like this
+   Hydra - Notes:
+   You can use this function to split a string like this
 
-string1:("string2")
+   string1:("string2")
 
-into two strings, like this:
-string1
-string2
+   into two strings, like this:
+   string1
+   string2
 
-whilst still checking for the brackets and colons, like this:
+   whilst still checking for the brackets and colons, like this:
 
-GetTokenExtra(false,":",false);// contains "string1"
-GetTokenExtra(false,":",true); // contains ":"
-GetTokenExtra(false,"(",true); // contains "("
-GetToken(false);               // contains "string2"
-GetTokenExtra(false,")",true); // contains ")"
+   GetTokenExtra(false,":",false);// contains "string1"
+   GetTokenExtra(false,":",true); // contains ":"
+   GetTokenExtra(false,"(",true); // contains "("
+   GetToken(false);               // contains "string2"
+   GetTokenExtra(false,")",true); // contains ")"
 
-here's what you get, given the same string, with this code:
+   here's what you get, given the same string, with this code:
 
-GetToken(false); // contains "string1:("string2")"
+   GetToken(false); // contains "string1:("string2")"
 
-Parsing will end if any character in the script matches any one of the
-characters in the "delimiters" string.
+   Parsing will end if any character in the script matches any one of the
+   characters in the "delimiters" string.
 
-it's also possible to do things like this:
+   it's also possible to do things like this:
 
-source strings:
-1,2
-1:2
-1-2
-1*2
+   source strings:
+   1,2
+   1:2
+   1-2
+   1*2
 
-code:
-GetTokenExtra(false,",:-*",false); // token contains "1"
-GetTokenExtra(false,",:-*",false); // token contains the delimiter that was used
-GetToken(false);                   // contains "2"
-==============
-*/
-qboolean GetTokenExtra (qboolean crossline,char *delimiters, qboolean keepdelimiter)
-{
-  qboolean result;
-  char *olddelimiters = currentdelimiters; // store it
+   code:
+   GetTokenExtra(false,",:-*",false); // token contains "1"
+   GetTokenExtra(false,",:-*",false); // token contains the delimiter that was used
+   GetToken(false);                   // contains "2"
+   ==============
+ */
+qboolean GetTokenExtra( qboolean crossline,char *delimiters, qboolean keepdelimiter ){
+       qboolean result;
+       char *olddelimiters = currentdelimiters; // store it
 
-  currentdelimiters = delimiters; // change the delimiters
-  script_keepdelimiter = keepdelimiter; // change the global flag
+       currentdelimiters = delimiters; // change the delimiters
+       script_keepdelimiter = keepdelimiter; // change the global flag
 
-  result = GetToken(crossline);
-  currentdelimiters = olddelimiters; // restore it
-  return(result);
+       result = GetToken( crossline );
+       currentdelimiters = olddelimiters; // restore it
+       return( result );
 }
 
 /*
-==============
-TokenAvailable
-
-Returns true if there is another token on the line
-==============
-*/
-qboolean TokenAvailable (void)
-{
-  char *search_p;
-
-  search_p = script_p;
-
-  while ( *search_p <= 32)
-  {
-    if (*search_p == '\n')
-      return false;
-    if (*search_p == 0)
-      return false;
-    search_p++;
-  }
-
-  if (*search_p == ';')
-    return false;
-
-  return true;
+   ==============
+   TokenAvailable
+
+   Returns true if there is another token on the line
+   ==============
+ */
+qboolean TokenAvailable( void ){
+       char *search_p;
+
+       search_p = script_p;
+
+       while ( *search_p <= 32 )
+       {
+               if ( *search_p == '\n' ) {
+                       return false;
+               }
+               if ( *search_p == 0 ) {
+                       return false;
+               }
+               search_p++;
+       }
+
+       if ( *search_p == ';' ) {
+               return false;
+       }
+
+       return true;
 }