|
Packit Service |
20376f |
#include "clar_libgit2.h"
|
|
Packit Service |
20376f |
#include "status_helpers.h"
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
int cb_status__normal(
|
|
Packit Service |
20376f |
const char *path, unsigned int status_flags, void *payload)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
status_entry_counts *counts = payload;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (counts->debug)
|
|
Packit Service |
20376f |
cb_status__print(path, status_flags, NULL);
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (counts->entry_count >= counts->expected_entry_count)
|
|
Packit Service |
20376f |
counts->wrong_status_flags_count++;
|
|
Packit Service |
20376f |
else if (strcmp(path, counts->expected_paths[counts->entry_count]))
|
|
Packit Service |
20376f |
counts->wrong_sorted_path++;
|
|
Packit Service |
20376f |
else if (status_flags != counts->expected_statuses[counts->entry_count])
|
|
Packit Service |
20376f |
counts->wrong_status_flags_count++;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
counts->entry_count++;
|
|
Packit Service |
20376f |
return 0;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
int cb_status__count(const char *p, unsigned int s, void *payload)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
volatile int *count = (int *)payload;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
GIT_UNUSED(p);
|
|
Packit Service |
20376f |
GIT_UNUSED(s);
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
(*count)++;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
return 0;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
int cb_status__single(const char *p, unsigned int s, void *payload)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
status_entry_single *data = (status_entry_single *)payload;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (data->debug)
|
|
Packit Service |
20376f |
fprintf(stderr, "%02d: %s (%04x)\n", data->count, p, s);
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
data->count++;
|
|
Packit Service |
20376f |
data->status = s;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
return 0;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
int cb_status__print(
|
|
Packit Service |
20376f |
const char *path, unsigned int status_flags, void *payload)
|
|
Packit Service |
20376f |
{
|
|
Packit Service |
20376f |
char istatus = ' ', wstatus = ' ';
|
|
Packit Service |
20376f |
int icount = 0, wcount = 0;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_INDEX_NEW) {
|
|
Packit Service |
20376f |
istatus = 'A'; icount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_INDEX_MODIFIED) {
|
|
Packit Service |
20376f |
istatus = 'M'; icount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_INDEX_DELETED) {
|
|
Packit Service |
20376f |
istatus = 'D'; icount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_INDEX_RENAMED) {
|
|
Packit Service |
20376f |
istatus = 'R'; icount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_INDEX_TYPECHANGE) {
|
|
Packit Service |
20376f |
istatus = 'T'; icount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_WT_NEW) {
|
|
Packit Service |
20376f |
wstatus = 'A'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_WT_MODIFIED) {
|
|
Packit Service |
20376f |
wstatus = 'M'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_WT_DELETED) {
|
|
Packit Service |
20376f |
wstatus = 'D'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_WT_TYPECHANGE) {
|
|
Packit Service |
20376f |
wstatus = 'T'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_IGNORED) {
|
|
Packit Service |
20376f |
wstatus = 'I'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
if (status_flags & GIT_STATUS_WT_UNREADABLE) {
|
|
Packit Service |
20376f |
wstatus = 'X'; wcount++;
|
|
Packit Service |
20376f |
}
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
fprintf(stderr, "%c%c %s (%d/%d%s)\n",
|
|
Packit Service |
20376f |
istatus, wstatus, path, icount, wcount,
|
|
Packit Service |
20376f |
(icount > 1 || wcount > 1) ? " INVALID COMBO" : "");
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
if (payload)
|
|
Packit Service |
20376f |
*((int *)payload) += 1;
|
|
Packit Service |
20376f |
|
|
Packit Service |
20376f |
return 0;
|
|
Packit Service |
20376f |
}
|