mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2024-11-29 11:24:19 +01:00
Semi-small fix to make SourceMM ignore whitespace in metaplugins.ini with UTIL_TrimLeft and UTIL_TrimRight
(I'm not sure if I'm qualified to make efficient string functions here, so um, they probably are pretty bad) --HG-- extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/trunk%4085
This commit is contained in:
parent
f5076fa43d
commit
8ce6594b70
@ -334,7 +334,11 @@ int LoadPluginsFromFile(const char *file)
|
|||||||
continue;
|
continue;
|
||||||
if (buffer[length-1] == '\n')
|
if (buffer[length-1] == '\n')
|
||||||
buffer[length-1] = '\0';
|
buffer[length-1] = '\0';
|
||||||
if (buffer[0] == ';' || strncmp(buffer, "//", 2) == 0)
|
|
||||||
|
UTIL_TrimLeft(buffer);
|
||||||
|
UTIL_TrimRight(buffer);
|
||||||
|
|
||||||
|
if (buffer[0] == NULL || buffer[0] == ';' || strncmp(buffer, "//", 2) == 0)
|
||||||
continue;
|
continue;
|
||||||
//First find if it's an absolute path or not...
|
//First find if it's an absolute path or not...
|
||||||
if (buffer[0] == '/' || strncmp(&(buffer[1]), ":\\", 2) == 0)
|
if (buffer[0] == '/' || strncmp(&(buffer[1]), ":\\", 2) == 0)
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
* ============================
|
* ============================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
@ -38,3 +39,43 @@ const char *UTIL_GetExtension(const char *file)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* UTIL_TrimLeft
|
||||||
|
* Removes whitespace characters from left side of string
|
||||||
|
*/
|
||||||
|
void UTIL_TrimLeft(char *buffer)
|
||||||
|
{
|
||||||
|
// Let's think of this as our iterator
|
||||||
|
char *i = buffer;
|
||||||
|
|
||||||
|
// Make sure the buffer isn't null
|
||||||
|
if (i && *i)
|
||||||
|
{
|
||||||
|
// Add up number of whitespace characters
|
||||||
|
while(isspace(*i))
|
||||||
|
i++;
|
||||||
|
|
||||||
|
// If whitespace chars in buffer then adjust string so first non-whitespace char is at start of buffer
|
||||||
|
if (i != buffer)
|
||||||
|
memcpy(buffer, i, (strlen(i) + 1) * sizeof(char));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* UTIL_TrimLeft
|
||||||
|
* Removes whitespace characters from right side of string
|
||||||
|
*/
|
||||||
|
void UTIL_TrimRight(char *buffer)
|
||||||
|
{
|
||||||
|
// Make sure buffer isn't null
|
||||||
|
if (buffer)
|
||||||
|
{
|
||||||
|
// Loop through buffer backwards while replacing whitespace chars with null chars
|
||||||
|
for (unsigned int i = strlen(buffer) - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
if (isspace(buffer[i]))
|
||||||
|
buffer[i] = '\0';
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const char *UTIL_GetExtension(const char *file);
|
const char *UTIL_GetExtension(const char *file);
|
||||||
|
void UTIL_TrimLeft(char *buffer);
|
||||||
|
void UTIL_TrimRight(char *buffer);
|
||||||
|
|
||||||
#define META_INTERFACE_MACRO(type, final) \
|
#define META_INTERFACE_MACRO(type, final) \
|
||||||
PluginIter i; \
|
PluginIter i; \
|
||||||
|
Loading…
Reference in New Issue
Block a user