ui-log: Colorize commit graph
Use the existing coloring logic in Git's graph code to color the lines between commits in the commit graph. Whereas Git normally uses ANSI color escapes to produce colors, we here use graph_set_column_colors() to replace those with HTML color escapes, that embed the graph lines in <span> tags that apply the desired color using CSS. Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
		 Johan Herland
					Johan Herland
				
			
				
					committed by
					
						 Lars Hjemli
						Lars Hjemli
					
				
			
			
				
	
			
			
			 Lars Hjemli
						Lars Hjemli
					
				
			
						parent
						
							9a8d39c668
						
					
				
				
					commit
					268b34af23
				
			
							
								
								
									
										19
									
								
								ui-log.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								ui-log.c
									
									
									
									
									
								
							| @@ -13,6 +13,21 @@ | ||||
|  | ||||
| int files, add_lines, rem_lines; | ||||
|  | ||||
| /* | ||||
|  * The list of available column colors in the commit graph. | ||||
|  */ | ||||
| static const char *column_colors_html[] = { | ||||
| 	"<span class='column1'>", | ||||
| 	"<span class='column2'>", | ||||
| 	"<span class='column3'>", | ||||
| 	"<span class='column4'>", | ||||
| 	"<span class='column5'>", | ||||
| 	"<span class='column6'>", | ||||
| 	"</span>", | ||||
| }; | ||||
|  | ||||
| #define COLUMN_COLORS_HTML_MAX (ARRAY_SIZE(column_colors_html) - 1) | ||||
|  | ||||
| void count_lines(char *line, int size) | ||||
| { | ||||
| 	if (size <= 0) | ||||
| @@ -273,7 +288,11 @@ void cgit_print_log(const char *tip, int ofs, int cnt, char *grep, char *pattern | ||||
| 	} | ||||
| 	if (ctx.repo->enable_commit_graph) { | ||||
| 		static const char *graph_arg = "--graph"; | ||||
| 		static const char *color_arg = "--color"; | ||||
| 		vector_push(&vec, &graph_arg, 0); | ||||
| 		vector_push(&vec, &color_arg, 0); | ||||
| 		graph_set_column_colors(column_colors_html, | ||||
| 					COLUMN_COLORS_HTML_MAX); | ||||
| 	} | ||||
|  | ||||
| 	if (path) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user