diff options
author | Junio C Hamano <gitster@pobox.com> | 2019-07-10 00:25:42 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-07-10 00:25:42 +0200 |
commit | 92f66fd43b6968da9f14478aa9060ce85f8e3586 (patch) | |
tree | 50b1640726c2765eb317f317878db040cb511c51 | |
parent | Merge branch 'nd/fetch-multi-gc-once' (diff) | |
parent | ref-filter: sort detached HEAD lines firstly (diff) | |
download | git-92f66fd43b6968da9f14478aa9060ce85f8e3586.tar.xz git-92f66fd43b6968da9f14478aa9060ce85f8e3586.zip |
Merge branch 'md/sort-detached-head-first'
"git branch --list" learned to always output the detached HEAD as
the first item (when the HEAD is detached, of course), regardless
of the locale.
* md/sort-detached-head-first:
ref-filter: sort detached HEAD lines firstly
-rw-r--r-- | ref-filter.c | 32 | ||||
-rw-r--r-- | wt-status.c | 4 | ||||
-rw-r--r-- | wt-status.h | 3 |
3 files changed, 21 insertions, 18 deletions
diff --git a/ref-filter.c b/ref-filter.c index 8fb25c1412..791f0648a6 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -1471,35 +1471,35 @@ char *get_head_description(void) struct wt_status_state state; memset(&state, 0, sizeof(state)); wt_status_get_state(the_repository, &state, 1); + + /* + * The ( character must be hard-coded and not part of a localizable + * string, since the description is used as a sort key and compared + * with ref names. + */ + strbuf_addch(&desc, '('); if (state.rebase_in_progress || state.rebase_interactive_in_progress) { if (state.branch) - strbuf_addf(&desc, _("(no branch, rebasing %s)"), + strbuf_addf(&desc, _("no branch, rebasing %s"), state.branch); else - strbuf_addf(&desc, _("(no branch, rebasing detached HEAD %s)"), + strbuf_addf(&desc, _("no branch, rebasing detached HEAD %s"), state.detached_from); } else if (state.bisect_in_progress) - strbuf_addf(&desc, _("(no branch, bisect started on %s)"), + strbuf_addf(&desc, _("no branch, bisect started on %s"), state.branch); else if (state.detached_from) { if (state.detached_at) - /* - * TRANSLATORS: make sure this matches "HEAD - * detached at " in wt-status.c - */ - strbuf_addf(&desc, _("(HEAD detached at %s)"), - state.detached_from); + strbuf_addstr(&desc, HEAD_DETACHED_AT); else - /* - * TRANSLATORS: make sure this matches "HEAD - * detached from " in wt-status.c - */ - strbuf_addf(&desc, _("(HEAD detached from %s)"), - state.detached_from); + strbuf_addstr(&desc, HEAD_DETACHED_FROM); + strbuf_addstr(&desc, state.detached_from); } else - strbuf_addstr(&desc, _("(no branch)")); + strbuf_addstr(&desc, _("no branch")); + strbuf_addch(&desc, ')'); + free(state.branch); free(state.onto); free(state.detached_from); diff --git a/wt-status.c b/wt-status.c index 0bccef542f..c29e4bf091 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1676,9 +1676,9 @@ static void wt_longstatus_print(struct wt_status *s) } else if (s->state.detached_from) { branch_name = s->state.detached_from; if (s->state.detached_at) - on_what = _("HEAD detached at "); + on_what = HEAD_DETACHED_AT; else - on_what = _("HEAD detached from "); + on_what = HEAD_DETACHED_FROM; } else { branch_name = ""; on_what = _("Not currently on any branch."); diff --git a/wt-status.h b/wt-status.h index 64f1ddc9fd..b0cfdc8011 100644 --- a/wt-status.h +++ b/wt-status.h @@ -65,6 +65,9 @@ enum wt_status_format { STATUS_FORMAT_UNSPECIFIED }; +#define HEAD_DETACHED_AT _("HEAD detached at ") +#define HEAD_DETACHED_FROM _("HEAD detached from ") + struct wt_status_state { int merge_in_progress; int am_in_progress; |