Staging
v0.5.2
https://github.com/git/git
Revision 55953c77c0bfcb727ffd7e293e4661b7a24b791b authored by Johannes Schindelin on 20 September 2019, 17:09:39 UTC, committed by Johannes Schindelin on 05 December 2019, 14:36:53 UTC
When the stress test reported a problem with quoting certain arguments,
it is helpful to have a facility to play with those arguments in order
to find out whether variations of those arguments are affected, too.

Let's allow `test-run-command quote-stress-test -- <args>` to be used
for that purpose.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent ad15592
Raw File
Tip revision: 55953c77c0bfcb727ffd7e293e4661b7a24b791b authored by Johannes Schindelin on 20 September 2019, 17:09:39 UTC
quote-stress-test: accept arguments to test via the command-line
Tip revision: 55953c7
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;
}
back to top