wt-status.h 2.05 KB
Newer Older
1 2 3
#ifndef STATUS_H
#define STATUS_H

4
#include <stdio.h>
5
#include "string-list.h"
6
#include "color.h"
7

8
enum color_wt_status {
9
	WT_STATUS_HEADER = 0,
10 11 12
	WT_STATUS_UPDATED,
	WT_STATUS_CHANGED,
	WT_STATUS_UNTRACKED,
13
	WT_STATUS_NOBRANCH,
14
	WT_STATUS_UNMERGED,
15
	WT_STATUS_LOCAL_BRANCH,
16 17 18
	WT_STATUS_REMOTE_BRANCH,
	WT_STATUS_ONBRANCH,
	WT_STATUS_MAXSLOT
19 20
};

21
enum untracked_status_type {
22 23
	SHOW_NO_UNTRACKED_FILES,
	SHOW_NORMAL_UNTRACKED_FILES,
24 25 26
	SHOW_ALL_UNTRACKED_FILES
};

27 28 29 30 31 32 33
/* from where does this commit originate */
enum commit_whence {
	FROM_COMMIT,     /* normal */
	FROM_MERGE,      /* commit came from merge */
	FROM_CHERRY_PICK /* commit came from cherry-pick */
};

34 35 36 37 38
struct wt_status_change_data {
	int worktree_status;
	int index_status;
	int stagemask;
	char *head_path;
39 40
	unsigned dirty_submodule       : 2;
	unsigned new_submodule_commits : 1;
41 42
};

43 44 45 46
struct wt_status {
	int is_initial;
	char *branch;
	const char *reference;
47
	const char **pathspec;
48 49
	int verbose;
	int amend;
50
	enum commit_whence whence;
51
	int nowarn;
52 53 54
	int use_color;
	int relative_paths;
	int submodule_summary;
55
	int show_ignored_files;
56
	enum untracked_status_type show_untracked_files;
57
	const char *ignore_submodule_arg;
58
	char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN];
59
	unsigned colopts;
60
	int null_termination;
61
	int show_branch;
62

63 64 65
	/* These are computed during processing of the individual sections */
	int commitable;
	int workdir_dirty;
66
	const char *index_file;
67
	FILE *fp;
68
	const char *prefix;
69
	struct string_list change;
70
	struct string_list untracked;
71
	struct string_list ignored;
72 73 74 75
};

void wt_status_prepare(struct wt_status *s);
void wt_status_print(struct wt_status *s);
76
void wt_status_collect(struct wt_status *s);
77

78
void wt_shortstatus_print(struct wt_status *s);
79
void wt_porcelain_print(struct wt_status *s);
80

81 82 83 84 85 86 87
void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, ...)
	;
void status_printf(struct wt_status *s, const char *color, const char *fmt, ...)
	;
void status_printf_more(struct wt_status *s, const char *color, const char *fmt, ...)
	__attribute__((format(printf, 3, 4)));

88
#endif /* STATUS_H */