Merge branch 'master' into next
[git] / wt-status.h
1 #ifndef STATUS_H
2 #define STATUS_H
3
4 #include <stdio.h>
5 #include "string-list.h"
6
7 enum color_wt_status {
8         WT_STATUS_HEADER,
9         WT_STATUS_UPDATED,
10         WT_STATUS_CHANGED,
11         WT_STATUS_UNTRACKED,
12         WT_STATUS_NOBRANCH,
13         WT_STATUS_UNMERGED,
14 };
15
16 enum untracked_status_type {
17         SHOW_NO_UNTRACKED_FILES,
18         SHOW_NORMAL_UNTRACKED_FILES,
19         SHOW_ALL_UNTRACKED_FILES
20 };
21 extern enum untracked_status_type show_untracked_files;
22
23 struct wt_status_change_data {
24         int worktree_status;
25         int index_status;
26         int stagemask;
27         char *head_path;
28 };
29
30 struct wt_status {
31         int is_initial;
32         char *branch;
33         const char *reference;
34         int verbose;
35         int amend;
36         int untracked;
37         int nowarn;
38         /* These are computed during processing of the individual sections */
39         int commitable;
40         int workdir_dirty;
41         int workdir_untracked;
42         const char *index_file;
43         FILE *fp;
44         const char *prefix;
45         struct string_list change;
46 };
47
48 int git_status_config(const char *var, const char *value, void *cb);
49 extern int wt_status_use_color;
50 extern int wt_status_relative_paths;
51 void wt_status_prepare(struct wt_status *s);
52 void wt_status_print(struct wt_status *s);
53 void wt_status_collect_changes(struct wt_status *s);
54
55 #endif /* STATUS_H */