Revision 430fd1cae522d1eff58478eb606bee996b52208f authored by Junio C Hamano on 17 January 2017, 22:49:27 UTC, committed by Junio C Hamano on 17 January 2017, 22:49:27 UTC
The output from "git worktree list" was made in readdir() order, and was unstable. * nd/worktree-list-fixup: worktree list: keep the list sorted worktree.c: get_worktrees() takes a new flag argument get_worktrees() must return main worktree as first item even on error worktree: reorder an if statement worktree.c: zero new 'struct worktree' on allocation
mru.c
#include "cache.h"
#include "mru.h"
void mru_append(struct mru *mru, void *item)
{
struct mru_entry *cur = xmalloc(sizeof(*cur));
cur->item = item;
cur->prev = mru->tail;
cur->next = NULL;
if (mru->tail)
mru->tail->next = cur;
else
mru->head = cur;
mru->tail = cur;
}
void mru_mark(struct mru *mru, struct mru_entry *entry)
{
/* If we're already at the front of the list, nothing to do */
if (mru->head == entry)
return;
/* Otherwise, remove us from our current slot... */
if (entry->prev)
entry->prev->next = entry->next;
if (entry->next)
entry->next->prev = entry->prev;
else
mru->tail = entry->prev;
/* And insert us at the beginning. */
entry->prev = NULL;
entry->next = mru->head;
if (mru->head)
mru->head->prev = entry;
mru->head = entry;
}
void mru_clear(struct mru *mru)
{
struct mru_entry *p = mru->head;
while (p) {
struct mru_entry *to_free = p;
p = p->next;
free(to_free);
}
mru->head = mru->tail = NULL;
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...