Skip to content

Commit

Permalink
git-gui: Optionally save commit buffer on exit.
Browse files Browse the repository at this point in the history
If the commit area does not exist, don't save the commit message to
a file, or the window geometry.  The reason I'm doing this is I want
to make the main window entirely optional, such as if the user has
asked us to show a blame from the command line.  In such cases the
commit area won't exist and trying to get its text would cause an
error.

If we are running without the commit message area, we cannot save
our window geometry either, as the root window '.' won't be a normal
commit window.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Shawn O. Pearce committed Feb 8, 2007
1 parent 64a906f commit db7f34d
Showing 1 changed file with 28 additions and 26 deletions.
54 changes: 28 additions & 26 deletions git-gui.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4126,34 +4126,36 @@ proc do_quit {} {
if {$is_quitting} return
set is_quitting 1

# -- Stash our current commit buffer.
#
set save [gitdir GITGUI_MSG]
set msg [string trim [$ui_comm get 0.0 end]]
regsub -all -line {[ \r\t]+$} $msg {} msg
if {(![string match amend* $commit_type]
|| [$ui_comm edit modified])
&& $msg ne {}} {
catch {
set fd [open $save w]
puts -nonewline $fd $msg
close $fd
if {[winfo exists $ui_comm]} {
# -- Stash our current commit buffer.
#
set save [gitdir GITGUI_MSG]
set msg [string trim [$ui_comm get 0.0 end]]
regsub -all -line {[ \r\t]+$} $msg {} msg
if {(![string match amend* $commit_type]
|| [$ui_comm edit modified])
&& $msg ne {}} {
catch {
set fd [open $save w]
puts -nonewline $fd $msg
close $fd
}
} else {
catch {file delete $save}
}
} else {
catch {file delete $save}
}

# -- Stash our current window geometry into this repository.
#
set cfg_geometry [list]
lappend cfg_geometry [wm geometry .]
lappend cfg_geometry [lindex [.vpane sash coord 0] 1]
lappend cfg_geometry [lindex [.vpane.files sash coord 0] 0]
if {[catch {set rc_geometry $repo_config(gui.geometry)}]} {
set rc_geometry {}
}
if {$cfg_geometry ne $rc_geometry} {
catch {exec git repo-config gui.geometry $cfg_geometry}
# -- Stash our current window geometry into this repository.
#
set cfg_geometry [list]
lappend cfg_geometry [wm geometry .]
lappend cfg_geometry [lindex [.vpane sash coord 0] 1]
lappend cfg_geometry [lindex [.vpane.files sash coord 0] 0]
if {[catch {set rc_geometry $repo_config(gui.geometry)}]} {
set rc_geometry {}
}
if {$cfg_geometry ne $rc_geometry} {
catch {exec git repo-config gui.geometry $cfg_geometry}
}
}

destroy .
Expand Down

0 comments on commit db7f34d

Please sign in to comment.