[PATCH] Allow gitweb tab width to be set per project.
From: Magnus Hagander <hidden>
Date: 2016-06-15 22:49:48
Subsystem:
the rest · Maintainer:
Linus Torvalds
Allow the gitweb.tabwidth option to control how many spaces a tab gets expanded to. Signed-off-by: Magnus Hagander <redacted> --- gitweb/README | 4 ++++ gitweb/gitweb.perl | 6 +++++- 2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/gitweb/README b/gitweb/README
index bf3664f..d2e4a1d 100644
--- a/gitweb/README
+++ b/gitweb/README@@ -312,6 +312,10 @@ You can use the following files in repository: repository's owner. It is displayed in the project list and summary page. If it's not set, filesystem directory's owner is used (via GECOS field / real name field from getpwiud(3)). + * gitweb.tabwidth + You can use the gitweb.tabwidth repository configuration variable to set + the number of spaces that tabs should be expanded to, instead of the + default 8. * various gitweb.* config variables (in config) Read description of %feature hash for detailed list, and some descriptions.
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 8d7e4c5..66c258f 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl@@ -1478,9 +1478,13 @@ sub unquote { # escape tabs (convert tabs to spaces) sub untabify { my $line = shift; + # git_get_project_config caches the value for us, so it's ok + # to call it once for each line. + my $tabwidth = git_get_project_config('tabwidth', '--int'); + $tabwidth = 8 if (!defined $tabwidth || $tabwidth <= 0); while ((my $pos = index($line, "\t")) != -1) { - if (my $count = (8 - ($pos % 8))) { + if (my $count = ($tabwidth - ($pos % $tabwidth))) { my $spaces = ' ' x $count; $line =~ s/\t/$spaces/; }
--
1.7.0.4