diff options
author | Sadrul Habib Chowdhury <sadrul@pidgin.im> | 2008-05-13 02:26:34 +0000 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@pidgin.im> | 2008-05-13 02:26:34 +0000 |
commit | 524938a705d9046e7c8c77ce637d7bcd49883a6d (patch) | |
tree | d6764b478ce8b35c5f838999fc29f0178b478d54 | |
parent | 690d74c65c7cf4923224df66542c84cf535c6c64 (diff) | |
parent | c4a400d6c4fdc49fd010a40a8b10c5ec8fc73b38 (diff) | |
download | pidgin-524938a705d9046e7c8c77ce637d7bcd49883a6d.tar.gz |
propagate from branch 'im.pidgin.pidgin.custom_smiley' (head 6aeeb203770946ba542bb0f8e218776ae3261029)
to branch 'im.pidgin.pidgin.next.minor' (head 91b0e34f4a889c3b0d76b02b7354f3f73aa77715)
-rw-r--r-- | libpurple/Makefile.am | 2 | ||||
-rw-r--r-- | libpurple/dbus-analyze-functions.py | 3 | ||||
-rw-r--r-- | libpurple/dbus-server.c | 1 | ||||
-rw-r--r-- | libpurple/plugins/perl/Makefile.am | 1 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/MANIFEST | 1 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/Makefile.mingw | 3 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/Purple.xs | 2 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/Smiley.xs | 81 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/module.h | 4 | ||||
-rw-r--r-- | libpurple/plugins/perl/common/typemap | 1 | ||||
-rw-r--r-- | libpurple/smiley.c | 7 |
11 files changed, 102 insertions, 4 deletions
diff --git a/libpurple/Makefile.am b/libpurple/Makefile.am index 5f27dceae5..cd38d6f2f6 100644 --- a/libpurple/Makefile.am +++ b/libpurple/Makefile.am @@ -156,7 +156,7 @@ dbus_headers = dbus-bindings.h dbus-purple.h dbus-server.h dbus-useful.h dbus-d dbus_exported = dbus-useful.h dbus-define-api.h account.h blist.h buddyicon.h \ connection.h conversation.h core.h ft.h log.h notify.h prefs.h roomlist.h \ - savedstatuses.h status.h server.h util.h xmlnode.h prpl.h + savedstatuses.h smiley.h status.h server.h util.h xmlnode.h prpl.h purple_build_coreheaders = $(addprefix $(srcdir)/, $(purple_coreheaders)) \ $(purple_builtheaders) diff --git a/libpurple/dbus-analyze-functions.py b/libpurple/dbus-analyze-functions.py index b68ba45713..4a51c15f58 100644 --- a/libpurple/dbus-analyze-functions.py +++ b/libpurple/dbus-analyze-functions.py @@ -483,6 +483,7 @@ class BindingSet: self.inputiter = iter(inputfile) self.functionregexp = \ re.compile("^%s(\w[^()]*)\(([^()]*)\)\s*;\s*$" % fprefix) + self.typeregexp = re.compile("^\w+\s*\*?\s*$") @@ -501,7 +502,7 @@ class BindingSet: # accumulate lines until the parentheses are balance or an # empty line has been encountered myline = line.strip() - while myline.count("(") > myline.count(")"): + while (myline.count("(") > myline.count(")")) or self.typeregexp.match(myline): newline = self.inputiter.next().strip() if len(newline) == 0: break diff --git a/libpurple/dbus-server.c b/libpurple/dbus-server.c index e405f0ff1e..df2a058879 100644 --- a/libpurple/dbus-server.c +++ b/libpurple/dbus-server.c @@ -40,6 +40,7 @@ #include "core.h" #include "internal.h" #include "savedstatuses.h" +#include "smiley.h" #include "util.h" #include "value.h" #include "xmlnode.h" diff --git a/libpurple/plugins/perl/Makefile.am b/libpurple/plugins/perl/Makefile.am index 73388ffb87..e17292380d 100644 --- a/libpurple/plugins/perl/Makefile.am +++ b/libpurple/plugins/perl/Makefile.am @@ -67,6 +67,7 @@ common_sources = \ common/SavedStatuses.xs \ common/Server.xs \ common/Signal.xs \ + common/Smiley.xs \ common/Sound.xs \ common/Status.xs \ common/Stringref.xs \ diff --git a/libpurple/plugins/perl/common/MANIFEST b/libpurple/plugins/perl/common/MANIFEST index 7c310c092c..75e701224a 100644 --- a/libpurple/plugins/perl/common/MANIFEST +++ b/libpurple/plugins/perl/common/MANIFEST @@ -28,6 +28,7 @@ SSLConn.xs SavedStatuses.xs Server.xs Signal.xs +Smiley.xs Sound.xs Status.xs Stringref.xs diff --git a/libpurple/plugins/perl/common/Makefile.mingw b/libpurple/plugins/perl/common/Makefile.mingw index f85e89ba1f..1a4b8150e7 100644 --- a/libpurple/plugins/perl/common/Makefile.mingw +++ b/libpurple/plugins/perl/common/Makefile.mingw @@ -61,8 +61,9 @@ XS_FILES = Account.xs \ Roomlist.xs \ SSLConn.xs \ SavedStatuses.xs \ - Signal.xs \ Server.xs \ + Signal.xs \ + Smiley.xs \ Sound.xs \ Status.xs \ Stringref.xs \ diff --git a/libpurple/plugins/perl/common/Purple.xs b/libpurple/plugins/perl/common/Purple.xs index 58d00958ba..6e39ec300f 100644 --- a/libpurple/plugins/perl/common/Purple.xs +++ b/libpurple/plugins/perl/common/Purple.xs @@ -30,6 +30,7 @@ PURPLE_PERL_BOOT_PROTO(SSL); PURPLE_PERL_BOOT_PROTO(SavedStatus); PURPLE_PERL_BOOT_PROTO(Serv); PURPLE_PERL_BOOT_PROTO(Signal); +PURPLE_PERL_BOOT_PROTO(Smiley); PURPLE_PERL_BOOT_PROTO(Sound); PURPLE_PERL_BOOT_PROTO(Status); PURPLE_PERL_BOOT_PROTO(Stringref); @@ -68,6 +69,7 @@ BOOT: PURPLE_PERL_BOOT(SavedStatus); PURPLE_PERL_BOOT(Serv); PURPLE_PERL_BOOT(Signal); + PURPLE_PERL_BOOT(Smiley); PURPLE_PERL_BOOT(Sound); PURPLE_PERL_BOOT(Status); PURPLE_PERL_BOOT(Stringref); diff --git a/libpurple/plugins/perl/common/Smiley.xs b/libpurple/plugins/perl/common/Smiley.xs new file mode 100644 index 0000000000..560fd2d29d --- /dev/null +++ b/libpurple/plugins/perl/common/Smiley.xs @@ -0,0 +1,81 @@ +#include "module.h" + +MODULE = Purple::Smiley PACKAGE = Purple::Smiley PREFIX = purple_smiley_ +PROTOTYPES: ENABLE + +Purple::Smiley +purple_smiley_new(img, shortcut) + Purple::StoredImage img + const char * shortcut + +Purple::Smiley +purple_smiley_new_from_file(shortcut, filepath) + const char * shortcut + const char * filepath + +void +purple_smiley_delete(smiley) + Purple::Smiley smiley + +gboolean +purple_smiley_set_shortcut(smiley, shortcut) + Purple::Smiley smiley + const char * shortcut + +void +purple_smiley_set_data(smiley, data, data_len, keepfilename) + Purple::Smiley smiley + guchar * data + size_t data_len + gboolean keepfilename + +const char * +purple_smiley_get_shortcut(smiley) + Purple::Smiley smiley + +const char * +purple_smiley_get_checksum(smiley) + Purple::Smiley smiley + +Purple::StoredImage +purple_smiley_get_stored_image(smiley) + Purple::Smiley smiley + +gconstpointer +purple_smiley_get_data(smiley, len) + Purple::Smiley smiley + size_t * len + +const char * +purple_smiley_get_extension(smiley) + Purple::Smiley smiley + + +gchar_own * +purple_smiley_get_full_path(smiley) + Purple::Smiley smiley + + +MODULE = Purple::Smiley PACKAGE = Purple::Smileys PREFIX = purple_smileys_ +PROTOTYPES: ENABLE + +void +purple_smileys_get_all() +PREINIT: + GList *l; +PPCODE: + for (l = purple_smileys_get_all(); l != NULL; l = g_list_delete_link(l, l)) { + XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Smiley"))); + } + +Purple::Smiley +purple_smileys_find_by_shortcut(shortcut) + const char * shortcut + +Purple::Smiley +purple_smileys_find_by_checksum(checksum) + const char * checksum + +const char * +purple_smileys_get_storing_dir() + diff --git a/libpurple/plugins/perl/common/module.h b/libpurple/plugins/perl/common/module.h index a05c59e2c7..b7b2c5568a 100644 --- a/libpurple/plugins/perl/common/module.h +++ b/libpurple/plugins/perl/common/module.h @@ -51,6 +51,7 @@ typedef struct group *Purple__Group; #include "savedstatuses.h" #include "server.h" #include "signals.h" +#include "smiley.h" #include "sound.h" #include "sslconn.h" #include "status.h" @@ -240,6 +241,9 @@ typedef PurpleRoomlistUiOps * Purple__Roomlist__UiOps; typedef PurpleSavedStatus * Purple__SavedStatus; typedef PurpleSavedStatusSub * Purple__SavedStatus__Sub; +/* smiley.h */ +typedef PurpleSmiley * Purple__Smiley; + /* sound.h */ typedef PurpleSoundEventID Purple__SoundEventID; typedef PurpleSoundUiOps * Purple__Sound__UiOps; diff --git a/libpurple/plugins/perl/common/typemap b/libpurple/plugins/perl/common/typemap index 83af8f0551..5e9ebfb306 100644 --- a/libpurple/plugins/perl/common/typemap +++ b/libpurple/plugins/perl/common/typemap @@ -151,6 +151,7 @@ Purple::Ssl::Ops T_PurpleObj Purple::Presence T_PurpleObj Purple::PresenceContext T_IV +Purple::Smiley T_PurpleObj Purple::Status T_PurpleObj Purple::StatusAttr T_PurpleObj Purple::StatusPrimitive T_IV diff --git a/libpurple/smiley.c b/libpurple/smiley.c index 93df8e3e40..b7a1ab8093 100644 --- a/libpurple/smiley.c +++ b/libpurple/smiley.c @@ -25,11 +25,12 @@ */ #include "internal.h" -#include "xmlnode.h" +#include "dbus-maybe.h" #include "debug.h" #include "imgstore.h" #include "smiley.h" #include "util.h" +#include "xmlnode.h" /**************************************************************************/ /* Main structures, members and constants */ @@ -305,6 +306,8 @@ static GObjectClass *parent_class; static void purple_smiley_init(GTypeInstance *instance, gpointer klass) { + PurpleSmiley *smiley = PURPLE_SMILEY(instance); + PURPLE_DBUS_REGISTER_POINTER(smiley, PurpleSmiley); } static void @@ -379,6 +382,8 @@ purple_smiley_finalize(GObject *obj) purple_smiley_data_unstore(purple_imgstore_get_filename(smiley->img)); purple_imgstore_unref(smiley->img); + PURPLE_DBUS_UNREGISTER_POINTER(smiley); + purple_smileys_save(); } |