summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Shawn O. Pearce <spearce@spearce.org>2008-04-23 21:34:58 -0400
committerLibravatar Shawn O. Pearce <spearce@spearce.org>2008-04-23 21:34:58 -0400
commitddc360314544a21638fd0658218bbc37aafedd6f (patch)
tree45149f90183fe9048ea13b52820ccb516b7d7133
parentgit-gui: use +/- instead of ]/[ to show more/less context in diff (diff)
downloadtgif-ddc360314544a21638fd0658218bbc37aafedd6f.tar.xz
git-gui: Don't use '$$cr master' with aspell earlier than 0.60
Apparently aspell 0.50 does not recognize "$$cr master" as a command, but instead tries to offer suggestions for how to correctly spell the word "cr". This is not quite what we are after when we want the name of the current dictionary. Instead of locking up git-gui waiting for a response that may never come back from aspell we avoid sending this command if the binary we have started claims to be before version 0.60. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rw-r--r--lib/spellcheck.tcl14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/spellcheck.tcl b/lib/spellcheck.tcl
index 9be748683c..78f344f08f 100644
--- a/lib/spellcheck.tcl
+++ b/lib/spellcheck.tcl
@@ -84,13 +84,19 @@ method _connect {pipe_fd} {
regexp \
{International Ispell Version .* \(but really (Aspell .*?)\)$} \
$s_version _junk s_version
+ regexp {^Aspell (\d)+\.(\d+)} $s_version _junk major minor
puts $pipe_fd ! ; # enable terse mode
- puts $pipe_fd {$$cr master} ; # fetch the language
- flush $pipe_fd
- gets $pipe_fd s_lang
- regexp {[/\\]([^/\\]+)\.[^\.]+$} $s_lang _ s_lang
+ # fetch the language
+ if {$major > 0 || ($major == 0 && $minor >= 60)} {
+ puts $pipe_fd {$$cr master}
+ flush $pipe_fd
+ gets $pipe_fd s_lang
+ regexp {[/\\]([^/\\]+)\.[^\.]+$} $s_lang _ s_lang
+ } else {
+ set s_lang {}
+ }
if {$::default_config(gui.spellingdictionary) eq {}
&& [get_config gui.spellingdictionary] eq {}} {