Imported Upstream version 2.16.6
[platform/upstream/git.git] / wt-status.h
index 2ca93f6..3f84d5c 100644 (file)
@@ -27,6 +27,12 @@ enum untracked_status_type {
        SHOW_ALL_UNTRACKED_FILES
 };
 
+enum show_ignored_type {
+       SHOW_NO_IGNORED,
+       SHOW_TRADITIONAL_IGNORED,
+       SHOW_MATCHING_IGNORED,
+};
+
 /* from where does this commit originate */
 enum commit_whence {
        FROM_COMMIT,     /* normal */
@@ -38,11 +44,25 @@ struct wt_status_change_data {
        int worktree_status;
        int index_status;
        int stagemask;
-       char *head_path;
+       int mode_head, mode_index, mode_worktree;
+       struct object_id oid_head, oid_index;
+       int rename_status;
+       int rename_score;
+       char *rename_source;
        unsigned dirty_submodule       : 2;
        unsigned new_submodule_commits : 1;
 };
 
+enum wt_status_format {
+       STATUS_FORMAT_NONE = 0,
+       STATUS_FORMAT_LONG,
+       STATUS_FORMAT_SHORT,
+       STATUS_FORMAT_PORCELAIN,
+       STATUS_FORMAT_PORCELAIN_V2,
+
+       STATUS_FORMAT_UNSPECIFIED
+};
+
 struct wt_status {
        int is_initial;
        char *branch;
@@ -57,15 +77,20 @@ struct wt_status {
        int display_comment_prefix;
        int relative_paths;
        int submodule_summary;
-       int show_ignored_files;
+       enum show_ignored_type show_ignored_mode;
        enum untracked_status_type show_untracked_files;
        const char *ignore_submodule_arg;
        char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN];
        unsigned colopts;
        int null_termination;
+       int commit_template;
        int show_branch;
+       int show_stash;
        int hints;
 
+       enum wt_status_format status_format;
+       unsigned char sha1_commit[GIT_MAX_RAWSZ]; /* when not Initial */
+
        /* These are computed during processing of the individual sections */
        int commitable;
        int workdir_dirty;
@@ -96,7 +121,7 @@ struct wt_status_state {
        unsigned char cherry_pick_head_sha1[20];
 };
 
-void wt_status_truncate_message_at_cut_line(struct strbuf *);
+size_t wt_status_locate_end(const char *s, size_t len);
 void wt_status_add_cut_line(FILE *fp);
 void wt_status_prepare(struct wt_status *s);
 void wt_status_print(struct wt_status *s);
@@ -107,12 +132,15 @@ int wt_status_check_rebase(const struct worktree *wt,
 int wt_status_check_bisect(const struct worktree *wt,
                           struct wt_status_state *state);
 
-void wt_shortstatus_print(struct wt_status *s);
-void wt_porcelain_print(struct wt_status *s);
-
 __attribute__((format (printf, 3, 4)))
 void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, ...);
 __attribute__((format (printf, 3, 4)))
 void status_printf(struct wt_status *s, const char *color, const char *fmt, ...);
 
+/* The following functions expect that the caller took care of reading the index. */
+int has_unstaged_changes(int ignore_submodules);
+int has_uncommitted_changes(int ignore_submodules);
+int require_clean_work_tree(const char *action, const char *hint,
+       int ignore_submodules, int gently);
+
 #endif /* STATUS_H */