char** pakfire_string_split(const char* s, char delim);
char* pakfire_string_join(char** list, const char* delim);
+#define TIME_STRING_MAX 32
+
#define pakfire_format_size(dst, value) \
__pakfire_format_size(dst, sizeof(dst), value)
int __pakfire_format_size(char* dst, size_t length, double value);
int __pakfire_strftime_now(char* buffer, const size_t length, const char* format)
__attribute__((format(strftime, 3, 0)));
+#define pakfire_format_time(buffer, t) \
+ __pakfire_format_time(buffer, sizeof(buffer), t)
+int __pakfire_format_time(char* buffer, const size_t length, const time_t t);
+
size_t pakfire_string_parse_bytes(const char* s);
int pakfire_string_is_url(const char* s);
return __pakfire_strftime(buffer, length, format, t);
}
+int __pakfire_format_time(char* buffer, const size_t length, const time_t t) {
+ const char* format = NULL;
+
+ // Values smaller than zero for t are invalid
+ if (t < 0)
+ return 1;
+
+ if (t >= 86400)
+ format = "%dd%Hh%Mm";
+ else if (t >= 3600)
+ format = "%Hm%Mm%Ss";
+ else if (t >= 60)
+ format = "%Mm%Ss";
+ else
+ format = "%Ss";
+
+ return __pakfire_strftime(buffer, length, format, t);
+}
+
size_t pakfire_string_parse_bytes(const char* s) {
const char* units = "kMGT";
char* unit = NULL;