summaryrefslogtreecommitdiff
path: root/graph.h
diff options
context:
space:
mode:
Diffstat (limited to 'graph.h')
-rw-r--r--graph.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/graph.h b/graph.h
index bc30d687c0..aff960c7e8 100644
--- a/graph.h
+++ b/graph.h
@@ -5,8 +5,24 @@
struct git_graph;
/*
+ * Set up a custom scheme for column colors.
+ *
+ * The default column color scheme inserts ANSI color escapes to colorize
+ * the graph. The various color escapes are stored in an array of strings
+ * where each entry corresponds to a color, except for the last entry,
+ * which denotes the escape for resetting the color back to the default.
+ * When generating the graph, strings from this array are inserted before
+ * and after the various column characters.
+ *
+ * This function allows you to enable a custom array of color escapes.
+ * The 'colors_max' argument is the index of the last "reset" entry.
+ *
+ * This functions must be called BEFORE graph_init() is called.
+ */
+void graph_set_column_colors(const char **colors, unsigned short colors_max);
+
+/*
* Create a new struct git_graph.
- * The graph should be freed with graph_release() when no longer needed.
*/
struct git_graph *graph_init(struct rev_info *opt);
@@ -33,6 +49,17 @@ void graph_update(struct git_graph *graph, struct commit *commit);
*/
int graph_is_commit_finished(struct git_graph const *graph);
+/*
+ * Output the next line for a graph.
+ * This formats the next graph line into the specified strbuf. It is not
+ * terminated with a newline.
+ *
+ * Returns 1 if the line includes the current commit, and 0 otherwise.
+ * graph_next_line() will return 1 exactly once for each time
+ * graph_update() is called.
+ */
+int graph_next_line(struct git_graph *graph, struct strbuf *sb);
+
/*
* graph_show_*: helper functions for printing to stdout