SDL-mirror/test/test-automation/logger_helpers.c

120 lines
2.6 KiB
C
Raw Normal View History

2011-06-28 17:03:38 +03:00
#include <SDL/SDL.h>
#include "logger_helpers.h"
/*!
* Helper functions. Turns the given integer in to a string
*
* Note: uses static buffer internally, so the return value
* isn't valid after the next call of this function. If you
* want to retain the return value, make a copy of it
*
* \param integer The converted integer
* \returns Given integer as string
*/
char *IntToString(const int integer) {
static char buffer[256]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%d", integer);
return buffer;
}
/*!
* Helper functions. Turns the given double value in to a string
*
* Note: uses static buffer internally, so the return value
* isn't valid after the next call of this function. If you
* want to retain the return value, make a copy of it
*
* \param decimal The converted double value
* \returns Given double value as string
*/
char *DoubleToString(const double decimal) {
static char buffer[256]; // malloc might work better
memset(buffer, 0, sizeof(buffer));
SDL_snprintf(buffer, sizeof(buffer), "%.5f", decimal);
return buffer;
}
/*!
* Converts unix timestamp to its ascii presentation
*
* Note: uses static buffer internally, so the return value
* isn't valid after the next call of this function. If you
* want to retain the return value, make a copy of it
*
* \param timestamp Timestamp
* \return Ascii presentation
*/
char *TimestampToString(const time_t timestamp) {
static char buffer[256];
memset(buffer, 0, sizeof(buffer));
time_t copy = timestamp;
struct tm *local = localtime(&copy);
strftime(buffer, sizeof(buffer), "%a %Y-%m-%d %H:%M:%S %Z", local);
return buffer;
}
/*! Turns all the characters of the given
* string to lowercase and returns the resulting string.
*
* \param string String to be converted
* \return Newly allocated lower-case version of the given string
*/
char *
ToLowerCase(const char *string)
{
if(ValidateString(string) == 0) {
return NULL;
}
const int size = SDL_strlen(string);
char *ret = SDL_malloc(size + 1);
strncpy(ret, string, size);
ret[size] = '\0';
int counter = 0;
for(; counter < size; ++counter) {
ret[counter] = tolower(ret[counter]);
}
// printf("Debug: %s == %s\n", string, ret);
return ret;
}
/*!
* Validates string by checking that given string is not
* NULL, its length is non-zero etc.
*
* \param string Validated string
* \returns 1 if string is valid, otherwise 0
*/
int
ValidateString(const char *string)
{
int retVal = 1;
if(string != NULL) {
if(SDL_strlen(string) > 0) {
retVal = 1;
}
retVal = 1;
} else {
retVal = 0;
}
return retVal;
}