2005-04-16 21:59:26 +02:00
|
|
|
/* ======== SourceMM ========
|
2005-04-17 01:33:39 +02:00
|
|
|
* Copyright (C) 2004-2005 Metamod:Source Development Team
|
2005-04-16 21:59:26 +02:00
|
|
|
* No warranties of any kind
|
|
|
|
*
|
|
|
|
* License: zlib/libpng
|
|
|
|
*
|
|
|
|
* Author(s): David "BAILOPAN" Anderson
|
|
|
|
* ============================
|
|
|
|
*/
|
|
|
|
|
2005-07-03 18:11:28 +02:00
|
|
|
#include <ctype.h>
|
2005-04-16 21:59:26 +02:00
|
|
|
#include <string.h>
|
|
|
|
#include "util.h"
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Utility functons
|
|
|
|
* @file util.cpp
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* UTIL_GetExtension
|
|
|
|
* Returns a pointer to the extension in a file name
|
|
|
|
*/
|
|
|
|
const char *UTIL_GetExtension(const char *file)
|
|
|
|
{
|
|
|
|
int len = strlen(file);
|
|
|
|
int i = 0;
|
|
|
|
|
|
|
|
for (i=len-1; i>=0; i--)
|
|
|
|
{
|
|
|
|
if (file[i] == '/' || file[i] == '\\')
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
if ((file[i] == '.') && (i != len-1))
|
|
|
|
{
|
|
|
|
return (const char *)&(file[i+1]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return NULL;
|
2005-04-22 16:28:52 +02:00
|
|
|
}
|
|
|
|
|
2005-07-03 18:11:28 +02:00
|
|
|
/* 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;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|