summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@0x90.dk>2014-06-19 00:00:54 +0200
committerAlexander Færøy <ahf@0x90.dk>2014-06-19 00:00:54 +0200
commitea704df7e0f7e388b156e7de3dab7d2ea133d2eb (patch)
tree109a6227c907c4259b0ba4ac12eff5dadb63fb9c
parentb7c1fbd2b96a38cd1025cc353ac19cf3a5b2894c (diff)
parentb05b6cde4d91f6d1d2a378256328042979db64ea (diff)
downloadirssi-ea704df7e0f7e388b156e7de3dab7d2ea133d2eb.zip
Merge pull request #20 from ailin-nemui/broken-signal-parser
fix signals parser
-rwxr-xr-xsrc/perl/get-signals.pl68
1 files changed, 36 insertions, 32 deletions
diff --git a/src/perl/get-signals.pl b/src/perl/get-signals.pl
index 1f410dad..55264cb9 100755
--- a/src/perl/get-signals.pl
+++ b/src/perl/get-signals.pl
@@ -24,46 +24,50 @@ while (<STDIN>) {
s/int \*[^,]*/intptr/g;
s/int [^,]*/int/g;
- # core
- s/CHATNET_REC[^,]*/iobject/g;
- s/(?<!_)SERVER_REC[^,]*/iobject/g;
- s/RECONNECT_REC[^,]*/iobject/g;
- s/CHANNEL_REC[^,]*/iobject/g;
- s/QUERY_REC[^,]*/iobject/g;
- s/COMMAND_REC[^,]*/Irssi::Command/g;
- s/NICK_REC[^,]*/iobject/g;
- s/LOG_REC[^,]*/Irssi::Log/g;
- s/RAWLOG_REC[^,]*/Irssi::Rawlog/g;
- s/IGNORE_REC[^,]*/Irssi::Ignore/g;
- s/MODULE_REC[^,]*/Irssi::Module/g;
+ my %map = (
+ # core
+ CHATNET_REC => 'iobject',
+ SERVER_REC => 'iobject',
+ RECONNECT_REC => 'iobject',
+ CHANNEL_REC => 'iobject',
+ QUERY_REC => 'iobject',
+ COMMAND_REC => 'Irssi::Command',
+ NICK_REC => 'iobject',
+ LOG_REC => 'Irssi::Log',
+ RAWLOG_REC => 'Irssi::Rawlog',
+ IGNORE_REC => 'Irssi::Ignore',
+ MODULE_REC => 'Irssi::Module',
- # irc
- s/BAN_REC[^,]*/Irssi::Irc::Ban/g;
- s/NETSPLIT_REC[^,]*/Irssi::Irc::Netsplit/g;
- s/NETSPLIT_SERVER_REC[^,]*/Irssi::Irc::Netsplitserver/g;
+ # irc
+ BAN_REC => 'Irssi::Irc::Ban',
+ NETSPLIT_REC => 'Irssi::Irc::Netsplit',
+ NETSPLIT_SERVER_REC => 'Irssi::Irc::Netsplitserver',
- # irc modules
- s/DCC_REC[^,]*/siobject/g;
- s/AUTOIGNORE_REC[^,]*/Irssi::Irc::Autoignore/g;
- s/NOTIFYLIST_REC[^,]*/Irssi::Irc::Notifylist/g;
- s/CLIENT_REC[^,]*/Irssi::Irc::Client/g;
+ # irc modules
+ DCC_REC => 'siobject',
+ AUTOIGNORE_REC => 'Irssi::Irc::Autoignore',
+ NOTIFYLIST_REC => 'Irssi::Irc::Notifylist',
+ CLIENT_REC => 'Irssi::Irc::Client',
- # fe-common
- s/THEME_REC[^,]*/Irssi::UI::Theme/g;
- s/KEYINFO_REC[^,]*/Irssi::UI::Keyinfo/g;
- s/PROCESS_REC[^,]*/Irssi::UI::Process/g;
- s/TEXT_DEST_REC[^,]*/Irssi::UI::TextDest/g;
- s/WINDOW_REC[^,]*/Irssi::UI::Window/g;
- s/WI_ITEM_REC[^,]*/iobject/g;
+ # fe-common
+ THEME_REC => 'Irssi::UI::Theme',
+ KEYINFO_REC => 'Irssi::UI::Keyinfo',
+ PROCESS_REC => 'Irssi::UI::Process',
+ TEXT_DEST_REC => 'Irssi::UI::TextDest',
+ WINDOW_REC => 'Irssi::UI::Window',
+ WI_ITEM_REC => 'iobject',
- # perl
- s/PERL_SCRIPT_REC[^,]*/Irssi::Script/g;
+ # perl
+ PERL_SCRIPT_REC => 'Irssi::Script',
+ );
+ my $k = join '|', sort { length $b <=> length $a } keys %map;
+ s/($k)[^,]*/$map{$1}/g;
s/([\w\*:]+)(,|$)/"\1"\2/g;
if ($_ eq "") {
- print " { \"$signal\", { NULL } },\n";
+ print " { \"$signal\", { NULL } },\n";
} else {
- print " { \"$signal\", { $_, NULL } },\n";
+ print " { \"$signal\", { $_, NULL } },\n";
}
}