From: Andre Noll Date: Sat, 15 Sep 2007 20:58:16 +0000 (+0200) Subject: aft.c: Kill global variable "now". X-Git-Tag: v0.3.0~394 X-Git-Url: http://git.tue.mpg.de/?a=commitdiff_plain;h=3c6314232e6ef8cb8d99dad815e7169d372717c2;p=paraslash.git aft.c: Kill global variable "now". --- diff --git a/aft.c b/aft.c index 98c5f902..0013b2a2 100644 --- a/aft.c +++ b/aft.c @@ -572,15 +572,14 @@ err: return ret; } -time_t now; - -static int get_local_time(uint64_t *seconds, char *buf, size_t size) +static int get_local_time(uint64_t *seconds, char *buf, size_t size, + time_t current_time) { struct tm t; if (!localtime_r((time_t *)seconds, &t)) return -E_LOCALTIME; - if (*seconds + 6 * 30 * 24 * 3600 > now) { + if (*seconds + 6 * 30 * 24 * 3600 > current_time) { if (!strftime(buf, size, "%b %e %k:%M", &t)) return -E_STRFTIME; return 1; @@ -654,7 +653,7 @@ static char *make_image_line(struct afs_info *afsi) } static int print_list_item(struct ls_data *d, struct ls_options *opts, - struct para_buffer *b) + struct para_buffer *b, time_t current_time) { int ret; char att_buf[65]; @@ -672,7 +671,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts, } get_attribute_bitmap(&afsi->attributes, att_buf); ret = get_local_time(&afsi->last_played, last_played_time, - sizeof(last_played_time)); + sizeof(last_played_time), current_time); if (ret < 0) return ret; get_duration_buf(afhi->seconds_total, duration_buf, w->duration_width); @@ -963,6 +962,8 @@ static int com_ls_callback(const struct osl_object *query, char *p, *pattern_start = (char *)query->data + sizeof(*opts); struct para_buffer b = {.buf = NULL, .size = 0}; int i = 0, ret; + time_t current_time; + PARA_NOTICE_LOG("%d patterns\n", opts->num_patterns); if (opts->num_patterns) { @@ -989,15 +990,16 @@ static int com_ls_callback(const struct osl_object *query, ret = sort_matching_paths(opts); if (ret < 0) goto out; + time(¤t_time); if (opts->flags & LS_FLAG_REVERSE) for (i = opts->num_matching_paths - 1; i >= 0; i--) { - ret = print_list_item(opts->data_ptr[i], opts, &b); + ret = print_list_item(opts->data_ptr[i], opts, &b, current_time); if (ret < 0) break; } else for (i = 0; i < opts->num_matching_paths; i++) { - ret = print_list_item(opts->data_ptr[i], opts, &b); + ret = print_list_item(opts->data_ptr[i], opts, &b, current_time); if (ret < 0) break; } @@ -1013,7 +1015,7 @@ out: } /* - * TODO: flags -h (sort by hash) + * TODO: flags -h (sort by hash) -lm (list in mbox format) * * long list: list hash, attributes as (xx--x-x-), file size, lastplayed * full list: list everything, including afsi, afhi, atts as clear text @@ -1117,7 +1119,6 @@ int com_afs_ls(int fd, int argc, char * const * const argv) } return -E_AFT_SYNTAX; } - time(&now); opts.flags = flags; opts.sorting = sort; opts.mode = mode;