plugins/codeinline.c

Sat, 12 Nov 2005 20:19:39 +0000

author
Sean Egan <seanegan@pidgin.im>
date
Sat, 12 Nov 2005 20:19:39 +0000
changeset 12055
48460d77deaa
child 13234
1d8e569b2053
permissions
-rwxr-xr-x

[gaim-migrate @ 14350]
I wrote this plugin back when I was writing my book. The publisher's
stylesheet had me underline any code terms, and getting into that
habit led me to underline code terms in IM too. So I wrote this plugin
to format underlined stuff as code. Now that I'm using a bunch of different
computers, I find I want to have the plugin elsewhere, so I'm adding it
to CVS

12055
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /*
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 * gaim
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
3 *
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 * Gaim is the legal property of its developers, whose names are too numerous
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
5 * to list here. Please refer to the COPYRIGHT file distributed with this
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
6 * source distribution.
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 *
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * This program is free software; you can redistribute it and/or modify
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * it under the terms of the GNU General Public License as published by
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * the Free Software Foundation; either version 2 of the License, or
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 * (at your option) any later version.
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 *
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * This program is distributed in the hope that it will be useful,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 * GNU General Public License for more details.
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 *
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * You should have received a copy of the GNU General Public License
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
19 * along with this program; if not, write to the Free Software
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 */
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23 #include "internal.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
24 #include "plugin.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25 #include "notify.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
26 #include "util.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
27 #include "version.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
28 #include "gtkutils.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
29 #include "gtkimhtml.h"
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
30
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
31 GaimPlugin *plugin_handle = NULL;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
32
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33 static gboolean outgoing_msg_cb(GaimAccount *account, GaimConversation *conv, char **message)
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
34 {
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
35 char *m;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
36 char **ms = g_strsplit(*message, "<u>", -1);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
37 m = g_strjoinv("<font face=\"monospace\" color=\"#00b025\">", ms);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
38 g_strfreev(ms);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
39
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
40 ms = g_strsplit(m, "</u>", -1);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
41 g_free(m);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
42 m = g_strjoinv("</font>", ms);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
43 g_free(*message);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
44 *message = m;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
45 return FALSE;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
46 }
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
47
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
48 static gboolean
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
49 plugin_load(GaimPlugin *plugin)
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
50 {
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51 void *handle = gaim_conversations_get_handle();
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
52 plugin_handle = plugin;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
53 gaim_signal_connect(handle, "writing-im-msg", plugin,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
54 GAIM_CALLBACK(outgoing_msg_cb), NULL);
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
55
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
56 return TRUE;
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
57 }
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
58
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
59
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
60 static GaimPluginInfo info =
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
61 {
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
62 GAIM_PLUGIN_MAGIC,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
63 GAIM_MAJOR_VERSION,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
64 GAIM_MINOR_VERSION,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
65 GAIM_PLUGIN_STANDARD,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
66 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
67 0,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
68 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
69 GAIM_PRIORITY_DEFAULT,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
70 "codeinline",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
71 "Code Inline",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
72 "1.0",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
73 "Formats text as code",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
74 "Changes the formatting of any outgoing text such that "
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
75 "anything underlined will be received green and monospace.",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
76 "Sean Egan <seanegan@gmail.com>",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
77 "http://gaim.sourceforge.net",
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
78 plugin_load,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
80 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
81 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
82 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
83 NULL,
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
84 NULL
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
85 };
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
86
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
87 static void
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
88 init_plugin(GaimPlugin *plugin)
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
89 {
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
90 }
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
91
48460d77deaa [gaim-migrate @ 14350]
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
92 GAIM_INIT_PLUGIN(urlcatcher, init_plugin, info)

mercurial