| 71 } |
71 } |
| 72 |
72 |
| 73 |
73 |
| 74 gchar *sec_to_text(guint sec) |
74 gchar *sec_to_text(guint sec) |
| 75 { |
75 { |
| 76 int hrs, min; |
76 int daze, hrs, min; |
| 77 char minutes[64]; |
|
| 78 char hours[64]; |
|
| 79 char *sep; |
|
| 80 char *ret = g_malloc(256); |
77 char *ret = g_malloc(256); |
| 81 |
78 |
| 82 hrs = sec / 3600; |
79 daze = sec / (60 * 60 * 24); |
| 83 min = sec % 3600; |
80 hrs = (sec % (60 * 60 * 24)) / (60 * 60); |
| 84 |
81 min = (sec % (60 * 60)) / 60; |
| 85 min = min / 60; |
|
| 86 sec = min % 60; |
82 sec = min % 60; |
| 87 |
83 |
| 88 if (min) { |
84 if (daze) { |
| 89 if (min == 1) |
85 if (hrs || min) { |
| 90 g_snprintf(minutes, sizeof(minutes), "%d minute.", min); |
86 if (hrs) { |
| 91 else |
87 if (min) { |
| 92 g_snprintf(minutes, sizeof(minutes), "%d minutes.", abs(min)); |
88 g_snprintf(ret, 256, |
| 93 sep = ", "; |
89 "%d day%s, %d hour%s, %d minute%s.", |
| |
90 daze, daze == 1 ? "" : "s", |
| |
91 hrs, hrs == 1 ? "" : "s", |
| |
92 min, min == 1 ? "" : "s"); |
| |
93 } else { |
| |
94 g_snprintf(ret, 256, |
| |
95 "%d day%s, %d hour%s.", |
| |
96 daze, daze == 1 ? "" : "s", |
| |
97 hrs, hrs == 1 ? "" : "s"); |
| |
98 } |
| |
99 } else { |
| |
100 g_snprintf(ret, 256, |
| |
101 "%d day%s, %d minute%s.", |
| |
102 daze, daze == 1 ? "" : "s", |
| |
103 min, min == 1 ? "" : "s"); |
| |
104 } |
| |
105 } else |
| |
106 g_snprintf(ret, 256, "%d day%s.", daze, daze == 1 ? "" : "s"); |
| 94 } else { |
107 } else { |
| 95 if (!hrs) |
108 if (hrs) { |
| 96 g_snprintf(minutes, sizeof(minutes), "%d minutes.", abs(min)); |
109 if (min) { |
| 97 else { |
110 g_snprintf(ret, 256, |
| 98 minutes[0] = '.'; |
111 "%d hour%s, %d minute%s.", |
| 99 minutes[1] = '\0'; |
112 hrs, hrs == 1 ? "" : "s", |
| 100 } |
113 min, min == 1 ? "" : "s"); |
| 101 sep = ""; |
114 } else { |
| 102 } |
115 g_snprintf(ret, 256, "%d hour%s.", hrs, hrs == 1 ? "" : "s"); |
| 103 |
116 } |
| 104 if (hrs) { |
117 } else { |
| 105 if (hrs == 1) |
118 g_snprintf(ret, 256, "%d minute%s.", min, min == 1 ? "" : "s"); |
| 106 g_snprintf(hours, sizeof(hours), "%d hour%s", hrs, sep); |
119 } |
| 107 else |
120 } |
| 108 g_snprintf(hours, sizeof(hours), "%d hours%s", abs(hrs), sep); |
|
| 109 } else |
|
| 110 hours[0] = '\0'; |
|
| 111 |
|
| 112 |
|
| 113 g_snprintf(ret, 256, "%s%s", hours, minutes); |
|
| 114 |
121 |
| 115 return ret; |
122 return ret; |
| 116 } |
123 } |
| 117 |
124 |
| 118 gint linkify_text(char *text) |
125 gint linkify_text(char *text) |