Merge Irssi 0.8.16-rc1
[silc.git] / apps / irssi / src / perl / get-signals.pl
1 #!/usr/bin/perl
2
3 print "/*\n";
4 print " * Autogenerated by get-signals.pl from ../../doc/signals.txt,\n";
5 print " * do not edit.\n";
6 print " */\n\n";
7 print "static PERL_SIGNAL_ARGS_REC perl_signal_args[] =\n{\n";
8
9 while (<STDIN>) {
10         chomp;
11
12         next if (!/^ "([^"]*)"(<.*>)?(?:,\s*(.*))?/);
13         next if (/\.\.\./);
14         next if (/\(/);
15
16         $signal = $1;
17         $_ = $3;
18
19         s/GList \* of ([^,]*)/glistptr_\1/g;
20         s/GSList of (\w+)s/gslist_\1/g;
21
22         s/char \*[^,]*/string/g;
23         s/ulong \*[^,]*/ulongptr/g;
24         s/int \*[^,]*/intptr/g;
25         s/int [^,]*/int/g;
26
27         # core
28         s/CHATNET_REC[^,]*/iobject/g;
29         s/(?<!_)SERVER_REC[^,]*/iobject/g;
30         s/RECONNECT_REC[^,]*/iobject/g;
31         s/CHANNEL_REC[^,]*/iobject/g;
32         s/QUERY_REC[^,]*/iobject/g;
33         s/COMMAND_REC[^,]*/Irssi::Command/g;
34         s/NICK_REC[^,]*/iobject/g;
35         s/LOG_REC[^,]*/Irssi::Log/g;
36         s/RAWLOG_REC[^,]*/Irssi::Rawlog/g;
37         s/IGNORE_REC[^,]*/Irssi::Ignore/g;
38         s/MODULE_REC[^,]*/Irssi::Module/g;
39
40         # irc
41         s/BAN_REC[^,]*/Irssi::Irc::Ban/g;
42         s/NETSPLIT_REC[^,]*/Irssi::Irc::Netsplit/g;
43         s/NETSPLIT_SERVER_REC[^,]*/Irssi::Irc::Netsplitserver/g;
44
45         # irc modules
46         s/DCC_REC[^,]*/siobject/g;
47         s/AUTOIGNORE_REC[^,]*/Irssi::Irc::Autoignore/g;
48         s/NOTIFYLIST_REC[^,]*/Irssi::Irc::Notifylist/g;
49         s/CLIENT_REC[^,]*/Irssi::Irc::Client/g;
50
51         # fe-common
52         s/THEME_REC[^,]*/Irssi::UI::Theme/g;
53         s/KEYINFO_REC[^,]*/Irssi::UI::Keyinfo/g;
54         s/PROCESS_REC[^,]*/Irssi::UI::Process/g;
55         s/TEXT_DEST_REC[^,]*/Irssi::UI::TextDest/g;
56         s/WINDOW_REC[^,]*/Irssi::UI::Window/g;
57         s/WI_ITEM_REC[^,]*/iobject/g;
58
59         # perl
60         s/PERL_SCRIPT_REC[^,]*/Irssi::Script/g;
61
62         s/([\w\*:]+)(,|$)/"\1"\2/g;
63         if ($_ eq "") {
64                 print "    { \"$signal\", { NULL } },\n";
65         } else {
66                 print "    { \"$signal\", { $_, NULL } },\n";
67         }
68 }
69
70 print "\n    { NULL }\n};\n";