annotate plugins/test.pl @ 7724:613b20c69d2c

[gaim-migrate @ 8369] this didn't cause me any problems yesterday, and it compiles, and bug fixing is a good thing. "Some month ago I introduced translatable texts for "gaim --help" and "gaim-remote --help". Unfortunately the output of the translated text is often unreadable. The problem is, that Gaim's *.po files have the UTF-8 locale (because this is the default charset for GTK+ 2.0). But the users may have configured other locales. For instance my SuSE Linux 9.0 system is configured with LANG=de_DE@euro. "euro" is ISO-8859-1 (Western character set, 8 Bit, with the Euro currency symbol). Lots of UTF-8 characters are unreadable if they are displayed in a 8 Bit charset without conversion. Only the 7 Bit chars are displayed right. There are two possible solutions: 1) Make the console texts untranslatable. This isn't very clever. 2) Convert the texts from UTF-8 to user's locale. I choose the second solution. The conversion cannot be made during the translation, because gettext does not allow a mix of different character sets in one po-file. My patch converts the console strings from UTF-8 to users locale. Normally this works right, because most users have a locale which is compatible with their language. The case where a user uses a language (for instance German: LANG=de_DE) with an incompatible character set (for instance the 7Bit charset LC_CTYPE=C) is also handled. The user then sees a warning and the original UTF-8 message. At first I tried to make a new UTF-8 function in src/util.c. But the function is needed 5 times in src/gaim-remote.c and 2 times in src/main.c. gaim-remote is not linked against util.o. Also there are a lot of dependencies from util.o to other files, so I will introduce a lot of trouble to link gaim-remote against util.o. So I only wrote a function in src/gaim-remote.c and used the UTF-8 conversion inline in src/main.c." --Bjoern Voigt committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Wed, 03 Dec 2003 13:21:55 +0000
parents b1ea29d1293e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 #!/usr/bin/perl -w
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 use Gaim;
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 %PLUGIN_INFO = (
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
6 perl_api_version => 2,
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7 name => 'Test Perl Plugin',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 version => '1.0',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
9 summary => 'Provides as a test base for the perl plugin.',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10 description => 'Provides as a test base for the perl plugin.',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 author => 'Christian Hammond <chipx86@gnupdate.org>',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12 url => 'http://gaim.sf.net/',
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 load => "plugin_load",
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
15 unload => "plugin_unload"
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16 );
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
18 sub account_away_cb {
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
19 Gaim::debug_info("perl test plugin", "In account_away_cb\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
20
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
21 my ($account, $state, $message, $data) = @_;
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
22
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
23 Gaim::debug_info("perl test plugin", "Account " .
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
24 $account->get_username() . " went away.\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
25 Gaim::debug_info("perl test plugin", $data . "\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
26 }
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
27
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 sub plugin_init {
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29 return %PLUGIN_INFO;
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 }
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
32 sub plugin_load {
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
33 Gaim::debug_info("perl test plugin", "plugin_load\n");
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
34 my $plugin = shift;
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
35
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
36 Gaim::debug_info("perl test plugin", "Listing accounts.\n");
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
37 foreach $account (Gaim::accounts()) {
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
38 Gaim::debug_info("perl test plugin", $account->get_username() . "\n");
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
39 }
6592
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
40
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
41 Gaim::debug_info("perl test plugin", "Listing buddy list.\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
42 foreach $group (Gaim::BuddyList::groups()) {
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
43 Gaim::debug_info("perl test plugin",
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
44 $group->get_name() . ":\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
45
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
46 foreach $buddy ($group->buddies()) {
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
47 Gaim::debug_info("perl test plugin",
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
48 " " . $buddy->get_name() . "\n");
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
49 }
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
50 }
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
51
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
52 Gaim::signal_connect(Gaim::Accounts::handle, "account-away",
b1ea29d1293e [gaim-migrate @ 7116]
Christian Hammond <chipx86@chipx86.com>
parents: 6529
diff changeset
53 $plugin, \&account_away_cb, "test");
6529
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 }
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 sub plugin_unload {
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
57 my $plugin = shift;
e4e87ffd9f14 [gaim-migrate @ 7046]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58 }