Merge branch 'fp/linenumbers'
这个提交包含在:
		
							
								
								
									
										3
									
								
								cgit.c
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								cgit.c
									
									
									
									
									
								
							| @@ -86,6 +86,8 @@ void config_cb(const char *name, const char *value) | ||||
| 		ctx.cfg.enable_log_filecount = atoi(value); | ||||
| 	else if (!strcmp(name, "enable-log-linecount")) | ||||
| 		ctx.cfg.enable_log_linecount = atoi(value); | ||||
| 	else if (!strcmp(name, "enable-tree-linenumbers")) | ||||
| 		ctx.cfg.enable_tree_linenumbers = atoi(value); | ||||
| 	else if (!strcmp(name, "max-stats")) | ||||
| 		ctx.cfg.max_stats = cgit_find_stats_period(value, NULL); | ||||
| 	else if (!strcmp(name, "cache-size")) | ||||
| @@ -238,6 +240,7 @@ static void prepare_context(struct cgit_context *ctx) | ||||
| 	ctx->cfg.css = "/cgit.css"; | ||||
| 	ctx->cfg.logo = "/cgit.png"; | ||||
| 	ctx->cfg.local_time = 0; | ||||
| 	ctx->cfg.enable_tree_linenumbers = 1; | ||||
| 	ctx->cfg.max_repo_count = 50; | ||||
| 	ctx->cfg.max_commit_count = 50; | ||||
| 	ctx->cfg.max_lock_attempts = 5; | ||||
|   | ||||
							
								
								
									
										6
									
								
								cgit.css
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								cgit.css
									
									
									
									
									
								
							| @@ -237,16 +237,16 @@ table.blob { | ||||
| } | ||||
|  | ||||
| table.blob td.lines { | ||||
| 	margin: 0; padding: 0; | ||||
| 	margin: 0; padding: 0 0 0 0.5em; | ||||
| 	vertical-align: top; | ||||
| 	color: black; | ||||
| } | ||||
|  | ||||
| table.blob td.linenumbers { | ||||
| 	margin: 0; padding: 0; | ||||
| 	margin: 0; padding: 0 0.5em 0 0.5em; | ||||
| 	vertical-align: top; | ||||
| 	text-align: right; | ||||
| 	border-right: 1px solid gray; | ||||
| 	background-color: #eee; | ||||
| } | ||||
|  | ||||
| table.blob pre { | ||||
|   | ||||
							
								
								
									
										1
									
								
								cgit.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								cgit.h
									
									
									
									
									
								
							| @@ -173,6 +173,7 @@ struct cgit_config { | ||||
| 	int enable_index_links; | ||||
| 	int enable_log_filecount; | ||||
| 	int enable_log_linecount; | ||||
| 	int enable_tree_linenumbers; | ||||
| 	int local_time; | ||||
| 	int max_repo_count; | ||||
| 	int max_commit_count; | ||||
|   | ||||
| @@ -99,6 +99,10 @@ enable-log-linecount:: | ||||
| 	and removed lines for each commit on the repository log page. Default | ||||
| 	value: "0". | ||||
|  | ||||
| enable-tree-linenumbers:: | ||||
| 	Flag which, when set to "1", will make cgit generate linenumber links | ||||
| 	for plaintext blobs printed in the tree view. Default value: "1". | ||||
|  | ||||
| favicon:: | ||||
| 	Url used as link to a shortcut icon for cgit. If specified, it is | ||||
| 	suggested to use the value "/favicon.ico" since certain browsers will | ||||
|   | ||||
							
								
								
									
										35
									
								
								ui-tree.c
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								ui-tree.c
									
									
									
									
									
								
							| @@ -22,8 +22,28 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) | ||||
| 		"<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n"; | ||||
|  | ||||
| 	html("<table summary='blob content' class='blob'>\n"); | ||||
|  | ||||
| 	if (ctx.cfg.enable_tree_linenumbers) { | ||||
| 		html("<tr><td class='linenumbers'><pre>"); | ||||
| 		idx = 0; | ||||
| 		lineno = 0; | ||||
| 	 | ||||
| 		if (size) { | ||||
| 			htmlf(numberfmt, ++lineno); | ||||
| 			while(idx < size - 1) { // skip absolute last newline | ||||
| 				if (buf[idx] == '\n') | ||||
| 					htmlf(numberfmt, ++lineno); | ||||
| 				idx++; | ||||
| 			} | ||||
| 		} | ||||
| 		html("</pre></td>\n"); | ||||
| 	} | ||||
| 	else { | ||||
| 		html("<tr>\n"); | ||||
| 	} | ||||
|  | ||||
| 	if (ctx.repo->source_filter) { | ||||
| 		html("<tr><td class='lines'><pre><code>"); | ||||
| 		html("<td class='lines'><pre><code>"); | ||||
| 		ctx.repo->source_filter->argv[1] = xstrdup(name); | ||||
| 		cgit_open_filter(ctx.repo->source_filter); | ||||
| 		write(STDOUT_FILENO, buf, size); | ||||
| @@ -32,19 +52,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	html("<tr><td class='linenumbers'><pre>"); | ||||
| 	idx = 0; | ||||
| 	lineno = 0; | ||||
|  | ||||
| 	if (size) { | ||||
| 		htmlf(numberfmt, ++lineno); | ||||
| 		while(idx < size - 1) { // skip absolute last newline | ||||
| 			if (buf[idx] == '\n') | ||||
| 				htmlf(numberfmt, ++lineno); | ||||
| 			idx++; | ||||
| 		} | ||||
| 	} | ||||
| 	html("</pre></td>\n"); | ||||
| 	html("<td class='lines'><pre><code>"); | ||||
| 	html_txt(buf); | ||||
| 	html("</code></pre></td></tr></table>\n"); | ||||
|   | ||||
		在新工单中引用
	
	屏蔽一个用户
	 Lars Hjemli
					Lars Hjemli