uncrustify! now the code is only ugly on the *inside*

This commit is contained in:
Timothee TTimo Besset
2012-03-17 15:01:54 -05:00
parent 515673c08f
commit 830125fad0
667 changed files with 191926 additions and 193962 deletions

View File

@@ -1,220 +1,222 @@
/*
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;
while ( *script_p <= 32 )
{
if ( !*script_p ) {
if ( !crossline ) {
Sys_Printf( "Warning: Line %i is incomplete [01]\n",scriptline );
}
return false;
}
*token_p++ = *script_p++;
if (token_p == &token[MAXTOKEN])
Error ("Token too large on line %i",scriptline);
if ( *script_p++ == '\n' ) {
if ( !crossline ) {
Sys_Printf( "Warning: Line %i is incomplete [02]\n",scriptline );
}
scriptline++;
}
}
// Hydra: added support for GetTokenExtra()
if((currentdelimiters) && (strchr(currentdelimiters,*(script_p-1))))
break;
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;
}
}
*token_p = 0;
return true;
//
// 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
==============
TokenAvailable
Returns true if there is another token on the line
==============
*/
qboolean TokenAvailable (void)
{
char *search_p;
Returns true if there is another token on the line
==============
*/
qboolean TokenAvailable( void ){
char *search_p;
search_p = script_p;
search_p = script_p;
while ( *search_p <= 32)
{
if (*search_p == '\n')
return false;
if (*search_p == 0)
return false;
search_p++;
}
while ( *search_p <= 32 )
{
if ( *search_p == '\n' ) {
return false;
}
if ( *search_p == 0 ) {
return false;
}
search_p++;
}
if (*search_p == ';')
return false;
if ( *search_p == ';' ) {
return false;
}
return true;
return true;
}