Merge 'kn/for-each-tag-branch' into kn/for-each-tag
[gitweb.git] / ref-filter.c
index 409b94fcfba60b61a9e52a2d97f7df349b809427..46963a5a421255cf2d37bce9338e3c6de3e20d6a 100644 (file)
@@ -363,7 +363,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
        char *zone;
        unsigned long timestamp;
        long tz;
-       enum date_mode date_mode = DATE_NORMAL;
+       struct date_mode date_mode = { DATE_NORMAL };
        const char *formatp;
 
        /*
@@ -375,7 +375,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
        formatp = strchr(atomname, ':');
        if (formatp != NULL) {
                formatp++;
-               date_mode = parse_date_format(formatp);
+               parse_date_format(formatp, &date_mode);
        }
 
        if (!eoemail)
@@ -386,7 +386,7 @@ static void grab_date(const char *buf, struct atom_value *v, const char *atomnam
        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:
@@ -1014,6 +1014,11 @@ static int ref_filter_handler(const char *refname, const struct object_id *oid,
                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;