char *zone;
unsigned long timestamp;
long tz;
- enum date_mode date_mode = DATE_NORMAL;
+ struct date_mode date_mode = { DATE_NORMAL };
const char *formatp;
/*
formatp = strchr(atomname, ':');
if (formatp != NULL) {
formatp++;
- date_mode = parse_date_format(formatp);
+ parse_date_format(formatp, &date_mode);
}
if (!eoemail)
tz = strtol(zone, NULL, 10);
if ((tz == LONG_MIN || tz == LONG_MAX) && errno == ERANGE)
goto bad;
- v->s = xstrdup(show_date(timestamp, tz, date_mode));
+ v->s = xstrdup(show_date(timestamp, tz, &date_mode));
v->ul = timestamp;
return;
bad:
const unsigned char *objectname,
int flag)
{
- struct ref_array_item *ref = xcalloc(1, sizeof(struct ref_array_item));
- ref->refname = xstrdup(refname);
+ size_t len = strlen(refname);
+ struct ref_array_item *ref = xcalloc(1, sizeof(struct ref_array_item) + len + 1);
+ memcpy(ref->refname, refname, len);
+ ref->refname[len] = '\0';
hashcpy(ref->objectname, objectname);
ref->flag = flag;
return 0;
}
+ if (flag & REF_ISBROKEN) {
+ warning("ignoring broken ref %s", refname);
+ return 0;
+ }
+
if (*filter->name_patterns && !match_name_as_path(filter->name_patterns, refname))
return 0;
static void free_array_item(struct ref_array_item *item)
{
free((char *)item->symref);
- free(item->refname);
free(item);
}