# Copyright © 2008 Jakub Jankowski <shasta@toxcorp.com>
-# Copyright © 2012, 2013 Jakub Wilk <jwilk@jwilk.net>
+# Copyright © 2012-2015 Jakub Wilk <jwilk@jwilk.net>
# Copyright © 2012 Gabriel Pettier <gabriel.pettier@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
use Irssi 20070804;
use Text::Aspell;
-$VERSION = '0.6';
+$VERSION = '0.7';
%IRSSI = (
authors => 'Jakub Wilk, Jakub Jankowski, Gabriel Pettier',
name => 'spellcheck',
my $speller = $speller{$lang};
return $speller if defined $speller;
$speller = Text::Aspell->new or return;
- $speller->set_option('lang', $_[0]) or return;
+ $speller->set_option('lang', $lang) or return;
$speller->set_option('sug-mode', 'fast') or return;
$speller{$lang} = $speller;
return $speller;
$target = lc($target);
# possible settings: network/channel/lang or channel/lang
- my @languages = split(/[ ,]/, Irssi::settings_get_str('spellcheck_languages'));
+ my @languages = split(/[ ,]+/, Irssi::settings_get_str('spellcheck_languages'));
for my $langstr (@languages) {
- # strip trailing slashes
- $langstr =~ s=/+$==;
- my ($s1, $s2, $s3) = split(/\//, $langstr, 3);
- my ($t, $c, $l);
- if (defined $s3 && $s3 ne '') {
- # network/channel/lang
- $t = lc($s1); $c = lc($s2); $l = $s3;
- } else {
- # channel/lang
- $c = lc($s1); $l = $s2;
- }
-
- if ($c eq $target && (!defined $t || $t eq $network)) {
+ my ($t, $c, $l) = $langstr =~ m,^(?:([^/]+)/)?([^/]+)/([^/]+)/*$,;
+ $t //= $network;
+ if (lc($c) eq $target and lc($t) eq $network) {
return $l;
}
}
$window_height = Irssi::settings_get_str('spellcheck_window_height');
}
+ return unless Irssi::settings_get_bool('spellcheck_enabled');
+
# I know no way to *mark* misspelled words in the input line,
# that's why there's no spellcheck_print_suggestions -
# because printing suggestions is our only choice.
- return unless Irssi::settings_get_bool('spellcheck_enabled');
# hide correction window when message is sent
if ($key eq 10 && $correction_window) {
my $lang = spellcheck_find_language($win);
+ return if $lang eq 'und';
+
my $suggestions = spellcheck_check_word($lang, $word, 0);
return unless defined $suggestions;
Irssi::signal_add_first('gui key pressed', 'spellcheck_key_pressed');
Irssi::signal_add_last('complete word', 'spellcheck_complete_word');
-# vim:ts=4 sw=4 et
+# vim:ts=4 sts=4 sw=4 et