git-gui: Cleanup end-of-line whitespace in commit messages.

When committing changes its useless to have trailing whitespace on the
end of a line within the commit message itself; this serves no purpose
beyond wasting space in the repository.  But it happens a lot on my
Mac OS X system if I copy text out of a Terminal.app window and paste
it into git-gui.

We now clip any trailing whitespace from the commit buffer when loading
it from a file, when saving it out to our backup file, or when making
the actual commit object.

I also fixed a bug where we lost the commit message buffer if you quit
without editing the text region.  This can happen if you quit and restart
git-gui frequently in the middle of an editing session.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce
2007-01-25 12:54:59 -05:00
parent 30b14ed390
commit 4e55d19a13

View File

@ -428,6 +428,7 @@ proc load_message {file} {
} }
set content [string trim [read $fd]] set content [string trim [read $fd]]
close $fd close $fd
regsub -all -line {[ \r\t]+$} $content {} content
$ui_comm delete 0.0 end $ui_comm delete 0.0 end
$ui_comm insert end $content $ui_comm insert end $content
return 1 return 1
@ -1046,6 +1047,7 @@ You must add at least 1 file before you can commit.
# -- A message is required. # -- A message is required.
# #
set msg [string trim [$ui_comm get 1.0 end]] set msg [string trim [$ui_comm get 1.0 end]]
regsub -all -line {[ \t\r]+$} $msg {} msg
if {$msg eq {}} { if {$msg eq {}} {
error_popup {Please supply a commit message. error_popup {Please supply a commit message.
@ -2984,12 +2986,13 @@ proc do_quit {} {
# #
set save [gitdir GITGUI_MSG] set save [gitdir GITGUI_MSG]
set msg [string trim [$ui_comm get 0.0 end]] set msg [string trim [$ui_comm get 0.0 end]]
if {![string match amend* $commit_type] regsub -all -line {[ \r\t]+$} $msg {} msg
&& [$ui_comm edit modified] if {(![string match amend* $commit_type]
|| [$ui_comm edit modified])
&& $msg ne {}} { && $msg ne {}} {
catch { catch {
set fd [open $save w] set fd [open $save w]
puts $fd [string trim [$ui_comm get 0.0 end]] puts -nonewline $fd $msg
close $fd close $fd
} }
} else { } else {