mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Use window index not ID for sorting, reported by naru at naruaway dot
com in GitHub issue 4551.
This commit is contained in:
15
format.c
15
format.c
@ -4486,7 +4486,6 @@ format_cmp_window(const void *a0, const void *b0)
|
|||||||
|
|
||||||
switch (sc->field) {
|
switch (sc->field) {
|
||||||
case FORMAT_LOOP_BY_INDEX:
|
case FORMAT_LOOP_BY_INDEX:
|
||||||
result = wa->id - wb->id;
|
|
||||||
break;
|
break;
|
||||||
case FORMAT_LOOP_BY_TIME:
|
case FORMAT_LOOP_BY_TIME:
|
||||||
if (timercmp(&wa->activity_time, &wb->activity_time, >)) {
|
if (timercmp(&wa->activity_time, &wb->activity_time, >)) {
|
||||||
@ -4512,6 +4511,7 @@ format_cmp_window(const void *a0, const void *b0)
|
|||||||
static char *
|
static char *
|
||||||
format_loop_windows(struct format_expand_state *es, const char *fmt)
|
format_loop_windows(struct format_expand_state *es, const char *fmt)
|
||||||
{
|
{
|
||||||
|
struct format_loop_sort_criteria *sc = &format_loop_sort_criteria;
|
||||||
struct format_tree *ft = es->ft;
|
struct format_tree *ft = es->ft;
|
||||||
struct client *c = ft->client;
|
struct client *c = ft->client;
|
||||||
struct cmdq_item *item = ft->item;
|
struct cmdq_item *item = ft->item;
|
||||||
@ -4544,7 +4544,18 @@ format_loop_windows(struct format_expand_state *es, const char *fmt)
|
|||||||
l[n++] = wl;
|
l[n++] = wl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (sc->field != FORMAT_LOOP_BY_INDEX)
|
||||||
qsort(l, n, sizeof *l, format_cmp_window);
|
qsort(l, n, sizeof *l, format_cmp_window);
|
||||||
|
else {
|
||||||
|
/* Use order in the tree as index order. */
|
||||||
|
if (sc->reversed) {
|
||||||
|
for (i = 0; i < n / 2; i++) {
|
||||||
|
wl = l[i];
|
||||||
|
l[i] = l[n - 1 - i];
|
||||||
|
l[n - 1 - i] = wl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
value = xcalloc(1, 1);
|
value = xcalloc(1, 1);
|
||||||
valuelen = 1;
|
valuelen = 1;
|
||||||
@ -4731,7 +4742,7 @@ format_loop_clients(struct format_expand_state *es, const char *fmt)
|
|||||||
if (sc->field != FORMAT_LOOP_BY_INDEX)
|
if (sc->field != FORMAT_LOOP_BY_INDEX)
|
||||||
qsort(l, n, sizeof *l, format_cmp_client);
|
qsort(l, n, sizeof *l, format_cmp_client);
|
||||||
else {
|
else {
|
||||||
/* Use order in the TAILQ as "index" order. */
|
/* Use order in the list as index order. */
|
||||||
if (sc->reversed) {
|
if (sc->reversed) {
|
||||||
for (i = 0; i < n / 2; i++) {
|
for (i = 0; i < n / 2; i++) {
|
||||||
c = l[i];
|
c = l[i];
|
||||||
|
Reference in New Issue
Block a user