#include "config.h"
#include "extern.h"
-/* split a time_t into an English-language explanation of how
- * much time it represents, e.g. "2 hours 45 minutes 8 seconds" */
+/*
+ * Split a time_t into an English-language explanation of how
+ * much time it represents, e.g. "2 hours 45 minutes 8 seconds"
+ */
char *dissect_time(time_t time)
{
- static char buf[64];
- int years, weeks, days, hours, minutes, seconds;
-
- years = weeks = days = hours = minutes = seconds = 0;
-
- while(time >= 60 * 60 * 24 * 365)
- {
- time -= 60 * 60 * 24 * 365;
- years++;
- }
-
- while(time >= 60 * 60 * 24 * 7)
- {
- time -= 60 * 60 * 24 * 7;
- weeks++;
- }
-
- while(time >= 60 * 60 * 24)
- {
- time -= 60 * 60 * 24;
- days++;
- }
-
- while(time >= 60 * 60)
- {
- time -= 60 * 60;
- hours++;
- }
-
- while (time >= 60)
- {
- time -= 60;
- minutes++;
- }
-
- seconds = time;
-
- if(years)
- {
- snprintf(buf, sizeof(buf),
- "%d year%s, %d week%s, %d day%s, %02d:%02d:%02d", years,
- years == 1 ? "" : "s", weeks, weeks == 1 ? "" : "s", days,
- days == 1 ? "" : "s", hours, minutes, seconds);
- }
- else if(weeks)
- {
- snprintf(buf, sizeof(buf),
- "%d week%s, %d day%s, %02d:%02d:%02d", weeks,
- weeks == 1 ? "" : "s", days, days == 1 ? "" : "s", hours,
- minutes, seconds);
- }
- else if(days)
- {
- snprintf(buf, sizeof(buf), "%d day%s, %02d:%02d:%02d", days,
- days == 1 ? "" : "s", hours, minutes, seconds);
- }
- else if(hours)
- {
- if(minutes || seconds)
- {
- snprintf(buf, sizeof(buf), "%d hour%s, %d minute%s, %d second%s",
- hours, hours == 1 ? "" : "s", minutes,
- minutes == 1 ? "" : "s", seconds, seconds == 1 ? "" : "s");
- }
- else
- {
- snprintf(buf, sizeof(buf), "%d hour%s", hours,
- hours == 1 ? "" : "s");
- }
- }
- else if(minutes)
- {
- snprintf(buf, sizeof(buf), "%d minute%s, %d second%s", minutes,
- minutes == 1 ? "" : "s", seconds, seconds == 1 ? "" : "s");
- }
- else
- {
- snprintf(buf, sizeof(buf), "%d second%s", seconds,
- seconds == 1 ? "" : "s");
- }
-
- return(buf);
+ static char buf[64];
+ unsigned int years, weeks, days, hours, minutes, seconds;
+
+ years = weeks = days = hours = minutes = seconds = 0;
+
+ while (time >= 60 * 60 * 24 * 365) {
+ time -= 60 * 60 * 24 * 365;
+ years++;
+ }
+
+ while (time >= 60 * 60 * 24 * 7) {
+ time -= 60 * 60 * 24 * 7;
+ weeks++;
+ }
+
+ while (time >= 60 * 60 * 24) {
+ time -= 60 * 60 * 24;
+ days++;
+ }
+
+ while (time >= 60 * 60) {
+ time -= 60 * 60;
+ hours++;
+ }
+
+ while (time >= 60) {
+ time -= 60;
+ minutes++;
+ }
+
+ seconds = time;
+
+ if (years) {
+ snprintf(buf, sizeof(buf),
+ "%d year%s, %d week%s, %d day%s, %02d:%02d:%02d",
+ years, years == 1 ? "" : "s", weeks,
+ weeks == 1 ? "" : "s", days, days == 1 ? "" : "s",
+ hours, minutes, seconds);
+ } else if (weeks) {
+ snprintf(buf, sizeof(buf),
+ "%d week%s, %d day%s, %02d:%02d:%02d", weeks,
+ weeks == 1 ? "" : "s", days, days == 1 ? "" : "s",
+ hours, minutes, seconds);
+ } else if (days) {
+ snprintf(buf, sizeof(buf), "%d day%s, %02d:%02d:%02d",
+ days, days == 1 ? "" : "s", hours, minutes, seconds);
+ } else if (hours) {
+ if (minutes || seconds) {
+ snprintf(buf, sizeof(buf),
+ "%d hour%s, %d minute%s, %d second%s", hours,
+ hours == 1 ? "" : "s", minutes,
+ minutes == 1 ? "" : "s", seconds,
+ seconds == 1 ? "" : "s");
+ } else {
+ snprintf(buf, sizeof(buf), "%d hour%s", hours,
+ hours == 1 ? "" : "s");
+ }
+ } else if (minutes) {
+ snprintf(buf, sizeof(buf), "%d minute%s, %d second%s",
+ minutes, minutes == 1 ? "" : "s", seconds,
+ seconds == 1 ? "" : "s");
+ } else {
+ snprintf(buf, sizeof(buf), "%d second%s", seconds,
+ seconds == 1 ? "" : "s");
+ }
+
+ return(buf);
}
-/* Strip leading/tailing characters from
- * null terminated str and return a pointer
- * to the new string.
+/*
+ * Strip leading/tailing characters from null terminated str and return a
+ * pointer to the new string.
*/
char *clean(char *str)
{
-
- size_t i;
- int lastnon; /* Position of last non space */
- int firstnon; /* Position of first non space */
-
- lastnon = 0;
- firstnon = 0;
-
- if(strlen(str) <= 1) /* Dont need to deal with 1 character */
- return str;
-
- for(i = 0; i < strlen(str);i++)
- {
- if(firstnon == 0 && str[i] != ' ')
- firstnon = i;
- if(str[i] != ' ')
- lastnon = i;
- }
-
- str[lastnon + 1] = 0; /* Null terminate before the tailing spaces */
- return (str + (firstnon - 1)); /* Return pointer to point after leading spaces */
-}
+ size_t i;
+ /* Position of last non space. */
+ int lastnon;
+ /* Position of first non space. */
+ int firstnon;
+
+ lastnon = 0;
+ firstnon = 0;
+
+ /* Dont need to deal with 1 character */
+ if (strlen(str) <= 1)
+ return str;
+
+ for (i = 0; i < strlen(str); i++) {
+ if (firstnon == 0 && str[i] != ' ')
+ firstnon = i;
+ if (str[i] != ' ')
+ lastnon = i;
+ }
+
+ /* Null terminate before the tailing spaces. */
+ str[lastnon + 1] = 0;
+
+ /* Return pointer to point after leading spaces. */
+ return(str + (firstnon - 1));
+}