# HG changeset patch # User Christian Hammond # Date 1086602969 0 # Node ID 0c352d0e4ddce04c8a9780d5b41c3b66a4cabb12 # Parent 7ffeabe6a09ef1f2371b30d428d57d8095a072ed [gaim-migrate @ 10029] gaim_str_seconds_to_string() was overly complex, was painful to read, and had far too many nested if statements. I've replaced it with a very simple, easy to read function. Also, fixed a warning with rizzo's patch. committer: Tailor Script diff -r 7ffeabe6a09e -r 0c352d0e4ddc src/util.c --- a/src/util.c Mon Jun 07 09:58:54 2004 +0000 +++ b/src/util.c Mon Jun 07 10:09:29 2004 +0000 @@ -2333,51 +2333,44 @@ } char * -gaim_str_seconds_to_string(guint sec) +gaim_str_seconds_to_string(guint secs) { - guint daze, hrs, min; - char *ret = NULL; - - daze = sec / (60 * 60 * 24); - hrs = (sec % (60 * 60 * 24)) / (60 * 60); - min = (sec % (60 * 60)) / 60; - sec = min % 60; - - if (daze) { - if (hrs || min) { - if (hrs) { - if (min) { - ret = g_strdup_printf( - "%d %s, %d %s, %d %s.", - daze, ngettext("day","days",daze), - hrs, ngettext("hour","hours",hrs), min, ngettext("minute","minutes",min)); - } else { - ret = g_strdup_printf( - "%d %s, %d %s.", - daze, ngettext("day","days",daze), hrs, ngettext("hour","hours",hrs)); - } - } else { - ret = g_strdup_printf( - "%d %s, %d %s.", - daze, ngettext("day","days",daze), min, ngettext("minute","minutes",min)); - } - } else - ret = g_strdup_printf("%d %s.", daze, ngettext("day","days",daze)); - } else { - if (hrs) { - if (min) { - ret = g_strdup_printf( - "%d %s, %d %s.", - hrs, ngettext("hour","hours",hrs), min, ngettext("minute","minutes",min)); - } else { - ret = g_strdup_printf("%d %s.", hrs, ngettext("hour","hours",hrs)); - } - } else { - ret = g_strdup_printf("%d %s.", min, ngettext("minute","minutes",min)); - } + GString *gstr; + const char *prefix = ""; + guint days, hrs, mins; + + days = secs / (60 * 60 * 24); + secs = secs % (60 * 60 * 24); + hrs = secs / (60 * 60); + secs = secs % (60 * 60); + mins = secs / 60; + secs = secs % 60; + + gstr = g_string_new(""); + + if (days > 0) + { + g_string_append_printf(gstr, "%d %s", days, + ngettext("day", "days", days)); + + prefix = ", "; } - return ret; + if (hrs > 0) + { + g_string_append_printf(gstr, "%s%d %s", prefix, hrs, + ngettext("hour", "hours", hrs)); + + prefix = ", "; + } + + if (mins > 0) + { + g_string_append_printf(gstr, "%s%d %s", prefix, mins, + ngettext("minute", "minutes", mins)); + } + + return g_string_free(gstr, FALSE); } /************************************************************************** @@ -2415,7 +2408,7 @@ } /* parse out authentication information if supplied */ - if (at = strchr(url, '@')) { + if ((at = strchr(url, '@')) != NULL) { g_snprintf(scan_info, sizeof(scan_info), "%%255[%s]:%%255[%s]^@", user_ctrl, passwd_ctrl); f = sscanf(url, scan_info, user, passwd);