X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=7a3afc688ae3636bec5705994f0846933987d6a8;hb=1c9e305ffcb3dd5fd571817d1a50b276703b621c;hp=a6bef9b878af3869cedb0d7272927584606c7093;hpb=e086ff916e148637704376bff8314a8f23c5f552;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index a6bef9b8..7a3afc68 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -903,6 +903,38 @@ char *getFixedUserName(char *name) return name_new; } +char *getDefaultUserName(int nr) +{ + static char *user_name[MAX_PLAYER_NAMES] = { NULL }; + + nr = MIN(MAX(0, nr), MAX_PLAYER_NAMES - 1); + + if (user_name[nr] == NULL) + { + user_name[nr] = (nr == 0 ? getLoginName() : EMPTY_PLAYER_NAME); + user_name[nr] = getFixedUserName(user_name[nr]); + } + + return user_name[nr]; +} + +char *getTimestampFromEpoch(time_t epoch_seconds) +{ + struct tm *now = localtime(&epoch_seconds); + static char timestamp[20]; + + sprintf(timestamp, "%04d%02d%02d-%02d%02d%02d", + now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, + now->tm_hour, now->tm_min, now->tm_sec); + + return timestamp; +} + +char *getCurrentTimestamp(void) +{ + return getTimestampFromEpoch(time(NULL)); +} + time_t getFileTimestampEpochSeconds(char *filename) { struct stat file_status; @@ -1146,6 +1178,22 @@ boolean strEqualN(char *s1, char *s2, int n) strncmp(s1, s2, n) == 0); } +boolean strEqualCase(char *s1, char *s2) +{ + return (s1 == NULL && s2 == NULL ? TRUE : + s1 == NULL && s2 != NULL ? FALSE : + s1 != NULL && s2 == NULL ? FALSE : + strcasecmp(s1, s2) == 0); +} + +boolean strEqualCaseN(char *s1, char *s2, int n) +{ + return (s1 == NULL && s2 == NULL ? TRUE : + s1 == NULL && s2 != NULL ? FALSE : + s1 != NULL && s2 == NULL ? FALSE : + strncasecmp(s1, s2, n) == 0); +} + boolean strPrefix(char *s, char *prefix) { return (s == NULL && prefix == NULL ? TRUE :