Commit | Line | Data |
---|---|---|
c91f0d92 JK |
1 | #ifndef STATUS_H |
2 | #define STATUS_H | |
3 | ||
f26a0012 | 4 | #include <stdio.h> |
50b7e70f | 5 | #include "string-list.h" |
23900a96 | 6 | #include "color.h" |
7aa9b9ba | 7 | #include "pathspec.h" |
f26a0012 | 8 | |
81eff27b NTND |
9 | struct worktree; |
10 | ||
c91f0d92 | 11 | enum color_wt_status { |
23900a96 | 12 | WT_STATUS_HEADER = 0, |
c91f0d92 JK |
13 | WT_STATUS_UPDATED, |
14 | WT_STATUS_CHANGED, | |
15 | WT_STATUS_UNTRACKED, | |
950ce2e2 | 16 | WT_STATUS_NOBRANCH, |
4d4d5726 | 17 | WT_STATUS_UNMERGED, |
05a59a08 | 18 | WT_STATUS_LOCAL_BRANCH, |
1d282327 AA |
19 | WT_STATUS_REMOTE_BRANCH, |
20 | WT_STATUS_ONBRANCH, | |
21 | WT_STATUS_MAXSLOT | |
c91f0d92 JK |
22 | }; |
23 | ||
4bfee30a | 24 | enum untracked_status_type { |
6c2ce048 MSO |
25 | SHOW_NO_UNTRACKED_FILES, |
26 | SHOW_NORMAL_UNTRACKED_FILES, | |
4bfee30a MSO |
27 | SHOW_ALL_UNTRACKED_FILES |
28 | }; | |
4bfee30a | 29 | |
37f7a857 JS |
30 | /* from where does this commit originate */ |
31 | enum commit_whence { | |
32 | FROM_COMMIT, /* normal */ | |
33 | FROM_MERGE, /* commit came from merge */ | |
34 | FROM_CHERRY_PICK /* commit came from cherry-pick */ | |
35 | }; | |
36 | ||
50b7e70f JH |
37 | struct wt_status_change_data { |
38 | int worktree_status; | |
39 | int index_status; | |
40 | int stagemask; | |
41 | char *head_path; | |
9297f77e JL |
42 | unsigned dirty_submodule : 2; |
43 | unsigned new_submodule_commits : 1; | |
50b7e70f JH |
44 | }; |
45 | ||
be7e795e JH |
46 | enum wt_status_format { |
47 | STATUS_FORMAT_NONE = 0, | |
48 | STATUS_FORMAT_LONG, | |
49 | STATUS_FORMAT_SHORT, | |
50 | STATUS_FORMAT_PORCELAIN, | |
51 | ||
52 | STATUS_FORMAT_UNSPECIFIED | |
53 | }; | |
54 | ||
c91f0d92 JK |
55 | struct wt_status { |
56 | int is_initial; | |
57 | char *branch; | |
58 | const char *reference; | |
15b55ae0 | 59 | struct pathspec pathspec; |
c91f0d92 JK |
60 | int verbose; |
61 | int amend; | |
37f7a857 | 62 | enum commit_whence whence; |
37d07f8f | 63 | int nowarn; |
d249b098 | 64 | int use_color; |
7a76c28f | 65 | int no_gettext; |
2556b996 | 66 | int display_comment_prefix; |
d249b098 JH |
67 | int relative_paths; |
68 | int submodule_summary; | |
6cb3f6b2 | 69 | int show_ignored_files; |
d249b098 | 70 | enum untracked_status_type show_untracked_files; |
46a958b3 | 71 | const char *ignore_submodule_arg; |
1d282327 | 72 | char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN]; |
4d2292e9 | 73 | unsigned colopts; |
3207a3a2 | 74 | int null_termination; |
d4a6bf1f | 75 | int show_branch; |
6a964f57 | 76 | int hints; |
d249b098 | 77 | |
be7e795e JH |
78 | enum wt_status_format status_format; |
79 | ||
2a3a3c24 JR |
80 | /* These are computed during processing of the individual sections */ |
81 | int commitable; | |
82 | int workdir_dirty; | |
0f729f21 | 83 | const char *index_file; |
f26a0012 | 84 | FILE *fp; |
367c9886 | 85 | const char *prefix; |
50b7e70f | 86 | struct string_list change; |
76378683 | 87 | struct string_list untracked; |
6cb3f6b2 | 88 | struct string_list ignored; |
6a38ef2c | 89 | uint32_t untracked_in_ms; |
c91f0d92 JK |
90 | }; |
91 | ||
83c750ac LK |
92 | struct wt_status_state { |
93 | int merge_in_progress; | |
94 | int am_in_progress; | |
95 | int am_empty_patch; | |
96 | int rebase_in_progress; | |
97 | int rebase_interactive_in_progress; | |
98 | int cherry_pick_in_progress; | |
99 | int bisect_in_progress; | |
db4ef449 | 100 | int revert_in_progress; |
970399e7 | 101 | int detached_at; |
8b87cfd0 NTND |
102 | char *branch; |
103 | char *onto; | |
b397ea48 NTND |
104 | char *detached_from; |
105 | unsigned char detached_sha1[20]; | |
87e139c0 | 106 | unsigned char revert_head_sha1[20]; |
bffd8098 | 107 | unsigned char cherry_pick_head_sha1[20]; |
83c750ac LK |
108 | }; |
109 | ||
1a72cfd7 | 110 | void wt_status_truncate_message_at_cut_line(struct strbuf *); |
fcef9312 | 111 | void wt_status_add_cut_line(FILE *fp); |
c91f0d92 | 112 | void wt_status_prepare(struct wt_status *s); |
be7e795e | 113 | void wt_status_print(struct wt_status *s); |
76378683 | 114 | void wt_status_collect(struct wt_status *s); |
b397ea48 | 115 | void wt_status_get_state(struct wt_status_state *state, int get_detached_from); |
81eff27b NTND |
116 | int wt_status_check_rebase(const struct worktree *wt, |
117 | struct wt_status_state *state); | |
f5d067a2 NTND |
118 | int wt_status_check_bisect(const struct worktree *wt, |
119 | struct wt_status_state *state); | |
c91f0d92 | 120 | |
8dd0ee82 JK |
121 | __attribute__((format (printf, 3, 4))) |
122 | void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, ...); | |
123 | __attribute__((format (printf, 3, 4))) | |
124 | void status_printf(struct wt_status *s, const char *color, const char *fmt, ...); | |
becbdae8 | 125 | |
c91f0d92 | 126 | #endif /* STATUS_H */ |