X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=7450c3a35fd4942d4e0a19a039738b9c997b2650;hb=9bda353724b6dc9176d0dfaf28ef9f1ff4084d4b;hp=6101cbaec3ea68a64dcc37d051ca06bbfeb55061;hpb=39df66e241ecca67811f74d3ae19617cc02d1ac4;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 6101cbae..7450c3a3 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -620,12 +620,12 @@ static unsigned int mainCounter(int mode) return current_ms - base_ms; } -void InitCounter() // set counter back to zero +void InitCounter(void) // set counter back to zero { mainCounter(INIT_COUNTER); } -unsigned int Counter() // get milliseconds since last call of InitCounter() +unsigned int Counter(void) // get milliseconds since last call of InitCounter() { return mainCounter(READ_COUNTER); } @@ -1084,6 +1084,24 @@ char *getBasePath(char *filename) } +// ---------------------------------------------------------------------------- +// various memory functions +// ---------------------------------------------------------------------------- + +void *getMemCopy(const void *m, size_t size) +{ + void *m_copy; + + if (m == NULL) + return NULL; + + m_copy = checked_malloc(size); + memcpy(m_copy, m, size); + + return m_copy; +} + + // ---------------------------------------------------------------------------- // various string functions // ---------------------------------------------------------------------------- @@ -1220,6 +1238,18 @@ char *getStringCopyNStatic(const char *s, int n) return s_copy; } +char *getStringToUpper(const char *s) +{ + char *s_copy = checked_malloc(strlen(s) + 1); + char *s_ptr = s_copy; + + while (*s) + *s_ptr++ = toupper(*s++); + *s_ptr = '\0'; + + return s_copy; +} + char *getStringToLower(const char *s) { char *s_copy = checked_malloc(strlen(s) + 1); @@ -1411,6 +1441,44 @@ char *getUnescapedString(const char *s) return s_unescaped; } +char *chugString(char *s) +{ + if (s == NULL) + return NULL; + + char *start; + + for (start = (char *)s; *start && isspace(*start); start++) + ; + + memmove(s, start, strlen(start) + 1); + + return s; +} + +char *chompString(char *s) +{ + if (s == NULL) + return NULL; + + int len = strlen(s); + + while (len--) + { + if (isspace(s[len])) + s[len] = '\0'; + else + break; + } + + return s; +} + +char *stripString(char *s) +{ + return chugString(chompString(s)); +} + boolean strEqual(const char *s1, const char *s2) { return (s1 == NULL && s2 == NULL ? TRUE :