libpurple/plugins/buddynote.c

Sun, 16 Aug 2020 18:58:39 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Sun, 16 Aug 2020 18:58:39 -0500
changeset 40514
30d9cbf04922
parent 40439
e9838d634d5e
child 40945
bbeb2e98ea5b
permissions
-rw-r--r--

Fix some leaks.

Also, expand `g_ascii_dtostr` buffers to `G_ASCII_DTOSTR_BUF_SIZE`.

This is the size it's guaranteed to be under, so might as well have it be that size. It not too much bigger than the existing choice anyway.

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/71/

15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * BuddyNote - Store notes on particular buddies
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) 2004 Stu Tomlinson <stu@nosnilmot.com>
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * modify it under the terms of the GNU General Public License
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * as published by the Free Software Foundation; either version 2
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 * of the License, or (at your option) any later version.
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 *
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * This program is distributed in the hope that it will be useful,
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 * GNU General Public License for more details.
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 *
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 17708
diff changeset
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 */
40439
e9838d634d5e Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents: 39959
diff changeset
19 #include <glib/gi18n-lib.h>
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20
39959
e47fcffd061b migrate the libpurple plugins to using purple.h only
Gary Kramlich <grim@reaperworld.com>
parents: 39483
diff changeset
21 #include <purple.h>
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
24 dont_do_it_cb(PurpleBlistNode *node, const char *note)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 {
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
29 do_it_cb(PurpleBlistNode *node, const char *note)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30 {
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
31 purple_blist_node_set_string(node, "notes", note);
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
35 buddynote_edit_cb(PurpleBlistNode *node, gpointer data)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36 {
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 const char *note;
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
39 note = purple_blist_node_get_string(node, "notes");
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
21175
c6d76b49c206 disapproval of revision '8ba833993a115415727bb1b70362e0bd1603c169'
Richard Laager <rlaager@pidgin.im>
parents: 21174
diff changeset
41 purple_request_input(node, _("Notes"),
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
42 _("Enter your notes below..."),
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
43 NULL,
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
44 note, TRUE, FALSE, "html",
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 _("Save"), G_CALLBACK(do_it_cb),
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
46 _("Cancel"), G_CALLBACK(dont_do_it_cb),
34329
ddbc1337332c Request API refactoring: introduce PurpleRequestCommonParameters and switch purple_request_input to it
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 21630
diff changeset
47 NULL, node);
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
50 static void
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
51 buddynote_extended_menu_cb(PurpleBlistNode *node, GList **m)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
52 {
39481
4db28449567d Rename PurpleMenuAction to PurpleActionMenu
Gary Kramlich <grim@reaperworld.com>
parents: 39479
diff changeset
53 PurpleActionMenu *bna = NULL;
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
54
34865
764a33b41ac7 Renamed blist node's dont_save to transient.
Ankit Vani <a@nevitus.org>
parents: 34864
diff changeset
55 if (purple_blist_node_is_transient(node))
17708
0f23250ae460 Prevent the Buddy Notes plugin from offering to edit notes on a buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16745
diff changeset
56 return;
0f23250ae460 Prevent the Buddy Notes plugin from offering to edit notes on a buddy list
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 16745
diff changeset
57
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
58 *m = g_list_append(*m, bna);
39483
ab4728087d87 Rename purple_menu_action_* to purple_action_menu_*
Gary Kramlich <grim@reaperworld.com>
parents: 39481
diff changeset
59 bna = purple_action_menu_new(_("Edit Notes..."), PURPLE_CALLBACK(buddynote_edit_cb), NULL, NULL);
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60 *m = g_list_append(*m, bna);
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
61 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62
36742
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
63 static PurplePluginInfo *
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
64 plugin_query(GError **error)
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
65 {
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
66 const gchar * const authors[] = {
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
67 "Stu Tomlinson <stu@nosnilmot.com>",
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
68 NULL
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
69 };
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
70
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
71 return purple_plugin_info_new(
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
72 "id", "core-plugin_pack-buddynote",
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
73 "name", N_("Buddy Notes"),
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
74 "version", DISPLAY_VERSION,
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
75 "category", N_("Utility"),
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
76 "summary", N_("Store notes on particular buddies."),
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
77 "description", N_("Adds the option to store notes for buddies on your "
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
78 "buddy list."),
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
79 "authors", authors,
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
80 "website", PURPLE_WEBSITE,
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
81 "abi-version", PURPLE_ABI_VERSION,
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
82 NULL
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
83 );
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
84 }
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
85
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
86 static gboolean
36742
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
87 plugin_load(PurplePlugin *plugin, GError **error)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
88 {
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
89
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
90 purple_signal_connect(purple_blist_get_handle(), "blist-node-extended-menu",
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
91 plugin, PURPLE_CALLBACK(buddynote_extended_menu_cb), NULL);
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
92
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
93 return TRUE;
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
94 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
95
36742
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
96 static gboolean
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
97 plugin_unload(PurplePlugin *plugin, GError **error)
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
98 {
36742
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
99 return TRUE;
15230
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
100 }
e36be229f6d0 [gaim-migrate @ 17954]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
101
36742
5d43951cabc0 More refactoring
Ankit Vani <a@nevitus.org>
parents: 34940
diff changeset
102 PURPLE_PLUGIN_INIT(buddynote, plugin_query, plugin_load, plugin_unload);

mercurial