git-gui: heed core.commentChar/commentString

This amends 1ae85ff6d (git-gui: strip comments and consecutive empty
lines from commit messages, 2024-08-13) to deal with custom comment
characters/strings.

The magic commentString value "auto" is not handled, because the option
makes no sense to me - it does not support comments in templates and
hook output, and it seems far-fetched that someone would introduce
comments during editing the message.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
maint
Oswald Buddenhagen 2025-03-15 15:09:13 +01:00 committed by Johannes Sixt
parent 90934966bb
commit 6b43a57dfc
2 changed files with 11 additions and 1 deletions

View File

@ -880,6 +880,12 @@ proc apply_config {} {
color::sync_with_theme
}
}

global comment_string
set comment_string [get_config core.commentstring]
if {$comment_string eq {}} {
set comment_string [get_config core.commentchar]
}
}

set default_config(branch.autosetupmerge) true
@ -890,6 +896,8 @@ set default_config(merge.summary) false
set default_config(merge.verbosity) 2
set default_config(user.name) {}
set default_config(user.email) {}
set default_config(core.commentchar) "#"
set default_config(core.commentstring) {}

set default_config(gui.encoding) [encoding system]
set default_config(gui.matchtrackingbranch) false

View File

@ -211,7 +211,9 @@ You must stage at least 1 file before you can commit.
# Strip trailing whitespace
regsub -all -line {[ \t\r]+$} $msg {} msg
# Strip comment lines
regsub -all {(^|\n)#[^\n]*} $msg {\1} msg
global comment_string
set cmt_rx [strcat {(^|\n)} [regsub -all {\W} $comment_string {\\&}] {[^\n]*}]
regsub -all $cmt_rx $msg {\1} msg
# Strip leading empty lines
regsub {^\n*} $msg {} msg
# Compress consecutive empty lines