status: support --porcelain[=<version>]
[gitweb.git] / wt-status.h
index 2023a3cef678fc7c2e41be2d3bbb4019a03e9df2..9389076f6944cc035a0f8bf4ae9664deaf88a18c 100644 (file)
@@ -43,6 +43,15 @@ struct wt_status_change_data {
        unsigned new_submodule_commits : 1;
 };
 
+enum wt_status_format {
+       STATUS_FORMAT_NONE = 0,
+       STATUS_FORMAT_LONG,
+       STATUS_FORMAT_SHORT,
+       STATUS_FORMAT_PORCELAIN,
+
+       STATUS_FORMAT_UNSPECIFIED
+};
+
 struct wt_status {
        int is_initial;
        char *branch;
@@ -66,6 +75,8 @@ struct wt_status {
        int show_branch;
        int hints;
 
+       enum wt_status_format status_format;
+
        /* These are computed during processing of the individual sections */
        int commitable;
        int workdir_dirty;
@@ -99,6 +110,7 @@ struct wt_status_state {
 void wt_status_truncate_message_at_cut_line(struct strbuf *);
 void wt_status_add_cut_line(FILE *fp);
 void wt_status_prepare(struct wt_status *s);
+void wt_status_print(struct wt_status *s);
 void wt_status_collect(struct wt_status *s);
 void wt_status_get_state(struct wt_status_state *state, int get_detached_from);
 int wt_status_check_rebase(const struct worktree *wt,
@@ -106,10 +118,6 @@ 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_longstatus_print(struct wt_status *s);
-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)))