author | Lars Hjemli <hjemli@gmail.com> | 2007-05-22 21:08:46 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2007-05-22 21:12:41 (UTC) |
commit | 5db39170b6c979655a0238dcd627e206febed88b (patch) (side-by-side diff) | |
tree | 2c79691bde31f9db2861dc76010691e9dbdde1cb /cgit.h | |
parent | 3b86b44fc761cfa8b97c44bbbdd63c9fbf1127ed (diff) | |
download | cgit-5db39170b6c979655a0238dcd627e206febed88b.zip cgit-5db39170b6c979655a0238dcd627e206febed88b.tar.gz cgit-5db39170b6c979655a0238dcd627e206febed88b.tar.bz2 |
Add cgit_print_age() function
This function can be used to print relative dates, just as in gitweb. Next
step will be to actually use the new function.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | cgit.h | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -20,24 +20,43 @@ /* * The valid cgit repo-commands */ #define CMD_LOG 1 #define CMD_COMMIT 2 #define CMD_DIFF 3 #define CMD_TREE 4 #define CMD_VIEW 5 #define CMD_BLOB 6 #define CMD_SNAPSHOT 7 + +/* + * Dateformats used on misc. pages + */ +#define FMT_LONGDATE "%Y-%m-%d %H:%M:%S" +#define FMT_SHORTDATE "%Y-%m-%d" + + +/* + * Limits used for relative dates + */ +#define TM_MIN 60 +#define TM_HOUR (TM_MIN * 60) +#define TM_DAY (TM_HOUR * 24) +#define TM_WEEK (TM_DAY * 7) +#define TM_YEAR (TM_DAY * 365) +#define TM_MONTH (TM_YEAR / 12.0) + + typedef void (*configfn)(const char *name, const char *value); typedef void (*filepair_fn)(struct diff_filepair *pair); typedef void (*linediff_fn)(char *line, int len); struct cacheitem { char *name; struct stat st; int ttl; int fd; }; struct repoinfo { @@ -172,25 +191,26 @@ extern void cgit_parse_url(const char *url); extern char *cache_safe_filename(const char *unsafe); extern int cache_lock(struct cacheitem *item); extern int cache_unlock(struct cacheitem *item); extern int cache_cancel_lock(struct cacheitem *item); extern int cache_exist(struct cacheitem *item); extern int cache_expired(struct cacheitem *item); extern char *cgit_repourl(const char *reponame); extern char *cgit_pageurl(const char *reponame, const char *pagename, const char *query); extern void cgit_print_error(char *msg); -extern void cgit_print_date(unsigned long secs); +extern void cgit_print_date(time_t secs, char *format); +extern void cgit_print_age(time_t t, time_t max_relative, char *format); extern void cgit_print_docstart(char *title, struct cacheitem *item); extern void cgit_print_docend(); extern void cgit_print_pageheader(char *title, int show_search); extern void cgit_print_snapshot_start(const char *mimetype, const char *filename, struct cacheitem *item); extern void cgit_print_repolist(struct cacheitem *item); extern void cgit_print_summary(); extern void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *path); extern void cgit_print_view(const char *hex, char *path); extern void cgit_print_blob(struct cacheitem *item, const char *hex, char *path); |