#include "abspath.h"
#include "config.h"
#include "color.h"
+#include "date.h"
#include "editor.h"
#include "environment.h"
#include "gettext.h"
return 0;
}
+static int format_config_expiry_date(struct strbuf *buf,
+ const char *key_,
+ const char *value_,
+ int quietly)
+{
+ timestamp_t t;
+ if (quietly) {
+ if (parse_expiry_date(value_, &t))
+ return -1;
+ } else if (git_config_expiry_date(&t, key_, value_) < 0) {
+ return -1;
+ }
+
+ strbuf_addf(buf, "%"PRItime, t);
+ return 0;
+}
+
/*
* Format the configuration key-value pair (`key_`, `value_`) and
* append it into strbuf `buf`. Returns a negative value on failure,
res = format_config_bool_or_str(buf, value_);
else if (opts->type == TYPE_PATH)
res = format_config_path(buf, key_, value_, gently);
- else if (opts->type == TYPE_EXPIRY_DATE) {
- timestamp_t t;
- if (git_config_expiry_date(&t, key_, value_) < 0)
- return -1;
- strbuf_addf(buf, "%"PRItime, t);
- } else if (opts->type == TYPE_COLOR) {
+ else if (opts->type == TYPE_EXPIRY_DATE)
+ res = format_config_expiry_date(buf, key_, value_, gently);
+ else if (opts->type == TYPE_COLOR) {
char v[COLOR_MAXLEN];
if (git_config_color(v, key_, value_) < 0)
return -1;
'
test_expect_success 'list --type=expiry-date shows only canonicalizable dates' '
- cat >expecterr <<-EOF &&
- error: '\''True'\'' for '\''section.foo'\'' is not a valid timestamp
- error: '\''~/dir'\'' for '\''section.path'\'' is not a valid timestamp
- error: '\''red'\'' for '\''section.red'\'' is not a valid timestamp
- error: '\''Blue'\'' for '\''section.blue'\'' is not a valid timestamp
- error: '\'':(optional)no-such-path'\'' for '\''section.missing'\'' is not a valid timestamp
- error: '\'':(optional)expect'\'' for '\''section.exists'\'' is not a valid timestamp
- EOF
-
git config ${mode_prefix}list --type=expiry-date >actual 2>err &&
# section.number and section.big parse as relative dates that could
test_grep section.big actual &&
test_grep section.number actual &&
test_grep "section.date=$(git config --type=expiry-date section.$key)" actual &&
- test_cmp expecterr err
+ test_must_be_empty err
'
test_expect_success 'list --type=color shows only canonicalizable color values' '