summaryrefslogtreecommitdiff
path: root/csvncgi/date.h
diff options
context:
space:
mode:
authorkx <kx@radix.pro>2023-03-24 03:55:33 +0300
committerkx <kx@radix.pro>2023-03-24 03:55:33 +0300
commitbfc1508d26c89c9a36d2d9a827fe2c4ed128884d (patch)
tree8d41298a7072a3e289e4912f77ece75cbea1bd54 /csvncgi/date.h
parentc836ae3775cf72f17e0b7e3792d156fdb389bee3 (diff)
downloadcsvn-ui-bfc1508d26c89c9a36d2d9a827fe2c4ed128884d.tar.xz
Version 0.1.4
Diffstat (limited to 'csvncgi/date.h')
-rw-r--r--csvncgi/date.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/csvncgi/date.h b/csvncgi/date.h
new file mode 100644
index 0000000..1883ec0
--- /dev/null
+++ b/csvncgi/date.h
@@ -0,0 +1,49 @@
+
+#ifndef __DATE_H
+#define __DATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum date_mode_type {
+ DATE_NORMAL = 0,
+ DATE_HUMAN,
+ DATE_RELATIVE,
+ DATE_SHORT,
+ DATE_ISO8601,
+ DATE_ISO8601_STRICT,
+ DATE_RFC2822,
+ DATE_RAW,
+ DATE_UNIX
+};
+
+struct date_mode {
+ enum date_mode_type type;
+ int local;
+};
+
+/*******************************************************
+ Convenience helper for passing a constant type, like:
+
+ show_date( t, tz, DATE_MODE(NORMAL) );
+ */
+#define DATE_MODE(t) date_mode_from_type(DATE_##t)
+struct date_mode *date_mode_from_type(enum date_mode_type type);
+
+
+/*
+ Parse data in the input TEXT, fill struct tm TM and return
+ UTC time_t. On error parse_data returns -1:
+ */
+extern time_t parse_date( struct tm *tm, const char *text );
+
+extern void show_date_relative( struct strbuf *sb, time_t t );
+extern void show_date( struct strbuf *sb, time_t t, int tz, const struct date_mode *mode );
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __DATE_H */