Tue, 07 May 2013 05:04:46 -0400
Rewrite debug window filter in JS.
Note, this does cause a couple regressions, but they are probably not
that big a deal. First, the JS regular expression syntax is slightly
different. Second, the JS regex API lacks a way to reliably determine
the location of matched groups, so we can't highlight just the groups
and must highlight the entire expression.
I suspect that none of our users ever had to use any fancy regex in the
debug window, and that most of our developers didn't even know it could
be done. So I doubt these regressions will cause much pain.
| 7746 | 1 | #include "internal.h" |
| 2 | #include "plugin.h" | |
| 3 | ||
| 4 | #include "account.h" | |
| 5 | #include "connection.h" | |
| 6 | #include "conversation.h" | |
| 9954 | 7 | #include "version.h" |
| 7746 | 8 | |
|
25629
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
9 | /* include UI for pidgin_dialogs_about() */ |
| 7746 | 10 | #include "gtkplugin.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
8999
diff
changeset
|
11 | #include "gtkdialogs.h" |
| 91 | 12 | |
| 15884 | 13 | #define PURPLEINC_PLUGIN_ID "core-purpleinc" |
| 5255 | 14 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
15 | static void |
| 15884 | 16 | echo_hi(PurpleConnection *gc) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
17 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
18 | /* this doesn't do much, just lets you know who we are :) */ |
|
25629
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
19 | pidgin_dialogs_about(); |
| 91 | 20 | } |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
21 | |
| 7746 | 22 | static gboolean |
| 15884 | 23 | reverse(PurpleAccount *account, char **who, char **message, |
| 24 | PurpleConversation *conv, int *flags) | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
25 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
26 | /* this will drive you insane. whenever you receive a message, |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
27 | * the text of the message (HTML and all) will be reversed. */ |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
28 | int i, l; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
29 | char tmp; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
30 | |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
31 | /* this check is necessary in case bad plugins do bad things */ |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
32 | if (message == NULL || *message == NULL) |
| 7746 | 33 | return FALSE; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
34 | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
35 | l = strlen(*message); |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
36 | |
| 15884 | 37 | if (!strcmp(*who, purple_account_get_username(account))) |
| 7746 | 38 | return FALSE; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
39 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
40 | for (i = 0; i < l/2; i++) { |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
41 | tmp = (*message)[i]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
42 | (*message)[i] = (*message)[l - i - 1]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
43 | (*message)[l - i - 1] = tmp; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
44 | } |
| 7746 | 45 | return FALSE; |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
46 | } |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
47 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
48 | static void |
| 15884 | 49 | bud(PurpleBuddy *who) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
50 | { |
| 15884 | 51 | PurpleAccount *acct = who->account; |
| 52 | PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, who->name); | |
| 7746 | 53 | |
| 15884 | 54 | purple_conv_im_send(PURPLE_CONV_IM(conv), "Hello!"); |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
55 | } |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
56 | |
| 5255 | 57 | /* |
| 58 | * EXPORTED FUNCTIONS | |
| 59 | */ | |
| 60 | ||
| 61 | static gboolean | |
| 15884 | 62 | plugin_load(PurplePlugin *plugin) |
| 5255 | 63 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
64 | /* this is for doing something fun when we sign on */ |
| 15884 | 65 | purple_signal_connect(purple_connections_get_handle(), "signed-on", |
| 66 | plugin, PURPLE_CALLBACK(echo_hi), NULL); | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
67 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
68 | /* this is for doing something fun when we get a message */ |
| 15884 | 69 | purple_signal_connect(purple_conversations_get_handle(), "receiving-im-msg", |
| 70 | plugin, PURPLE_CALLBACK(reverse), NULL); | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
71 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
72 | /* this is for doing something fun when a buddy comes online */ |
| 15884 | 73 | purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", |
| 74 | plugin, PURPLE_CALLBACK(bud), NULL); | |
|
1047
783f8520d9a0
[gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
99
diff
changeset
|
75 | |
| 5255 | 76 | return TRUE; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
77 | } |
|
96
2b8586ab9456
[gaim-migrate @ 106]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
94
diff
changeset
|
78 | |
| 15884 | 79 | static PurplePluginInfo info = |
| 5255 | 80 | { |
| 15884 | 81 | PURPLE_PLUGIN_MAGIC, |
| 82 | PURPLE_MAJOR_VERSION, | |
| 83 | PURPLE_MINOR_VERSION, | |
| 84 | PURPLE_PLUGIN_STANDARD, /**< type */ | |
| 5255 | 85 | NULL, /**< ui_requirement */ |
| 86 | 0, /**< flags */ | |
| 87 | NULL, /**< dependencies */ | |
| 15884 | 88 | PURPLE_PRIORITY_DEFAULT, /**< priority */ |
| 5255 | 89 | |
| 15884 | 90 | PURPLEINC_PLUGIN_ID, /**< id */ |
|
16073
e70e589dde54
more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
91 | N_("Pidgin Demonstration Plugin"), /**< name */ |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16404
diff
changeset
|
92 | DISPLAY_VERSION, /**< version */ |
| 5255 | 93 | /** summary */ |
| 94 | N_("An example plugin that does stuff - see the description."), | |
| 95 | /** description */ | |
| 96 | N_("This is a really cool plugin that does a lot of stuff:\n" | |
| 97 | "- It tells you who wrote the program when you log in\n" | |
| 98 | "- It reverses all incoming text\n" | |
| 99 | "- It sends a message to people on your list immediately" | |
| 100 | " when they sign on"), | |
| 101 | "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ | |
| 15884 | 102 | PURPLE_WEBSITE, /**< homepage */ |
| 5255 | 103 | |
| 104 | plugin_load, /**< load */ | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
105 | NULL, /**< unload */ |
| 5255 | 106 | NULL, /**< destroy */ |
| 107 | ||
| 108 | NULL, /**< ui_info */ | |
|
13471
e01689a020dd
[gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents:
11338
diff
changeset
|
109 | NULL, /**< extra_info */ |
|
e01689a020dd
[gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents:
11338
diff
changeset
|
110 | NULL, /**< prefs_info */ |
|
25629
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
111 | NULL, /**< actions */ |
|
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
112 | /* padding */ |
|
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
113 | NULL, |
|
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
114 | NULL, |
|
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
115 | NULL, |
|
a1d84a478cb7
s/pidgindialogs_about/pidgin_dialogs_about/ to fix compiling also add some
Etan Reisner <deryni@pidgin.im>
parents:
20288
diff
changeset
|
116 | NULL |
| 5255 | 117 | }; |
| 118 | ||
| 119 | static void | |
| 15884 | 120 | init_plugin(PurplePlugin *plugin) |
| 5255 | 121 | { |
| 3551 | 122 | } |
| 123 | ||
| 15884 | 124 | PURPLE_INIT_PLUGIN(purpleinc, init_plugin, info) |