Skip to content

Commit

Permalink
git-gui: Ensure all spellchecker 'class' variables are initialized
Browse files Browse the repository at this point in the history
If we somehow managed to get our spellchecker instance created but
aspell wasn't startable we may not finish _connect and thus may
find one or more of our fields was not initialized in the instance.

If we have an instance but no version, there is no reason to show
a version to the user in our about dialog.  We effectively have no
spellchecker available.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Shawn O. Pearce committed Feb 21, 2008
1 parent f4d9348 commit f57ca1e
Showing 2 changed files with 11 additions and 6 deletions.
3 changes: 2 additions & 1 deletion lib/about.tcl
Original file line number Diff line number Diff line change
@@ -41,7 +41,8 @@ proc do_about {} {
append v "Tcl version $tcl_patchLevel"
append v ", Tk version $tk_patchLevel"
}
if {[info exists ui_comm_spell]} {
if {[info exists ui_comm_spell]
&& [$ui_comm_spell version] ne {}} {
append v "\n"
append v [$ui_comm_spell version]
}
14 changes: 9 additions & 5 deletions lib/spellcheck.tcl
Original file line number Diff line number Diff line change
@@ -3,15 +3,15 @@

class spellcheck {

field s_fd {} ; # pipe to aspell
field s_version ; # aspell version string
field s_lang ; # current language code
field s_fd {} ; # pipe to aspell
field s_version {} ; # aspell version string
field s_lang {} ; # current language code

field w_text ; # text widget we are spelling
field w_menu ; # context menu for the widget
field s_menuidx 0 ; # last index of insertion into $w_menu

field s_i ; # timer registration for _run callbacks
field s_i {} ; # timer registration for _run callbacks
field s_clear 0 ; # did we erase mispelled tags yet?
field s_seen [list] ; # lines last seen from $w_text in _run
field s_checked [list] ; # lines already checked
@@ -21,6 +21,7 @@ field s_suggest ; # array, list of suggestions, keyed by misspelling
constructor init {pipe_fd ui_text ui_menu} {
set w_text $ui_text
set w_menu $ui_menu
array unset s_suggest

_connect $this $pipe_fd
return $this
@@ -88,7 +89,10 @@ method lang {{n {}}} {
}

method version {} {
return "$s_version, $s_lang"
if {$s_version ne {}} {
return "$s_version, $s_lang"
}
return {}
}

method stop {} {

0 comments on commit f57ca1e

Please sign in to comment.