# HG changeset patch # User Mark Doliner # Date 1174877289 0 # Node ID 5f9b7e2652f082856a9e65f3a42f7c266140f5b2 # Parent f771cdcc551a59339c84d068131c3e2a98deb0a4# Parent f8c16848b76d9022b4b9825bf59f5b5638f79fef merge of '04076a446ca2bc48c37d00b8b255bc1311b6c51c' and '8a20c90142cacba36041509da3a0e11499df3ebc' diff -r f771cdcc551a -r 5f9b7e2652f0 Makefile.am --- a/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -10,32 +10,30 @@ README.SVN \ README.dbus \ README.mingw \ + config.h.mingw \ gaim.pc.in \ - gaim.spec.in \ - gaim.apspec.in \ - pidgin.desktop.in \ + gaim-uninstalled.pc.in \ gaim.service.in \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ - config.h.mingw \ + pidgin.apspec.in \ + pidgin.spec.in \ + pidgin.desktop.in \ po/Makefile.mingw noinst_HEADERS = config.h -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = gaim.pc - if ENABLE_DBUS dbus_servicedir=$(DBUS_SERVICES_DIR) dbus_service_DATA=gaim.service endif -dist-hook: gaim.spec - cp gaim.spec $(distdir) +dist-hook: pidgin.spec + cp pidgin.spec $(distdir) rm $(distdir)/config.h -distcheck-hook: libpurple/plugins/perl/common/Gaim.pm gtk/plugins/perl/common/GtkUI.pm +distcheck-hook: libpurple/plugins/perl/common/Purple.pm pidgin/plugins/perl/common/GtkUI.pm # cp libpurple/plugins/perl/common/Gaim.pm $(distdir)/libpurple/plugins/perl/common appsdir = $(datadir)/applications @@ -66,9 +64,9 @@ # breaks "make distcheck" unless we ignore perl things distuninstallcheck_listfiles = \ - find . -type f -print | grep -v perl | grep -v Gaim.3pm + find . -type f -print | grep -v perl | grep -v Purple.3pm -DISTCLEANFILES= pidgin.desktop libpurple/gconf/gaim.schemas intltool-extract \ +DISTCLEANFILES= pidgin.desktop libpurple/gconf/purple.schemas intltool-extract \ intltool-merge intltool-update ACLOCAL_AMFLAGS = -I m4 diff -r f771cdcc551a -r 5f9b7e2652f0 configure.ac --- a/configure.ac Mon Mar 26 01:11:46 2007 +0000 +++ b/configure.ac Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([pidgin], [2.0.0beta7devel], [gaim-devel@lists.sourceforge.net]) +AC_INIT([pidgin], [2.0.0beta7devel], [devel@pidgin.im]) AC_CANONICAL_SYSTEM AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) @@ -700,14 +700,14 @@ extern_init= load_proto= for i in $STATIC_PRPLS ; do - dnl Ugly special case for "libsilcgaim.a": + dnl Ugly special case for "libsilcpurple.a": if test "x$i" = "xsilc"; then - STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib${i}gaim.a" + STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib${i}purple.a" else STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib$i.a" fi - extern_init="$extern_init extern gboolean gaim_init_${i}_plugin();" - load_proto="$load_proto gaim_init_${i}_plugin();" + extern_init="$extern_init extern gboolean purple_init_${i}_plugin();" + load_proto="$load_proto purple_init_${i}_plugin();" case $i in bonjour) static_bonjour=yes ;; gg) static_gg=yes ;; @@ -883,7 +883,7 @@ fi AC_SUBST(CFLAGS) -AC_PATH_PROG(gaimpath, gaim) +AC_PATH_PROG(pidginpath, pidgin) dnl ####################################################################### dnl # Check for D-Bus libraries @@ -935,7 +935,7 @@ dnl it is now accessible through D-Bus. dnl Python is only required if --enable-dbus is used, and only for -dnl the build process to generate the code, not for running gaim. +dnl the build process to generate the code, not for running pidgin. dnl This autogenerated code is system-independent, so in principle we dnl can generate all of it before shipping. But I thought adding dnl auto-generated stuff to the repository is inelegant. @@ -1145,7 +1145,7 @@ AC_ARG_WITH(perl-lib, [AC_HELP_STRING([--with-perl-lib=[site|vendor|DIR]], - [specify where to install the Perl libraries for gaim. Default is site.])], + [specify where to install the Perl libraries for pidgin. Default is site.])], [ if test "x$withval" = xsite; then PERL_MM_PARAMS="" @@ -1890,25 +1890,26 @@ AC_ARG_ENABLE(fatal-asserts, [AC_HELP_STRING([--enable-fatal-asserts], [make assertions fatal (useful for debugging)])], , enable_fatal_asserts=no) if test "x$enable_fatal_asserts" = "xyes" ; then - AC_DEFINE(GAIM_FATAL_ASSERTS, 1, [Define to make assertions fatal (useful for debugging).]) + AC_DEFINE(PURPLE_FATAL_ASSERTS, 1, [Define to make assertions fatal (useful for debugging).]) fi AC_OUTPUT([Makefile Doxyfile - gaim.apspec gaim.service doc/Makefile doc/pidgin.1 doc/finch.1 m4macros/Makefile + pidgin.apspec pidgin/Makefile pidgin/pidgin.pc + pidgin/pidgin-uninstalled.pc pidgin/pixmaps/Makefile pidgin/pixmaps/animations/Makefile pidgin/pixmaps/animations/16/Makefile pidgin/pixmaps/buddy_icons/Makefile pidgin/pixmaps/buddy_icons/qq/Makefile - pidgin/pixmaps/dialogs/Makefile + pidgin/pixmaps/dialogs/Makefile pidgin/pixmaps/dialogs/16/Makefile pidgin/pixmaps/dialogs/16/scalable/Makefile pidgin/pixmaps/dialogs/64/Makefile @@ -1919,7 +1920,7 @@ pidgin/pixmaps/emotes/Makefile pidgin/pixmaps/emotes/default/Makefile pidgin/pixmaps/emotes/default/22/Makefile - pidgin/pixmaps/emotes/default/22/scalable/Makefile + pidgin/pixmaps/emotes/default/22/scalable/Makefile pidgin/pixmaps/emotes/none/Makefile pidgin/pixmaps/protocols/Makefile pidgin/pixmaps/protocols/16/Makefile @@ -1958,6 +1959,7 @@ libpurple/example/Makefile libpurple/gconf/Makefile libpurple/purple.pc + libpurple/purple-uninstalled.pc libpurple/plugins/Makefile libpurple/plugins/mono/Makefile libpurple/plugins/mono/api/Makefile @@ -1989,9 +1991,7 @@ finch/libgnt/wms/Makefile finch/plugins/Makefile po/Makefile.in - gaim.pc - gaim-uninstalled.pc - gaim.spec + pidgin.spec ]) echo @@ -2030,9 +2030,9 @@ echo Print debugging messages...... : $enable_debug echo Assertions are fatal.......... : $enable_fatal_asserts echo -eval eval echo Gaim will be installed in $bindir. -if test "x$gaimpath" != "x" ; then - echo Warning: You have an old copy of gaim at $gaimpath. +eval eval echo Pidgin will be installed in $bindir. +if test "x$pidginpath" != "x" ; then + echo Warning: You have an old copy of Pidgin at $pidginpath. fi echo echo configure complete, now type \'make\' diff -r f771cdcc551a -r 5f9b7e2652f0 doc/Makefile.am --- a/doc/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/doc/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -12,7 +12,7 @@ conversation-signals.dox \ core-signals.dox \ dbus-server-signals.dox \ - gaims_funniest_home_convos.txt \ + funniest_home_convos.txt \ finch.1.in \ gtkaccount-signals.dox \ gtkblist-signals.dox \ diff -r f771cdcc551a -r 5f9b7e2652f0 doc/funniest_home_convos.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/funniest_home_convos.txt Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,453 @@ +All IM names have been changed, so we don't get sued or nothing. We get some +interesting convos.... + +17:58:27 Luser: You do any GTK programming? +17:58:43 Zilding: You mean, work on GTK itself? +17:58:56 Luser: no program stuff using GTK +17:59:37 Zilding: Hrm. How do you know me, again? :) +17:59:54 Luser: haha.......i saw your handle in the help part of gaim +18:00:01 Zilding: yes. +18:00:05 Luser: Didnt mean to freak you out +18:00:16 Zilding: Iz okay, I figured that was the answer. +18:00:26 Zilding: Is gaim written with Athena, Motif, or Xforms? +18:00:29 Zilding: or GTK? :) +18:00:39 Luser: GTK :) +18:00:50 Zilding: I believe you have answered your own question. :) + + +15:40:14 SomeGuy: hey you there? +15:40:28 Zilding: nope +15:40:33 SomeGuy: :-) +15:40:43 SomeGuy: ah there was a little bug in my code. +15:40:46 SomeGuy: did you notice it? +15:41:28 Zilding: uh....jim ain't here...well...not at the keyboard at +least...this is alissa... +15:41:38 Zilding: and uh...i am not wearing a bra +15:41:46 SomeGuy: hi alissa +15:41:46 Zilding: i have him tied up at the moment +15:41:51 SomeGuy: ah +15:41:52 Zilding: hello +15:42:01 SomeGuy: I hope he is having fun. +15:42:05 Zilding: yeah....we're kinda busy righ tnow +15:42:09 Zilding: know..err +15:42:22 Zilding: hehe.... +15:42:24 SomeGuy: should I let you two love bird go? +15:43:09 Zilding: uh...well...yeah i guess...he really isn't in any sort of +position to help you right now... +15:43:42 Zilding: THREE CHEERS FOR A WIRELESS KEYBOARD +15:43:44 Zilding: WOOHOO +15:43:54 SomeGuy: tell him I said... compared to the current situation what +I was going to ask him is microscopic. +15:44:00 SomeGuy: have fun guys. + + +16:24:41 JailBait: Hello How are you? +16:24:48 JailBait: stats? +16:25:00 Zilding: pretty good, who is this? +16:25:54 JailBait: I got your name from the hotmail webCourier...i'm Abi 13/f +16:26:39 Zilding: Hotmail webcourier? +16:26:51 JailBait: yeah +16:26:59 Zilding: Interesting. +16:27:17 Zilding: Well, I'm 18 years old, male, and I still haven't a clue how you got my IM :) +16:28:28 JailBait: yes it was under the thing where people were asking Questions and you anwered them....someone ask if they could IM you and you put in this s/n +16:28:59 Zilding: Hmm.. what kind of questions was I answering? +16:29:38 JailBait: normal one's you were ansering holdon +16:29:54 JailBait: hey mom is home talk to you later +16:29:56 JailBait: bye bye] +16:30:02 Zilding: uh.. okay :) +16:31:58 Zilding: hey can you send me the URL to where you got my screen name? I'm just curious :) + + +19:05:45 ZFriend: waddle waddle waddle +19:15:34 ZFriend: *waddle waddle waddle* +19:15:45 ZFriend: (pssttt) +19:16:07 ZFriend: (the penguins are coming...) +19:16:12 ZFriend: (they are coming to dance with you...) +19:45:16 Zilding: Really? Coming to dance with ME? +19:45:22 ZFriend: yes! +19:45:49 Zilding: Cool! Why? +19:46:01 ZFriend: they like you +19:47:12 Zilding: wooohooo! +19:47:14 Zilding: How'd you find this out? +19:47:22 ZFriend: ...........they told me....... +19:47:58 Zilding: Do you have secret meetings with them? And what kind of dancng will we be doing? +19:48:17 ZFriend: i cannot release any more information..... they do the mambo +19:49:13 Zilding: hehe sounds like fun. When are they coming? +19:49:24 ZFriend: after their tea time +19:49:55 Zilding: Okay. Are they bringing the herring or should I make a run? +19:50:10 ZFriend: the herring is not provided +19:50:31 Zilding: Ok cool. Well thank you, Miss Mander Oracle :) +19:50:54 ZFriend: :) + + +16:57:30 L0s3R: u help write tik? +16:57:54 Zilding: No, I'm the author and maintainer of gaim, and I spell correctly. +16:58:25 L0s3R: gud gohd eyem sohry ashole +16:58:36 Zilding: Fuck off. +16:59:44 L0s3R: eheh +16:59:46 L0s3R: i bet you have awin98 box too dont you fag +16:59:46 L0s3R: tik owns +16:59:46 L0s3R: eheh +16:59:46 L0s3R: actually all this aol shit sucks +16:59:46 L0s3R: eheh +17:00:36 Zilding: Pardon me. I've written Linux device drivers, and I'm on the XFree development team. What have you given to the community? +17:01:27 L0s3R: Nothing you've heard about mr uppity. =) +17:02:17 Zilding: I'm sure not. So forgive me when I'm not in a very good mood and I have a little contempt for people who use phrases like 'owns', can't spell correctly, and feel the need to capitalize every other letter in their name. Are you a hax0r too? +17:02:26 L0s3R: you ego is taknig up alot of space btw +17:02:29 L0s3R: taking +17:02:29 L0s3R: if you will +17:02:32 L0s3R: lol +17:02:39 L0s3R: goddamn +17:02:50 L0s3R: im sure you use office software too +17:03:31 Zilding: Get outta my face, ya script kiddie, and go back to your quake game. + +13:35:35 WinFreak: could u help me out with gaim..i kno i'm retarded ROFL +13:35:54 WinFreak : after you unzip it what do u do? +13:36:36 RobFlynn: You have gaim-0.9.5.tar.gz? +13:36:40 WinFreak : yeah +13:36:43 RobFlynn: first do: tar xvzf gaim-0.9.5.tar.gz +13:36:47 RobFlynn: then go into that directory and type: +13:36:49 RobFlynn: ./configure +13:36:52 RobFlynn: then type: make +13:37:10 WinFreak : tar xvzf...is that on ur webpage? +13:40:00 RobFlynn: Umm ... +13:45:00 WinFreak : Where can I download tar xvzf gaim-0.9.5.tar.gz? Is this for windows? + + +*** This is what happens when Gaim Developers get bored. + +22:39:18 RobFlynn: Umm +22:39:19 RobFlynn: My brain is dead. +22:39:39 Flyn Orange: *hooks up electrodes to Rob's brain and connects the battery* +22:39:47 Flyn Orange: kaZAP! +22:39:53 RobFlynn: EEpepEPAPEPAEppaep BBrRERERFFFF EPEPEPPEPpeppepape +22:39:58 RobFlynn: *waddle jerk waddle waddle twitch* +22:40:14 Flyn Orange: Its alive! Its ALIIIIIIIIIIIVE!! +22:40:25 Flyn Orange: *maniacal laugh* +22:40:26 RobFlynn: *twitch twitch waddle convulse* +22:40:41 Flyn Orange: *disconnects battery* +22:40:52 RobFlynn: *** The sun slowly fades away as a giant penguin towers above the remains of a small, wooden table*** +22:41:13 Flyn Orange: ** storm clouds rise ** +22:41:25 Flyn Orange: *thunder crack* +22:41:26 RobFlynn: *** With an eerie, almost mechanical qualling, the penguin marches its way over to its creator *** +22:41:56 Flyn Orange: Well, hello lit...er...big fella. Would you like some HERRING? +22:42:19 Flyn Orange: How about some FREE BEER? +22:42:44 RobFlynn: *** A booming voice echos through the hallways *** +22:42:47 RobFlynn: *** PIPE GREP MORE *** +22:43:20 RobFlynn: *** With a low, rumbling sound the last syllable of the mysterious phrase shakes the very foundation of the decrepit laboratory*** +22:43:22 Flyn Orange: ** the mad scientists terminal suddenly crashes, and a vaguely familiar blue screen shows on it's display ** +22:44:08 Flyn Orange: Damn the fates! How can I face my peers now when I TOLD them proprietary was better! +! +22:45:19 RobFlynn: *** THE PENGUIN BALKS: CTRL-ALT-DELETE *** + + +hungryguy: Were you the one who ate the 1lbs hamburger? +Flyn Orange: hehe... Well, I tried to. I was feeling kinda sick. :) +Flyn Orange: Flyn Orange: Would've finished that sucker off if I'd have been feeling better! +hungryguy: I'm proud of you still. +Flyn Orange: PsyAssasin: That's quite impressive. +Flyn Orange: *grin* Thanks! +hungryguy: I'm motivated to have a 1lbs hamburger party here. +hungryguy: That would be sweet. +Flyn Orange: haha! That would rock! +Flyn Orange: Good idea. +Flyn Orange: Think I might do that sometime too! +Flyn Orange: There are some truly cool people out there. + +--- If you guys havent learned yet, Jer is a smartass :-) --- + +00:03:43 Flyn Orange: *shoots you with silly string* +00:03:55 RobFlynn: HELP! I AM COVERED IN NEONG REEN STRING +00:06:54 Flyn Orange: NEONG REEN, Taiwan (AP) - + Despite the recent economical collapses suffered due to + massive geological activity over the last month, the very + profitable gag-manufacturer of Silly String has + maintained production through the turmoil. Still + employing 324 workers and a management team of 15 + Slinkies, there is no risk of a price hike in cans of + Silly String over the next few months... + +--- heheh Jeramey is a jackass :-) --- + +14:44:28 Flyn Orange: You should see gimp try and swim. She goes in circles +'cause she's only got three legs. ;) +14:44:34 RobFlynn: *giggles* +14:44:39 RobFlynn: Ive seen my cars swim before +14:44:44 RobFlynn: They doggie paddle :) +14:44:51 Flyn Orange: cats you mean? :) +14:44:56 RobFlynn: Woops! +14:44:57 RobFlynn: Yeah. +14:44:59 RobFlynn: Cars sink. +14:45:01 Flyn Orange: hehe +14:45:07 Flyn Orange: Yeah. Cars suck at swimming. +14:45:15 RobFlynn: heheh + + +--- +Eric and I were a little weird this night hehe + + +03:31:43 RobFlynn: "No Bite", she rebuked. +03:31:46 RobFlynn: Rebuked is a fun word. +03:31:51 RobFlynn: I don't know if I used it properly, but it is still fun. +03:31:55 Eric Warmenhoven: i like idiosyncratic +03:32:01 RobFlynn: I like sesquipedalian +03:32:14 Eric Warmenhoven: variations on idiosyncracy are my favorite words. +03:32:20 Eric Warmenhoven: i like them. +03:32:22 RobFlynn: I like sesquipedalian because it is polysylabic by +defination and practice. +03:32:25 Eric Warmenhoven: that's one of my idiosyncracies. +03:32:40 RobFlynn: Idiosyncracy is a sesquipedalian. +03:32:48 Eric Warmenhoven: holy crap +03:33:00 RobFlynn: Sesquipedalians such as idiosyncracy are often times +considered ambiguous. Why use a large word when a dimunitve one will suffice? + + +-- + +(14:54:25) SeanEgan: are you coding now? +(14:55:33) RobFlynn: Nah I gotta go buy pants. +(14:55:37) SeanEgan: haha +(14:55:40) SeanEgan: that was so random + +--- + +(13:51:10) wizardof___: can we have a memorable conversation? +(13:51:19) RobFlynn: i think we just did + +--- + +(22:39:02) KingAnt: I'll try to find someone with ichat to test it with (ie. get one of the guys I live with to install it) +(22:48:12) Paco-Paco: KingAnt: I have iChat +(22:48:34) KingAnt: Paco-Paco: Does it suck? +(22:48:42) Paco-Paco: yes +(22:48:47) Paco-Paco: it's hard to use +(22:48:47) KingAnt: Cool + +--- + +(22:33:31) CopyMe: ok, how do I copy a file and paste into another directory +(22:33:47) Zilding: cp +(22:34:04) CopyMe: what does that do +(22:34:06) CopyMe: copy? +(22:36:05) Zilding: yeah +(22:37:27) CopyMe: then how do you paste it? + +--- + +(02:08:12) gobblegobble: whats a chicken head +(02:08:24) RobFlynn: your mom + +--- + + I dislike the random capitalization utilized by fortunes + those aren't fortunes + those are yows + I don't know why lunix fortune gives back yows + Paco-Paco: I understand everything you just said + does it scare you? + Paco-Paco: You have no idea + +--- + +(18:45:00) SuperNewbie entered the room. +(18:51:07) SuperNewbie: I'm new and I dont understand how to get into a chat. +(18:51:19) faceprint: you're in a chat now +(18:51:30) SuperNewbie: Oh OK + +--- + +23:39 <@LSchiere> try the grammer again +23:40 LSchiere, you can try the spelling again, too ;) +23:40 <@LSchiere> SeanEgan: you know by now that i'm incorigible + +--- + +(20:53:30) idiot1: im havn problems with my sound in gaim can any1 help me +(20:54:59) LSchiere2: have you read the faq? +(21:03:35) idiot1: no and im not reading it +(21:03:45) idiot1: cuz it wont help anyways +(21:03:47) LSchiere2: then you will have no help +(21:03:54) LSchiere2: because i wrote it and i know it would help +(21:04:27) LSchiere2: since you already know everything though, you obviously don't need any help idiot1 +(21:05:38) idiot1: nope +(21:05:42) idiot1: opps + + +--- + +(20:37:03) marv: nosnilmot: I can just try tweaking gtk_imhtml_get_markup_range +(20:38:28) nosnilmot: marv: I know you can, because you know what's going on in there, but is there any point in me trying?... +(20:38:57) marv: nosnilmot: I could explain it to you I guess. Sure why not. +(20:39:44) nosnilmot: marv: I'd like to know (I think?), but now probably isn't the best time, I shouldn't have asked +(20:40:11) marv: The buffer is composed to unescaped (no entities) text, with a certain unicode character representing images or smileys or widgets. +(20:40:26) marv: nosnilmot: oh. well let me know when you feel like listening +(20:41:10) nosnilmot: marv: don't worry, I will. I need to learn C first. +(20:41:27) marv: um, you don't know C? +(20:41:31) nosnilmot: no +(20:41:44) marv: then what were those patches i applied from you earlier? +(20:42:05) nosnilmot: you don't need to know C to write patches +(20:42:12) marv: oh okay + +--- + +-!- seanegan [~sean@...] has quit [Remote closed the connection] +-!- seanegan [~sean@...] has joined #gaim + Someone should fix that bug where if you click on the user list + in an IRC channel, it crashes. +-!- LSchiere2 [~luke@...] has quit [Remote closed the connection] + I guess that was "reproducing" + +--- + +18:33:26 hello there +18:34:03 I just wanted to share some bevavior that I think its kinda of + unsafe when using GAIM with yahoo messenges accounts +18:34:43 Whenever you transfer files between users, no receiving + confirmation is requested, the file gets transfered + automatically +18:37:32 surely you have to accept file transfers +18:37:57 Paco-Paco, nope, Whenever people sends me files, I get no + confirmation request +18:38:30 Paco-Paco, and the files gets right through my home directory +18:39:00 I find this a bit hard to believe since most people come in here + asking for some way to auto-accept. +18:39:48 deryni, I just installed fc3 , fully updated it, no extra + configuration was done and that's the default behavior +18:40:06 deryni, I searched the settings and there is no configuration + on this issue +18:40:29 I know there's no configuration on it, that's what everyone keeps + asking for. +18:41:08 deryni, sometimes I get pictures of naked girls in my computer + and I guess that GAIM is the one responsible for that since it + does not ask for file transfer confirmation + +--- + +(16:35:01) noname2: hello gaim is new port ? +(16:35:08) noname2: msn +(16:35:17) LSchiere2: what in the world are you trying to ask + +--- + +(00:22:45) user: hi +(00:22:47) user: can you help me? +(00:22:56) richielaager: I don't know. +(00:23:02) user: can i borrow a pencil? +(00:24:13) richielaager: Only if you're willing to pay transportation costs + to get you the pencil, plus $60/hour for the time it + takes me to transport said pencil to you, plus a pencil + rental fee of $1/day, plus a one time pencil sharpening + service charge of $5. +(00:24:37) user: I have a 100$ in paypal, where do i send it to? +(00:25:10) richielaager: I hear some guys in Nigeria are looking for account + information? +(00:25:32) user: or can you put a pencil feature into gaim? to create a + physical pencil out of a rubber reconstruction machine? +(00:25:50) user: those guys only sent wood- no lead :( +(00:26:10) user: they told me it was "invisible" lead. +(00:28:27) richielaager: Interesting... They sent me plenty of visible lead, + they said, it's just waiting for me at a holding company + in Moscow or some place like that. +(00:28:53) user: Seems you've been had. +(00:29:09) user: The invisible lead works quite well. +(00:29:28) user: Anyways, I'm here to ask a question. +(00:29:29) richielaager: Damn! +(00:29:42) richielaager: Damn to that too. :) + +21:26 I was considering just making a remote control program +21:26 where you type in a password, send it via gaim, and + gaim becomes a text terminal + [time passes ...] +21:38 I'm terribly conservative when it comes to security + +19:47 hey +19:48 how do i set aim to block all users except those on my + buddy list? +19:48 don't tell me i have to log in with the regular AIM :( +19:48 I wouldn't tell you that, because it's wrong +19:48 how about you look in privacy +19:49 where? +19:49 i can't find it +19:49 in Privacy +19:49 OH! +19:49 haha +19:49 thanks! + +14:12 Is it possible for me to see my friends webcam via + msn in gaim? +14:12 no +14:13 not voice either then i guess? +14:13 correct +14:13 ok, then not much to do. +14:13 there's always seppuku +14:14 so true +14:14 ok, is that another client? +14:14 something like that + +(17:44:15) elb: what's that one song that's always played at weddings that's not the processional or recessional +(17:44:37) tehfox: bridal choral or something? +(17:45:04) seanegan: elb: The Chicken Dance +(17:45:12) elb: seanegan: oh that's the one +(17:45:34) ***LSchiere boggles +(17:45:56) elb: it's the one that goes +(17:46:31) elb: dunnn dunnnn dunnnnn dunnnn dunnn DUUNN duun DUUUNNN, dun da-da-di da-da-di da-da-da-di-di-di dunn da-da-di dun-da-di-di-diii-di +(17:49:13) seanegan: Pachelbel's canon? +(17:49:18) elb: seanegan: YES +(17:49:25) seanegan: hell yeah! +(17:49:25) elb: awesome, thanks +(17:49:28) elb: Kanon in D + +edited for brevity, and name changed. +(13:51:31) l33t_h4x0r: Is there such thing as a gaim ip sniffer for linux? +(13:51:40) LSchiere: no +(13:51:46) l33t_h4x0r: You sure? +(13:51:50) LSchiere: though if there were, I'd still say no +(13:51:55) l33t_h4x0r: Why? +(13:52:00) LSchiere: since there's no good reason to be looking for one +(13:55:12) l33t_h4x0r: Is...this a sensitive subject? +(13:55:29) seanegan: l33t_h4x0r: not as sensitive as someone's IP address, apparently. +(13:55:31) Err: no, "needing" to know what someone's IP is without asking them is totally sane, rational, and socially normal +(13:55:42) l33t_h4x0r: I want to use it for destruive purposes? +(13:55:50) l33t_h4x0r: Morally wrong. +(13:56:01) l33t_h4x0r: I'll admit, but a valid reason. +(13:57:04) l33t_h4x0r: Asking someone would give away my position... +(13:57:33) l33t_h4x0r: Arlight, nevermind. +(13:57:36) l33t_h4x0r left the room ("Leaving"). +(13:58:58) LSchiere: *amused* that's the first time in a while that the requester has *agreed* that there is no legit reason to want the feature +(13:59:19) Err: he was not the sharpest knife in the drawer + +14:57 [blah blah blah simple question] + [other traffic] +14:57 [retransmit simple question] +14:59 itchypants: you need to chill the hell out +14:59 seanegan, ah okay thanks +15:00 no problem + +(15:57:11) sadrul: the files (at least a couple) in the tar.bz2 are different +(15:57:23) datallah: right.. that is the problem - the code in svn is fine +(15:57:31) seanegan: oh, what the hell? +(15:57:41) seanegan: don't tell me I make dist'ed the wrong tree +(15:57:46) LSchiere: how does the code in svn differ except in gaim's +funniest and the spec.in? +(15:57:50) LSchiere: seanegan: sounds like it +(15:57:53) datallah: you are such a screw up! +(15:58:12) seanegan: I sure am +(15:58:32) seanegan: Ugh! +(15:58:37) datallah: you must have been distracted by um... plugins +(15:58:45) seanegan: Don't I test these things? +(15:58:51) LSchiere: you test things? +(15:59:06) SimGuy: seanegan: by experience, I think we've determined you do +not :) + +(07:52:07 PM) clueless21: are you one of the gaim makers? +(07:52:14 PM) Nathan Walp: yes +(07:52:24 PM) clueless21: cool +(07:52:37 PM) clueless21: if your busy, i can leave you alone... +(07:53:03 PM) Nathan Walp: if you have a question I can answer it +(07:53:34 PM) clueless21: umm... well i don't exactly know what gaim does and what it's for. i don't know if i should get it +(07:53:46 PM) Nathan Walp: it is an IM client +(07:53:57 PM) clueless21: o. what's it do? +(07:54:03 PM) clueless21: what's an im client? +(07:54:25 PM) Nathan Walp: it lets you chat with other people, like we are chatting now +(07:54:45 PM) clueless21: oooooooooo... thanks diff -r f771cdcc551a -r 5f9b7e2652f0 doc/gaims_funniest_home_convos.txt --- a/doc/gaims_funniest_home_convos.txt Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,453 +0,0 @@ -All IM names have been changed, so we don't get sued or nothing. We get some -interesting convos.... - -17:58:27 Luser: You do any GTK programming? -17:58:43 Zilding: You mean, work on GTK itself? -17:58:56 Luser: no program stuff using GTK -17:59:37 Zilding: Hrm. How do you know me, again? :) -17:59:54 Luser: haha.......i saw your handle in the help part of gaim -18:00:01 Zilding: yes. -18:00:05 Luser: Didnt mean to freak you out -18:00:16 Zilding: Iz okay, I figured that was the answer. -18:00:26 Zilding: Is gaim written with Athena, Motif, or Xforms? -18:00:29 Zilding: or GTK? :) -18:00:39 Luser: GTK :) -18:00:50 Zilding: I believe you have answered your own question. :) - - -15:40:14 SomeGuy: hey you there? -15:40:28 Zilding: nope -15:40:33 SomeGuy: :-) -15:40:43 SomeGuy: ah there was a little bug in my code. -15:40:46 SomeGuy: did you notice it? -15:41:28 Zilding: uh....jim ain't here...well...not at the keyboard at -least...this is alissa... -15:41:38 Zilding: and uh...i am not wearing a bra -15:41:46 SomeGuy: hi alissa -15:41:46 Zilding: i have him tied up at the moment -15:41:51 SomeGuy: ah -15:41:52 Zilding: hello -15:42:01 SomeGuy: I hope he is having fun. -15:42:05 Zilding: yeah....we're kinda busy righ tnow -15:42:09 Zilding: know..err -15:42:22 Zilding: hehe.... -15:42:24 SomeGuy: should I let you two love bird go? -15:43:09 Zilding: uh...well...yeah i guess...he really isn't in any sort of -position to help you right now... -15:43:42 Zilding: THREE CHEERS FOR A WIRELESS KEYBOARD -15:43:44 Zilding: WOOHOO -15:43:54 SomeGuy: tell him I said... compared to the current situation what -I was going to ask him is microscopic. -15:44:00 SomeGuy: have fun guys. - - -16:24:41 JailBait: Hello How are you? -16:24:48 JailBait: stats? -16:25:00 Zilding: pretty good, who is this? -16:25:54 JailBait: I got your name from the hotmail webCourier...i'm Abi 13/f -16:26:39 Zilding: Hotmail webcourier? -16:26:51 JailBait: yeah -16:26:59 Zilding: Interesting. -16:27:17 Zilding: Well, I'm 18 years old, male, and I still haven't a clue how you got my IM :) -16:28:28 JailBait: yes it was under the thing where people were asking Questions and you anwered them....someone ask if they could IM you and you put in this s/n -16:28:59 Zilding: Hmm.. what kind of questions was I answering? -16:29:38 JailBait: normal one's you were ansering holdon -16:29:54 JailBait: hey mom is home talk to you later -16:29:56 JailBait: bye bye] -16:30:02 Zilding: uh.. okay :) -16:31:58 Zilding: hey can you send me the URL to where you got my screen name? I'm just curious :) - - -19:05:45 ZFriend: waddle waddle waddle -19:15:34 ZFriend: *waddle waddle waddle* -19:15:45 ZFriend: (pssttt) -19:16:07 ZFriend: (the penguins are coming...) -19:16:12 ZFriend: (they are coming to dance with you...) -19:45:16 Zilding: Really? Coming to dance with ME? -19:45:22 ZFriend: yes! -19:45:49 Zilding: Cool! Why? -19:46:01 ZFriend: they like you -19:47:12 Zilding: wooohooo! -19:47:14 Zilding: How'd you find this out? -19:47:22 ZFriend: ...........they told me....... -19:47:58 Zilding: Do you have secret meetings with them? And what kind of dancng will we be doing? -19:48:17 ZFriend: i cannot release any more information..... they do the mambo -19:49:13 Zilding: hehe sounds like fun. When are they coming? -19:49:24 ZFriend: after their tea time -19:49:55 Zilding: Okay. Are they bringing the herring or should I make a run? -19:50:10 ZFriend: the herring is not provided -19:50:31 Zilding: Ok cool. Well thank you, Miss Mander Oracle :) -19:50:54 ZFriend: :) - - -16:57:30 L0s3R: u help write tik? -16:57:54 Zilding: No, I'm the author and maintainer of gaim, and I spell correctly. -16:58:25 L0s3R: gud gohd eyem sohry ashole -16:58:36 Zilding: Fuck off. -16:59:44 L0s3R: eheh -16:59:46 L0s3R: i bet you have awin98 box too dont you fag -16:59:46 L0s3R: tik owns -16:59:46 L0s3R: eheh -16:59:46 L0s3R: actually all this aol shit sucks -16:59:46 L0s3R: eheh -17:00:36 Zilding: Pardon me. I've written Linux device drivers, and I'm on the XFree development team. What have you given to the community? -17:01:27 L0s3R: Nothing you've heard about mr uppity. =) -17:02:17 Zilding: I'm sure not. So forgive me when I'm not in a very good mood and I have a little contempt for people who use phrases like 'owns', can't spell correctly, and feel the need to capitalize every other letter in their name. Are you a hax0r too? -17:02:26 L0s3R: you ego is taknig up alot of space btw -17:02:29 L0s3R: taking -17:02:29 L0s3R: if you will -17:02:32 L0s3R: lol -17:02:39 L0s3R: goddamn -17:02:50 L0s3R: im sure you use office software too -17:03:31 Zilding: Get outta my face, ya script kiddie, and go back to your quake game. - -13:35:35 WinFreak: could u help me out with gaim..i kno i'm retarded ROFL -13:35:54 WinFreak : after you unzip it what do u do? -13:36:36 RobFlynn: You have gaim-0.9.5.tar.gz? -13:36:40 WinFreak : yeah -13:36:43 RobFlynn: first do: tar xvzf gaim-0.9.5.tar.gz -13:36:47 RobFlynn: then go into that directory and type: -13:36:49 RobFlynn: ./configure -13:36:52 RobFlynn: then type: make -13:37:10 WinFreak : tar xvzf...is that on ur webpage? -13:40:00 RobFlynn: Umm ... -13:45:00 WinFreak : Where can I download tar xvzf gaim-0.9.5.tar.gz? Is this for windows? - - -*** This is what happens when Gaim Developers get bored. - -22:39:18 RobFlynn: Umm -22:39:19 RobFlynn: My brain is dead. -22:39:39 Flyn Orange: *hooks up electrodes to Rob's brain and connects the battery* -22:39:47 Flyn Orange: kaZAP! -22:39:53 RobFlynn: EEpepEPAPEPAEppaep BBrRERERFFFF EPEPEPPEPpeppepape -22:39:58 RobFlynn: *waddle jerk waddle waddle twitch* -22:40:14 Flyn Orange: Its alive! Its ALIIIIIIIIIIIVE!! -22:40:25 Flyn Orange: *maniacal laugh* -22:40:26 RobFlynn: *twitch twitch waddle convulse* -22:40:41 Flyn Orange: *disconnects battery* -22:40:52 RobFlynn: *** The sun slowly fades away as a giant penguin towers above the remains of a small, wooden table*** -22:41:13 Flyn Orange: ** storm clouds rise ** -22:41:25 Flyn Orange: *thunder crack* -22:41:26 RobFlynn: *** With an eerie, almost mechanical qualling, the penguin marches its way over to its creator *** -22:41:56 Flyn Orange: Well, hello lit...er...big fella. Would you like some HERRING? -22:42:19 Flyn Orange: How about some FREE BEER? -22:42:44 RobFlynn: *** A booming voice echos through the hallways *** -22:42:47 RobFlynn: *** PIPE GREP MORE *** -22:43:20 RobFlynn: *** With a low, rumbling sound the last syllable of the mysterious phrase shakes the very foundation of the decrepit laboratory*** -22:43:22 Flyn Orange: ** the mad scientists terminal suddenly crashes, and a vaguely familiar blue screen shows on it's display ** -22:44:08 Flyn Orange: Damn the fates! How can I face my peers now when I TOLD them proprietary was better! -! -22:45:19 RobFlynn: *** THE PENGUIN BALKS: CTRL-ALT-DELETE *** - - -hungryguy: Were you the one who ate the 1lbs hamburger? -Flyn Orange: hehe... Well, I tried to. I was feeling kinda sick. :) -Flyn Orange: Flyn Orange: Would've finished that sucker off if I'd have been feeling better! -hungryguy: I'm proud of you still. -Flyn Orange: PsyAssasin: That's quite impressive. -Flyn Orange: *grin* Thanks! -hungryguy: I'm motivated to have a 1lbs hamburger party here. -hungryguy: That would be sweet. -Flyn Orange: haha! That would rock! -Flyn Orange: Good idea. -Flyn Orange: Think I might do that sometime too! -Flyn Orange: There are some truly cool people out there. - ---- If you guys havent learned yet, Jer is a smartass :-) --- - -00:03:43 Flyn Orange: *shoots you with silly string* -00:03:55 RobFlynn: HELP! I AM COVERED IN NEONG REEN STRING -00:06:54 Flyn Orange: NEONG REEN, Taiwan (AP) - - Despite the recent economical collapses suffered due to - massive geological activity over the last month, the very - profitable gag-manufacturer of Silly String has - maintained production through the turmoil. Still - employing 324 workers and a management team of 15 - Slinkies, there is no risk of a price hike in cans of - Silly String over the next few months... - ---- heheh Jeramey is a jackass :-) --- - -14:44:28 Flyn Orange: You should see gimp try and swim. She goes in circles -'cause she's only got three legs. ;) -14:44:34 RobFlynn: *giggles* -14:44:39 RobFlynn: Ive seen my cars swim before -14:44:44 RobFlynn: They doggie paddle :) -14:44:51 Flyn Orange: cats you mean? :) -14:44:56 RobFlynn: Woops! -14:44:57 RobFlynn: Yeah. -14:44:59 RobFlynn: Cars sink. -14:45:01 Flyn Orange: hehe -14:45:07 Flyn Orange: Yeah. Cars suck at swimming. -14:45:15 RobFlynn: heheh - - ---- -Eric and I were a little weird this night hehe - - -03:31:43 RobFlynn: "No Bite", she rebuked. -03:31:46 RobFlynn: Rebuked is a fun word. -03:31:51 RobFlynn: I don't know if I used it properly, but it is still fun. -03:31:55 Eric Warmenhoven: i like idiosyncratic -03:32:01 RobFlynn: I like sesquipedalian -03:32:14 Eric Warmenhoven: variations on idiosyncracy are my favorite words. -03:32:20 Eric Warmenhoven: i like them. -03:32:22 RobFlynn: I like sesquipedalian because it is polysylabic by -defination and practice. -03:32:25 Eric Warmenhoven: that's one of my idiosyncracies. -03:32:40 RobFlynn: Idiosyncracy is a sesquipedalian. -03:32:48 Eric Warmenhoven: holy crap -03:33:00 RobFlynn: Sesquipedalians such as idiosyncracy are often times -considered ambiguous. Why use a large word when a dimunitve one will suffice? - - --- - -(14:54:25) SeanEgan: are you coding now? -(14:55:33) RobFlynn: Nah I gotta go buy pants. -(14:55:37) SeanEgan: haha -(14:55:40) SeanEgan: that was so random - ---- - -(13:51:10) wizardof___: can we have a memorable conversation? -(13:51:19) RobFlynn: i think we just did - ---- - -(22:39:02) KingAnt: I'll try to find someone with ichat to test it with (ie. get one of the guys I live with to install it) -(22:48:12) Paco-Paco: KingAnt: I have iChat -(22:48:34) KingAnt: Paco-Paco: Does it suck? -(22:48:42) Paco-Paco: yes -(22:48:47) Paco-Paco: it's hard to use -(22:48:47) KingAnt: Cool - ---- - -(22:33:31) CopyMe: ok, how do I copy a file and paste into another directory -(22:33:47) Zilding: cp -(22:34:04) CopyMe: what does that do -(22:34:06) CopyMe: copy? -(22:36:05) Zilding: yeah -(22:37:27) CopyMe: then how do you paste it? - ---- - -(02:08:12) gobblegobble: whats a chicken head -(02:08:24) RobFlynn: your mom - ---- - - I dislike the random capitalization utilized by fortunes - those aren't fortunes - those are yows - I don't know why lunix fortune gives back yows - Paco-Paco: I understand everything you just said - does it scare you? - Paco-Paco: You have no idea - ---- - -(18:45:00) SuperNewbie entered the room. -(18:51:07) SuperNewbie: I'm new and I dont understand how to get into a chat. -(18:51:19) faceprint: you're in a chat now -(18:51:30) SuperNewbie: Oh OK - ---- - -23:39 <@LSchiere> try the grammer again -23:40 LSchiere, you can try the spelling again, too ;) -23:40 <@LSchiere> SeanEgan: you know by now that i'm incorigible - ---- - -(20:53:30) idiot1: im havn problems with my sound in gaim can any1 help me -(20:54:59) LSchiere2: have you read the faq? -(21:03:35) idiot1: no and im not reading it -(21:03:45) idiot1: cuz it wont help anyways -(21:03:47) LSchiere2: then you will have no help -(21:03:54) LSchiere2: because i wrote it and i know it would help -(21:04:27) LSchiere2: since you already know everything though, you obviously don't need any help idiot1 -(21:05:38) idiot1: nope -(21:05:42) idiot1: opps - - ---- - -(20:37:03) marv: nosnilmot: I can just try tweaking gtk_imhtml_get_markup_range -(20:38:28) nosnilmot: marv: I know you can, because you know what's going on in there, but is there any point in me trying?... -(20:38:57) marv: nosnilmot: I could explain it to you I guess. Sure why not. -(20:39:44) nosnilmot: marv: I'd like to know (I think?), but now probably isn't the best time, I shouldn't have asked -(20:40:11) marv: The buffer is composed to unescaped (no entities) text, with a certain unicode character representing images or smileys or widgets. -(20:40:26) marv: nosnilmot: oh. well let me know when you feel like listening -(20:41:10) nosnilmot: marv: don't worry, I will. I need to learn C first. -(20:41:27) marv: um, you don't know C? -(20:41:31) nosnilmot: no -(20:41:44) marv: then what were those patches i applied from you earlier? -(20:42:05) nosnilmot: you don't need to know C to write patches -(20:42:12) marv: oh okay - ---- - --!- seanegan [~sean@...] has quit [Remote closed the connection] --!- seanegan [~sean@...] has joined #gaim - Someone should fix that bug where if you click on the user list - in an IRC channel, it crashes. --!- LSchiere2 [~luke@...] has quit [Remote closed the connection] - I guess that was "reproducing" - ---- - -18:33:26 hello there -18:34:03 I just wanted to share some bevavior that I think its kinda of - unsafe when using GAIM with yahoo messenges accounts -18:34:43 Whenever you transfer files between users, no receiving - confirmation is requested, the file gets transfered - automatically -18:37:32 surely you have to accept file transfers -18:37:57 Paco-Paco, nope, Whenever people sends me files, I get no - confirmation request -18:38:30 Paco-Paco, and the files gets right through my home directory -18:39:00 I find this a bit hard to believe since most people come in here - asking for some way to auto-accept. -18:39:48 deryni, I just installed fc3 , fully updated it, no extra - configuration was done and that's the default behavior -18:40:06 deryni, I searched the settings and there is no configuration - on this issue -18:40:29 I know there's no configuration on it, that's what everyone keeps - asking for. -18:41:08 deryni, sometimes I get pictures of naked girls in my computer - and I guess that GAIM is the one responsible for that since it - does not ask for file transfer confirmation - ---- - -(16:35:01) noname2: hello gaim is new port ? -(16:35:08) noname2: msn -(16:35:17) LSchiere2: what in the world are you trying to ask - ---- - -(00:22:45) user: hi -(00:22:47) user: can you help me? -(00:22:56) richielaager: I don't know. -(00:23:02) user: can i borrow a pencil? -(00:24:13) richielaager: Only if you're willing to pay transportation costs - to get you the pencil, plus $60/hour for the time it - takes me to transport said pencil to you, plus a pencil - rental fee of $1/day, plus a one time pencil sharpening - service charge of $5. -(00:24:37) user: I have a 100$ in paypal, where do i send it to? -(00:25:10) richielaager: I hear some guys in Nigeria are looking for account - information? -(00:25:32) user: or can you put a pencil feature into gaim? to create a - physical pencil out of a rubber reconstruction machine? -(00:25:50) user: those guys only sent wood- no lead :( -(00:26:10) user: they told me it was "invisible" lead. -(00:28:27) richielaager: Interesting... They sent me plenty of visible lead, - they said, it's just waiting for me at a holding company - in Moscow or some place like that. -(00:28:53) user: Seems you've been had. -(00:29:09) user: The invisible lead works quite well. -(00:29:28) user: Anyways, I'm here to ask a question. -(00:29:29) richielaager: Damn! -(00:29:42) richielaager: Damn to that too. :) - -21:26 I was considering just making a remote control program -21:26 where you type in a password, send it via gaim, and - gaim becomes a text terminal - [time passes ...] -21:38 I'm terribly conservative when it comes to security - -19:47 hey -19:48 how do i set aim to block all users except those on my - buddy list? -19:48 don't tell me i have to log in with the regular AIM :( -19:48 I wouldn't tell you that, because it's wrong -19:48 how about you look in privacy -19:49 where? -19:49 i can't find it -19:49 in Privacy -19:49 OH! -19:49 haha -19:49 thanks! - -14:12 Is it possible for me to see my friends webcam via - msn in gaim? -14:12 no -14:13 not voice either then i guess? -14:13 correct -14:13 ok, then not much to do. -14:13 there's always seppuku -14:14 so true -14:14 ok, is that another client? -14:14 something like that - -(17:44:15) elb: what's that one song that's always played at weddings that's not the processional or recessional -(17:44:37) tehfox: bridal choral or something? -(17:45:04) seanegan: elb: The Chicken Dance -(17:45:12) elb: seanegan: oh that's the one -(17:45:34) ***LSchiere boggles -(17:45:56) elb: it's the one that goes -(17:46:31) elb: dunnn dunnnn dunnnnn dunnnn dunnn DUUNN duun DUUUNNN, dun da-da-di da-da-di da-da-da-di-di-di dunn da-da-di dun-da-di-di-diii-di -(17:49:13) seanegan: Pachelbel's canon? -(17:49:18) elb: seanegan: YES -(17:49:25) seanegan: hell yeah! -(17:49:25) elb: awesome, thanks -(17:49:28) elb: Kanon in D - -edited for brevity, and name changed. -(13:51:31) l33t_h4x0r: Is there such thing as a gaim ip sniffer for linux? -(13:51:40) LSchiere: no -(13:51:46) l33t_h4x0r: You sure? -(13:51:50) LSchiere: though if there were, I'd still say no -(13:51:55) l33t_h4x0r: Why? -(13:52:00) LSchiere: since there's no good reason to be looking for one -(13:55:12) l33t_h4x0r: Is...this a sensitive subject? -(13:55:29) seanegan: l33t_h4x0r: not as sensitive as someone's IP address, apparently. -(13:55:31) Err: no, "needing" to know what someone's IP is without asking them is totally sane, rational, and socially normal -(13:55:42) l33t_h4x0r: I want to use it for destruive purposes? -(13:55:50) l33t_h4x0r: Morally wrong. -(13:56:01) l33t_h4x0r: I'll admit, but a valid reason. -(13:57:04) l33t_h4x0r: Asking someone would give away my position... -(13:57:33) l33t_h4x0r: Arlight, nevermind. -(13:57:36) l33t_h4x0r left the room ("Leaving"). -(13:58:58) LSchiere: *amused* that's the first time in a while that the requester has *agreed* that there is no legit reason to want the feature -(13:59:19) Err: he was not the sharpest knife in the drawer - -14:57 [blah blah blah simple question] - [other traffic] -14:57 [retransmit simple question] -14:59 itchypants: you need to chill the hell out -14:59 seanegan, ah okay thanks -15:00 no problem - -(15:57:11) sadrul: the files (at least a couple) in the tar.bz2 are different -(15:57:23) datallah: right.. that is the problem - the code in svn is fine -(15:57:31) seanegan: oh, what the hell? -(15:57:41) seanegan: don't tell me I make dist'ed the wrong tree -(15:57:46) LSchiere: how does the code in svn differ except in gaim's -funniest and the spec.in? -(15:57:50) LSchiere: seanegan: sounds like it -(15:57:53) datallah: you are such a screw up! -(15:58:12) seanegan: I sure am -(15:58:32) seanegan: Ugh! -(15:58:37) datallah: you must have been distracted by um... plugins -(15:58:45) seanegan: Don't I test these things? -(15:58:51) LSchiere: you test things? -(15:59:06) SimGuy: seanegan: by experience, I think we've determined you do -not :) - -(07:52:07 PM) clueless21: are you one of the gaim makers? -(07:52:14 PM) Nathan Walp: yes -(07:52:24 PM) clueless21: cool -(07:52:37 PM) clueless21: if your busy, i can leave you alone... -(07:53:03 PM) Nathan Walp: if you have a question I can answer it -(07:53:34 PM) clueless21: umm... well i don't exactly know what gaim does and what it's for. i don't know if i should get it -(07:53:46 PM) Nathan Walp: it is an IM client -(07:53:57 PM) clueless21: o. what's it do? -(07:54:03 PM) clueless21: what's an im client? -(07:54:25 PM) Nathan Walp: it lets you chat with other people, like we are chatting now -(07:54:45 PM) clueless21: oooooooooo... thanks diff -r f771cdcc551a -r 5f9b7e2652f0 finch/Makefile.am --- a/finch/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -43,7 +43,7 @@ gntstatus.h \ gntui.h -finchincludedir=$(includedir)/gaim/gnt +finchincludedir=$(includedir)/finch finchinclude_HEADERS = \ $(finch_headers) @@ -63,7 +63,7 @@ -DSTANDALONE \ -DBR_PTHREADS=0 \ -DDATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)/gaim/\" \ + -DLIBDIR=\"$(libdir)/finch/\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -I$(top_srcdir)/libpurple/ \ diff -r f771cdcc551a -r 5f9b7e2652f0 finch/finch.c --- a/finch/finch.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/finch.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/finch.h --- a/finch/finch.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/finch.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/getopt.c --- a/finch/getopt.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/getopt.c Mon Mar 26 02:48:09 2007 +0000 @@ -3,7 +3,7 @@ "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! - Purple is the legal property of its developers, whose names are too numerous + Finch is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 finch/getopt.h --- a/finch/getopt.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/getopt.h Mon Mar 26 02:48:09 2007 +0000 @@ -4,7 +4,7 @@ "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! - Purple is the legal property of its developers, whose names are too numerous + Finch is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 finch/getopt1.c --- a/finch/getopt1.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/getopt1.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Purple is the legal property of its developers, whose names are too numerous + Finch is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntaccount.c --- a/finch/gntaccount.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntaccount.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntaccount.c GNT Account API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntaccount.h --- a/finch/gntaccount.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntaccount.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntaccount.h GNT Account API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntblist.c --- a/finch/gntblist.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntblist.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntblist.c GNT BuddyList API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntblist.h --- a/finch/gntblist.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntblist.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntblist.h GNT BuddyList API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntconn.c --- a/finch/gntconn.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntconn.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntconn.c GNT Connection API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntconn.h --- a/finch/gntconn.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntconn.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntconn.h GNT Connection API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntconv.c --- a/finch/gntconv.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntconv.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntconv.c GNT Conversation API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntconv.h --- a/finch/gntconv.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntconv.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntconv.h GNT Conversation API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntdebug.c --- a/finch/gntdebug.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntdebug.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntdebug.c GNT Debug API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntdebug.h --- a/finch/gntdebug.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntdebug.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntdebug.h GNT Debug API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntft.c --- a/finch/gntft.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntft.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntft.c GNT File Transfer UI * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntft.h --- a/finch/gntft.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntft.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntft.h GNT File Transfer UI * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntidle.c --- a/finch/gntidle.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntidle.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntidle.h --- a/finch/gntidle.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntidle.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gntidle.h GNT Idle API * @ingroup gntui * - * purple + * finch * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntnotify.c --- a/finch/gntnotify.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntnotify.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntnotify.c GNT Notify API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntnotify.h --- a/finch/gntnotify.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntnotify.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntnotify.h GNT Notify API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntplugin.c --- a/finch/gntplugin.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntplugin.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntplugin.c GNT Plugins API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntplugin.h --- a/finch/gntplugin.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntplugin.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntplugin.h GNT Plugins API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntpounce.c --- a/finch/gntpounce.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntpounce.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntpounce.c GNT Buddy Pounce API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntpounce.h --- a/finch/gntpounce.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntpounce.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntpounce.h GNT Buddy Pounce API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntprefs.c --- a/finch/gntprefs.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntprefs.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntprefs.c GNT Preferences API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntprefs.h --- a/finch/gntprefs.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntprefs.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntprefs.h GNT Preferences API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntrequest.c --- a/finch/gntrequest.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntrequest.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntrequest.c GNT Request API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntrequest.h --- a/finch/gntrequest.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntrequest.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntrequest.h GNT Request API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntstatus.c --- a/finch/gntstatus.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntstatus.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntstatus.c GNT Status API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntstatus.h --- a/finch/gntstatus.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntstatus.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gntstatus.h GNT Status API * @ingroup gntui * - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntui.c --- a/finch/gntui.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntui.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/gntui.h --- a/finch/gntui.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/gntui.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** - * purple + * finch * - * Purple is the legal property of its developers, whose names are too numerous + * Finch is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 finch/libgnt/gntfilesel.c --- a/finch/libgnt/gntfilesel.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/libgnt/gntfilesel.c Mon Mar 26 02:48:09 2007 +0000 @@ -28,6 +28,10 @@ { GntFileSel *sel = GNT_FILE_SEL(widget); g_free(sel->current); + if (sel->tags) { + g_list_foreach(sel->tags, (GFunc)g_free, NULL); + g_list_free(sel->tags); + } } static char * @@ -73,6 +77,15 @@ } static gboolean +is_tagged(GntFileSel *sel, const char *f) +{ + char *ret = g_strdup_printf("%s%s%s", sel->current, sel->current[1] ? G_DIR_SEPARATOR_S : "", f); + gboolean find = g_list_find_custom(sel->tags, ret, (GCompareFunc)g_utf8_collate) != NULL; + g_free(ret); + return find; +} + +static gboolean location_changed(GntFileSel *sel, GError **err) { GDir *dir; @@ -109,15 +122,19 @@ if (stat(fp, &st)) { g_printerr("Error stating location %s\n", fp); } else { - if (S_ISDIR(st.st_mode)) + if (S_ISDIR(st.st_mode)) { gnt_tree_add_row_after(GNT_TREE(sel->dirs), g_strdup(str), gnt_tree_create_row(GNT_TREE(sel->dirs), str), NULL, NULL); - else if (!sel->dirsonly) { + if (sel->multiselect && sel->dirsonly && is_tagged(sel, str)) + gnt_tree_set_row_flags(GNT_TREE(sel->dirs), (gpointer)str, GNT_TEXT_FLAG_BOLD); + } else if (!sel->dirsonly) { char size[128]; snprintf(size, sizeof(size), "%ld", (long)st.st_size); gnt_tree_add_row_after(GNT_TREE(sel->files), g_strdup(str), gnt_tree_create_row(GNT_TREE(sel->files), str, size, ""), NULL, NULL); + if (sel->multiselect && is_tagged(sel, str)) + gnt_tree_set_row_flags(GNT_TREE(sel->files), (gpointer)str, GNT_TEXT_FLAG_BOLD); } } g_free(fp); @@ -131,7 +148,6 @@ dir_key_pressed(GntTree *tree, const char *key, GntFileSel *sel) { if (strcmp(key, "\r") == 0) { - /* XXX: if we are moving up the tree, make sure the current node is selected after the redraw */ char *str = g_strdup(gnt_tree_get_selection_data(tree)); char *path = g_build_filename(sel->current, str, NULL); char *dir = g_path_get_basename(sel->current); @@ -225,7 +241,7 @@ vbox = gnt_vbox_new(FALSE); gnt_box_set_pad(GNT_BOX(vbox), 0); - gnt_box_set_alignment(GNT_BOX(vbox), GNT_ALIGN_LEFT); + gnt_box_set_alignment(GNT_BOX(vbox), GNT_ALIGN_MID); /* The dir. and files list */ hbox = gnt_hbox_new(FALSE); @@ -253,9 +269,64 @@ update_location(sel); } +static gboolean +toggle_tag_selection(GntBindable *bind, GList *null) +{ + GntFileSel *sel = GNT_FILE_SEL(bind); + char *str; + GList *find; + char *file; + GntWidget *tree; + + if (!sel->multiselect) + return FALSE; + tree = sel->dirsonly ? sel->dirs : sel->files; + if (!gnt_widget_has_focus(tree)) + return FALSE; + + file = gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files)); + + str = gnt_file_sel_get_selected_file(sel); + if ((find = g_list_find_custom(sel->tags, str, (GCompareFunc)g_utf8_collate)) != NULL) { + g_free(find->data); + sel->tags = g_list_delete_link(sel->tags, find); + gnt_tree_set_row_flags(GNT_TREE(tree), file, GNT_TEXT_FLAG_NORMAL); + g_free(str); + } else { + sel->tags = g_list_prepend(sel->tags, str); + gnt_tree_set_row_flags(GNT_TREE(tree), file, GNT_TEXT_FLAG_BOLD); + } + + return TRUE; +} + +static gboolean +clear_tags(GntBindable *bind, GList *null) +{ + GntFileSel *sel = GNT_FILE_SEL(bind); + GntWidget *tree; + GList *iter; + + if (!sel->multiselect) + return FALSE; + tree = sel->dirsonly ? sel->dirs : sel->files; + if (!gnt_widget_has_focus(tree)) + return FALSE; + + g_list_foreach(sel->tags, (GFunc)g_free, NULL); + g_list_free(sel->tags); + sel->tags = NULL; + + for (iter = GNT_TREE(tree)->list; iter; iter = iter->next) + gnt_tree_set_row_flags(GNT_TREE(tree), iter->data, GNT_TEXT_FLAG_NORMAL); + + return TRUE; +} + static void gnt_file_sel_class_init(GntFileSelClass *klass) { + GntBindableClass *bindable = GNT_BINDABLE_CLASS(klass); GntWidgetClass *kl = GNT_WIDGET_CLASS(klass); parent_class = GNT_WINDOW_CLASS(klass); kl->destroy = gnt_file_sel_destroy; @@ -270,6 +341,9 @@ NULL, NULL, gnt_closure_marshal_VOID__STRING_STRING, G_TYPE_NONE, 0); + + gnt_bindable_class_register_action(bindable, "toggle-tag", toggle_tag_selection, "t", NULL); + gnt_bindable_class_register_action(bindable, "clear-tags", clear_tags, "c", NULL); gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); GNTDEBUG; @@ -312,7 +386,7 @@ return type; } -GntWidget *gnt_file_sel_new() +GntWidget *gnt_file_sel_new(void) { GntWidget *widget = g_object_new(GNT_TYPE_FILE_SEL, NULL); GntFileSel *sel = GNT_FILE_SEL(widget); @@ -375,3 +449,46 @@ return sel->dirsonly; } +char *gnt_file_sel_get_selected_file(GntFileSel *sel) +{ + char *ret; + const char *tmp; + tmp = (const char*)gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files)); + ret = g_strdup_printf("%s%s%s", sel->current, sel->current[1] ? G_DIR_SEPARATOR_S : "", tmp ? tmp : ""); + return ret; +} + +void gnt_file_sel_set_must_exist(GntFileSel *sel, gboolean must) +{ + /*XXX: What do I do with this? */ + sel->must_exist = must; +} + +gboolean gnt_file_sel_get_must_exist(GntFileSel *sel) +{ + return sel->must_exist; +} + +void gnt_file_sel_set_multi_select(GntFileSel *sel, gboolean set) +{ + sel->multiselect = set; +} + +GList *gnt_file_sel_get_selected_multi_files(GntFileSel *sel) +{ + GList *list = NULL, *iter; + char *str = gnt_file_sel_get_selected_file(sel); + + for (iter = sel->tags; iter; iter = iter->next) { + list = g_list_prepend(list, g_strdup(iter->data)); + if (g_utf8_collate(str, iter->data)) { + g_free(str); + str = NULL; + } + } + if (str) + list = g_list_prepend(list, str); + list = g_list_reverse(list); + return list; +} + diff -r f771cdcc551a -r 5f9b7e2652f0 finch/libgnt/gntfilesel.h --- a/finch/libgnt/gntfilesel.h Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/libgnt/gntfilesel.h Mon Mar 26 02:48:09 2007 +0000 @@ -17,11 +17,11 @@ #define GNT_FILE_SEL_SET_FLAGS(obj, flags) (GNT_FILE_SEL_FLAGS(obj) |= flags) #define GNT_FILE_SEL_UNSET_FLAGS(obj, flags) (GNT_FILE_SEL_FLAGS(obj) &= ~(flags)) -typedef struct _GnFileSel GntFileSel; -typedef struct _GnFileSelPriv GntFileSelPriv; -typedef struct _GnFileSelClass GntFileSelClass; +typedef struct _GntFileSel GntFileSel; +typedef struct _GntFileSelPriv GntFileSelPriv; +typedef struct _GntFileSelClass GntFileSelClass; -struct _GnFileSel +struct _GntFileSel { GntWindow parent; @@ -36,9 +36,11 @@ /* XXX: someone should make these useful */ gboolean must_exist; /* Make sure the selected file (the name entered in 'location') exists */ gboolean dirsonly; /* Show only directories */ + gboolean multiselect; + GList *tags; /* List of tagged files when multiselect is set */ }; -struct _GnFileSelClass +struct _GntFileSelClass { GntWindowClass parent; @@ -53,16 +55,24 @@ GType gnt_file_sel_get_gtype(void); -GntWidget *gnt_file_sel_new(); +GntWidget *gnt_file_sel_new(void); gboolean gnt_file_sel_set_current_location(GntFileSel *sel, const char *path); -const char *gnt_file_sel_get_current_location(GntFileSel *sel); - void gnt_file_sel_set_dirs_only(GntFileSel *sel, gboolean dirs); gboolean gnt_file_sel_get_dirs_only(GntFileSel *sel); +void gnt_file_sel_set_must_exist(GntFileSel *sel, gboolean must); + +gboolean gnt_file_sel_get_must_exist(GntFileSel *sel); + +char *gnt_file_sel_get_selected_file(GntFileSel *sel); /* The returned value should be free'd */ + +GList *gnt_file_sel_get_selected_multi_files(GntFileSel *sel); + +void gnt_file_sel_set_multi_select(GntFileSel *sel, gboolean set); + G_END_DECLS #endif /* GNT_FILE_SEL_H */ diff -r f771cdcc551a -r 5f9b7e2652f0 finch/libgnt/wms/Makefile.am --- a/finch/libgnt/wms/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/libgnt/wms/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -3,7 +3,7 @@ plugin_LTLIBRARIES = \ s.la -plugindir = $(libdir)/gaim +plugindir = $(libdir)/finch s_la_SOURCES = s.c s_la_LIBADD = \ diff -r f771cdcc551a -r 5f9b7e2652f0 finch/plugins/Makefile.am --- a/finch/plugins/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/plugins/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,3 +1,4 @@ +gntclipboard_la_LDFLAGS = -module -avoid-version gntgf_la_LDFLAGS = -module -avoid-version gnthistory_la_LDFLAGS = -module -avoid-version gntlastlog_la_LDFLAGS = -module -avoid-version @@ -5,18 +6,21 @@ if PLUGINS plugin_LTLIBRARIES = \ + gntclipboard.la \ gntgf.la \ gnthistory.la \ gntlastlog.la -plugindir = $(libdir)/gaim +plugindir = $(libdir)/finch +gntclipboard_la_SOURCES = gntclipboard.c gntgf_la_SOURCES = gntgf.c gnthistory_la_SOURCES = gnthistory.c gntlastlog_la_SOURCES = lastlog.c gntgf_la_CFLAGS = $(X11_CFLAGS) +gntclipboard_la_LIBADD = $(GLIB_LIBS) gntgf_la_LIBADD = $(GLIB_LIBS) $(X11_LIBS) $(top_builddir)/finch/libgnt/libgnt.la gnthistory_la_LIBADD = $(GLIB_LIBS) gntlastlog_la_LIBADD = $(GLIB_LIBS) diff -r f771cdcc551a -r 5f9b7e2652f0 finch/plugins/gntclipboard.c --- a/finch/plugins/gntclipboard.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/plugins/gntclipboard.c Mon Mar 26 02:48:09 2007 +0000 @@ -110,10 +110,12 @@ static gboolean plugin_load(PurplePlugin *plugin) { +#ifdef HAVE_X11 if (!XOpenDisplay(NULL)) { purple_debug_warning("gntclipboard", "Couldn't find X display\n"); return FALSE; } +#endif if (!getenv("WINDOWID")) { purple_debug_warning("gntclipboard", "Couldn't find window\n"); return FALSE; @@ -150,7 +152,7 @@ N_("When the gnt clipboard contents change, " "the contents are made available to X, if possible."), "Richard Nelson ", - "http://purple.sourceforge.net", + PURPLE_WEBSITE, plugin_load, plugin_unload, NULL, diff -r f771cdcc551a -r 5f9b7e2652f0 finch/plugins/gntgf.c --- a/finch/plugins/gntgf.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/plugins/gntgf.c Mon Mar 26 02:48:09 2007 +0000 @@ -357,7 +357,7 @@ N_("Toaster plugin"), N_("Toaster plugin"), "Sadrul H Chowdhury ", - "http://purple.sourceforge.net", + PURPLE_WEBSITE, plugin_load, plugin_unload, NULL, diff -r f771cdcc551a -r 5f9b7e2652f0 finch/plugins/lastlog.c --- a/finch/plugins/lastlog.c Mon Mar 26 01:11:46 2007 +0000 +++ b/finch/plugins/lastlog.c Mon Mar 26 02:48:09 2007 +0000 @@ -123,7 +123,7 @@ N_("Lastlog plugin."), N_("Lastlog plugin."), "Sadrul H Chowdhury ", - "http://purple.sourceforge.net", + PURPLE_WEBSITE, plugin_load, plugin_unload, NULL, diff -r f771cdcc551a -r 5f9b7e2652f0 gaim.apspec.in --- a/gaim.apspec.in Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -# -*-shell-script-*- - -[Meta] -RootName: @gaim.sourceforge.net/gaim:$SOFTWAREVERSION -DisplayName: Gaim Internet Messenger -ShortName: gaim -Maintainer: The Gaim Developers -URL: http://gaim.sourceforge.net/ -Packager: Tim Ringenbach -Summary: A GTK+ based multiprotocol instant messaging client -SoftwareVersion: @VERSION@ -InterfaceVersion: 2.0 -PackageVersion: 1 - -[Description] -Gaim allows you to talk to anyone using a variety of messaging protocols, -including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, Jabber, -Gadu-Gadu, and Zephyr. These protocols are implemented using a -modular, easy to use design. To use a protocol, just add an account using the -account editor. - -Gaim supports many common features of other clients, as well as many unique -features, such as perl scripting, TCL scripting and C plugins. - -Gaim is NOT affiliated with or endorsed by America Online, Inc., Microsoft -Corporation, Yahoo! Inc., or ICQ Inc. - -[BuildPrepare] -APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify -#APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv - - -[BuildUnprepare] -unprepareBuild - -[Imports] -rm -rf include -rm -rf lib/pkgconfig -find -name '*.la' | xargs rm -echo '*' | import - -[Prepare] -# Dependency checking -require @gtk.org/gtk 2.2 -require @68k.org/libaudiofile 0.0 -require @xiph.org/libao 2.0 -require @gtkspell.sourceforge.net/gtkspell 0.0 -require @gnutls.org/gnutls 11.0 || { require @mozilla.org/nspr 4 && require @mozilla.org/nss 3; } - -[Install] -# Put your installation script here -installExe ./bin/* -installLib ./lib/libgaim-remote.so.0.0.0 -# do the plugins -copyFiles ./lib/gaim "$PREFIX/lib" -installMan 1 ./man/man1/gaim.1 -installDesktop "Networking/Instant Messaging" ./share/applications/gaim.desktop -installLocale ./share/locale -copyFiles ./share/pixmaps "$PREFIX/share" -copyFiles ./share/sounds "$PREFIX/share" -installIcon ./share/pixmaps/gaim.png -# install and fix the .pc file -# move this to the -devel package when I make one -# copyFile ./lib/pkgconfig/gaim.pc "$PREFIX/lib/pkgconfig/gaim.pc" -# safeSed "$PREFIX/lib/pkgconfig/gaim.pc" "s|prefix=/usr/local|prefix=$PREFIX|" - -[Uninstall] -# Usually just the following line is enough to uninstall everything -uninstallFromLog diff -r f771cdcc551a -r 5f9b7e2652f0 gaim.pc.in --- a/gaim.pc.in Mon Mar 26 01:11:46 2007 +0000 +++ b/gaim.pc.in Mon Mar 26 02:48:09 2007 +0000 @@ -5,10 +5,10 @@ datarootdir=@datarootdir@ datadir=@datadir@ sysconfdir=@sysconfdir@ - + Name: Gaim Description: Gaim is a GTK2-based instant messenger application. Version: @VERSION@ Requires: glib-2.0 -Cflags: -I${includedir}/gaim -Libs: -L${libdir} -lgaim +Cflags: -I${includedir}/libpurple +Libs: -L${libdir} -lpurple diff -r f771cdcc551a -r 5f9b7e2652f0 gaim.spec.in --- a/gaim.spec.in Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,492 +0,0 @@ -# Older RPM doesn't define these by default -%{!?perl_vendorlib: %define perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)} -%{!?perl_vendorarch: %define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)} -%{!?perl_archlib: %define perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)} - -# When not doing betas comment this out -# NOTE: %defines in spec files are evaluated in comments so the correct -# way to comment it out is to replace the % with # -#define beta 7 - -%if 0%{?beta} -%define gaimver %(echo "@VERSION@"|sed -e 's/dev//; s/beta.*//') -%else -%define gaimver @VERSION@ -%endif - -Summary: A GTK+ based multiprotocol instant messaging client -Name: @PACKAGE@ -Version: %gaimver -Release: 0%{?beta:.beta%{beta}} -Epoch: 1 -License: GPL -Group: Applications/Internet -URL: http://gaim.sourceforge.net/ -Packager: %{packager} -Source: %{name}-@VERSION@.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-root - -# Generic build requirements -BuildRequires: libtool, pkgconfig, intltool, gettext, libxml2-devel -%{?_with_avahi:BuildRequires: avahi-compat-howl-devel} -%{!?_without_gtkspell:BuildRequires: gtkspell-devel} -%{?_with_howl:BuildRequires: howl-devel} -%{?_with_meanwhile:BuildRequires: meanwhile-devel} -%{?_with_mono:BuildRequires: mono-devel} -%{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} -%{?_with_silc:BuildRequires: /usr/include/silc/silcclient.h} -%{?_with_tcl:BuildRequires: tcl, tk, /usr/include/tcl.h} -%{!?_without_text:BuildRequires: ncurses-devel} - -%if "%{_vendor}" == "suse" -# For SuSE: -BuildRequires: gnutls-devel -%{?_with_dbus:BuildRequires: dbus-1-devel >= 0.35} -%{!?_without_gstreamer:BuildRequires: gstreamer010-devel >= 0.10} -%else -%{?_with_dbus:BuildRequires: dbus-devel >= 0.35} -%{!?_without_gstreamer:BuildRequires: gstreamer-devel >= 0.10} -%endif - -# Mandrake 10.1 and lower || Mandrake 10.2 (and higher?) -%if "%{_vendor}" == "MandrakeSoft" || "%{_vendor}" == "Mandrakesoft" || "%{_vendor}" == "Mandriva" -# For Mandrake/Mandriva: -BuildRequires: libgtk+2.0_0-devel, libnss3-devel, perl-devel -Obsoletes: libgaim-remote0 -%else -# For SuSE, Red Hat, Fedora and others: -BuildRequires: gtk2-devel -%if "%{_vendor}" != "suse" -# For Red Hat, Fedora and others: -# let's assume RH & FC1 are the only brain-dead distros missing the -# perl-XML-Parser dependency on intltool and that other RH/FC releases -# don't care if we specify it here -BuildRequires: perl-XML-Parser -BuildRequires: mozilla-nss-devel -%endif -%endif - -# For some reason perl isn't always automatically detected as a requirement :( -Requires: perl -# Gadu-Gadu support was split out temporarily -Provides: gaim-gadugadu = %{epoch}:%{version}-%{release} - -%package devel -Summary: Development headers, documentation, and libraries for Gaim. -Group: Applications/Internet -Requires: pkgconfig, gaim = %{epoch}:%{version} - -%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} -%package bonjour -Summary: Bonjour plugin for Gaim -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%if 0%{?_with_meanwhile:1} -%package meanwhile -Summary: Lotus Sametime plugin for Gaim using the Meanwhile library -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%if 0%{?_with_mono:1} -%package mono -Summary: Mono .NET plugin support for Gaim -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%if 0%{?_with_silc:1} -%package silc -Summary: SILC (Secure Internet Live Conferencing) plugin for Gaim -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%if 0%{?_with_tcl:1} -%package tcl -Summary: Tcl scripting support for Gaim -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%if 0%{!?_without_text:1} -%package text -Summary: A text-based user interface for Gaim -Group: Applications/Internet -Requires: gaim = %{epoch}:%{version} -%endif - -%description -Gaim allows you to talk to anyone using a variety of messaging -protocols including AIM, MSN, Yahoo!, Jabber, Bonjour, Gadu-Gadu, -ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and -Zephyr. These protocols are implemented using a modular, easy to -use design. To use a protocol, just add an account using the -account editor. - -Gaim supports many common features of other clients, as well as many -unique features, such as perl scripting, TCL scripting and C plugins. - -Gaim is not affiliated with or endorsed by America Online, Inc., -Microsoft Corporation, Yahoo! Inc., or ICQ Inc. - -%description devel -The gaim-devel package contains the header files, developer -documentation, and libraries required for development of Gaim scripts -and plugins. - -%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} -%description bonjour -Bonjour plugin for Gaim. -%endif - -%if 0%{?_with_meanwhile:1} -%description meanwhile -Lotus Sametime plugin for Gaim using the Meanwhile library. -%endif - -%if 0%{?_with_mono:1} -%description mono -Mono plugin loader for Gaim. This package will allow you to write or -use Gaim plugins written in the .NET programming language. -%endif - -%if 0%{?_with_silc:1} -%description silc -SILC (Secure Internet Live Conferencing) plugin for Gaim. -%endif - -%if 0%{!?without_text:1} -%description text -A text-based user interface for Gaim. This can be run from a -standard text console or from a terminal within X Windows. It -uses ncurses and our homegrown gnt library for drawing windows -and text. -%endif - -%if 0%{?_with_tcl:1} -%description tcl -Tcl plugin loader for Gaim. This package will allow you to write or -use Gaim plugins written in the Tcl programming language. -%endif - -%prep -%setup -q -n %{name}-@VERSION@ - -%build -CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} \ - --bindir=%{_bindir} \ - --datadir=%{_datadir} \ - --includedir=%{_includedir} \ - --libdir=%{_libdir} \ - --mandir=%{_mandir} \ - --sysconfdir=%{_sysconfdir} \ - --disable-schemas-install \ - %{!?_with_dbus:--disable-dbus} \ - %{?_without_gstreamer:--disable-gstreamer} \ - %{?_without_gtkspell:--disable-gtkspell} \ - %{?_with_mono:--enable-mono} \ - %{?_with_perlmakehack:--with-perl-lib=%{buildroot}%{_prefix}} \ - %{!?_with_perlmakehack:--with-perl-lib=%{_prefix}} \ - %{?_with_sasl:--enable-cyrus-sasl} \ - %{?_with_silc:--with-silc-includes=%{_includedir}/silc} \ - %{?_with_silc:--with-silc-libs=%{_libdir}/silc} \ - %{!?_with_tcl:--disable-tcl} \ - %{?_without_text:--disable-consoleui} - -make %{?_smp_mflags} - -%install -rm -rf %{buildroot} -%if 0%{?_with_perlmakehack:1} -make prefix=%{buildroot}%{_prefix} bindir=%{buildroot}%{_bindir} \ - datadir=%{buildroot}%{_datadir} includedir=%{buildroot}%{_includedir} \ - libdir=%{buildroot}%{_libdir} mandir=%{buildroot}%{_mandir} \ - sysconfdir=%{buildroot}%{_sysconfdir} \ - install -%else -make DESTDIR=$RPM_BUILD_ROOT install -%endif - -# Delete files that we don't want to put in any of the RPMs -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/*.la -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod -find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' -find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';' - -%if 0%{!?_with_howl:1} && 0%{!?_with_avahi:1} -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/libbonjour.so -%endif - -%if 0%{!?_with_meanwhile:1} -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/libsametime.so -%endif - -%if 0%{!?_with_mono:1} -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/mono.so -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/*.dll -%endif - -%if 0%{!?_with_silc:1} -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/libsilcgaim.so -%endif - -%if 0%{!?_with_tcl:1} -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/tcl.so -%endif - -%if 0%{?_without_text:1} -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/gaim-text.* -rm -f $RPM_BUILD_ROOT%{_bindir}/gaim-text -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/gntgf.so -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/gnthistory.so -rm -f $RPM_BUILD_ROOT%{_libdir}/gaim/s.so -rm -f $RPM_BUILD_ROOT%{_libdir}/libgnt.so.* -%endif - -%find_lang %{name} - -find $RPM_BUILD_ROOT%{_libdir}/gaim -xtype f -print | \ - sed "s@^$RPM_BUILD_ROOT@@g" | \ - grep -v /gntgf.so | \ - grep -v /gnthistory.so | \ - grep -v /libbonjour.so | \ - grep -v /libsilcgaim.so | \ - grep -v /libsametime.so | \ - grep -v /mono.so | \ - grep -v /s.so | \ - grep -v /tcl.so | \ - grep -v ".dll$" | \ - grep -v ".tcl$" > %{name}-%{version}-coreplugins - -# files -f file can only take one filename :( -cat %{name}.lang >> %{name}-%{version}-coreplugins - -%clean -rm -rf %{buildroot} - -%pre -if [ "$1" -gt 1 -a -n "`which gconftool-2 2>/dev/null`" ]; then - export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` - gconftool-2 --makefile-uninstall-rule \ - %{_sysconfdir}/gconf/schemas/gaim.schemas >/dev/null || : - killall -HUP gconfd-2 || : -fi - -%post -if [ -n "`which gconftool-2 2>/dev/null`" ]; then - export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` - gconftool-2 --makefile-install-rule \ - %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : - killall -HUP gconfd-2 || : -fi -/sbin/ldconfig - -%preun -if [ "$1" -eq 0 -a -n "`which gconftool-2 2>/dev/null`" ]; then - export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` - gconftool-2 --makefile-uninstall-rule \ - %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : - killall -HUP gconfd-2 || : -fi - -%postun -p /sbin/ldconfig - -%files -f %{name}-%{version}-coreplugins -%defattr(-, root, root) - -%doc AUTHORS -%doc COPYING -%doc COPYRIGHT -%doc ChangeLog -%doc NEWS -%doc README -%doc README.SVN -%doc doc/FAQ -%doc doc/the_penguin.txt -%doc %{_mandir}/man1/gaim.* -%doc %{_mandir}/man3*/* - -%dir %{_libdir}/gaim -%attr(755, root, root) %{perl_vendorarch}/Gaim* -%attr(755, root, root) %{perl_vendorarch}/auto/Gaim - -%{_bindir}/gaim -%{_datadir}/pixmaps/* -%dir %{_datadir}/sounds/gaim -%{_datadir}/sounds/gaim/* -%{_datadir}/applications/* -%{_libdir}/libgaim.so.* -%{_sysconfdir}/gconf/schemas/gaim.schemas - -%if 0%{?_with_dbus:1} -%{_bindir}/gaim-client-example -%{_bindir}/gaim-remote -%{_bindir}/gaim-send -%{_bindir}/gaim-send-async -%{_bindir}/gaim-url-handler -%{_libdir}/libgaim-client.so.* -%{_datadir}/dbus-1/services/gaim.service -%doc README.dbus -%doc libgaim/gaim-notifications-example -%endif - -%files devel -%defattr(-, root, root) - -%doc ChangeLog.API -%doc HACKING -%doc PLUGIN_HOWTO -%doc PROGRAMMING_NOTES - -%dir %{_includedir}/gaim -%{_includedir}/gaim/*.h -%dir %{_includedir}/gaim/gnt -%{_includedir}/gaim/gnt/*.h -%dir %{_includedir}/gnt -%{_includedir}/gnt/*.h -%{_libdir}/libgaim.so -%{_libdir}/libgnt.so -%{_libdir}/pkgconfig/gaim.pc -%{_libdir}/pkgconfig/gnt.pc -%{_datadir}/aclocal/gaim.m4 -%if 0%{?_with_dbus:1} -%{_libdir}/libgaim-client.so -%endif - -%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} -%files bonjour -%defattr(-, root, root) - -%{_libdir}/gaim/libbonjour.* -%endif - -%if 0%{?_with_meanwhile:1} -%files meanwhile -%defattr(-, root, root) - -%{_libdir}/gaim/libsametime.* -%endif - -%if 0%{?_with_mono:1} -%files mono -%defattr(-, root, root) - -%{_libdir}/gaim/mono.so -%{_libdir}/gaim/*.dll -%endif - -%if 0%{?_with_silc:1} -%files silc -%defattr(-, root, root) - -%{_libdir}/gaim/libsilcgaim.* -%endif - -%if 0%{?_with_tcl:1} -%files tcl -%defattr(-, root, root) - -%{_libdir}/gaim/tcl.so -%endif - -%if 0%{!?_without_text:1} -%files text -%defattr(-, root, root) - -%doc %{_mandir}/man1/gaim-text.* -%{_bindir}/gaim-text -%{_libdir}/gaim/gntgf.so -%{_libdir}/gaim/gnthistory.so -%{_libdir}/gaim/s.so -%{_libdir}/libgnt.so.* -%endif - -%changelog -* Sun Oct 1 2006 Stu Tomlinson -- We can build with internal gadu gadu again, so bring it back into the - main package -- Deal with gconf schame uninstallation on package upgrade and removal - -* Sun Aug 20 2006 Stu Tomlinson -- Make the gstreamer-devel dependency overridable with '--without-gstreamer' - to allow building on older distributions without suitable gstreamer - -* Tue Aug 15 2006 Mark Doliner -- Add a BuildRequire for gstreamer-devel -- Remove the BuildRequires for audiofile-devel and libao-devel - -* Mon May 8 2006 Mark Doliner -- Add --with avahi option to compile the gaim-bonjour package against - Avahi's Howl compatibility layer - -* Wed Mar 29 2006 Stu Tomlinson -- Source RPM uses tar.bz2 now to save space -- Update BuildRequires for new intltool dependencies -- Add a --with perlmakehack option to allow builds to succeed on RH9 -- Add a --with gadugadu to build (separate) gaim-gadugadu package - -* Sat Dec 17 2005 Stu Tomlinson -- Add support for beta versions so the subsequent releases are seen as newer - by RPM -- Split of sametime support to gaim-meanwhile -- Use make DESTDIR=... instead of overloading prefix etc. when installing -- Default build to include cyrus-sasl support in Jabber -- Add --with dbus to build with DBUS support - -* Sun Dec 04 2005 Christopher O'Brien -- Added obsoletes gaim-meanwhile - -* Sun Oct 30 2005 Stu Tomlinson -- Add separate gaim-bonjour package if built with --with-howl -- Add separate gaim-mono package if built with --with-mono -- Exclude some unwanted perl files - -* Sat Aug 20 2005 Stu Tomlinson -- Include libgaimperl.so -- Include gaim.m4 in gaim-devel - -* Thu Apr 28 2005 Stu Tomlinson -- Use perl_vendorlib & perl_archlib for better 64bit compat (Jeff Mahoney) -- Clean up Requires, most should be auto-detected -- Restore gtkspell-devel build requirement (and add --without gtkspell option) -- Fix Tcl build requirements to work across more distros -- Fix SILC build requirements to work across more distros - -* Mon Oct 11 2004 John Jolly -- Added if "%{_vendor}" == "suse" to handle GnuTLS libraries for SuSE - -* Sat Oct 2 2004 Stu Tomlinson -- If --with tcl or silc are not specified, make sure the plugins don't - exist to prevent RPM complaining about unpackaged files - -* Tue Jun 29 2004 Ethan Blanton -- Change Tcl to use --with tcl, the same as SILC, and build a gaim-tcl - package if specified. - -* Thu Jun 24 2004 Mark Doliner -- Add --with silc rebuild option for compiling a separate gaim-silc - RPM containing the silc protocol plugin (Stu Tomlinson). - -* Wed Jun 23 2004 Ethan Blanton -- Moved gaim headers and a pkgconfig configuration file into the - gaim-devel RPM (Stu Tomlinson). - -* Thu Jan 15 2004 Ethan Blanton -- Removed the manual strip command, as it seems to be unwarranted if - the necessary programs are properly installed. (For me, this was - elfutils.) - -* Sun Jul 20 2003 Bjoern Voigt -- Added pkgconfig build dependency. -- if "%{_vendor}" != "MandrakeSoft" now also works with rpm 3.x. -- Added Gaim-specific directories to list of Gaim's files. - -* Wed Jul 16 2003 Ethan Blanton -- Complete spec file rewrite to take advantage of "new" RPM features - and make things prettier. -- Use system-supplied %%{_prefix}, %%{_datadir}, etc. rather than - attempt to define our own. diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/Makefile.am --- a/libpurple/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,12 +1,13 @@ EXTRA_DIST = \ dbus-analyze-functions.py \ dbus-analyze-types.py \ - gaim-notifications-example \ - gaim-remote \ - gaim-send \ - gaim-send-async \ - gaim-url-handler \ + purple-notifications-example \ + purple-remote \ + purple-send \ + purple-send-async \ + purple-url-handler \ purple.pc.in \ + purple-uninstalled.pc.in \ Makefile.mingw \ win32/global.mak \ win32/libc_interface.c \ @@ -15,7 +16,7 @@ win32/libpurplerc.rc.in \ win32/rules.mak \ win32/targets.mak \ - win32/wgaimerror.h \ + win32/wpurpleerror.h \ win32/win32dep.c \ win32/giowin32.c \ win32/win32dep.h @@ -29,7 +30,7 @@ SUBDIRS = $(GCONF_DIR) plugins protocols tests . example -gaim_coresources = \ +purple_coresources = \ account.c \ accountopt.c \ blist.c \ @@ -77,7 +78,7 @@ xmlnode.c \ whiteboard.c -gaim_coreheaders = \ +purple_coreheaders = \ account.h \ accountopt.h \ blist.h \ @@ -93,7 +94,7 @@ desktopitem.h \ eventloop.h \ ft.h \ - gaim.h \ + gaim-compat.h \ idle.h \ imgstore.h \ log.h \ @@ -137,9 +138,9 @@ dbus-types.h \ purple-client-bindings.c \ purple-client-bindings.h \ - gaim.service + purple.service -# gaim dbus server +# purple dbus server dbus_sources = dbus-server.c dbus-useful.c dbus_headers = dbus-bindings.h dbus-purple.h dbus-server.h dbus-useful.h dbus-define-api.h @@ -148,64 +149,64 @@ connection.h conversation.h core.h log.h prefs.h roomlist.h \ savedstatuses.h status.h server.h xmlnode.h -gaim_build_coreheaders = $(addprefix $(srcdir)/, $(gaim_coreheaders)) +purple_build_coreheaders = $(addprefix $(srcdir)/, $(purple_coreheaders)) dbus_build_exported = $(addprefix $(srcdir)/, $(dbus_exported)) -dbus-types.c: dbus-analyze-types.py $(gaim_coreheaders) - cat $(gaim_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --pattern=PURPLE_DBUS_DEFINE_TYPE\(%s\) > $@ +dbus-types.c: dbus-analyze-types.py $(purple_coreheaders) + cat $(purple_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --pattern=PURPLE_DBUS_DEFINE_TYPE\(%s\) > $@ dbus-types.h: dbus-analyze-types.py $(dbus_coreheaders) - cat $(gaim_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --pattern=PURPLE_DBUS_DECLARE_TYPE\(%s\) > $@ + cat $(purple_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --pattern=PURPLE_DBUS_DECLARE_TYPE\(%s\) > $@ dbus-bindings.c: dbus-analyze-functions.py $(dbus_exported) cat $(dbus_build_exported) | $(PYTHON) $(srcdir)/dbus-analyze-functions.py > $@ dbus-server.$(OBJEXT): dbus-bindings.c dbus-types.c dbus-types.h dbus-server.lo: dbus-bindings.c dbus-types.c dbus-types.h -$(libgaim_la_OBJECTS): dbus-types.h +$(libpurple_la_OBJECTS): dbus-types.h -# libgaim-client +# libpurple-client -libgaim_client_lib = libgaim-client.la +libpurple_client_lib = libpurple-client.la -libgaim_client_la_SOURCES = gaim-client.c gaim-client.h +libpurple_client_la_SOURCES = purple-client.c purple-client.h -libgaim_client_la_LIBADD = $(DBUS_LIBS) +libpurple_client_la_LIBADD = $(DBUS_LIBS) purple-client-bindings.c: dbus-analyze-functions.py $(dbus_exported) cat $(dbus_build_exported) | $(PYTHON) $(srcdir)/dbus-analyze-functions.py --client > $@ -purple-client-bindings.h: dbus-analyze-types.py dbus-analyze-functions.py $(gaim_coreheaders) $(dbus_exported) - cat $(gaim_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --keyword=enum --verbatim > $@ +purple-client-bindings.h: dbus-analyze-types.py dbus-analyze-functions.py $(purple_coreheaders) $(dbus_exported) + cat $(purple_build_coreheaders) | $(PYTHON) $(srcdir)/dbus-analyze-types.py --keyword=enum --verbatim > $@ cat $(dbus_build_exported) | $(PYTHON) $(srcdir)/dbus-analyze-functions.py --client --headers >> $@ -$(libgaim_client_la_OBJECTS): purple-client-bindings.h purple-client-bindings.c +$(libpurple_client_la_OBJECTS): purple-client-bindings.h purple-client-bindings.c -# gaim-client-example +# purple-client-example -gaim_client_example_SOURCES = gaim-client-example.c +purple_client_example_SOURCES = purple-client-example.c -gaim_client_example_DEPENDENCIES = libgaim-client.la +purple_client_example_DEPENDENCIES = libpurple-client.la -gaim_client_example_LDADD = \ - libgaim-client.la \ +purple_client_example_LDADD = \ + libpurple-client.la \ $(GLIB_LIBS) \ $(DBUS_LIBS) -bin_PROGRAMS = gaim-client-example +bin_PROGRAMS = purple-client-example -gaim-client-example.$(OBJEXT): purple-client-bindings.h +purple-client-example.$(OBJEXT): purple-client-bindings.h # scripts -bin_SCRIPTS = gaim-remote gaim-send gaim-send-async gaim-url-handler +bin_SCRIPTS = purple-remote purple-send purple-send-async purple-url-handler endif -lib_LTLIBRARIES = libpurple.la $(libgaim_client_lib) +lib_LTLIBRARIES = libpurple.la $(libpurple_client_lib) libpurple_la_SOURCES = \ - $(gaim_coresources) \ + $(purple_coresources) \ $(dbus_sources) noinst_HEADERS= \ @@ -214,7 +215,7 @@ libpurpleincludedir=$(includedir)/libpurple libpurpleinclude_HEADERS = \ - $(gaim_coreheaders) \ + $(purple_coreheaders) \ $(dbus_headers) libpurple_la_DEPENDENCIES = $(STATIC_LINK_LIBS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/example/Makefile.am --- a/libpurple/example/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/example/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ bin_PROGRAMS = nullclient -nullclient_SOURCES = nullclient.c -nullclient_DEPENDENCIES = +nullclient_SOURCES = defines.h nullclient.c +nullclient_DEPENDENCIES = nullclient_LDFLAGS = -export-dynamic nullclient_LDADD = \ $(DBUS_LIBS) \ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-client-example.c --- a/libpurple/gaim-client-example.c Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -#define DBUS_API_SUBJECT_TO_CHANGE - -#include -#include - -#include "purple-client.h" - -/* - This example demonstrates how to use libpurple-client to communicate - with purple. The names and signatures of functions provided by - libpurple-client are the same as those in purple. However, all - structures (such as PurpleAccount) are opaque, that is, you can only - use pointer to them. In fact, these pointers DO NOT actually point - to anything, they are just integer identifiers of assigned to these - structures by purple. So NEVER try to dereference these pointers. - Integer ids as disguised as pointers to provide type checking and - prevent mistakes such as passing an id of PurpleAccount when an id of - PurpleBuddy is expected. According to glib manual, this technique is - portable. -*/ - -int main (int argc, char **argv) -{ - GList *alist, *node; - - purple_init(); - - alist = purple_accounts_get_all(); - for (node = alist; node != NULL; node = node->next) - { - PurpleAccount *account = (PurpleAccount*) node->data; - char *name = purple_account_get_username(account); - g_print("Name: %s\n", name); - g_free(name); - } - g_list_free(alist); - - return 0; -} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-client.c --- a/libpurple/gaim-client.c Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -#define DBUS_API_SUBJECT_TO_CHANGE - -#include -#include -#include - -#include "dbus-purple.h" -#include "purple-client-bindings.h" - -static DBusGConnection *bus; -static DBusGProxy *purple_proxy; - -static GList *garray_int_to_glist(GArray *array) -{ - GList *list = NULL; - int i; - - for (i = 0; i < array->len; i++) - list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); - - g_array_free(array, TRUE); - return list; -} - -static GSList *garray_int_to_gslist(GArray *array) -{ - GSList *list = NULL; - int i; - - for (i = 0; i < array->len; i++) - list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); - - g_array_free(array, TRUE); - return list; -} - -#include "purple-client-bindings.c" - -static void lose(const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2); -static void lose_gerror(const char *prefix, GError *error) G_GNUC_NORETURN; - -static void -lose(const char *str, ...) -{ - va_list args; - - va_start(args, str); - - vfprintf(stderr, str, args); - fputc('\n', stderr); - - va_end(args); - - exit(1); -} - -static void -lose_gerror(const char *prefix, GError *error) -{ - lose("%s: %s", prefix, error->message); -} - -void purple_init(void) -{ - GError *error = NULL; - - g_type_init (); - - bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); - if (!bus) - lose_gerror ("Couldn't connect to session bus", error); - - purple_proxy = dbus_g_proxy_new_for_name (bus, - DBUS_SERVICE_PURPLE, - DBUS_PATH_PURPLE, - DBUS_INTERFACE_PURPLE); - - if (!purple_proxy) - lose_gerror ("Couldn't connect to the Purple Service", error); -} - diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-compat.h --- a/libpurple/gaim-compat.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/gaim-compat.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /** - * @file purple-compat.h Purple Compat macros + * @file gaim-compat.h Gaim Compat macros * @ingroup core * * pidgin @@ -24,2254 +24,2284 @@ * * @see @ref account-signals */ -#ifndef _PURPLE_COMPAT_H_ -#define _PURPLE_COMPAT_H_ +#ifndef _GAIM_COMPAT_H_ +#define _GAIM_COMPAT_H_ /* from account.h */ -#define PurpleAccountUiOps PurpleAccountUiOps -#define PurpleAccount PurpleAccount - -#define PurpleFilterAccountFunc PurpleFilterAccountFunc -#define PurpleAccountRequestAuthorizationCb PurpleAccountRequestAuthorizationCb - -#define purple_account_new purple_account_new -#define purple_account_destroy purple_account_destroy -#define purple_account_connect purple_account_connect -#define purple_account_register purple_account_register -#define purple_account_disconnect purple_account_disconnect -#define purple_account_notify_added purple_account_notify_added -#define purple_account_request_add purple_account_request_add - -#define purple_account_request_authorization purple_account_request_authorization -#define purple_account_request_change_password purple_account_request_change_password -#define purple_account_request_change_user_info purple_account_request_change_user_info - -#define purple_account_set_username purple_account_set_username -#define purple_account_set_password purple_account_set_password -#define purple_account_set_alias purple_account_set_alias -#define purple_account_set_user_info purple_account_set_user_info -#define purple_account_set_buddy_icon purple_account_set_buddy_icon -#define purple_account_set_buddy_icon_path purple_account_set_buddy_icon_path -#define purple_account_set_protocol_id purple_account_set_protocol_id -#define purple_account_set_connection purple_account_set_connection -#define purple_account_set_remember_password purple_account_set_remember_password -#define purple_account_set_check_mail purple_account_set_check_mail -#define purple_account_set_enabled purple_account_set_enabled -#define purple_account_set_proxy_info purple_account_set_proxy_info -#define purple_account_set_status_types purple_account_set_status_types -#define purple_account_set_status purple_account_set_status -#define purple_account_set_status_list purple_account_set_status_list - -#define purple_account_clear_settings purple_account_clear_settings - -#define purple_account_set_int purple_account_set_int -#define purple_account_set_string purple_account_set_string -#define purple_account_set_bool purple_account_set_bool - -#define purple_account_set_ui_int purple_account_set_ui_int -#define purple_account_set_ui_string purple_account_set_ui_string -#define purple_account_set_ui_bool purple_account_set_ui_bool - -#define purple_account_is_connected purple_account_is_connected -#define purple_account_is_connecting purple_account_is_connecting -#define purple_account_is_disconnected purple_account_is_disconnected - -#define purple_account_get_username purple_account_get_username -#define purple_account_get_password purple_account_get_password -#define purple_account_get_alias purple_account_get_alias -#define purple_account_get_user_info purple_account_get_user_info -#define purple_account_get_buddy_icon purple_account_get_buddy_icon -#define purple_account_get_buddy_icon_path purple_account_get_buddy_icon_path -#define purple_account_get_protocol_id purple_account_get_protocol_id -#define purple_account_get_protocol_name purple_account_get_protocol_name -#define purple_account_get_connection purple_account_get_connection -#define purple_account_get_remember_password purple_account_get_remember_password -#define purple_account_get_check_mail purple_account_get_check_mail -#define purple_account_get_enabled purple_account_get_enabled -#define purple_account_get_proxy_info purple_account_get_proxy_info -#define purple_account_get_active_status purple_account_get_active_status -#define purple_account_get_status purple_account_get_status -#define purple_account_get_status_type purple_account_get_status_type -#define purple_account_get_status_type_with_primitive \ +#define GaimAccountUiOps PurpleAccountUiOps +#define GaimAccount PurpleAccount + +#define GaimFilterAccountFunc PurpleFilterAccountFunc +#define GaimAccountRequestAuthorizationCb PurpleAccountRequestAuthorizationCb + +#define gaim_account_new purple_account_new +#define gaim_account_destroy purple_account_destroy +#define gaim_account_connect purple_account_connect +#define gaim_account_register purple_account_register +#define gaim_account_disconnect purple_account_disconnect +#define gaim_account_notify_added purple_account_notify_added +#define gaim_account_request_add purple_account_request_add +#define gaim_account_request_close purple_account_request_close + +#define gaim_account_request_authorization purple_account_request_authorization +#define gaim_account_request_change_password purple_account_request_change_password +#define gaim_account_request_change_user_info purple_account_request_change_user_info + +#define gaim_account_set_username purple_account_set_username +#define gaim_account_set_password purple_account_set_password +#define gaim_account_set_alias purple_account_set_alias +#define gaim_account_set_user_info purple_account_set_user_info +#define gaim_account_set_buddy_icon purple_account_set_buddy_icon +#define gaim_account_set_buddy_icon_path purple_account_set_buddy_icon_path +#define gaim_account_set_protocol_id purple_account_set_protocol_id +#define gaim_account_set_connection purple_account_set_connection +#define gaim_account_set_remember_password purple_account_set_remember_password +#define gaim_account_set_check_mail purple_account_set_check_mail +#define gaim_account_set_enabled purple_account_set_enabled +#define gaim_account_set_proxy_info purple_account_set_proxy_info +#define gaim_account_set_status_types purple_account_set_status_types +#define gaim_account_set_status purple_account_set_status +#define gaim_account_set_status_list purple_account_set_status_list + +#define gaim_account_clear_settings purple_account_clear_settings + +#define gaim_account_set_int purple_account_set_int +#define gaim_account_set_string purple_account_set_string +#define gaim_account_set_bool purple_account_set_bool + +#define gaim_account_set_ui_int purple_account_set_ui_int +#define gaim_account_set_ui_string purple_account_set_ui_string +#define gaim_account_set_ui_bool purple_account_set_ui_bool + +#define gaim_account_is_connected purple_account_is_connected +#define gaim_account_is_connecting purple_account_is_connecting +#define gaim_account_is_disconnected purple_account_is_disconnected + +#define gaim_account_get_username purple_account_get_username +#define gaim_account_get_password purple_account_get_password +#define gaim_account_get_alias purple_account_get_alias +#define gaim_account_get_user_info purple_account_get_user_info +#define gaim_account_get_buddy_icon purple_account_get_buddy_icon +#define gaim_account_get_buddy_icon_path purple_account_get_buddy_icon_path +#define gaim_account_get_protocol_id purple_account_get_protocol_id +#define gaim_account_get_protocol_name purple_account_get_protocol_name +#define gaim_account_get_connection purple_account_get_connection +#define gaim_account_get_remember_password purple_account_get_remember_password +#define gaim_account_get_check_mail purple_account_get_check_mail +#define gaim_account_get_enabled purple_account_get_enabled +#define gaim_account_get_proxy_info purple_account_get_proxy_info +#define gaim_account_get_active_status purple_account_get_active_status +#define gaim_account_get_status purple_account_get_status +#define gaim_account_get_status_type purple_account_get_status_type +#define gaim_account_get_status_type_with_primitive \ purple_account_get_status_type_with_primitive -#define purple_account_get_presence purple_account_get_presence -#define purple_account_is_status_active purple_account_is_status_active -#define purple_account_get_status_types purple_account_get_status_types - -#define purple_account_get_int purple_account_get_int -#define purple_account_get_string purple_account_get_string -#define purple_account_get_bool purple_account_get_bool - -#define purple_account_get_ui_int purple_account_get_ui_int -#define purple_account_get_ui_string purple_account_get_ui_string -#define purple_account_get_ui_bool purple_account_get_ui_bool - - -#define purple_account_get_log purple_account_get_log -#define purple_account_destroy_log purple_account_destroy_log - -#define purple_account_add_buddy purple_account_add_buddy -#define purple_account_add_buddies purple_account_add_buddies -#define purple_account_remove_buddy purple_account_remove_buddy -#define purple_account_remove_buddies purple_account_remove_buddies - -#define purple_account_remove_group purple_account_remove_group - -#define purple_account_change_password purple_account_change_password - -#define purple_account_supports_offline_message purple_account_supports_offline_message - -#define purple_accounts_add purple_accounts_add -#define purple_accounts_remove purple_accounts_remove -#define purple_accounts_delete purple_accounts_delete -#define purple_accounts_reorder purple_accounts_reorder - -#define purple_accounts_get_all purple_accounts_get_all -#define purple_accounts_get_all_active purple_accounts_get_all_active - -#define purple_accounts_find purple_accounts_find - -#define purple_accounts_restore_current_statuses purple_accounts_restore_current_statuses - -#define purple_accounts_set_ui_ops purple_accounts_set_ui_ops -#define purple_accounts_get_ui_ops purple_accounts_get_ui_ops - -#define purple_accounts_get_handle purple_accounts_get_handle - -#define purple_accounts_init purple_accounts_init -#define purple_accounts_uninit purple_accounts_uninit +#define gaim_account_get_presence purple_account_get_presence +#define gaim_account_is_status_active purple_account_is_status_active +#define gaim_account_get_status_types purple_account_get_status_types + +#define gaim_account_get_int purple_account_get_int +#define gaim_account_get_string purple_account_get_string +#define gaim_account_get_bool purple_account_get_bool + +#define gaim_account_get_ui_int purple_account_get_ui_int +#define gaim_account_get_ui_string purple_account_get_ui_string +#define gaim_account_get_ui_bool purple_account_get_ui_bool + + +#define gaim_account_get_log purple_account_get_log +#define gaim_account_destroy_log purple_account_destroy_log + +#define gaim_account_add_buddy purple_account_add_buddy +#define gaim_account_add_buddies purple_account_add_buddies +#define gaim_account_remove_buddy purple_account_remove_buddy +#define gaim_account_remove_buddies purple_account_remove_buddies + +#define gaim_account_remove_group purple_account_remove_group + +#define gaim_account_change_password purple_account_change_password + +#define gaim_account_supports_offline_message purple_account_supports_offline_message + +#define gaim_accounts_add purple_accounts_add +#define gaim_accounts_remove purple_accounts_remove +#define gaim_accounts_delete purple_accounts_delete +#define gaim_accounts_reorder purple_accounts_reorder + +#define gaim_accounts_get_all purple_accounts_get_all +#define gaim_accounts_get_all_active purple_accounts_get_all_active + +#define gaim_accounts_find purple_accounts_find + +#define gaim_accounts_restore_current_statuses purple_accounts_restore_current_statuses + +#define gaim_accounts_set_ui_ops purple_accounts_set_ui_ops +#define gaim_accounts_get_ui_ops purple_accounts_get_ui_ops + +#define gaim_accounts_get_handle purple_accounts_get_handle + +#define gaim_accounts_init purple_accounts_init +#define gaim_accounts_uninit purple_accounts_uninit /* from accountopt.h */ -#define PurpleAccountOption PurpleAccountOption -#define PurpleAccountUserSplit PurpleAccountUserSplit - -#define purple_account_option_new purple_account_option_new -#define purple_account_option_bool_new purple_account_option_bool_new -#define purple_account_option_int_new purple_account_option_int_new -#define purple_account_option_string_new purple_account_option_string_new -#define purple_account_option_list_new purple_account_option_list_new - -#define purple_account_option_destroy purple_account_option_destroy - -#define purple_account_option_set_default_bool purple_account_option_set_default_bool -#define purple_account_option_set_default_int purple_account_option_set_default_int -#define purple_account_option_set_default_string purple_account_option_set_default_string - -#define purple_account_option_set_masked purple_account_option_set_masked - -#define purple_account_option_set_list purple_account_option_set_list - -#define purple_account_option_add_list_item purple_account_option_add_list_item - -#define purple_account_option_get_type purple_account_option_get_type -#define purple_account_option_get_text purple_account_option_get_text -#define purple_account_option_get_setting purple_account_option_get_setting - -#define purple_account_option_get_default_bool purple_account_option_get_default_bool -#define purple_account_option_get_default_int purple_account_option_get_default_int -#define purple_account_option_get_default_string purple_account_option_get_default_string -#define purple_account_option_get_default_list_value purple_account_option_get_default_list_value - -#define purple_account_option_get_masked purple_account_option_get_masked -#define purple_account_option_get_list purple_account_option_get_list - -#define purple_account_user_split_new purple_account_user_split_new -#define purple_account_user_split_destroy purple_account_user_split_destroy - -#define purple_account_user_split_get_text purple_account_user_split_get_text -#define purple_account_user_split_get_default_value purple_account_user_split_get_default_value -#define purple_account_user_split_get_separator purple_account_user_split_get_separator +#define GaimAccountOption PurpleAccountOption +#define GaimAccountUserSplit PurpleAccountUserSplit + +#define gaim_account_option_new purple_account_option_new +#define gaim_account_option_bool_new purple_account_option_bool_new +#define gaim_account_option_int_new purple_account_option_int_new +#define gaim_account_option_string_new purple_account_option_string_new +#define gaim_account_option_list_new purple_account_option_list_new + +#define gaim_account_option_destroy purple_account_option_destroy + +#define gaim_account_option_set_default_bool purple_account_option_set_default_bool +#define gaim_account_option_set_default_int purple_account_option_set_default_int +#define gaim_account_option_set_default_string purple_account_option_set_default_string + +#define gaim_account_option_set_masked purple_account_option_set_masked + +#define gaim_account_option_set_list purple_account_option_set_list + +#define gaim_account_option_add_list_item purple_account_option_add_list_item + +#define gaim_account_option_get_type purple_account_option_get_type +#define gaim_account_option_get_text purple_account_option_get_text +#define gaim_account_option_get_setting purple_account_option_get_setting + +#define gaim_account_option_get_default_bool purple_account_option_get_default_bool +#define gaim_account_option_get_default_int purple_account_option_get_default_int +#define gaim_account_option_get_default_string purple_account_option_get_default_string +#define gaim_account_option_get_default_list_value purple_account_option_get_default_list_value + +#define gaim_account_option_get_masked purple_account_option_get_masked +#define gaim_account_option_get_list purple_account_option_get_list + +#define gaim_account_user_split_new purple_account_user_split_new +#define gaim_account_user_split_destroy purple_account_user_split_destroy + +#define gaim_account_user_split_get_text purple_account_user_split_get_text +#define gaim_account_user_split_get_default_value purple_account_user_split_get_default_value +#define gaim_account_user_split_get_separator purple_account_user_split_get_separator /* from blist.h */ -#define PurpleBuddyList PurpleBuddyList -#define PurpleBlistUiOps PurpleBlistUiOps -#define PurpleBlistNode PurpleBlistNode - -#define PurpleChat PurpleChat -#define PurpleGroup PurpleGroup -#define PurpleContact PurpleContact -#define PurpleBuddy PurpleBuddy - -#define PURPLE_BLIST_GROUP_NODE PURPLE_BLIST_GROUP_NODE -#define PURPLE_BLIST_CONTACT_NODE PURPLE_BLIST_CONTACT_NODE -#define PURPLE_BLIST_BUDDY_NODE PURPLE_BLIST_BUDDY_NODE -#define PURPLE_BLIST_CHAT_NODE PURPLE_BLIST_CHAT_NODE -#define PURPLE_BLIST_OTHER_NODE PURPLE_BLIST_OTHER_NODE -#define PurpleBlistNodeType PurpleBlistNodeType - -#define PURPLE_BLIST_NODE_IS_CHAT PURPLE_BLIST_NODE_IS_CHAT -#define PURPLE_BLIST_NODE_IS_BUDDY PURPLE_BLIST_NODE_IS_BUDDY -#define PURPLE_BLIST_NODE_IS_CONTACT PURPLE_BLIST_NODE_IS_CONTACT -#define PURPLE_BLIST_NODE_IS_GROUP PURPLE_BLIST_NODE_IS_GROUP - -#define PURPLE_BUDDY_IS_ONLINE PURPLE_BUDDY_IS_ONLINE - -#define PURPLE_BLIST_NODE_FLAG_NO_SAVE PURPLE_BLIST_NODE_FLAG_NO_SAVE -#define PurpleBlistNodeFlags PurpleBlistNodeFlags - -#define PURPLE_BLIST_NODE_HAS_FLAG PURPLE_BLIST_NODE_HAS_FLAG -#define PURPLE_BLIST_NODE_SHOULD_SAVE PURPLE_BLIST_NODE_SHOULD_SAVE - -#define PURPLE_BLIST_NODE_NAME PURPLE_BLIST_NODE_NAME - - -#define purple_blist_new purple_blist_new -#define purple_set_blist purple_set_blist -#define purple_get_blist purple_get_blist - -#define purple_blist_get_root purple_blist_get_root -#define purple_blist_node_next purple_blist_node_next - -#define purple_blist_show purple_blist_show - -#define purple_blist_destroy purple_blist_destroy - -#define purple_blist_set_visible purple_blist_set_visible - -#define purple_blist_update_buddy_status purple_blist_update_buddy_status -#define purple_blist_update_buddy_icon purple_blist_update_buddy_icon - - -#define purple_blist_alias_contact purple_blist_alias_contact -#define purple_blist_alias_buddy purple_blist_alias_buddy -#define purple_blist_server_alias_buddy purple_blist_server_alias_buddy -#define purple_blist_alias_chat purple_blist_alias_chat - -#define purple_blist_rename_buddy purple_blist_rename_buddy -#define purple_blist_rename_group purple_blist_rename_group - -#define purple_chat_new purple_chat_new -#define purple_blist_add_chat purple_blist_add_chat - -#define purple_buddy_new purple_buddy_new -#define purple_buddy_set_icon purple_buddy_set_icon -#define purple_buddy_get_account purple_buddy_get_account -#define purple_buddy_get_name purple_buddy_get_name -#define purple_buddy_get_icon purple_buddy_get_icon -#define purple_buddy_get_contact purple_buddy_get_contact -#define purple_buddy_get_presence purple_buddy_get_presence - -#define purple_blist_add_buddy purple_blist_add_buddy - -#define purple_group_new purple_group_new - -#define purple_blist_add_group purple_blist_add_group - -#define purple_contact_new purple_contact_new - -#define purple_blist_add_contact purple_blist_add_contact -#define purple_blist_merge_contact purple_blist_merge_contact - -#define purple_contact_get_priority_buddy purple_contact_get_priority_buddy -#define purple_contact_set_alias purple_contact_set_alias -#define purple_contact_get_alias purple_contact_get_alias -#define purple_contact_on_account purple_contact_on_account - -#define purple_contact_invalidate_priority_buddy purple_contact_invalidate_priority_buddy - -#define purple_blist_remove_buddy purple_blist_remove_buddy -#define purple_blist_remove_contact purple_blist_remove_contact -#define purple_blist_remove_chat purple_blist_remove_chat -#define purple_blist_remove_group purple_blist_remove_group - -#define purple_buddy_get_alias_only purple_buddy_get_alias_only -#define purple_buddy_get_server_alias purple_buddy_get_server_alias -#define purple_buddy_get_contact_alias purple_buddy_get_contact_alias -#define purple_buddy_get_local_alias purple_buddy_get_local_alias -#define purple_buddy_get_alias purple_buddy_get_alias - -#define purple_chat_get_name purple_chat_get_name - -#define purple_find_buddy purple_find_buddy -#define purple_find_buddy_in_group purple_find_buddy_in_group -#define purple_find_buddies purple_find_buddies - -#define purple_find_group purple_find_group - -#define purple_blist_find_chat purple_blist_find_chat - -#define purple_chat_get_group purple_chat_get_group -#define purple_buddy_get_group purple_buddy_get_group - -#define purple_group_get_accounts purple_group_get_accounts -#define purple_group_on_account purple_group_on_account - -#define purple_blist_add_account purple_blist_add_account -#define purple_blist_remove_account purple_blist_remove_account - -#define purple_blist_get_group_size purple_blist_get_group_size -#define purple_blist_get_group_online_count purple_blist_get_group_online_count - -#define purple_blist_load purple_blist_load -#define purple_blist_schedule_save purple_blist_schedule_save - -#define purple_blist_request_add_buddy purple_blist_request_add_buddy -#define purple_blist_request_add_chat purple_blist_request_add_chat -#define purple_blist_request_add_group purple_blist_request_add_group - -#define purple_blist_node_set_bool purple_blist_node_set_bool -#define purple_blist_node_get_bool purple_blist_node_get_bool -#define purple_blist_node_set_int purple_blist_node_set_int -#define purple_blist_node_get_int purple_blist_node_get_int -#define purple_blist_node_set_string purple_blist_node_set_string -#define purple_blist_node_get_string purple_blist_node_get_string - -#define purple_blist_node_remove_setting purple_blist_node_remove_setting - -#define purple_blist_node_set_flags purple_blist_node_set_flags -#define purple_blist_node_get_flags purple_blist_node_get_flags - -#define purple_blist_node_get_extended_menu purple_blist_node_get_extended_menu - -#define purple_blist_set_ui_ops purple_blist_set_ui_ops -#define purple_blist_get_ui_ops purple_blist_get_ui_ops - -#define purple_blist_get_handle purple_blist_get_handle - -#define purple_blist_init purple_blist_init -#define purple_blist_uninit purple_blist_uninit - - -#define PurpleBuddyIcon PurpleBuddyIcon - -#define purple_buddy_icon_new purple_buddy_icon_new -#define purple_buddy_icon_destroy purple_buddy_icon_destroy -#define purple_buddy_icon_ref purple_buddy_icon_ref -#define purple_buddy_icon_unref purple_buddy_icon_unref -#define purple_buddy_icon_update purple_buddy_icon_update -#define purple_buddy_icon_cache purple_buddy_icon_cache -#define purple_buddy_icon_uncache purple_buddy_icon_uncache - -#define purple_buddy_icon_set_account purple_buddy_icon_set_account -#define purple_buddy_icon_set_username purple_buddy_icon_set_username -#define purple_buddy_icon_set_data purple_buddy_icon_set_data -#define purple_buddy_icon_set_path purple_buddy_icon_set_path - -#define purple_buddy_icon_get_account purple_buddy_icon_get_account -#define purple_buddy_icon_get_username purple_buddy_icon_get_username -#define purple_buddy_icon_get_data purple_buddy_icon_get_data -#define purple_buddy_icon_get_path purple_buddy_icon_get_path -#define purple_buddy_icon_get_type purple_buddy_icon_get_type - -#define purple_buddy_icons_set_for_user purple_buddy_icons_set_for_user -#define purple_buddy_icons_find purple_buddy_icons_find -#define purple_buddy_icons_set_caching purple_buddy_icons_set_caching -#define purple_buddy_icons_is_caching purple_buddy_icons_is_caching -#define purple_buddy_icons_set_cache_dir purple_buddy_icons_set_cache_dir -#define purple_buddy_icons_get_cache_dir purple_buddy_icons_get_cache_dir -#define purple_buddy_icons_get_full_path purple_buddy_icons_get_full_path -#define purple_buddy_icons_get_handle purple_buddy_icons_get_handle - -#define purple_buddy_icons_init purple_buddy_icons_init -#define purple_buddy_icons_uninit purple_buddy_icons_uninit - -#define purple_buddy_icon_get_scale_size purple_buddy_icon_get_scale_size +#define GaimBuddyList PurpleBuddyList +#define GaimBlistUiOps PurpleBlistUiOps +#define GaimBlistNode PurpleBlistNode + +#define GaimChat PurpleChat +#define GaimGroup PurpleGroup +#define GaimContact PurpleContact +#define GaimBuddy PurpleBuddy + +#define GAIM_BLIST_GROUP_NODE PURPLE_BLIST_GROUP_NODE +#define GAIM_BLIST_CONTACT_NODE PURPLE_BLIST_CONTACT_NODE +#define GAIM_BLIST_BUDDY_NODE PURPLE_BLIST_BUDDY_NODE +#define GAIM_BLIST_CHAT_NODE PURPLE_BLIST_CHAT_NODE +#define GAIM_BLIST_OTHER_NODE PURPLE_BLIST_OTHER_NODE +#define GaimBlistNodeType PurpleBlistNodeType + +#define GAIM_BLIST_NODE_IS_CHAT PURPLE_BLIST_NODE_IS_CHAT +#define GAIM_BLIST_NODE_IS_BUDDY PURPLE_BLIST_NODE_IS_BUDDY +#define GAIM_BLIST_NODE_IS_CONTACT PURPLE_BLIST_NODE_IS_CONTACT +#define GAIM_BLIST_NODE_IS_GROUP PURPLE_BLIST_NODE_IS_GROUP + +#define GAIM_BUDDY_IS_ONLINE PURPLE_BUDDY_IS_ONLINE + +#define GAIM_BLIST_NODE_FLAG_NO_SAVE PURPLE_BLIST_NODE_FLAG_NO_SAVE +#define GaimBlistNodeFlags PurpleBlistNodeFlags + +#define GAIM_BLIST_NODE_HAS_FLAG PURPLE_BLIST_NODE_HAS_FLAG +#define GAIM_BLIST_NODE_SHOULD_SAVE PURPLE_BLIST_NODE_SHOULD_SAVE + +#define GAIM_BLIST_NODE_NAME PURPLE_BLIST_NODE_NAME + + +#define gaim_blist_new purple_blist_new +#define gaim_set_blist purple_set_blist +#define gaim_get_blist purple_get_blist + +#define gaim_blist_get_root purple_blist_get_root +#define gaim_blist_node_next purple_blist_node_next + +#define gaim_blist_show purple_blist_show + +#define gaim_blist_destroy purple_blist_destroy + +#define gaim_blist_set_visible purple_blist_set_visible + +#define gaim_blist_update_buddy_status purple_blist_update_buddy_status +#define gaim_blist_update_buddy_icon purple_blist_update_buddy_icon + + +#define gaim_blist_alias_contact purple_blist_alias_contact +#define gaim_blist_alias_buddy purple_blist_alias_buddy +#define gaim_blist_server_alias_buddy purple_blist_server_alias_buddy +#define gaim_blist_alias_chat purple_blist_alias_chat + +#define gaim_blist_rename_buddy purple_blist_rename_buddy +#define gaim_blist_rename_group purple_blist_rename_group + +#define gaim_chat_new purple_chat_new +#define gaim_blist_add_chat purple_blist_add_chat + +#define gaim_buddy_new purple_buddy_new +#define gaim_buddy_set_icon purple_buddy_set_icon +#define gaim_buddy_get_account purple_buddy_get_account +#define gaim_buddy_get_name purple_buddy_get_name +#define gaim_buddy_get_icon purple_buddy_get_icon +#define gaim_buddy_get_contact purple_buddy_get_contact +#define gaim_buddy_get_presence purple_buddy_get_presence + +#define gaim_blist_add_buddy purple_blist_add_buddy + +#define gaim_group_new purple_group_new + +#define gaim_blist_add_group purple_blist_add_group + +#define gaim_contact_new purple_contact_new + +#define gaim_blist_add_contact purple_blist_add_contact +#define gaim_blist_merge_contact purple_blist_merge_contact + +#define gaim_contact_get_priority_buddy purple_contact_get_priority_buddy +#define gaim_contact_set_alias purple_contact_set_alias +#define gaim_contact_get_alias purple_contact_get_alias +#define gaim_contact_on_account purple_contact_on_account + +#define gaim_contact_invalidate_priority_buddy purple_contact_invalidate_priority_buddy + +#define gaim_blist_remove_buddy purple_blist_remove_buddy +#define gaim_blist_remove_contact purple_blist_remove_contact +#define gaim_blist_remove_chat purple_blist_remove_chat +#define gaim_blist_remove_group purple_blist_remove_group + +#define gaim_buddy_get_alias_only purple_buddy_get_alias_only +#define gaim_buddy_get_server_alias purple_buddy_get_server_alias +#define gaim_buddy_get_contact_alias purple_buddy_get_contact_alias +#define gaim_buddy_get_local_alias purple_buddy_get_local_alias +#define gaim_buddy_get_alias purple_buddy_get_alias + +#define gaim_chat_get_name purple_chat_get_name + +#define gaim_find_buddy purple_find_buddy +#define gaim_find_buddy_in_group purple_find_buddy_in_group +#define gaim_find_buddies purple_find_buddies + +#define gaim_find_group purple_find_group + +#define gaim_blist_find_chat purple_blist_find_chat + +#define gaim_chat_get_group purple_chat_get_group +#define gaim_buddy_get_group purple_buddy_get_group + +#define gaim_group_get_accounts purple_group_get_accounts +#define gaim_group_on_account purple_group_on_account + +#define gaim_blist_add_account purple_blist_add_account +#define gaim_blist_remove_account purple_blist_remove_account + +#define gaim_blist_get_group_size purple_blist_get_group_size +#define gaim_blist_get_group_online_count purple_blist_get_group_online_count + +#define gaim_blist_load purple_blist_load +#define gaim_blist_schedule_save purple_blist_schedule_save + +#define gaim_blist_request_add_buddy purple_blist_request_add_buddy +#define gaim_blist_request_add_chat purple_blist_request_add_chat +#define gaim_blist_request_add_group purple_blist_request_add_group + +#define gaim_blist_node_set_bool purple_blist_node_set_bool +#define gaim_blist_node_get_bool purple_blist_node_get_bool +#define gaim_blist_node_set_int purple_blist_node_set_int +#define gaim_blist_node_get_int purple_blist_node_get_int +#define gaim_blist_node_set_string purple_blist_node_set_string +#define gaim_blist_node_get_string purple_blist_node_get_string + +#define gaim_blist_node_remove_setting purple_blist_node_remove_setting + +#define gaim_blist_node_set_flags purple_blist_node_set_flags +#define gaim_blist_node_get_flags purple_blist_node_get_flags + +#define gaim_blist_node_get_extended_menu purple_blist_node_get_extended_menu + +#define gaim_blist_set_ui_ops purple_blist_set_ui_ops +#define gaim_blist_get_ui_ops purple_blist_get_ui_ops + +#define gaim_blist_get_handle purple_blist_get_handle + +#define gaim_blist_init purple_blist_init +#define gaim_blist_uninit purple_blist_uninit + + +#define GaimBuddyIcon PurpleBuddyIcon + +#define gaim_buddy_icon_new purple_buddy_icon_new +#define gaim_buddy_icon_destroy purple_buddy_icon_destroy +#define gaim_buddy_icon_ref purple_buddy_icon_ref +#define gaim_buddy_icon_unref purple_buddy_icon_unref +#define gaim_buddy_icon_update purple_buddy_icon_update +#define gaim_buddy_icon_cache purple_buddy_icon_cache +#define gaim_buddy_icon_uncache purple_buddy_icon_uncache + +#define gaim_buddy_icon_set_account purple_buddy_icon_set_account +#define gaim_buddy_icon_set_username purple_buddy_icon_set_username +#define gaim_buddy_icon_set_data purple_buddy_icon_set_data +#define gaim_buddy_icon_set_path purple_buddy_icon_set_path + +#define gaim_buddy_icon_get_account purple_buddy_icon_get_account +#define gaim_buddy_icon_get_username purple_buddy_icon_get_username +#define gaim_buddy_icon_get_data purple_buddy_icon_get_data +#define gaim_buddy_icon_get_path purple_buddy_icon_get_path +#define gaim_buddy_icon_get_type purple_buddy_icon_get_type + +#define gaim_buddy_icons_set_for_user purple_buddy_icons_set_for_user +#define gaim_buddy_icons_find purple_buddy_icons_find +#define gaim_buddy_icons_set_caching purple_buddy_icons_set_caching +#define gaim_buddy_icons_is_caching purple_buddy_icons_is_caching +#define gaim_buddy_icons_set_cache_dir purple_buddy_icons_set_cache_dir +#define gaim_buddy_icons_get_cache_dir purple_buddy_icons_get_cache_dir +#define gaim_buddy_icons_get_full_path purple_buddy_icons_get_full_path +#define gaim_buddy_icons_get_handle purple_buddy_icons_get_handle + +#define gaim_buddy_icons_init purple_buddy_icons_init +#define gaim_buddy_icons_uninit purple_buddy_icons_uninit + +#define gaim_buddy_icon_get_scale_size purple_buddy_icon_get_scale_size /* from cipher.h */ -#define PURPLE_CIPHER PURPLE_CIPHER -#define PURPLE_CIPHER_OPS PURPLE_CIPHER_OPS -#define PURPLE_CIPHER_CONTEXT PURPLE_CIPHER_CONTEXT - -#define PurpleCipher PurpleCipher -#define PurpleCipherOps PurpleCipherOps -#define PurpleCipherContext PurpleCipherContext - -#define PURPLE_CIPHER_CAPS_SET_OPT PURPLE_CIPHER_CAPS_SET_OPT -#define PURPLE_CIPHER_CAPS_GET_OPT PURPLE_CIPHER_CAPS_GET_OPT -#define PURPLE_CIPHER_CAPS_INIT PURPLE_CIPHER_CAPS_INIT -#define PURPLE_CIPHER_CAPS_RESET PURPLE_CIPHER_CAPS_RESET -#define PURPLE_CIPHER_CAPS_UNINIT PURPLE_CIPHER_CAPS_UNINIT -#define PURPLE_CIPHER_CAPS_SET_IV PURPLE_CIPHER_CAPS_SET_IV -#define PURPLE_CIPHER_CAPS_APPEND PURPLE_CIPHER_CAPS_APPEND -#define PURPLE_CIPHER_CAPS_DIGEST PURPLE_CIPHER_CAPS_DIGEST -#define PURPLE_CIPHER_CAPS_ENCRYPT PURPLE_CIPHER_CAPS_ENCRYPT -#define PURPLE_CIPHER_CAPS_DECRYPT PURPLE_CIPHER_CAPS_DECRYPT -#define PURPLE_CIPHER_CAPS_SET_SALT PURPLE_CIPHER_CAPS_SET_SALT -#define PURPLE_CIPHER_CAPS_GET_SALT_SIZE PURPLE_CIPHER_CAPS_GET_SALT_SIZE -#define PURPLE_CIPHER_CAPS_SET_KEY PURPLE_CIPHER_CAPS_SET_KEY -#define PURPLE_CIPHER_CAPS_GET_KEY_SIZE PURPLE_CIPHER_CAPS_GET_KEY_SIZE -#define PURPLE_CIPHER_CAPS_UNKNOWN PURPLE_CIPHER_CAPS_UNKNOWN - -#define purple_cipher_get_name purple_cipher_get_name -#define purple_cipher_get_capabilities purple_cipher_get_capabilities -#define purple_cipher_digest_region purple_cipher_digest_region - -#define purple_ciphers_find_cipher purple_ciphers_find_cipher -#define purple_ciphers_register_cipher purple_ciphers_register_cipher -#define purple_ciphers_unregister_cipher purple_ciphers_unregister_cipher -#define purple_ciphers_get_ciphers purple_ciphers_get_ciphers - -#define purple_ciphers_get_handle purple_ciphers_get_handle -#define purple_ciphers_init purple_ciphers_init -#define purple_ciphers_uninit purple_ciphers_uninit - -#define purple_cipher_context_set_option purple_cipher_context_set_option -#define purple_cipher_context_get_option purple_cipher_context_get_option - -#define purple_cipher_context_new purple_cipher_context_new -#define purple_cipher_context_new_by_name purple_cipher_context_new_by_name -#define purple_cipher_context_reset purple_cipher_context_reset -#define purple_cipher_context_destroy purple_cipher_context_destroy -#define purple_cipher_context_set_iv purple_cipher_context_set_iv -#define purple_cipher_context_append purple_cipher_context_append -#define purple_cipher_context_digest purple_cipher_context_digest -#define purple_cipher_context_digest_to_str purple_cipher_context_digest_to_str -#define purple_cipher_context_encrypt purple_cipher_context_encrypt -#define purple_cipher_context_decrypt purple_cipher_context_decrypt -#define purple_cipher_context_set_salt purple_cipher_context_set_salt -#define purple_cipher_context_get_salt_size purple_cipher_context_get_salt_size -#define purple_cipher_context_set_key purple_cipher_context_set_key -#define purple_cipher_context_get_key_size purple_cipher_context_get_key_size -#define purple_cipher_context_set_data purple_cipher_context_set_data -#define purple_cipher_context_get_data purple_cipher_context_get_data - -#define purple_cipher_http_digest_calculate_session_key \ +#define GAIM_CIPHER PURPLE_CIPHER +#define GAIM_CIPHER_OPS PURPLE_CIPHER_OPS +#define GAIM_CIPHER_CONTEXT PURPLE_CIPHER_CONTEXT + +#define GaimCipher PurpleCipher +#define GaimCipherOps PurpleCipherOps +#define GaimCipherContext PurpleCipherContext + +#define GAIM_CIPHER_CAPS_SET_OPT PURPLE_CIPHER_CAPS_SET_OPT +#define GAIM_CIPHER_CAPS_GET_OPT PURPLE_CIPHER_CAPS_GET_OPT +#define GAIM_CIPHER_CAPS_INIT PURPLE_CIPHER_CAPS_INIT +#define GAIM_CIPHER_CAPS_RESET PURPLE_CIPHER_CAPS_RESET +#define GAIM_CIPHER_CAPS_UNINIT PURPLE_CIPHER_CAPS_UNINIT +#define GAIM_CIPHER_CAPS_SET_IV PURPLE_CIPHER_CAPS_SET_IV +#define GAIM_CIPHER_CAPS_APPEND PURPLE_CIPHER_CAPS_APPEND +#define GAIM_CIPHER_CAPS_DIGEST PURPLE_CIPHER_CAPS_DIGEST +#define GAIM_CIPHER_CAPS_ENCRYPT PURPLE_CIPHER_CAPS_ENCRYPT +#define GAIM_CIPHER_CAPS_DECRYPT PURPLE_CIPHER_CAPS_DECRYPT +#define GAIM_CIPHER_CAPS_SET_SALT PURPLE_CIPHER_CAPS_SET_SALT +#define GAIM_CIPHER_CAPS_GET_SALT_SIZE PURPLE_CIPHER_CAPS_GET_SALT_SIZE +#define GAIM_CIPHER_CAPS_SET_KEY PURPLE_CIPHER_CAPS_SET_KEY +#define GAIM_CIPHER_CAPS_GET_KEY_SIZE PURPLE_CIPHER_CAPS_GET_KEY_SIZE +#define GAIM_CIPHER_CAPS_UNKNOWN PURPLE_CIPHER_CAPS_UNKNOWN + +#define gaim_cipher_get_name purple_cipher_get_name +#define gaim_cipher_get_capabilities purple_cipher_get_capabilities +#define gaim_cipher_digest_region purple_cipher_digest_region + +#define gaim_ciphers_find_cipher purple_ciphers_find_cipher +#define gaim_ciphers_register_cipher purple_ciphers_register_cipher +#define gaim_ciphers_unregister_cipher purple_ciphers_unregister_cipher +#define gaim_ciphers_get_ciphers purple_ciphers_get_ciphers + +#define gaim_ciphers_get_handle purple_ciphers_get_handle +#define gaim_ciphers_init purple_ciphers_init +#define gaim_ciphers_uninit purple_ciphers_uninit + +#define gaim_cipher_context_set_option purple_cipher_context_set_option +#define gaim_cipher_context_get_option purple_cipher_context_get_option + +#define gaim_cipher_context_new purple_cipher_context_new +#define gaim_cipher_context_new_by_name purple_cipher_context_new_by_name +#define gaim_cipher_context_reset purple_cipher_context_reset +#define gaim_cipher_context_destroy purple_cipher_context_destroy +#define gaim_cipher_context_set_iv purple_cipher_context_set_iv +#define gaim_cipher_context_append purple_cipher_context_append +#define gaim_cipher_context_digest purple_cipher_context_digest +#define gaim_cipher_context_digest_to_str purple_cipher_context_digest_to_str +#define gaim_cipher_context_encrypt purple_cipher_context_encrypt +#define gaim_cipher_context_decrypt purple_cipher_context_decrypt +#define gaim_cipher_context_set_salt purple_cipher_context_set_salt +#define gaim_cipher_context_get_salt_size purple_cipher_context_get_salt_size +#define gaim_cipher_context_set_key purple_cipher_context_set_key +#define gaim_cipher_context_get_key_size purple_cipher_context_get_key_size +#define gaim_cipher_context_set_data purple_cipher_context_set_data +#define gaim_cipher_context_get_data purple_cipher_context_get_data + +#define gaim_cipher_http_digest_calculate_session_key \ purple_cipher_http_digest_calculate_session_key -#define purple_cipher_http_digest_calculate_response \ +#define gaim_cipher_http_digest_calculate_response \ purple_cipher_http_digest_calculate_response /* from circbuffer.h */ -#define PurpleCircBuffer PurpleCircBuffer - -#define purple_circ_buffer_new purple_circ_buffer_new -#define purple_circ_buffer_destroy purple_circ_buffer_destroy -#define purple_circ_buffer_append purple_circ_buffer_append -#define purple_circ_buffer_get_max_read purple_circ_buffer_get_max_read -#define purple_circ_buffer_mark_read purple_circ_buffer_mark_read +#define GaimCircBuffer PurpleCircBuffer + +#define gaim_circ_buffer_new purple_circ_buffer_new +#define gaim_circ_buffer_destroy purple_circ_buffer_destroy +#define gaim_circ_buffer_append purple_circ_buffer_append +#define gaim_circ_buffer_get_max_read purple_circ_buffer_get_max_read +#define gaim_circ_buffer_mark_read purple_circ_buffer_mark_read /* from cmds.h */ -#define PurpleCmdPriority PurpleCmdPriority -#define PurpleCmdFlag PurpleCmdFlag -#define PurpleCmdStatus PurpleCmdStatus -#define PurpleCmdRet PurpleCmdRet - -#define PURPLE_CMD_FUNC PURPLE_CMD_FUNC - -#define PurpleCmdFunc PurpleCmdFunc - -#define PurpleCmdId PurpleCmdId - -#define purple_cmd_register purple_cmd_register -#define purple_cmd_unregister purple_cmd_unregister -#define purple_cmd_do_command purple_cmd_do_command -#define purple_cmd_list purple_cmd_list -#define purple_cmd_help purple_cmd_help +#define GaimCmdPriority PurpleCmdPriority +#define GaimCmdFlag PurpleCmdFlag +#define GaimCmdStatus PurpleCmdStatus +#define GaimCmdRet PurpleCmdRet + +#define GAIM_CMD_STATUS_OK PURPLE_CMD_STATUS_OK +#define GAIM_CMD_STATUS_FAILED PURPLE_CMD_STATUS_FAILED +#define GAIM_CMD_STATUS_NOT_FOUND PURPLE_CMD_STATUS_NOT_FOUND +#define GAIM_CMD_STATUS_WRONG_ARGS PURPLE_CMD_STATUS_WRONG_ARGS +#define GAIM_CMD_STATUS_WRONG_PRPL PURPLE_CMD_STATUS_WRONG_PRPL +#define GAIM_CMD_STATUS_WRONG_TYPE PURPLE_CMD_STATUS_WRONG_TYPE + +#define GAIM_CMD_FUNC PURPLE_CMD_FUNC + +#define GaimCmdFunc PurpleCmdFunc + +#define GaimCmdId PurpleCmdId + +#define gaim_cmd_register purple_cmd_register +#define gaim_cmd_unregister purple_cmd_unregister +#define gaim_cmd_do_command purple_cmd_do_command +#define gaim_cmd_list purple_cmd_list +#define gaim_cmd_help purple_cmd_help /* from connection.h */ -#define PurpleConnection PurpleConnection - -#define PURPLE_CONNECTION_HTML PURPLE_CONNECTION_HTML -#define PURPLE_CONNECTION_NO_BGCOLOR PURPLE_CONNECTION_NO_BGCOLOR -#define PURPLE_CONNECTION_AUTO_RESP PURPLE_CONNECTION_AUTO_RESP -#define PURPLE_CONNECTION_FORMATTING_WBFO PURPLE_CONNECTION_FORMATTING_WBFO -#define PURPLE_CONNECTION_NO_NEWLINES PURPLE_CONNECTION_NO_NEWLINES -#define PURPLE_CONNECTION_NO_FONTSIZE PURPLE_CONNECTION_NO_FONTSIZE -#define PURPLE_CONNECTION_NO_URLDESC PURPLE_CONNECTION_NO_URLDESC -#define PURPLE_CONNECTION_NO_IMAGES PURPLE_CONNECTION_NO_IMAGES - -#define PurpleConnectionFlags PurpleConnectionFlags - -#define PURPLE_DISCONNECTED PURPLE_DISCONNECTED -#define PURPLE_CONNECTED PURPLE_CONNECTED -#define PURPLE_CONNECTING PURPLE_CONNECTING - -#define PurpleConnectionState PurpleConnectionState - -#define PurpleConnectionUiOps PurpleConnectionUiOps - -#define purple_connection_new purple_connection_new -#define purple_connection_destroy purple_connection_destroy - -#define purple_connection_set_state purple_connection_set_state -#define purple_connection_set_account purple_connection_set_account -#define purple_connection_set_display_name purple_connection_set_display_name -#define purple_connection_get_state purple_connection_get_state - -#define PURPLE_CONNECTION_IS_CONNECTED PURPLE_CONNECTION_IS_CONNECTED - -#define purple_connection_get_account purple_connection_get_account -#define purple_connection_get_password purple_connection_get_password -#define purple_connection_get_display_name purple_connection_get_display_name - -#define purple_connection_update_progress purple_connection_update_progress - -#define purple_connection_notice purple_connection_notice -#define purple_connection_error purple_connection_error - -#define purple_connections_disconnect_all purple_connections_disconnect_all - -#define purple_connections_get_all purple_connections_get_all -#define purple_connections_get_connecting purple_connections_get_connecting - -#define PURPLE_CONNECTION_IS_VALID PURPLE_CONNECTION_IS_VALID - -#define purple_connections_set_ui_ops purple_connections_set_ui_ops -#define purple_connections_get_ui_ops purple_connections_get_ui_ops - -#define purple_connections_init purple_connections_init -#define purple_connections_uninit purple_connections_uninit -#define purple_connections_get_handle purple_connections_get_handle +#define GaimConnection PurpleConnection + +#define GAIM_CONNECTION_HTML PURPLE_CONNECTION_HTML +#define GAIM_CONNECTION_NO_BGCOLOR PURPLE_CONNECTION_NO_BGCOLOR +#define GAIM_CONNECTION_AUTO_RESP PURPLE_CONNECTION_AUTO_RESP +#define GAIM_CONNECTION_FORMATTING_WBFO PURPLE_CONNECTION_FORMATTING_WBFO +#define GAIM_CONNECTION_NO_NEWLINES PURPLE_CONNECTION_NO_NEWLINES +#define GAIM_CONNECTION_NO_FONTSIZE PURPLE_CONNECTION_NO_FONTSIZE +#define GAIM_CONNECTION_NO_URLDESC PURPLE_CONNECTION_NO_URLDESC +#define GAIM_CONNECTION_NO_IMAGES PURPLE_CONNECTION_NO_IMAGES + +#define GaimConnectionFlags PurpleConnectionFlags + +#define GAIM_DISCONNECTED PURPLE_DISCONNECTED +#define GAIM_CONNECTED PURPLE_CONNECTED +#define GAIM_CONNECTING PURPLE_CONNECTING + +#define GaimConnectionState PurpleConnectionState + +#define GaimConnectionUiOps PurpleConnectionUiOps + +#define gaim_connection_new purple_connection_new +#define gaim_connection_destroy purple_connection_destroy + +#define gaim_connection_set_state purple_connection_set_state +#define gaim_connection_set_account purple_connection_set_account +#define gaim_connection_set_display_name purple_connection_set_display_name +#define gaim_connection_get_state purple_connection_get_state + +#define GAIM_CONNECTION_IS_CONNECTED PURPLE_CONNECTION_IS_CONNECTED + +#define gaim_connection_get_account purple_connection_get_account +#define gaim_connection_get_password purple_connection_get_password +#define gaim_connection_get_display_name purple_connection_get_display_name + +#define gaim_connection_update_progress purple_connection_update_progress + +#define gaim_connection_notice purple_connection_notice +#define gaim_connection_error purple_connection_error + +#define gaim_connections_disconnect_all purple_connections_disconnect_all + +#define gaim_connections_get_all purple_connections_get_all +#define gaim_connections_get_connecting purple_connections_get_connecting + +#define GAIM_CONNECTION_IS_VALID PURPLE_CONNECTION_IS_VALID + +#define gaim_connections_set_ui_ops purple_connections_set_ui_ops +#define gaim_connections_get_ui_ops purple_connections_get_ui_ops + +#define gaim_connections_init purple_connections_init +#define gaim_connections_uninit purple_connections_uninit +#define gaim_connections_get_handle purple_connections_get_handle /* from conversation.h */ -#define PurpleConversationUiOps PurpleConversationUiOps -#define PurpleConversation PurpleConversation -#define PurpleConvIm PurpleConvIm -#define PurpleConvChat PurpleConvChat -#define PurpleConvChatBuddy PurpleConvChatBuddy - -#define PURPLE_CONV_TYPE_UNKNOWN PURPLE_CONV_TYPE_UNKNOWN -#define PURPLE_CONV_TYPE_IM PURPLE_CONV_TYPE_IM -#define PURPLE_CONV_TYPE_CHAT PURPLE_CONV_TYPE_CHAT -#define PURPLE_CONV_TYPE_MISC PURPLE_CONV_TYPE_MISC -#define PURPLE_CONV_TYPE_ANY PURPLE_CONV_TYPE_ANY - -#define PurpleConversationType PurpleConversationType - -#define PURPLE_CONV_UPDATE_ADD PURPLE_CONV_UPDATE_ADD -#define PURPLE_CONV_UPDATE_REMOVE PURPLE_CONV_UPDATE_REMOVE -#define PURPLE_CONV_UPDATE_ACCOUNT PURPLE_CONV_UPDATE_ACCOUNT -#define PURPLE_CONV_UPDATE_TYPING PURPLE_CONV_UPDATE_TYPING -#define PURPLE_CONV_UPDATE_UNSEEN PURPLE_CONV_UPDATE_UNSEEN -#define PURPLE_CONV_UPDATE_LOGGING PURPLE_CONV_UPDATE_LOGGING -#define PURPLE_CONV_UPDATE_TOPIC PURPLE_CONV_UPDATE_TOPIC -#define PURPLE_CONV_ACCOUNT_ONLINE PURPLE_CONV_ACCOUNT_ONLINE -#define PURPLE_CONV_ACCOUNT_OFFLINE PURPLE_CONV_ACCOUNT_OFFLINE -#define PURPLE_CONV_UPDATE_AWAY PURPLE_CONV_UPDATE_AWAY -#define PURPLE_CONV_UPDATE_ICON PURPLE_CONV_UPDATE_ICON -#define PURPLE_CONV_UPDATE_TITLE PURPLE_CONV_UPDATE_TITLE -#define PURPLE_CONV_UPDATE_CHATLEFT PURPLE_CONV_UPDATE_CHATLEFT -#define PURPLE_CONV_UPDATE_FEATURES PURPLE_CONV_UPDATE_FEATURES - -#define PurpleConvUpdateType PurpleConvUpdateType - -#define PURPLE_NOT_TYPING PURPLE_NOT_TYPING -#define PURPLE_TYPING PURPLE_TYPING -#define PURPLE_TYPED PURPLE_TYPED - -#define PurpleTypingState PurpleTypingState - -#define PURPLE_MESSAGE_SEND PURPLE_MESSAGE_SEND -#define PURPLE_MESSAGE_RECV PURPLE_MESSAGE_RECV -#define PURPLE_MESSAGE_SYSTEM PURPLE_MESSAGE_SYSTEM -#define PURPLE_MESSAGE_AUTO_RESP PURPLE_MESSAGE_AUTO_RESP -#define PURPLE_MESSAGE_ACTIVE_ONLY PURPLE_MESSAGE_ACTIVE_ONLY -#define PURPLE_MESSAGE_NICK PURPLE_MESSAGE_NICK -#define PURPLE_MESSAGE_NO_LOG PURPLE_MESSAGE_NO_LOG -#define PURPLE_MESSAGE_WHISPER PURPLE_MESSAGE_WHISPER -#define PURPLE_MESSAGE_ERROR PURPLE_MESSAGE_ERROR -#define PURPLE_MESSAGE_DELAYED PURPLE_MESSAGE_DELAYED -#define PURPLE_MESSAGE_RAW PURPLE_MESSAGE_RAW -#define PURPLE_MESSAGE_IMAGES PURPLE_MESSAGE_IMAGES - -#define PurpleMessageFlags PurpleMessageFlags - -#define PURPLE_CBFLAGS_NONE PURPLE_CBFLAGS_NONE -#define PURPLE_CBFLAGS_VOICE PURPLE_CBFLAGS_VOICE -#define PURPLE_CBFLAGS_HALFOP PURPLE_CBFLAGS_HALFOP -#define PURPLE_CBFLAGS_OP PURPLE_CBFLAGS_OP -#define PURPLE_CBFLAGS_FOUNDER PURPLE_CBFLAGS_FOUNDER -#define PURPLE_CBFLAGS_TYPING PURPLE_CBFLAGS_TYPING - -#define PurpleConvChatBuddyFlags PurpleConvChatBuddyFlags - -#define purple_conversations_set_ui_ops purple_conversations_set_ui_ops - -#define purple_conversation_new purple_conversation_new -#define purple_conversation_destroy purple_conversation_destroy -#define purple_conversation_present purple_conversation_present -#define purple_conversation_get_type purple_conversation_get_type -#define purple_conversation_set_ui_ops purple_conversation_set_ui_ops -#define purple_conversation_get_ui_ops purple_conversation_get_ui_ops -#define purple_conversation_set_account purple_conversation_set_account -#define purple_conversation_get_account purple_conversation_get_account -#define purple_conversation_get_gc purple_conversation_get_gc -#define purple_conversation_set_title purple_conversation_set_title -#define purple_conversation_get_title purple_conversation_get_title -#define purple_conversation_autoset_title purple_conversation_autoset_title -#define purple_conversation_set_name purple_conversation_set_name -#define purple_conversation_get_name purple_conversation_get_name -#define purple_conversation_set_logging purple_conversation_set_logging -#define purple_conversation_is_logging purple_conversation_is_logging -#define purple_conversation_close_logs purple_conversation_close_logs -#define purple_conversation_get_im_data purple_conversation_get_im_data - -#define PURPLE_CONV_IM PURPLE_CONV_IM - -#define purple_conversation_get_chat_data purple_conversation_get_chat_data - -#define PURPLE_CONV_CHAT PURPLE_CONV_CHAT - -#define purple_conversation_set_data purple_conversation_set_data -#define purple_conversation_get_data purple_conversation_get_data - -#define purple_get_conversations purple_get_conversations -#define purple_get_ims purple_get_ims -#define purple_get_chats purple_get_chats - -#define purple_find_conversation_with_account \ +#define GaimConversationUiOps PurpleConversationUiOps +#define GaimConversation PurpleConversation +#define GaimConvIm PurpleConvIm +#define GaimConvChat PurpleConvChat +#define GaimConvChatBuddy PurpleConvChatBuddy + +#define GAIM_CONV_TYPE_UNKNOWN PURPLE_CONV_TYPE_UNKNOWN +#define GAIM_CONV_TYPE_IM PURPLE_CONV_TYPE_IM +#define GAIM_CONV_TYPE_CHAT PURPLE_CONV_TYPE_CHAT +#define GAIM_CONV_TYPE_MISC PURPLE_CONV_TYPE_MISC +#define GAIM_CONV_TYPE_ANY PURPLE_CONV_TYPE_ANY + +#define GaimConversationType PurpleConversationType + +#define GAIM_CONV_UPDATE_ADD PURPLE_CONV_UPDATE_ADD +#define GAIM_CONV_UPDATE_REMOVE PURPLE_CONV_UPDATE_REMOVE +#define GAIM_CONV_UPDATE_ACCOUNT PURPLE_CONV_UPDATE_ACCOUNT +#define GAIM_CONV_UPDATE_TYPING PURPLE_CONV_UPDATE_TYPING +#define GAIM_CONV_UPDATE_UNSEEN PURPLE_CONV_UPDATE_UNSEEN +#define GAIM_CONV_UPDATE_LOGGING PURPLE_CONV_UPDATE_LOGGING +#define GAIM_CONV_UPDATE_TOPIC PURPLE_CONV_UPDATE_TOPIC +#define GAIM_CONV_ACCOUNT_ONLINE PURPLE_CONV_ACCOUNT_ONLINE +#define GAIM_CONV_ACCOUNT_OFFLINE PURPLE_CONV_ACCOUNT_OFFLINE +#define GAIM_CONV_UPDATE_AWAY PURPLE_CONV_UPDATE_AWAY +#define GAIM_CONV_UPDATE_ICON PURPLE_CONV_UPDATE_ICON +#define GAIM_CONV_UPDATE_TITLE PURPLE_CONV_UPDATE_TITLE +#define GAIM_CONV_UPDATE_CHATLEFT PURPLE_CONV_UPDATE_CHATLEFT +#define GAIM_CONV_UPDATE_FEATURES PURPLE_CONV_UPDATE_FEATURES + +#define GaimConvUpdateType PurpleConvUpdateType + +#define GAIM_NOT_TYPING PURPLE_NOT_TYPING +#define GAIM_TYPING PURPLE_TYPING +#define GAIM_TYPED PURPLE_TYPED + +#define GaimTypingState PurpleTypingState + +#define GAIM_MESSAGE_SEND PURPLE_MESSAGE_SEND +#define GAIM_MESSAGE_RECV PURPLE_MESSAGE_RECV +#define GAIM_MESSAGE_SYSTEM PURPLE_MESSAGE_SYSTEM +#define GAIM_MESSAGE_AUTO_RESP PURPLE_MESSAGE_AUTO_RESP +#define GAIM_MESSAGE_ACTIVE_ONLY PURPLE_MESSAGE_ACTIVE_ONLY +#define GAIM_MESSAGE_NICK PURPLE_MESSAGE_NICK +#define GAIM_MESSAGE_NO_LOG PURPLE_MESSAGE_NO_LOG +#define GAIM_MESSAGE_WHISPER PURPLE_MESSAGE_WHISPER +#define GAIM_MESSAGE_ERROR PURPLE_MESSAGE_ERROR +#define GAIM_MESSAGE_DELAYED PURPLE_MESSAGE_DELAYED +#define GAIM_MESSAGE_RAW PURPLE_MESSAGE_RAW +#define GAIM_MESSAGE_IMAGES PURPLE_MESSAGE_IMAGES + +#define GaimMessageFlags PurpleMessageFlags + +#define GAIM_CBFLAGS_NONE PURPLE_CBFLAGS_NONE +#define GAIM_CBFLAGS_VOICE PURPLE_CBFLAGS_VOICE +#define GAIM_CBFLAGS_HALFOP PURPLE_CBFLAGS_HALFOP +#define GAIM_CBFLAGS_OP PURPLE_CBFLAGS_OP +#define GAIM_CBFLAGS_FOUNDER PURPLE_CBFLAGS_FOUNDER +#define GAIM_CBFLAGS_TYPING PURPLE_CBFLAGS_TYPING + +#define GaimConvChatBuddyFlags PurpleConvChatBuddyFlags + +#define gaim_conversations_set_ui_ops purple_conversations_set_ui_ops + +#define gaim_conversation_new purple_conversation_new +#define gaim_conversation_destroy purple_conversation_destroy +#define gaim_conversation_present purple_conversation_present +#define gaim_conversation_get_type purple_conversation_get_type +#define gaim_conversation_set_ui_ops purple_conversation_set_ui_ops +#define gaim_conversation_get_ui_ops purple_conversation_get_ui_ops +#define gaim_conversation_set_account purple_conversation_set_account +#define gaim_conversation_get_account purple_conversation_get_account +#define gaim_conversation_get_gc purple_conversation_get_gc +#define gaim_conversation_set_title purple_conversation_set_title +#define gaim_conversation_get_title purple_conversation_get_title +#define gaim_conversation_autoset_title purple_conversation_autoset_title +#define gaim_conversation_set_name purple_conversation_set_name +#define gaim_conversation_get_name purple_conversation_get_name +#define gaim_conversation_set_logging purple_conversation_set_logging +#define gaim_conversation_is_logging purple_conversation_is_logging +#define gaim_conversation_close_logs purple_conversation_close_logs +#define gaim_conversation_get_im_data purple_conversation_get_im_data + +#define GAIM_CONV_IM PURPLE_CONV_IM + +#define gaim_conversation_get_chat_data purple_conversation_get_chat_data + +#define GAIM_CONV_CHAT PURPLE_CONV_CHAT + +#define gaim_conversation_set_data purple_conversation_set_data +#define gaim_conversation_get_data purple_conversation_get_data + +#define gaim_get_conversations purple_get_conversations +#define gaim_get_ims purple_get_ims +#define gaim_get_chats purple_get_chats + +#define gaim_find_conversation_with_account \ purple_find_conversation_with_account -#define purple_conversation_write purple_conversation_write -#define purple_conversation_set_features purple_conversation_set_features -#define purple_conversation_get_features purple_conversation_get_features -#define purple_conversation_has_focus purple_conversation_has_focus -#define purple_conversation_update purple_conversation_update -#define purple_conversation_foreach purple_conversation_foreach - -#define purple_conv_im_get_conversation purple_conv_im_get_conversation -#define purple_conv_im_set_icon purple_conv_im_set_icon -#define purple_conv_im_get_icon purple_conv_im_get_icon -#define purple_conv_im_set_typing_state purple_conv_im_set_typing_state -#define purple_conv_im_get_typing_state purple_conv_im_get_typing_state - -#define purple_conv_im_start_typing_timeout purple_conv_im_start_typing_timeout -#define purple_conv_im_stop_typing_timeout purple_conv_im_stop_typing_timeout -#define purple_conv_im_get_typing_timeout purple_conv_im_get_typing_timeout -#define purple_conv_im_set_type_again purple_conv_im_set_type_again -#define purple_conv_im_get_type_again purple_conv_im_get_type_again - -#define purple_conv_im_start_send_typed_timeout \ +#define gaim_conversation_write purple_conversation_write +#define gaim_conversation_set_features purple_conversation_set_features +#define gaim_conversation_get_features purple_conversation_get_features +#define gaim_conversation_has_focus purple_conversation_has_focus +#define gaim_conversation_update purple_conversation_update +#define gaim_conversation_foreach purple_conversation_foreach + +#define gaim_conv_im_get_conversation purple_conv_im_get_conversation +#define gaim_conv_im_set_icon purple_conv_im_set_icon +#define gaim_conv_im_get_icon purple_conv_im_get_icon +#define gaim_conv_im_set_typing_state purple_conv_im_set_typing_state +#define gaim_conv_im_get_typing_state purple_conv_im_get_typing_state + +#define gaim_conv_im_start_typing_timeout purple_conv_im_start_typing_timeout +#define gaim_conv_im_stop_typing_timeout purple_conv_im_stop_typing_timeout +#define gaim_conv_im_get_typing_timeout purple_conv_im_get_typing_timeout +#define gaim_conv_im_set_type_again purple_conv_im_set_type_again +#define gaim_conv_im_get_type_again purple_conv_im_get_type_again + +#define gaim_conv_im_start_send_typed_timeout \ purple_conv_im_start_send_typed_timeout -#define purple_conv_im_stop_send_typed_timeout \ +#define gaim_conv_im_stop_send_typed_timeout \ purple_conv_im_stop_send_typed_timeout -#define purple_conv_im_get_send_typed_timeout \ +#define gaim_conv_im_get_send_typed_timeout \ purple_conv_im_get_send_typed_timeout -#define purple_conv_present_error purple_conv_present_error -#define purple_conv_send_confirm purple_conv_send_confirm - -#define purple_conv_im_update_typing purple_conv_im_update_typing -#define purple_conv_im_write purple_conv_im_write -#define purple_conv_im_send purple_conv_im_send -#define purple_conv_im_send_with_flags purple_conv_im_send_with_flags - -#define purple_conv_custom_smiley_add purple_conv_custom_smiley_add -#define purple_conv_custom_smiley_write purple_conv_custom_smiley_write -#define purple_conv_custom_smiley_close purple_conv_custom_smiley_close - -#define purple_conv_chat_get_conversation purple_conv_chat_get_conversation -#define purple_conv_chat_set_users purple_conv_chat_set_users -#define purple_conv_chat_get_users purple_conv_chat_get_users -#define purple_conv_chat_ignore purple_conv_chat_ignore -#define purple_conv_chat_unignore purple_conv_chat_unignore -#define purple_conv_chat_set_ignored purple_conv_chat_set_ignored -#define purple_conv_chat_get_ignored purple_conv_chat_get_ignored -#define purple_conv_chat_get_ignored_user purple_conv_chat_get_ignored_user -#define purple_conv_chat_is_user_ignored purple_conv_chat_is_user_ignored -#define purple_conv_chat_set_topic purple_conv_chat_set_topic -#define purple_conv_chat_get_topic purple_conv_chat_get_topic -#define purple_conv_chat_set_id purple_conv_chat_set_id -#define purple_conv_chat_get_id purple_conv_chat_get_id -#define purple_conv_chat_write purple_conv_chat_write -#define purple_conv_chat_send purple_conv_chat_send -#define purple_conv_chat_send_with_flags purple_conv_chat_send_with_flags -#define purple_conv_chat_add_user purple_conv_chat_add_user -#define purple_conv_chat_add_users purple_conv_chat_add_users -#define purple_conv_chat_rename_user purple_conv_chat_rename_user -#define purple_conv_chat_remove_user purple_conv_chat_remove_user -#define purple_conv_chat_remove_users purple_conv_chat_remove_users -#define purple_conv_chat_find_user purple_conv_chat_find_user -#define purple_conv_chat_user_set_flags purple_conv_chat_user_set_flags -#define purple_conv_chat_user_get_flags purple_conv_chat_user_get_flags -#define purple_conv_chat_clear_users purple_conv_chat_clear_users -#define purple_conv_chat_set_nick purple_conv_chat_set_nick -#define purple_conv_chat_get_nick purple_conv_chat_get_nick -#define purple_conv_chat_left purple_conv_chat_left -#define purple_conv_chat_has_left purple_conv_chat_has_left - -#define purple_find_chat purple_find_chat - -#define purple_conv_chat_cb_new purple_conv_chat_cb_new -#define purple_conv_chat_cb_find purple_conv_chat_cb_find -#define purple_conv_chat_cb_get_name purple_conv_chat_cb_get_name -#define purple_conv_chat_cb_destroy purple_conv_chat_cb_destroy - -#define purple_conversations_get_handle purple_conversations_get_handle -#define purple_conversations_init purple_conversations_init -#define purple_conversations_uninit purple_conversations_uninit +#define gaim_conv_present_error purple_conv_present_error +#define gaim_conv_send_confirm purple_conv_send_confirm + +#define gaim_conv_im_update_typing purple_conv_im_update_typing +#define gaim_conv_im_write purple_conv_im_write +#define gaim_conv_im_send purple_conv_im_send +#define gaim_conv_im_send_with_flags purple_conv_im_send_with_flags + +#define gaim_conv_custom_smiley_add purple_conv_custom_smiley_add +#define gaim_conv_custom_smiley_write purple_conv_custom_smiley_write +#define gaim_conv_custom_smiley_close purple_conv_custom_smiley_close + +#define gaim_conv_chat_get_conversation purple_conv_chat_get_conversation +#define gaim_conv_chat_set_users purple_conv_chat_set_users +#define gaim_conv_chat_get_users purple_conv_chat_get_users +#define gaim_conv_chat_ignore purple_conv_chat_ignore +#define gaim_conv_chat_unignore purple_conv_chat_unignore +#define gaim_conv_chat_set_ignored purple_conv_chat_set_ignored +#define gaim_conv_chat_get_ignored purple_conv_chat_get_ignored +#define gaim_conv_chat_get_ignored_user purple_conv_chat_get_ignored_user +#define gaim_conv_chat_is_user_ignored purple_conv_chat_is_user_ignored +#define gaim_conv_chat_set_topic purple_conv_chat_set_topic +#define gaim_conv_chat_get_topic purple_conv_chat_get_topic +#define gaim_conv_chat_set_id purple_conv_chat_set_id +#define gaim_conv_chat_get_id purple_conv_chat_get_id +#define gaim_conv_chat_write purple_conv_chat_write +#define gaim_conv_chat_send purple_conv_chat_send +#define gaim_conv_chat_send_with_flags purple_conv_chat_send_with_flags +#define gaim_conv_chat_add_user purple_conv_chat_add_user +#define gaim_conv_chat_add_users purple_conv_chat_add_users +#define gaim_conv_chat_rename_user purple_conv_chat_rename_user +#define gaim_conv_chat_remove_user purple_conv_chat_remove_user +#define gaim_conv_chat_remove_users purple_conv_chat_remove_users +#define gaim_conv_chat_find_user purple_conv_chat_find_user +#define gaim_conv_chat_user_set_flags purple_conv_chat_user_set_flags +#define gaim_conv_chat_user_get_flags purple_conv_chat_user_get_flags +#define gaim_conv_chat_clear_users purple_conv_chat_clear_users +#define gaim_conv_chat_set_nick purple_conv_chat_set_nick +#define gaim_conv_chat_get_nick purple_conv_chat_get_nick +#define gaim_conv_chat_left purple_conv_chat_left +#define gaim_conv_chat_has_left purple_conv_chat_has_left + +#define gaim_find_chat purple_find_chat + +#define gaim_conv_chat_cb_new purple_conv_chat_cb_new +#define gaim_conv_chat_cb_find purple_conv_chat_cb_find +#define gaim_conv_chat_cb_get_name purple_conv_chat_cb_get_name +#define gaim_conv_chat_cb_destroy purple_conv_chat_cb_destroy + +#define gaim_conversations_get_handle purple_conversations_get_handle +#define gaim_conversations_init purple_conversations_init +#define gaim_conversations_uninit purple_conversations_uninit /* from core.h */ -#define PurpleCore PurpleCore - -#define PurpleCoreUiOps PurpleCoreUiOps - -#define purple_core_init purple_core_init -#define purple_core_quit purple_core_quit - -#define purple_core_quit_cb purple_core_quit_cb -#define purple_core_get_version purple_core_get_version -#define purple_core_get_ui purple_core_get_ui -#define purple_get_core purple_get_core -#define purple_core_set_ui_ops purple_core_set_ui_ops -#define purple_core_get_ui_ops purple_core_get_ui_ops +#define GaimCore PurpleCore + +#define GaimCoreUiOps PurpleCoreUiOps + +#define gaim_core_init purple_core_init +#define gaim_core_quit purple_core_quit + +#define gaim_core_quit_cb purple_core_quit_cb +#define gaim_core_get_version purple_core_get_version +#define gaim_core_get_ui purple_core_get_ui +#define gaim_get_core purple_get_core +#define gaim_core_set_ui_ops purple_core_set_ui_ops +#define gaim_core_get_ui_ops purple_core_get_ui_ops /* from debug.h */ -#define PURPLE_DEBUG_ALL PURPLE_DEBUG_ALL -#define PURPLE_DEBUG_MISC PURPLE_DEBUG_MISC -#define PURPLE_DEBUG_INFO PURPLE_DEBUG_INFO -#define PURPLE_DEBUG_WARNING PURPLE_DEBUG_WARNING -#define PURPLE_DEBUG_ERROR PURPLE_DEBUG_ERROR -#define PURPLE_DEBUG_FATAL PURPLE_DEBUG_FATAL - -#define PurpleDebugLevel PurpleDebugLevel - -#define PurpleDebugUiOps PurpleDebugUiOps - - -#define purple_debug purple_debug -#define purple_debug_misc purple_debug_misc -#define purple_debug_info purple_debug_info -#define purple_debug_warning purple_debug_warning -#define purple_debug_error purple_debug_error -#define purple_debug_fatal purple_debug_fatal - -#define purple_debug_set_enabled purple_debug_set_enabled -#define purple_debug_is_enabled purple_debug_is_enabled - -#define purple_debug_set_ui_ops purple_debug_set_ui_ops -#define purple_debug_get_ui_ops purple_debug_get_ui_ops - -#define purple_debug_init purple_debug_init +#define GAIM_DEBUG_ALL PURPLE_DEBUG_ALL +#define GAIM_DEBUG_MISC PURPLE_DEBUG_MISC +#define GAIM_DEBUG_INFO PURPLE_DEBUG_INFO +#define GAIM_DEBUG_WARNING PURPLE_DEBUG_WARNING +#define GAIM_DEBUG_ERROR PURPLE_DEBUG_ERROR +#define GAIM_DEBUG_FATAL PURPLE_DEBUG_FATAL + +#define GaimDebugLevel PurpleDebugLevel + +#define GaimDebugUiOps PurpleDebugUiOps + + +#define gaim_debug purple_debug +#define gaim_debug_misc purple_debug_misc +#define gaim_debug_info purple_debug_info +#define gaim_debug_warning purple_debug_warning +#define gaim_debug_error purple_debug_error +#define gaim_debug_fatal purple_debug_fatal + +#define gaim_debug_set_enabled purple_debug_set_enabled +#define gaim_debug_is_enabled purple_debug_is_enabled + +#define gaim_debug_set_ui_ops purple_debug_set_ui_ops +#define gaim_debug_get_ui_ops purple_debug_get_ui_ops + +#define gaim_debug_init purple_debug_init /* from desktopitem.h */ -#define PURPLE_DESKTOP_ITEM_TYPE_NULL PURPLE_DESKTOP_ITEM_TYPE_NULL -#define PURPLE_DESKTOP_ITEM_TYPE_OTHER PURPLE_DESKTOP_ITEM_TYPE_OTHER -#define PURPLE_DESKTOP_ITEM_TYPE_APPLICATION PURPLE_DESKTOP_ITEM_TYPE_APPLICATION -#define PURPLE_DESKTOP_ITEM_TYPE_LINK PURPLE_DESKTOP_ITEM_TYPE_LINK -#define PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE -#define PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE -#define PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY -#define PURPLE_DESKTOP_ITEM_TYPE_SERVICE PURPLE_DESKTOP_ITEM_TYPE_SERVICE -#define PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE - -#define PurpleDesktopItemType PurpleDesktopItemType - -#define PurpleDesktopItem PurpleDesktopItem - -#define PURPLE_TYPE_DESKTOP_ITEM PURPLE_TYPE_DESKTOP_ITEM -#define purple_desktop_item_get_type purple_desktop_item_get_type +#define GAIM_DESKTOP_ITEM_TYPE_NULL PURPLE_DESKTOP_ITEM_TYPE_NULL +#define GAIM_DESKTOP_ITEM_TYPE_OTHER PURPLE_DESKTOP_ITEM_TYPE_OTHER +#define GAIM_DESKTOP_ITEM_TYPE_APPLICATION PURPLE_DESKTOP_ITEM_TYPE_APPLICATION +#define GAIM_DESKTOP_ITEM_TYPE_LINK PURPLE_DESKTOP_ITEM_TYPE_LINK +#define GAIM_DESKTOP_ITEM_TYPE_FSDEVICE PURPLE_DESKTOP_ITEM_TYPE_FSDEVICE +#define GAIM_DESKTOP_ITEM_TYPE_MIME_TYPE PURPLE_DESKTOP_ITEM_TYPE_MIME_TYPE +#define GAIM_DESKTOP_ITEM_TYPE_DIRECTORY PURPLE_DESKTOP_ITEM_TYPE_DIRECTORY +#define GAIM_DESKTOP_ITEM_TYPE_SERVICE PURPLE_DESKTOP_ITEM_TYPE_SERVICE +#define GAIM_DESKTOP_ITEM_TYPE_SERVICE_TYPE PURPLE_DESKTOP_ITEM_TYPE_SERVICE_TYPE + +#define GaimDesktopItemType PurpleDesktopItemType + +#define GaimDesktopItem PurpleDesktopItem + +#define GAIM_TYPE_DESKTOP_ITEM PURPLE_TYPE_DESKTOP_ITEM +#define gaim_desktop_item_get_type purple_desktop_item_get_type /* standard */ /* ugh, i'm just copying these as strings, rather than pidginifying them */ -#define PURPLE_DESKTOP_ITEM_ENCODING "Encoding" /* string */ -#define PURPLE_DESKTOP_ITEM_VERSION "Version" /* numeric */ -#define PURPLE_DESKTOP_ITEM_NAME "Name" /* localestring */ -#define PURPLE_DESKTOP_ITEM_GENERIC_NAME "GenericName" /* localestring */ -#define PURPLE_DESKTOP_ITEM_TYPE "Type" /* string */ -#define PURPLE_DESKTOP_ITEM_FILE_PATTERN "FilePattern" /* regexp(s) */ -#define PURPLE_DESKTOP_ITEM_TRY_EXEC "TryExec" /* string */ -#define PURPLE_DESKTOP_ITEM_NO_DISPLAY "NoDisplay" /* boolean */ -#define PURPLE_DESKTOP_ITEM_COMMENT "Comment" /* localestring */ -#define PURPLE_DESKTOP_ITEM_EXEC "Exec" /* string */ -#define PURPLE_DESKTOP_ITEM_ACTIONS "Actions" /* strings */ -#define PURPLE_DESKTOP_ITEM_ICON "Icon" /* string */ -#define PURPLE_DESKTOP_ITEM_MINI_ICON "MiniIcon" /* string */ -#define PURPLE_DESKTOP_ITEM_HIDDEN "Hidden" /* boolean */ -#define PURPLE_DESKTOP_ITEM_PATH "Path" /* string */ -#define PURPLE_DESKTOP_ITEM_TERMINAL "Terminal" /* boolean */ -#define PURPLE_DESKTOP_ITEM_TERMINAL_OPTIONS "TerminalOptions" /* string */ -#define PURPLE_DESKTOP_ITEM_SWALLOW_TITLE "SwallowTitle" /* string */ -#define PURPLE_DESKTOP_ITEM_SWALLOW_EXEC "SwallowExec" /* string */ -#define PURPLE_DESKTOP_ITEM_MIME_TYPE "MimeType" /* regexp(s) */ -#define PURPLE_DESKTOP_ITEM_PATTERNS "Patterns" /* regexp(s) */ -#define PURPLE_DESKTOP_ITEM_DEFAULT_APP "DefaultApp" /* string */ -#define PURPLE_DESKTOP_ITEM_DEV "Dev" /* string */ -#define PURPLE_DESKTOP_ITEM_FS_TYPE "FSType" /* string */ -#define PURPLE_DESKTOP_ITEM_MOUNT_POINT "MountPoint" /* string */ -#define PURPLE_DESKTOP_ITEM_READ_ONLY "ReadOnly" /* boolean */ -#define PURPLE_DESKTOP_ITEM_UNMOUNT_ICON "UnmountIcon" /* string */ -#define PURPLE_DESKTOP_ITEM_SORT_ORDER "SortOrder" /* strings */ -#define PURPLE_DESKTOP_ITEM_URL "URL" /* string */ -#define PURPLE_DESKTOP_ITEM_DOC_PATH "X-GNOME-DocPath" /* string */ - -#define purple_desktop_item_new_from_file purple_desktop_item_new_from_file -#define purple_desktop_item_get_entry_type purple_desktop_item_get_entry_type -#define purple_desktop_item_get_string purple_desktop_item_get_string -#define purple_desktop_item_copy purple_desktop_item_copy -#define purple_desktop_item_unref purple_desktop_item_unref +#define GAIM_DESKTOP_ITEM_ENCODING "Encoding" /* string */ +#define GAIM_DESKTOP_ITEM_VERSION "Version" /* numeric */ +#define GAIM_DESKTOP_ITEM_NAME "Name" /* localestring */ +#define GAIM_DESKTOP_ITEM_GENERIC_NAME "GenericName" /* localestring */ +#define GAIM_DESKTOP_ITEM_TYPE "Type" /* string */ +#define GAIM_DESKTOP_ITEM_FILE_PATTERN "FilePattern" /* regexp(s) */ +#define GAIM_DESKTOP_ITEM_TRY_EXEC "TryExec" /* string */ +#define GAIM_DESKTOP_ITEM_NO_DISPLAY "NoDisplay" /* boolean */ +#define GAIM_DESKTOP_ITEM_COMMENT "Comment" /* localestring */ +#define GAIM_DESKTOP_ITEM_EXEC "Exec" /* string */ +#define GAIM_DESKTOP_ITEM_ACTIONS "Actions" /* strings */ +#define GAIM_DESKTOP_ITEM_ICON "Icon" /* string */ +#define GAIM_DESKTOP_ITEM_MINI_ICON "MiniIcon" /* string */ +#define GAIM_DESKTOP_ITEM_HIDDEN "Hidden" /* boolean */ +#define GAIM_DESKTOP_ITEM_PATH "Path" /* string */ +#define GAIM_DESKTOP_ITEM_TERMINAL "Terminal" /* boolean */ +#define GAIM_DESKTOP_ITEM_TERMINAL_OPTIONS "TerminalOptions" /* string */ +#define GAIM_DESKTOP_ITEM_SWALLOW_TITLE "SwallowTitle" /* string */ +#define GAIM_DESKTOP_ITEM_SWALLOW_EXEC "SwallowExec" /* string */ +#define GAIM_DESKTOP_ITEM_MIME_TYPE "MimeType" /* regexp(s) */ +#define GAIM_DESKTOP_ITEM_PATTERNS "Patterns" /* regexp(s) */ +#define GAIM_DESKTOP_ITEM_DEFAULT_APP "DefaultApp" /* string */ +#define GAIM_DESKTOP_ITEM_DEV "Dev" /* string */ +#define GAIM_DESKTOP_ITEM_FS_TYPE "FSType" /* string */ +#define GAIM_DESKTOP_ITEM_MOUNT_POINT "MountPoint" /* string */ +#define GAIM_DESKTOP_ITEM_READ_ONLY "ReadOnly" /* boolean */ +#define GAIM_DESKTOP_ITEM_UNMOUNT_ICON "UnmountIcon" /* string */ +#define GAIM_DESKTOP_ITEM_SORT_ORDER "SortOrder" /* strings */ +#define GAIM_DESKTOP_ITEM_URL "URL" /* string */ +#define GAIM_DESKTOP_ITEM_DOC_PATH "X-GNOME-DocPath" /* string */ + +#define gaim_desktop_item_new_from_file purple_desktop_item_new_from_file +#define gaim_desktop_item_get_entry_type purple_desktop_item_get_entry_type +#define gaim_desktop_item_get_string purple_desktop_item_get_string +#define gaim_desktop_item_copy purple_desktop_item_copy +#define gaim_desktop_item_unref purple_desktop_item_unref /* from dnsquery.h */ -#define PurpleDnsQueryData PurpleDnsQueryData -#define PurpleDnsQueryConnectFunction PurpleDnsQueryConnectFunction - -#define purple_dnsquery_a purple_dnsquery_a -#define purple_dnsquery_destroy purple_dnsquery_destroy -#define purple_dnsquery_init purple_dnsquery_init -#define purple_dnsquery_uninit purple_dnsquery_uninit +#define GaimDnsQueryData PurpleDnsQueryData +#define GaimDnsQueryConnectFunction PurpleDnsQueryConnectFunction + +#define gaim_dnsquery_a purple_dnsquery_a +#define gaim_dnsquery_destroy purple_dnsquery_destroy +#define gaim_dnsquery_init purple_dnsquery_init +#define gaim_dnsquery_uninit purple_dnsquery_uninit +#define gaim_dnsquery_set_ui_ops purple_dnsquery_set_ui_ops +#define gaim_dnsquery_get_host purple_dnsquery_get_host +#define gaim_dnsquery_get_port purple_dnsquery_get_port /* from dnssrv.h */ -#define PurpleSrvResponse PurpleSrvResponse -#define PurpleSrvQueryData PurpleSrvQueryData -#define PurpleSrvCallback PurpleSrvCallback - -#define purple_srv_resolve purple_srv_resolve -#define purple_srv_cancel purple_srv_cancel +#define GaimSrvResponse PurpleSrvResponse +#define GaimSrvQueryData PurpleSrvQueryData +#define GaimSrvCallback PurpleSrvCallback + +#define gaim_srv_resolve purple_srv_resolve +#define gaim_srv_cancel purple_srv_cancel /* from eventloop.h */ -#define PURPLE_INPUT_READ PURPLE_INPUT_READ -#define PURPLE_INPUT_WRITE PURPLE_INPUT_WRITE - -#define PurpleInputCondition PurpleInputCondition -#define PurpleInputFunction PurpleInputFunction -#define PurpleEventLoopUiOps PurpleEventLoopUiOps - -#define purple_timeout_add purple_timeout_add -#define purple_timeout_remove purple_timeout_remove -#define purple_input_add purple_input_add -#define purple_input_remove purple_input_remove - -#define purple_eventloop_set_ui_ops purple_eventloop_set_ui_ops -#define purple_eventloop_get_ui_ops purple_eventloop_get_ui_ops +#define GAIM_INPUT_READ PURPLE_INPUT_READ +#define GAIM_INPUT_WRITE PURPLE_INPUT_WRITE + +#define GaimInputCondition PurpleInputCondition +#define GaimInputFunction PurpleInputFunction +#define GaimEventLoopUiOps PurpleEventLoopUiOps + +#define gaim_timeout_add purple_timeout_add +#define gaim_timeout_remove purple_timeout_remove +#define gaim_input_add purple_input_add +#define gaim_input_remove purple_input_remove + +#define gaim_eventloop_set_ui_ops purple_eventloop_set_ui_ops +#define gaim_eventloop_get_ui_ops purple_eventloop_get_ui_ops /* from ft.h */ -#define PurpleXfer PurpleXfer - -#define PURPLE_XFER_UNKNOWN PURPLE_XFER_UNKNOWN -#define PURPLE_XFER_SEND PURPLE_XFER_SEND -#define PURPLE_XFER_RECEIVE PURPLE_XFER_RECEIVE - -#define PurpleXferType PurpleXferType - -#define PURPLE_XFER_STATUS_UNKNOWN PURPLE_XFER_STATUS_UNKNOWN -#define PURPLE_XFER_STATUS_NOT_STARTED PURPLE_XFER_STATUS_NOT_STARTED -#define PURPLE_XFER_STATUS_ACCEPTED PURPLE_XFER_STATUS_ACCEPTED -#define PURPLE_XFER_STATUS_STARTED PURPLE_XFER_STATUS_STARTED -#define PURPLE_XFER_STATUS_DONE PURPLE_XFER_STATUS_DONE -#define PURPLE_XFER_STATUS_CANCEL_LOCAL PURPLE_XFER_STATUS_CANCEL_LOCAL -#define PURPLE_XFER_STATUS_CANCEL_REMOTE PURPLE_XFER_STATUS_CANCEL_REMOTE - -#define PurpleXferStatusType PurpleXferStatusType - -#define PurpleXferUiOps PurpleXferUiOps - -#define purple_xfer_new purple_xfer_new -#define purple_xfer_ref purple_xfer_ref -#define purple_xfer_unref purple_xfer_unref -#define purple_xfer_request purple_xfer_request -#define purple_xfer_request_accepted purple_xfer_request_accepted -#define purple_xfer_request_denied purple_xfer_request_denied -#define purple_xfer_get_type purple_xfer_get_type -#define purple_xfer_get_account purple_xfer_get_account -#define purple_xfer_get_status purple_xfer_get_status -#define purple_xfer_is_canceled purple_xfer_is_canceled -#define purple_xfer_is_completed purple_xfer_is_completed -#define purple_xfer_get_filename purple_xfer_get_filename -#define purple_xfer_get_local_filename purple_xfer_get_local_filename -#define purple_xfer_get_bytes_sent purple_xfer_get_bytes_sent -#define purple_xfer_get_bytes_remaining purple_xfer_get_bytes_remaining -#define purple_xfer_get_size purple_xfer_get_size -#define purple_xfer_get_progress purple_xfer_get_progress -#define purple_xfer_get_local_port purple_xfer_get_local_port -#define purple_xfer_get_remote_ip purple_xfer_get_remote_ip -#define purple_xfer_get_remote_port purple_xfer_get_remote_port -#define purple_xfer_set_completed purple_xfer_set_completed -#define purple_xfer_set_message purple_xfer_set_message -#define purple_xfer_set_filename purple_xfer_set_filename -#define purple_xfer_set_local_filename purple_xfer_set_local_filename -#define purple_xfer_set_size purple_xfer_set_size -#define purple_xfer_set_bytes_sent purple_xfer_set_bytes_sent -#define purple_xfer_get_ui_ops purple_xfer_get_ui_ops -#define purple_xfer_set_read_fnc purple_xfer_set_read_fnc -#define purple_xfer_set_write_fnc purple_xfer_set_write_fnc -#define purple_xfer_set_ack_fnc purple_xfer_set_ack_fnc -#define purple_xfer_set_request_denied_fnc purple_xfer_set_request_denied_fnc -#define purple_xfer_set_init_fnc purple_xfer_set_init_fnc -#define purple_xfer_set_start_fnc purple_xfer_set_start_fnc -#define purple_xfer_set_end_fnc purple_xfer_set_end_fnc -#define purple_xfer_set_cancel_send_fnc purple_xfer_set_cancel_send_fnc -#define purple_xfer_set_cancel_recv_fnc purple_xfer_set_cancel_recv_fnc - -#define purple_xfer_read purple_xfer_read -#define purple_xfer_write purple_xfer_write -#define purple_xfer_start purple_xfer_start -#define purple_xfer_end purple_xfer_end -#define purple_xfer_add purple_xfer_add -#define purple_xfer_cancel_local purple_xfer_cancel_local -#define purple_xfer_cancel_remote purple_xfer_cancel_remote -#define purple_xfer_error purple_xfer_error -#define purple_xfer_update_progress purple_xfer_update_progress -#define purple_xfer_conversation_write purple_xfer_conversation_write - -#define purple_xfers_get_handle purple_xfers_get_handle -#define purple_xfers_init purple_xfers_init -#define purple_xfers_uninit purple_xfers_uninit -#define purple_xfers_set_ui_ops purple_xfers_set_ui_ops -#define purple_xfers_get_ui_ops purple_xfers_get_ui_ops - -/* from purple-client.h */ +#define GaimXfer PurpleXfer + +#define GAIM_XFER_UNKNOWN PURPLE_XFER_UNKNOWN +#define GAIM_XFER_SEND PURPLE_XFER_SEND +#define GAIM_XFER_RECEIVE PURPLE_XFER_RECEIVE + +#define GaimXferType PurpleXferType + +#define GAIM_XFER_STATUS_UNKNOWN PURPLE_XFER_STATUS_UNKNOWN +#define GAIM_XFER_STATUS_NOT_STARTED PURPLE_XFER_STATUS_NOT_STARTED +#define GAIM_XFER_STATUS_ACCEPTED PURPLE_XFER_STATUS_ACCEPTED +#define GAIM_XFER_STATUS_STARTED PURPLE_XFER_STATUS_STARTED +#define GAIM_XFER_STATUS_DONE PURPLE_XFER_STATUS_DONE +#define GAIM_XFER_STATUS_CANCEL_LOCAL PURPLE_XFER_STATUS_CANCEL_LOCAL +#define GAIM_XFER_STATUS_CANCEL_REMOTE PURPLE_XFER_STATUS_CANCEL_REMOTE + +#define GaimXferStatusType PurpleXferStatusType + +#define GaimXferUiOps PurpleXferUiOps + +#define gaim_xfer_new purple_xfer_new +#define gaim_xfer_ref purple_xfer_ref +#define gaim_xfer_unref purple_xfer_unref +#define gaim_xfer_request purple_xfer_request +#define gaim_xfer_request_accepted purple_xfer_request_accepted +#define gaim_xfer_request_denied purple_xfer_request_denied +#define gaim_xfer_get_type purple_xfer_get_type +#define gaim_xfer_get_account purple_xfer_get_account +#define gaim_xfer_get_status purple_xfer_get_status +#define gaim_xfer_is_canceled purple_xfer_is_canceled +#define gaim_xfer_is_completed purple_xfer_is_completed +#define gaim_xfer_get_filename purple_xfer_get_filename +#define gaim_xfer_get_local_filename purple_xfer_get_local_filename +#define gaim_xfer_get_bytes_sent purple_xfer_get_bytes_sent +#define gaim_xfer_get_bytes_remaining purple_xfer_get_bytes_remaining +#define gaim_xfer_get_size purple_xfer_get_size +#define gaim_xfer_get_progress purple_xfer_get_progress +#define gaim_xfer_get_local_port purple_xfer_get_local_port +#define gaim_xfer_get_remote_ip purple_xfer_get_remote_ip +#define gaim_xfer_get_remote_port purple_xfer_get_remote_port +#define gaim_xfer_set_completed purple_xfer_set_completed +#define gaim_xfer_set_message purple_xfer_set_message +#define gaim_xfer_set_filename purple_xfer_set_filename +#define gaim_xfer_set_local_filename purple_xfer_set_local_filename +#define gaim_xfer_set_size purple_xfer_set_size +#define gaim_xfer_set_bytes_sent purple_xfer_set_bytes_sent +#define gaim_xfer_get_ui_ops purple_xfer_get_ui_ops +#define gaim_xfer_set_read_fnc purple_xfer_set_read_fnc +#define gaim_xfer_set_write_fnc purple_xfer_set_write_fnc +#define gaim_xfer_set_ack_fnc purple_xfer_set_ack_fnc +#define gaim_xfer_set_request_denied_fnc purple_xfer_set_request_denied_fnc +#define gaim_xfer_set_init_fnc purple_xfer_set_init_fnc +#define gaim_xfer_set_start_fnc purple_xfer_set_start_fnc +#define gaim_xfer_set_end_fnc purple_xfer_set_end_fnc +#define gaim_xfer_set_cancel_send_fnc purple_xfer_set_cancel_send_fnc +#define gaim_xfer_set_cancel_recv_fnc purple_xfer_set_cancel_recv_fnc + +#define gaim_xfer_read purple_xfer_read +#define gaim_xfer_write purple_xfer_write +#define gaim_xfer_start purple_xfer_start +#define gaim_xfer_end purple_xfer_end +#define gaim_xfer_add purple_xfer_add +#define gaim_xfer_cancel_local purple_xfer_cancel_local +#define gaim_xfer_cancel_remote purple_xfer_cancel_remote +#define gaim_xfer_error purple_xfer_error +#define gaim_xfer_update_progress purple_xfer_update_progress +#define gaim_xfer_conversation_write purple_xfer_conversation_write + +#define gaim_xfers_get_handle purple_xfers_get_handle +#define gaim_xfers_init purple_xfers_init +#define gaim_xfers_uninit purple_xfers_uninit +#define gaim_xfers_set_ui_ops purple_xfers_set_ui_ops +#define gaim_xfers_get_ui_ops purple_xfers_get_ui_ops + +/* from gaim-client.h */ /* XXX: should this be purple_init, or pidgin_init */ -#define purple_init purple_init +#define gaim_init purple_init /* from idle.h */ -#define PurpleIdleUiOps PurpleIdleUiOps - -#define purple_idle_touch purple_idle_touch -#define purple_idle_set purple_idle_set -#define purple_idle_set_ui_ops purple_idle_set_ui_ops -#define purple_idle_get_ui_ops purple_idle_get_ui_ops -#define purple_idle_init purple_idle_init -#define purple_idle_uninit purple_idle_uninit +#define GaimIdleUiOps PurpleIdleUiOps + +#define gaim_idle_touch purple_idle_touch +#define gaim_idle_set purple_idle_set +#define gaim_idle_set_ui_ops purple_idle_set_ui_ops +#define gaim_idle_get_ui_ops purple_idle_get_ui_ops +#define gaim_idle_init purple_idle_init +#define gaim_idle_uninit purple_idle_uninit /* from imgstore.h */ -#define PurpleStoredImage PurpleStoredImage - -#define purple_imgstore_add purple_imgstore_add -#define purple_imgstore_get purple_imgstore_get -#define purple_imgstore_get_data purple_imgstore_get_data -#define purple_imgstore_get_size purple_imgstore_get_size -#define purple_imgstore_get_filename purple_imgstore_get_filename -#define purple_imgstore_ref purple_imgstore_ref -#define purple_imgstore_unref purple_imgstore_unref +#define GaimStoredImage PurpleStoredImage + +#define gaim_imgstore_add purple_imgstore_add +#define gaim_imgstore_get purple_imgstore_get +#define gaim_imgstore_get_data purple_imgstore_get_data +#define gaim_imgstore_get_size purple_imgstore_get_size +#define gaim_imgstore_get_filename purple_imgstore_get_filename +#define gaim_imgstore_ref purple_imgstore_ref +#define gaim_imgstore_unref purple_imgstore_unref /* from log.h */ -#define PurpleLog PurpleLog -#define PurpleLogLogger PurpleLogLogger -#define PurpleLogCommonLoggerData PurpleLogCommonLoggerData -#define PurpleLogSet PurpleLogSet - -#define PURPLE_LOG_IM PURPLE_LOG_IM -#define PURPLE_LOG_CHAT PURPLE_LOG_CHAT -#define PURPLE_LOG_SYSTEM PURPLE_LOG_SYSTEM - -#define PurpleLogType PurpleLogType - -#define PURPLE_LOG_READ_NO_NEWLINE PURPLE_LOG_READ_NO_NEWLINE - -#define PurpleLogReadFlags PurpleLogReadFlags - -#define PurpleLogSetCallback PurpleLogSetCallback - -#define purple_log_new purple_log_new -#define purple_log_free purple_log_free -#define purple_log_write purple_log_write -#define purple_log_read purple_log_read - -#define purple_log_get_logs purple_log_get_logs -#define purple_log_get_log_sets purple_log_get_log_sets -#define purple_log_get_system_logs purple_log_get_system_logs -#define purple_log_get_size purple_log_get_size -#define purple_log_get_total_size purple_log_get_total_size -#define purple_log_get_log_dir purple_log_get_log_dir -#define purple_log_compare purple_log_compare -#define purple_log_set_compare purple_log_set_compare -#define purple_log_set_free purple_log_set_free - -#define purple_log_common_writer purple_log_common_writer -#define purple_log_common_lister purple_log_common_lister -#define purple_log_common_total_sizer purple_log_common_total_sizer -#define purple_log_common_sizer purple_log_common_sizer - -#define purple_log_logger_new purple_log_logger_new -#define purple_log_logger_free purple_log_logger_free -#define purple_log_logger_add purple_log_logger_add -#define purple_log_logger_remove purple_log_logger_remove -#define purple_log_logger_set purple_log_logger_set -#define purple_log_logger_get purple_log_logger_get - -#define purple_log_logger_get_options purple_log_logger_get_options - -#define purple_log_init purple_log_init -#define purple_log_get_handle purple_log_get_handle -#define purple_log_uninit purple_log_uninit +#define GaimLog PurpleLog +#define GaimLogLogger PurpleLogLogger +#define GaimLogCommonLoggerData PurpleLogCommonLoggerData +#define GaimLogSet PurpleLogSet + +#define GAIM_LOG_IM PURPLE_LOG_IM +#define GAIM_LOG_CHAT PURPLE_LOG_CHAT +#define GAIM_LOG_SYSTEM PURPLE_LOG_SYSTEM + +#define GaimLogType PurpleLogType + +#define GAIM_LOG_READ_NO_NEWLINE PURPLE_LOG_READ_NO_NEWLINE + +#define GaimLogReadFlags PurpleLogReadFlags + +#define GaimLogSetCallback PurpleLogSetCallback + +#define gaim_log_new purple_log_new +#define gaim_log_free purple_log_free +#define gaim_log_write purple_log_write +#define gaim_log_read purple_log_read + +#define gaim_log_get_logs purple_log_get_logs +#define gaim_log_get_log_sets purple_log_get_log_sets +#define gaim_log_get_system_logs purple_log_get_system_logs +#define gaim_log_get_size purple_log_get_size +#define gaim_log_get_total_size purple_log_get_total_size +#define gaim_log_get_log_dir purple_log_get_log_dir +#define gaim_log_compare purple_log_compare +#define gaim_log_set_compare purple_log_set_compare +#define gaim_log_set_free purple_log_set_free + +#define gaim_log_common_writer purple_log_common_writer +#define gaim_log_common_lister purple_log_common_lister +#define gaim_log_common_total_sizer purple_log_common_total_sizer +#define gaim_log_common_sizer purple_log_common_sizer + +#define gaim_log_logger_new purple_log_logger_new +#define gaim_log_logger_free purple_log_logger_free +#define gaim_log_logger_add purple_log_logger_add +#define gaim_log_logger_remove purple_log_logger_remove +#define gaim_log_logger_set purple_log_logger_set +#define gaim_log_logger_get purple_log_logger_get + +#define gaim_log_logger_get_options purple_log_logger_get_options + +#define gaim_log_init purple_log_init +#define gaim_log_get_handle purple_log_get_handle +#define gaim_log_uninit purple_log_uninit /* from mime.h */ -#define PurpleMimeDocument PurpleMimeDocument -#define PurpleMimePart PurpleMimePart - -#define purple_mime_document_new purple_mime_document_new -#define purple_mime_document_free purple_mime_document_free -#define purple_mime_document_parse purple_mime_document_parse -#define purple_mime_document_parsen purple_mime_document_parsen -#define purple_mime_document_write purple_mime_document_write -#define purple_mime_document_get_fields purple_mime_document_get_fields -#define purple_mime_document_get_field purple_mime_document_get_field -#define purple_mime_document_set_field purple_mime_document_set_field -#define purple_mime_document_get_parts purple_mime_document_get_parts - -#define purple_mime_part_new purple_mime_part_new -#define purple_mime_part_get_fields purple_mime_part_get_fields -#define purple_mime_part_get_field purple_mime_part_get_field -#define purple_mime_part_get_field_decoded purple_mime_part_get_field_decoded -#define purple_mime_part_set_field purple_mime_part_set_field -#define purple_mime_part_get_data purple_mime_part_get_data -#define purple_mime_part_get_data_decoded purple_mime_part_get_data_decoded -#define purple_mime_part_get_length purple_mime_part_get_length -#define purple_mime_part_set_data purple_mime_part_set_data +#define GaimMimeDocument PurpleMimeDocument +#define GaimMimePart PurpleMimePart + +#define gaim_mime_document_new purple_mime_document_new +#define gaim_mime_document_free purple_mime_document_free +#define gaim_mime_document_parse purple_mime_document_parse +#define gaim_mime_document_parsen purple_mime_document_parsen +#define gaim_mime_document_write purple_mime_document_write +#define gaim_mime_document_get_fields purple_mime_document_get_fields +#define gaim_mime_document_get_field purple_mime_document_get_field +#define gaim_mime_document_set_field purple_mime_document_set_field +#define gaim_mime_document_get_parts purple_mime_document_get_parts + +#define gaim_mime_part_new purple_mime_part_new +#define gaim_mime_part_get_fields purple_mime_part_get_fields +#define gaim_mime_part_get_field purple_mime_part_get_field +#define gaim_mime_part_get_field_decoded purple_mime_part_get_field_decoded +#define gaim_mime_part_set_field purple_mime_part_set_field +#define gaim_mime_part_get_data purple_mime_part_get_data +#define gaim_mime_part_get_data_decoded purple_mime_part_get_data_decoded +#define gaim_mime_part_get_length purple_mime_part_get_length +#define gaim_mime_part_set_data purple_mime_part_set_data /* from network.h */ -#define PurpleNetworkListenData PurpleNetworkListenData - -#define PurpleNetworkListenCallback PurpleNetworkListenCallback - -#define purple_network_ip_atoi purple_network_ip_atoi -#define purple_network_set_public_ip purple_network_set_public_ip -#define purple_network_get_public_ip purple_network_get_public_ip -#define purple_network_get_local_system_ip purple_network_get_local_system_ip -#define purple_network_get_my_ip purple_network_get_my_ip - -#define purple_network_listen purple_network_listen -#define purple_network_listen_range purple_network_listen_range -#define purple_network_listen_cancel purple_network_listen_cancel -#define purple_network_get_port_from_fd purple_network_get_port_from_fd - -#define purple_network_is_available purple_network_is_available - -#define purple_network_init purple_network_init -#define purple_network_uninit purple_network_uninit +#define GaimNetworkListenData PurpleNetworkListenData + +#define GaimNetworkListenCallback PurpleNetworkListenCallback + +#define gaim_network_ip_atoi purple_network_ip_atoi +#define gaim_network_set_public_ip purple_network_set_public_ip +#define gaim_network_get_public_ip purple_network_get_public_ip +#define gaim_network_get_local_system_ip purple_network_get_local_system_ip +#define gaim_network_get_my_ip purple_network_get_my_ip + +#define gaim_network_listen purple_network_listen +#define gaim_network_listen_range purple_network_listen_range +#define gaim_network_listen_cancel purple_network_listen_cancel +#define gaim_network_get_port_from_fd purple_network_get_port_from_fd + +#define gaim_network_is_available purple_network_is_available + +#define gaim_network_init purple_network_init +#define gaim_network_uninit purple_network_uninit /* from notify.h */ -#define PurpleNotifyUserInfoEntry PurpleNotifyUserInfoEntry -#define PurpleNotifyUserInfo PurpleNotifyUserInfo - -#define PurpleNotifyCloseCallback PurpleNotifyCloseCallback - -#define PURPLE_NOTIFY_MESSAGE PURPLE_NOTIFY_MESSAGE -#define PURPLE_NOTIFY_EMAIL PURPLE_NOTIFY_EMAIL -#define PURPLE_NOTIFY_EMAILS PURPLE_NOTIFY_EMAILS -#define PURPLE_NOTIFY_FORMATTED PURPLE_NOTIFY_FORMATTED -#define PURPLE_NOTIFY_SEARCHRESULTS PURPLE_NOTIFY_SEARCHRESULTS -#define PURPLE_NOTIFY_USERINFO PURPLE_NOTIFY_USERINFO -#define PURPLE_NOTIFY_URI PURPLE_NOTIFY_URI - -#define PurpleNotifyType PurpleNotifyType - -#define PURPLE_NOTIFY_MSG_ERROR PURPLE_NOTIFY_MSG_ERROR -#define PURPLE_NOTIFY_MSG_WARNING PURPLE_NOTIFY_MSG_WARNING -#define PURPLE_NOTIFY_MSG_INFO PURPLE_NOTIFY_MSG_INFO - -#define PurpleNotifyMsgType PurpleNotifyMsgType - -#define PURPLE_NOTIFY_BUTTON_LABELED PURPLE_NOTIFY_BUTTON_LABELED -#define PURPLE_NOTIFY_BUTTON_CONTINUE PURPLE_NOTIFY_BUTTON_CONTINUE -#define PURPLE_NOTIFY_BUTTON_ADD PURPLE_NOTIFY_BUTTON_ADD -#define PURPLE_NOTIFY_BUTTON_INFO PURPLE_NOTIFY_BUTTON_INFO -#define PURPLE_NOTIFY_BUTTON_IM PURPLE_NOTIFY_BUTTON_IM -#define PURPLE_NOTIFY_BUTTON_JOIN PURPLE_NOTIFY_BUTTON_JOIN -#define PURPLE_NOTIFY_BUTTON_INVITE PURPLE_NOTIFY_BUTTON_INVITE - -#define PurpleNotifySearchButtonType PurpleNotifySearchButtonType - -#define PurpleNotifySearchResults PurpleNotifySearchResult - -#define PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR -#define PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK -#define PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER - -#define PurpleNotifyUserInfoEntryType PurpleNotifyUserInfoEntryType - -#define PurpleNotifySearchColumn PurpleNotifySearchColumn -#define PurpleNotifySearchResultsCallback PurpleNotifySearchResultsCallback -#define PurpleNotifySearchButton PurpleNotifySearchButton - -#define PurpleNotifyUiOps PurpleNotifyUiOps - -#define purple_notify_searchresults purple_notify_searchresults -#define purple_notify_searchresults_free purple_notify_searchresults_free -#define purple_notify_searchresults_new_rows purple_notify_searchresults_new_rows -#define purple_notify_searchresults_button_add purple_notify_searchresults_button_add -#define purple_notify_searchresults_button_add_labeled purple_notify_searchresults_button_add_labeled -#define purple_notify_searchresults_new purple_notify_searchresults_new -#define purple_notify_searchresults_column_new purple_notify_searchresults_column_new -#define purple_notify_searchresults_column_add purple_notify_searchresults_column_add -#define purple_notify_searchresults_row_add purple_notify_searchresults_row_add -#define purple_notify_searchresults_get_rows_count purple_notify_searchresults_get_rows_count -#define purple_notify_searchresults_get_columns_count purple_notify_searchresults_get_columns_count -#define purple_notify_searchresults_row_get purple_notify_searchresults_row_get -#define purple_notify_searchresults_column_get_title purple_notify_searchresults_column_get_title - -#define purple_notify_message purple_notify_message -#define purple_notify_email purple_notify_email -#define purple_notify_emails purple_notify_emails -#define purple_notify_formatted purple_notify_formatted -#define purple_notify_userinfo purple_notify_userinfo - -#define purple_notify_user_info_new purple_notify_user_info_new -#define purple_notify_user_info_destroy purple_notify_user_info_destroy -#define purple_notify_user_info_get_entries purple_notify_user_info_get_entries -#define purple_notify_user_info_get_text_with_newline purple_notify_user_info_get_text_with_newline -#define purple_notify_user_info_add_pair purple_notify_user_info_add_pair -#define purple_notify_user_info_prepend_pair purple_notify_user_info_prepend_pair -#define purple_notify_user_info_remove_entry purple_notify_user_info_remove_entry -#define purple_notify_user_info_entry_new purple_notify_user_info_entry_new -#define purple_notify_user_info_add_section_break purple_notify_user_info_add_section_break -#define purple_notify_user_info_add_section_header purple_notify_user_info_add_section_header -#define purple_notify_user_info_remove_last_item purple_notify_user_info_remove_last_item -#define purple_notify_user_info_entry_get_label purple_notify_user_info_entry_get_label -#define purple_notify_user_info_entry_set_label purple_notify_user_info_entry_set_label -#define purple_notify_user_info_entry_get_value purple_notify_user_info_entry_get_value -#define purple_notify_user_info_entry_set_value purple_notify_user_info_entry_set_value -#define purple_notify_user_info_entry_get_type purple_notify_user_info_entry_get_type -#define purple_notify_user_info_entry_set_type purple_notify_user_info_entry_set_type - -#define purple_notify_uri purple_notify_uri -#define purple_notify_close purple_notify_close -#define purple_notify_close_with_handle purple_notify_close_with_handle - -#define purple_notify_info purple_notify_info -#define purple_notify_warning purple_notify_warning -#define purple_notify_error purple_notify_error - -#define purple_notify_set_ui_ops purple_notify_set_ui_ops -#define purple_notify_get_ui_ops purple_notify_get_ui_ops - -#define purple_notify_get_handle purple_notify_get_handle - -#define purple_notify_init purple_notify_init -#define purple_notify_uninit purple_notify_uninit +#define GaimNotifyUserInfoEntry PurpleNotifyUserInfoEntry +#define GaimNotifyUserInfo PurpleNotifyUserInfo + +#define GaimNotifyCloseCallback PurpleNotifyCloseCallback + +#define GAIM_NOTIFY_MESSAGE PURPLE_NOTIFY_MESSAGE +#define GAIM_NOTIFY_EMAIL PURPLE_NOTIFY_EMAIL +#define GAIM_NOTIFY_EMAILS PURPLE_NOTIFY_EMAILS +#define GAIM_NOTIFY_FORMATTED PURPLE_NOTIFY_FORMATTED +#define GAIM_NOTIFY_SEARCHRESULTS PURPLE_NOTIFY_SEARCHRESULTS +#define GAIM_NOTIFY_USERINFO PURPLE_NOTIFY_USERINFO +#define GAIM_NOTIFY_URI PURPLE_NOTIFY_URI + +#define GaimNotifyType PurpleNotifyType + +#define GAIM_NOTIFY_MSG_ERROR PURPLE_NOTIFY_MSG_ERROR +#define GAIM_NOTIFY_MSG_WARNING PURPLE_NOTIFY_MSG_WARNING +#define GAIM_NOTIFY_MSG_INFO PURPLE_NOTIFY_MSG_INFO + +#define GaimNotifyMsgType PurpleNotifyMsgType + +#define GAIM_NOTIFY_BUTTON_LABELED PURPLE_NOTIFY_BUTTON_LABELED +#define GAIM_NOTIFY_BUTTON_CONTINUE PURPLE_NOTIFY_BUTTON_CONTINUE +#define GAIM_NOTIFY_BUTTON_ADD PURPLE_NOTIFY_BUTTON_ADD +#define GAIM_NOTIFY_BUTTON_INFO PURPLE_NOTIFY_BUTTON_INFO +#define GAIM_NOTIFY_BUTTON_IM PURPLE_NOTIFY_BUTTON_IM +#define GAIM_NOTIFY_BUTTON_JOIN PURPLE_NOTIFY_BUTTON_JOIN +#define GAIM_NOTIFY_BUTTON_INVITE PURPLE_NOTIFY_BUTTON_INVITE + +#define GaimNotifySearchButtonType PurpleNotifySearchButtonType + +#define GaimNotifySearchResults PurpleNotifySearchResults + +#define GAIM_NOTIFY_USER_INFO_ENTRY_PAIR PURPLE_NOTIFY_USER_INFO_ENTRY_PAIR +#define GAIM_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_BREAK +#define GAIM_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER PURPLE_NOTIFY_USER_INFO_ENTRY_SECTION_HEADER + +#define GaimNotifyUserInfoEntryType PurpleNotifyUserInfoEntryType + +#define GaimNotifySearchColumn PurpleNotifySearchColumn +#define GaimNotifySearchResultsCallback PurpleNotifySearchResultsCallback +#define GaimNotifySearchButton PurpleNotifySearchButton + +#define GaimNotifyUiOps PurpleNotifyUiOps + +#define gaim_notify_searchresults purple_notify_searchresults +#define gaim_notify_searchresults_free purple_notify_searchresults_free +#define gaim_notify_searchresults_new_rows purple_notify_searchresults_new_rows +#define gaim_notify_searchresults_button_add purple_notify_searchresults_button_add +#define gaim_notify_searchresults_button_add_labeled purple_notify_searchresults_button_add_labeled +#define gaim_notify_searchresults_new purple_notify_searchresults_new +#define gaim_notify_searchresults_column_new purple_notify_searchresults_column_new +#define gaim_notify_searchresults_column_add purple_notify_searchresults_column_add +#define gaim_notify_searchresults_row_add purple_notify_searchresults_row_add +#define gaim_notify_searchresults_get_rows_count purple_notify_searchresults_get_rows_count +#define gaim_notify_searchresults_get_columns_count purple_notify_searchresults_get_columns_count +#define gaim_notify_searchresults_row_get purple_notify_searchresults_row_get +#define gaim_notify_searchresults_column_get_title purple_notify_searchresults_column_get_title + +#define gaim_notify_message purple_notify_message +#define gaim_notify_email purple_notify_email +#define gaim_notify_emails purple_notify_emails +#define gaim_notify_formatted purple_notify_formatted +#define gaim_notify_userinfo purple_notify_userinfo + +#define gaim_notify_user_info_new purple_notify_user_info_new +#define gaim_notify_user_info_destroy purple_notify_user_info_destroy +#define gaim_notify_user_info_get_entries purple_notify_user_info_get_entries +#define gaim_notify_user_info_get_text_with_newline purple_notify_user_info_get_text_with_newline +#define gaim_notify_user_info_add_pair purple_notify_user_info_add_pair +#define gaim_notify_user_info_prepend_pair purple_notify_user_info_prepend_pair +#define gaim_notify_user_info_remove_entry purple_notify_user_info_remove_entry +#define gaim_notify_user_info_entry_new purple_notify_user_info_entry_new +#define gaim_notify_user_info_add_section_break purple_notify_user_info_add_section_break +#define gaim_notify_user_info_add_section_header purple_notify_user_info_add_section_header +#define gaim_notify_user_info_remove_last_item purple_notify_user_info_remove_last_item +#define gaim_notify_user_info_entry_get_label purple_notify_user_info_entry_get_label +#define gaim_notify_user_info_entry_set_label purple_notify_user_info_entry_set_label +#define gaim_notify_user_info_entry_get_value purple_notify_user_info_entry_get_value +#define gaim_notify_user_info_entry_set_value purple_notify_user_info_entry_set_value +#define gaim_notify_user_info_entry_get_type purple_notify_user_info_entry_get_type +#define gaim_notify_user_info_entry_set_type purple_notify_user_info_entry_set_type + +#define gaim_notify_uri purple_notify_uri +#define gaim_notify_close purple_notify_close +#define gaim_notify_close_with_handle purple_notify_close_with_handle + +#define gaim_notify_info purple_notify_info +#define gaim_notify_warning purple_notify_warning +#define gaim_notify_error purple_notify_error + +#define gaim_notify_set_ui_ops purple_notify_set_ui_ops +#define gaim_notify_get_ui_ops purple_notify_get_ui_ops + +#define gaim_notify_get_handle purple_notify_get_handle + +#define gaim_notify_init purple_notify_init +#define gaim_notify_uninit purple_notify_uninit /* from ntlm.h */ -#define purple_ntlm_gen_type1 purple_ntlm_gen_type1 -#define purple_ntlm_parse_type2 purple_ntlm_parse_type2 -#define purple_ntlm_gen_type3 purple_ntlm_gen_type3 +#define gaim_ntlm_gen_type1 purple_ntlm_gen_type1 +#define gaim_ntlm_parse_type2 purple_ntlm_parse_type2 +#define gaim_ntlm_gen_type3 purple_ntlm_gen_type3 /* from plugin.h */ -#define PurplePlugin PurplePlugin -#define PurplePluginInfo PurplePluginInfo -#define PurplePluginUiInfo PurplePluginUiInfo -#define PurplePluginLoaderInfo PurplePluginLoaderInfo -#define PurplePluginAction PurplePluginAction -#define PurplePluginPriority PurplePluginPriority - -#define PURPLE_PLUGIN_UNKNOWN PURPLE_PLUGIN_UNKNOWN -#define PURPLE_PLUGIN_STANDARD PURPLE_PLUGIN_STANDARD -#define PURPLE_PLUGIN_LOADER PURPLE_PLUGIN_LOADER -#define PURPLE_PLUGIN_PROTOCOL PURPLE_PLUGIN_PROTOCOL - -#define PurplePluginType PurplePluginType - -#define PURPLE_PRIORITY_DEFAULT PURPLE_PRIORITY_DEFAULT -#define PURPLE_PRIORITY_HIGHEST PURPLE_PRIORITY_HIGHEST -#define PURPLE_PRIORITY_LOWEST PURPLE_PRIORITY_LOWEST - -#define PURPLE_PLUGIN_FLAG_INVISIBLE PURPLE_PLUGIN_FLAG_INVISIBLE - -#define PURPLE_PLUGIN_MAGIC PURPLE_PLUGIN_MAGIC - -#define PURPLE_PLUGIN_LOADER_INFO PURPLE_PLUGIN_LOADER_INFO -#define PURPLE_PLUGIN_HAS_PREF_FRAME PURPLE_PLUGIN_HAS_PREF_FRAME -#define PURPLE_PLUGIN_UI_INFO PURPLE_PLUGIN_UI_INFO - -#define PURPLE_PLUGIN_HAS_ACTIONS PURPLE_PLUGIN_HAS_ACTIONS -#define PURPLE_PLUGIN_ACTIONS PURPLE_PLUGIN_ACTIONS - -#define PURPLE_INIT_PLUGIN PURPLE_INIT_PLUGIN - -#define purple_plugin_new purple_plugin_new -#define purple_plugin_probe purple_plugin_probe -#define purple_plugin_register purple_plugin_register -#define purple_plugin_load purple_plugin_load -#define purple_plugin_unload purple_plugin_unload -#define purple_plugin_reload purple_plugin_reload -#define purple_plugin_destroy purple_plugin_destroy -#define purple_plugin_is_loaded purple_plugin_is_loaded -#define purple_plugin_is_unloadable purple_plugin_is_unloadable -#define purple_plugin_get_id purple_plugin_get_id -#define purple_plugin_get_name purple_plugin_get_name -#define purple_plugin_get_version purple_plugin_get_version -#define purple_plugin_get_summary purple_plugin_get_summary -#define purple_plugin_get_description purple_plugin_get_description -#define purple_plugin_get_author purple_plugin_get_author -#define purple_plugin_get_homepage purple_plugin_get_homepage - -#define purple_plugin_ipc_register purple_plugin_ipc_register -#define purple_plugin_ipc_unregister purple_plugin_ipc_unregister -#define purple_plugin_ipc_unregister_all purple_plugin_ipc_unregister_all -#define purple_plugin_ipc_get_params purple_plugin_ipc_get_params -#define purple_plugin_ipc_call purple_plugin_ipc_call - -#define purple_plugins_add_search_path purple_plugins_add_search_path -#define purple_plugins_unload_all purple_plugins_unload_all -#define purple_plugins_destroy_all purple_plugins_destroy_all -#define purple_plugins_save_loaded purple_plugins_save_loaded -#define purple_plugins_load_saved purple_plugins_load_saved -#define purple_plugins_probe purple_plugins_probe -#define purple_plugins_enabled purple_plugins_enabled - -#define purple_plugins_register_probe_notify_cb purple_plugins_register_probe_notify_cb -#define purple_plugins_unregister_probe_notify_cb purple_plugins_unregister_probe_notify_cb -#define purple_plugins_register_load_notify_cb purple_plugins_register_load_notify_cb -#define purple_plugins_unregister_load_notify_cb purple_plugins_unregister_load_notify_cb -#define purple_plugins_register_unload_notify_cb purple_plugins_register_unload_notify_cb -#define purple_plugins_unregister_unload_notify_cb purple_plugins_unregister_unload_notify_cb - -#define purple_plugins_find_with_name purple_plugins_find_with_name -#define purple_plugins_find_with_filename purple_plugins_find_with_filename -#define purple_plugins_find_with_basename purple_plugins_find_with_basename -#define purple_plugins_find_with_id purple_plugins_find_with_id - -#define purple_plugins_get_loaded purple_plugins_get_loaded -#define purple_plugins_get_protocols purple_plugins_get_protocols -#define purple_plugins_get_all purple_plugins_get_all - -#define purple_plugins_get_handle purple_plugins_get_handle -#define purple_plugins_init purple_plugins_init -#define purple_plugins_uninit purple_plugins_uninit - -#define purple_plugin_action_new purple_plugin_action_new -#define purple_plugin_action_free purple_plugin_action_free +#ifdef GAIM_PLUGINS +#ifndef PURPLE_PLUGINS +#define PURPLE_PLUGINS +#endif +#endif + +#define GaimPlugin PurplePlugin +#define GaimPluginInfo PurplePluginInfo +#define GaimPluginUiInfo PurplePluginUiInfo +#define GaimPluginLoaderInfo PurplePluginLoaderInfo +#define GaimPluginAction PurplePluginAction +#define GaimPluginPriority PurplePluginPriority + +#define GAIM_PLUGIN_UNKNOWN PURPLE_PLUGIN_UNKNOWN +#define GAIM_PLUGIN_STANDARD PURPLE_PLUGIN_STANDARD +#define GAIM_PLUGIN_LOADER PURPLE_PLUGIN_LOADER +#define GAIM_PLUGIN_PROTOCOL PURPLE_PLUGIN_PROTOCOL + +#define GaimPluginType PurplePluginType + +#define GAIM_PRIORITY_DEFAULT PURPLE_PRIORITY_DEFAULT +#define GAIM_PRIORITY_HIGHEST PURPLE_PRIORITY_HIGHEST +#define GAIM_PRIORITY_LOWEST PURPLE_PRIORITY_LOWEST + +#define GAIM_PLUGIN_FLAG_INVISIBLE PURPLE_PLUGIN_FLAG_INVISIBLE + +#define GAIM_PLUGIN_MAGIC PURPLE_PLUGIN_MAGIC + +#define GAIM_PLUGIN_LOADER_INFO PURPLE_PLUGIN_LOADER_INFO +#define GAIM_PLUGIN_HAS_PREF_FRAME PURPLE_PLUGIN_HAS_PREF_FRAME +#define GAIM_PLUGIN_UI_INFO PURPLE_PLUGIN_UI_INFO + +#define GAIM_PLUGIN_HAS_ACTIONS PURPLE_PLUGIN_HAS_ACTIONS +#define GAIM_PLUGIN_ACTIONS PURPLE_PLUGIN_ACTIONS + +#define GAIM_INIT_PLUGIN(pluginname, initfunc, plugininfo) PURPLE_INIT_PLUGIN(pluginname, initfunc, plugininfo) + +#define gaim_plugin_new purple_plugin_new +#define gaim_plugin_probe purple_plugin_probe +#define gaim_plugin_register purple_plugin_register +#define gaim_plugin_load purple_plugin_load +#define gaim_plugin_unload purple_plugin_unload +#define gaim_plugin_reload purple_plugin_reload +#define gaim_plugin_destroy purple_plugin_destroy +#define gaim_plugin_is_loaded purple_plugin_is_loaded +#define gaim_plugin_is_unloadable purple_plugin_is_unloadable +#define gaim_plugin_get_id purple_plugin_get_id +#define gaim_plugin_get_name purple_plugin_get_name +#define gaim_plugin_get_version purple_plugin_get_version +#define gaim_plugin_get_summary purple_plugin_get_summary +#define gaim_plugin_get_description purple_plugin_get_description +#define gaim_plugin_get_author purple_plugin_get_author +#define gaim_plugin_get_homepage purple_plugin_get_homepage + +#define gaim_plugin_ipc_register purple_plugin_ipc_register +#define gaim_plugin_ipc_unregister purple_plugin_ipc_unregister +#define gaim_plugin_ipc_unregister_all purple_plugin_ipc_unregister_all +#define gaim_plugin_ipc_get_params purple_plugin_ipc_get_params +#define gaim_plugin_ipc_call purple_plugin_ipc_call + +#define gaim_plugins_add_search_path purple_plugins_add_search_path +#define gaim_plugins_unload_all purple_plugins_unload_all +#define gaim_plugins_destroy_all purple_plugins_destroy_all +#define gaim_plugins_save_loaded purple_plugins_save_loaded +#define gaim_plugins_load_saved purple_plugins_load_saved +#define gaim_plugins_probe purple_plugins_probe +#define gaim_plugins_enabled purple_plugins_enabled + +#define gaim_plugins_register_probe_notify_cb purple_plugins_register_probe_notify_cb +#define gaim_plugins_unregister_probe_notify_cb purple_plugins_unregister_probe_notify_cb +#define gaim_plugins_register_load_notify_cb purple_plugins_register_load_notify_cb +#define gaim_plugins_unregister_load_notify_cb purple_plugins_unregister_load_notify_cb +#define gaim_plugins_register_unload_notify_cb purple_plugins_register_unload_notify_cb +#define gaim_plugins_unregister_unload_notify_cb purple_plugins_unregister_unload_notify_cb + +#define gaim_plugins_find_with_name purple_plugins_find_with_name +#define gaim_plugins_find_with_filename purple_plugins_find_with_filename +#define gaim_plugins_find_with_basename purple_plugins_find_with_basename +#define gaim_plugins_find_with_id purple_plugins_find_with_id + +#define gaim_plugins_get_loaded purple_plugins_get_loaded +#define gaim_plugins_get_protocols purple_plugins_get_protocols +#define gaim_plugins_get_all purple_plugins_get_all + +#define gaim_plugins_get_handle purple_plugins_get_handle +#define gaim_plugins_init purple_plugins_init +#define gaim_plugins_uninit purple_plugins_uninit + +#define gaim_plugin_action_new purple_plugin_action_new +#define gaim_plugin_action_free purple_plugin_action_free /* pluginpref.h */ -#define PurplePluginPrefFrame PurplePluginPrefFrame -#define PurplePluginPref PurplePluginPref - -#define PURPLE_STRING_FORMAT_TYPE_NONE PURPLE_STRING_FORMAT_TYPE_NONE -#define PURPLE_STRING_FORMAT_TYPE_MULTILINE PURPLE_STRING_FORMAT_TYPE_MULTILINE -#define PURPLE_STRING_FORMAT_TYPE_HTML PURPLE_STRING_FORMAT_TYPE_HTML - -#define PurpleStringFormatType PurpleStringFormatType - -#define PURPLE_PLUGIN_PREF_NONE PURPLE_PLUGIN_PREF_NONE -#define PURPLE_PLUGIN_PREF_CHOICE PURPLE_PLUGIN_PREF_CHOICE -#define PURPLE_PLUGIN_PREF_INFO PURPLE_PLUGIN_PREF_INFO -#define PURPLE_PLUGIN_PREF_STRING_FORMAT PURPLE_PLUGIN_PREF_STRING_FORMAT - -#define PurplePluginPrefType PurplePluginPrefType - -#define purple_plugin_pref_frame_new purple_plugin_pref_frame_new -#define purple_plugin_pref_frame_destroy purple_plugin_pref_frame_destroy -#define purple_plugin_pref_frame_add purple_plugin_pref_frame_add -#define purple_plugin_pref_frame_get_prefs purple_plugin_pref_frame_get_prefs - -#define purple_plugin_pref_new purple_plugin_pref_new -#define purple_plugin_pref_new_with_name purple_plugin_pref_new_with_name -#define purple_plugin_pref_new_with_label purple_plugin_pref_new_with_label -#define purple_plugin_pref_new_with_name_and_label purple_plugin_pref_new_with_name_and_label -#define purple_plugin_pref_destroy purple_plugin_pref_destroy -#define purple_plugin_pref_set_name purple_plugin_pref_set_name -#define purple_plugin_pref_get_name purple_plugin_pref_get_name -#define purple_plugin_pref_set_label purple_plugin_pref_set_label -#define purple_plugin_pref_get_label purple_plugin_pref_get_label -#define purple_plugin_pref_set_bounds purple_plugin_pref_set_bounds -#define purple_plugin_pref_get_bounds purple_plugin_pref_get_bounds -#define purple_plugin_pref_set_type purple_plugin_pref_set_type -#define purple_plugin_pref_get_type purple_plugin_pref_get_type -#define purple_plugin_pref_add_choice purple_plugin_pref_add_choice -#define purple_plugin_pref_get_choices purple_plugin_pref_get_choices -#define purple_plugin_pref_set_max_length purple_plugin_pref_set_max_length -#define purple_plugin_pref_get_max_length purple_plugin_pref_get_max_length -#define purple_plugin_pref_set_masked purple_plugin_pref_set_masked -#define purple_plugin_pref_get_masked purple_plugin_pref_get_masked -#define purple_plugin_pref_set_format_type purple_plugin_pref_set_format_type -#define purple_plugin_pref_get_format_type purple_plugin_pref_get_format_type +#define GaimPluginPrefFrame PurplePluginPrefFrame +#define GaimPluginPref PurplePluginPref + +#define GAIM_STRING_FORMAT_TYPE_NONE PURPLE_STRING_FORMAT_TYPE_NONE +#define GAIM_STRING_FORMAT_TYPE_MULTILINE PURPLE_STRING_FORMAT_TYPE_MULTILINE +#define GAIM_STRING_FORMAT_TYPE_HTML PURPLE_STRING_FORMAT_TYPE_HTML + +#define GaimStringFormatType PurpleStringFormatType + +#define GAIM_PLUGIN_PREF_NONE PURPLE_PLUGIN_PREF_NONE +#define GAIM_PLUGIN_PREF_CHOICE PURPLE_PLUGIN_PREF_CHOICE +#define GAIM_PLUGIN_PREF_INFO PURPLE_PLUGIN_PREF_INFO +#define GAIM_PLUGIN_PREF_STRING_FORMAT PURPLE_PLUGIN_PREF_STRING_FORMAT + +#define GaimPluginPrefType PurplePluginPrefType + +#define gaim_plugin_pref_frame_new purple_plugin_pref_frame_new +#define gaim_plugin_pref_frame_destroy purple_plugin_pref_frame_destroy +#define gaim_plugin_pref_frame_add purple_plugin_pref_frame_add +#define gaim_plugin_pref_frame_get_prefs purple_plugin_pref_frame_get_prefs + +#define gaim_plugin_pref_new purple_plugin_pref_new +#define gaim_plugin_pref_new_with_name purple_plugin_pref_new_with_name +#define gaim_plugin_pref_new_with_label purple_plugin_pref_new_with_label +#define gaim_plugin_pref_new_with_name_and_label purple_plugin_pref_new_with_name_and_label +#define gaim_plugin_pref_destroy purple_plugin_pref_destroy +#define gaim_plugin_pref_set_name purple_plugin_pref_set_name +#define gaim_plugin_pref_get_name purple_plugin_pref_get_name +#define gaim_plugin_pref_set_label purple_plugin_pref_set_label +#define gaim_plugin_pref_get_label purple_plugin_pref_get_label +#define gaim_plugin_pref_set_bounds purple_plugin_pref_set_bounds +#define gaim_plugin_pref_get_bounds purple_plugin_pref_get_bounds +#define gaim_plugin_pref_set_type purple_plugin_pref_set_type +#define gaim_plugin_pref_get_type purple_plugin_pref_get_type +#define gaim_plugin_pref_add_choice purple_plugin_pref_add_choice +#define gaim_plugin_pref_get_choices purple_plugin_pref_get_choices +#define gaim_plugin_pref_set_max_length purple_plugin_pref_set_max_length +#define gaim_plugin_pref_get_max_length purple_plugin_pref_get_max_length +#define gaim_plugin_pref_set_masked purple_plugin_pref_set_masked +#define gaim_plugin_pref_get_masked purple_plugin_pref_get_masked +#define gaim_plugin_pref_set_format_type purple_plugin_pref_set_format_type +#define gaim_plugin_pref_get_format_type purple_plugin_pref_get_format_type /* from pounce.h */ -#define PurplePounce PurplePounce - -#define PURPLE_POUNCE_NONE PURPLE_POUNCE_NONE -#define PURPLE_POUNCE_SIGNON PURPLE_POUNCE_SIGNON -#define PURPLE_POUNCE_SIGNOFF PURPLE_POUNCE_SIGNOFF -#define PURPLE_POUNCE_AWAY PURPLE_POUNCE_AWAY -#define PURPLE_POUNCE_AWAY_RETURN PURPLE_POUNCE_AWAY_RETURN -#define PURPLE_POUNCE_IDLE PURPLE_POUNCE_IDLE -#define PURPLE_POUNCE_IDLE_RETURN PURPLE_POUNCE_IDLE_RETURN -#define PURPLE_POUNCE_TYPING PURPLE_POUNCE_TYPING -#define PURPLE_POUNCE_TYPED PURPLE_POUNCE_TYPED -#define PURPLE_POUNCE_TYPING_STOPPED PURPLE_POUNCE_TYPING_STOPPED -#define PURPLE_POUNCE_MESSAGE_RECEIVED PURPLE_POUNCE_MESSAGE_RECEIVED -#define PurplePounceEvent PurplePounceEvent - -#define PURPLE_POUNCE_OPTION_NONE PURPLE_POUNCE_OPTION_NONE -#define PURPLE_POUNCE_OPTION_AWAY PURPLE_POUNCE_OPTION_AWAY -#define PurplePounceOption PurplePounceOption - -#define PurplePounceCb PurplePounceCb - -#define purple_pounce_new purple_pounce_new -#define purple_pounce_destroy purple_pounce_destroy -#define purple_pounce_destroy_all_by_account purple_pounce_destroy_all_by_account -#define purple_pounce_set_events purple_pounce_set_events -#define purple_pounce_set_options purple_pounce_set_options -#define purple_pounce_set_pouncer purple_pounce_set_pouncer -#define purple_pounce_set_pouncee purple_pounce_set_pouncee -#define purple_pounce_set_save purple_pounce_set_save -#define purple_pounce_action_register purple_pounce_action_register -#define purple_pounce_action_set_enabled purple_pounce_action_set_enabled -#define purple_pounce_action_set_attribute purple_pounce_action_set_attribute -#define purple_pounce_set_data purple_pounce_set_data -#define purple_pounce_get_events purple_pounce_get_events -#define purple_pounce_get_options purple_pounce_get_options -#define purple_pounce_get_pouncer purple_pounce_get_pouncer -#define purple_pounce_get_pouncee purple_pounce_get_pouncee -#define purple_pounce_get_save purple_pounce_get_save -#define purple_pounce_action_is_enabled purple_pounce_action_is_enabled -#define purple_pounce_action_get_attribute purple_pounce_action_get_attribute -#define purple_pounce_get_data purple_pounce_get_data -#define purple_pounce_execute purple_pounce_execute - -#define purple_find_pounce purple_find_pounce -#define purple_pounces_load purple_pounces_load -#define purple_pounces_register_handler purple_pounces_register_handler -#define purple_pounces_unregister_handler purple_pounces_unregister_handler -#define purple_pounces_get_all purple_pounces_get_all -#define purple_pounces_get_handle purple_pounces_get_handle -#define purple_pounces_init purple_pounces_init -#define purple_pounces_uninit purple_pounces_uninit +#define GaimPounce PurplePounce + +#define GAIM_POUNCE_NONE PURPLE_POUNCE_NONE +#define GAIM_POUNCE_SIGNON PURPLE_POUNCE_SIGNON +#define GAIM_POUNCE_SIGNOFF PURPLE_POUNCE_SIGNOFF +#define GAIM_POUNCE_AWAY PURPLE_POUNCE_AWAY +#define GAIM_POUNCE_AWAY_RETURN PURPLE_POUNCE_AWAY_RETURN +#define GAIM_POUNCE_IDLE PURPLE_POUNCE_IDLE +#define GAIM_POUNCE_IDLE_RETURN PURPLE_POUNCE_IDLE_RETURN +#define GAIM_POUNCE_TYPING PURPLE_POUNCE_TYPING +#define GAIM_POUNCE_TYPED PURPLE_POUNCE_TYPED +#define GAIM_POUNCE_TYPING_STOPPED PURPLE_POUNCE_TYPING_STOPPED +#define GAIM_POUNCE_MESSAGE_RECEIVED PURPLE_POUNCE_MESSAGE_RECEIVED +#define GaimPounceEvent PurplePounceEvent + +#define GAIM_POUNCE_OPTION_NONE PURPLE_POUNCE_OPTION_NONE +#define GAIM_POUNCE_OPTION_AWAY PURPLE_POUNCE_OPTION_AWAY +#define GaimPounceOption PurplePounceOption + +#define GaimPounceCb PurplePounceCb + +#define gaim_pounce_new purple_pounce_new +#define gaim_pounce_destroy purple_pounce_destroy +#define gaim_pounce_destroy_all_by_account purple_pounce_destroy_all_by_account +#define gaim_pounce_set_events purple_pounce_set_events +#define gaim_pounce_set_options purple_pounce_set_options +#define gaim_pounce_set_pouncer purple_pounce_set_pouncer +#define gaim_pounce_set_pouncee purple_pounce_set_pouncee +#define gaim_pounce_set_save purple_pounce_set_save +#define gaim_pounce_action_register purple_pounce_action_register +#define gaim_pounce_action_set_enabled purple_pounce_action_set_enabled +#define gaim_pounce_action_set_attribute purple_pounce_action_set_attribute +#define gaim_pounce_set_data purple_pounce_set_data +#define gaim_pounce_get_events purple_pounce_get_events +#define gaim_pounce_get_options purple_pounce_get_options +#define gaim_pounce_get_pouncer purple_pounce_get_pouncer +#define gaim_pounce_get_pouncee purple_pounce_get_pouncee +#define gaim_pounce_get_save purple_pounce_get_save +#define gaim_pounce_action_is_enabled purple_pounce_action_is_enabled +#define gaim_pounce_action_get_attribute purple_pounce_action_get_attribute +#define gaim_pounce_get_data purple_pounce_get_data +#define gaim_pounce_execute purple_pounce_execute + +#define gaim_find_pounce purple_find_pounce +#define gaim_pounces_load purple_pounces_load +#define gaim_pounces_register_handler purple_pounces_register_handler +#define gaim_pounces_unregister_handler purple_pounces_unregister_handler +#define gaim_pounces_get_all purple_pounces_get_all +#define gaim_pounces_get_handle purple_pounces_get_handle +#define gaim_pounces_init purple_pounces_init +#define gaim_pounces_uninit purple_pounces_uninit /* from prefs.h */ -#define PURPLE_PREF_NONE PURPLE_PREF_NONE -#define PURPLE_PREF_BOOLEAN PURPLE_PREF_BOOLEAN -#define PURPLE_PREF_INT PURPLE_PREF_INT -#define PURPLE_PREF_STRING PURPLE_PREF_STRING -#define PURPLE_PREF_STRING_LIST PURPLE_PREF_STRING_LIST -#define PURPLE_PREF_PATH PURPLE_PREF_PATH -#define PURPLE_PREF_PATH_LIST PURPLE_PREF_PATH_LIST -#define PurplePrefType PurplePrefType - -#define PurplePrefCallback PurplePrefCallback - -#define purple_prefs_get_handle purple_prefs_get_handle -#define purple_prefs_init purple_prefs_init -#define purple_prefs_uninit purple_prefs_uninit -#define purple_prefs_add_none purple_prefs_add_none -#define purple_prefs_add_bool purple_prefs_add_bool -#define purple_prefs_add_int purple_prefs_add_int -#define purple_prefs_add_string purple_prefs_add_string -#define purple_prefs_add_string_list purple_prefs_add_string_list -#define purple_prefs_add_path purple_prefs_add_path -#define purple_prefs_add_path_list purple_prefs_add_path_list -#define purple_prefs_remove purple_prefs_remove -#define purple_prefs_rename purple_prefs_rename -#define purple_prefs_rename_boolean_toggle purple_prefs_rename_boolean_toggle -#define purple_prefs_destroy purple_prefs_destroy -#define purple_prefs_set_generic purple_prefs_set_generic -#define purple_prefs_set_bool purple_prefs_set_bool -#define purple_prefs_set_int purple_prefs_set_int -#define purple_prefs_set_string purple_prefs_set_string -#define purple_prefs_set_string_list purple_prefs_set_string_list -#define purple_prefs_set_path purple_prefs_set_path -#define purple_prefs_set_path_list purple_prefs_set_path_list -#define purple_prefs_exists purple_prefs_exists -#define purple_prefs_get_type purple_prefs_get_type -#define purple_prefs_get_bool purple_prefs_get_bool -#define purple_prefs_get_int purple_prefs_get_int -#define purple_prefs_get_string purple_prefs_get_string -#define purple_prefs_get_string_list purple_prefs_get_string_list -#define purple_prefs_get_path purple_prefs_get_path -#define purple_prefs_get_path_list purple_prefs_get_path_list -#define purple_prefs_connect_callback purple_prefs_connect_callback -#define purple_prefs_disconnect_callback purple_prefs_disconnect_callback -#define purple_prefs_disconnect_by_handle purple_prefs_disconnect_by_handle -#define purple_prefs_trigger_callback purple_prefs_trigger_callback -#define purple_prefs_load purple_prefs_load -#define purple_prefs_update_old purple_prefs_update_old +#define GAIM_PREF_NONE PURPLE_PREF_NONE +#define GAIM_PREF_BOOLEAN PURPLE_PREF_BOOLEAN +#define GAIM_PREF_INT PURPLE_PREF_INT +#define GAIM_PREF_STRING PURPLE_PREF_STRING +#define GAIM_PREF_STRING_LIST PURPLE_PREF_STRING_LIST +#define GAIM_PREF_PATH PURPLE_PREF_PATH +#define GAIM_PREF_PATH_LIST PURPLE_PREF_PATH_LIST +#define GaimPrefType PurplePrefType + +#define GaimPrefCallback PurplePrefCallback + +#define gaim_prefs_get_handle purple_prefs_get_handle +#define gaim_prefs_init purple_prefs_init +#define gaim_prefs_uninit purple_prefs_uninit +#define gaim_prefs_add_none purple_prefs_add_none +#define gaim_prefs_add_bool purple_prefs_add_bool +#define gaim_prefs_add_int purple_prefs_add_int +#define gaim_prefs_add_string purple_prefs_add_string +#define gaim_prefs_add_string_list purple_prefs_add_string_list +#define gaim_prefs_add_path purple_prefs_add_path +#define gaim_prefs_add_path_list purple_prefs_add_path_list +#define gaim_prefs_remove purple_prefs_remove +#define gaim_prefs_rename purple_prefs_rename +#define gaim_prefs_rename_boolean_toggle purple_prefs_rename_boolean_toggle +#define gaim_prefs_destroy purple_prefs_destroy +#define gaim_prefs_set_generic purple_prefs_set_generic +#define gaim_prefs_set_bool purple_prefs_set_bool +#define gaim_prefs_set_int purple_prefs_set_int +#define gaim_prefs_set_string purple_prefs_set_string +#define gaim_prefs_set_string_list purple_prefs_set_string_list +#define gaim_prefs_set_path purple_prefs_set_path +#define gaim_prefs_set_path_list purple_prefs_set_path_list +#define gaim_prefs_exists purple_prefs_exists +#define gaim_prefs_get_type purple_prefs_get_type +#define gaim_prefs_get_bool purple_prefs_get_bool +#define gaim_prefs_get_int purple_prefs_get_int +#define gaim_prefs_get_string purple_prefs_get_string +#define gaim_prefs_get_string_list purple_prefs_get_string_list +#define gaim_prefs_get_path purple_prefs_get_path +#define gaim_prefs_get_path_list purple_prefs_get_path_list +#define gaim_prefs_connect_callback purple_prefs_connect_callback +#define gaim_prefs_disconnect_callback purple_prefs_disconnect_callback +#define gaim_prefs_disconnect_by_handle purple_prefs_disconnect_by_handle +#define gaim_prefs_trigger_callback purple_prefs_trigger_callback +#define gaim_prefs_load purple_prefs_load +#define gaim_prefs_update_old purple_prefs_update_old /* from privacy.h */ -#define PURPLE_PRIVACY_ALLOW_ALL PURPLE_PRIVACY_ALLOW_ALL -#define PURPLE_PRIVACY_DENY_ALL PURPLE_PRIVACY_DENY_ALL -#define PURPLE_PRIVACY_ALLOW_USERS PURPLE_PRIVACY_ALLOW_USERS -#define PURPLE_PRIVACY_DENY_USERS PURPLE_PRIVACY_DENY_USERS -#define PURPLE_PRIVACY_ALLOW_BUDDYLIST PURPLE_PRIVACY_ALLOW_BUDDYLIST -#define PurplePrivacyType PurplePrivacyType - -#define PurplePrivacyUiOps PurplePrivacyUiOps - -#define purple_privacy_permit_add purple_privacy_permit_add -#define purple_privacy_permit_remove purple_privacy_permit_remove -#define purple_privacy_deny_add purple_privacy_deny_add -#define purple_privacy_deny_remove purple_privacy_deny_remove -#define purple_privacy_allow purple_privacy_allow -#define purple_privacy_deny purple_privacy_deny -#define purple_privacy_check purple_privacy_check -#define purple_privacy_set_ui_ops purple_privacy_set_ui_ops -#define purple_privacy_get_ui_ops purple_privacy_get_ui_ops -#define purple_privacy_init purple_privacy_init +#define GAIM_PRIVACY_ALLOW_ALL PURPLE_PRIVACY_ALLOW_ALL +#define GAIM_PRIVACY_DENY_ALL PURPLE_PRIVACY_DENY_ALL +#define GAIM_PRIVACY_ALLOW_USERS PURPLE_PRIVACY_ALLOW_USERS +#define GAIM_PRIVACY_DENY_USERS PURPLE_PRIVACY_DENY_USERS +#define GAIM_PRIVACY_ALLOW_BUDDYLIST PURPLE_PRIVACY_ALLOW_BUDDYLIST +#define GaimPrivacyType PurplePrivacyType + +#define GaimPrivacyUiOps PurplePrivacyUiOps + +#define gaim_privacy_permit_add purple_privacy_permit_add +#define gaim_privacy_permit_remove purple_privacy_permit_remove +#define gaim_privacy_deny_add purple_privacy_deny_add +#define gaim_privacy_deny_remove purple_privacy_deny_remove +#define gaim_privacy_allow purple_privacy_allow +#define gaim_privacy_deny purple_privacy_deny +#define gaim_privacy_check purple_privacy_check +#define gaim_privacy_set_ui_ops purple_privacy_set_ui_ops +#define gaim_privacy_get_ui_ops purple_privacy_get_ui_ops +#define gaim_privacy_init purple_privacy_init /* from proxy.h */ -#define PURPLE_PROXY_USE_GLOBAL PURPLE_PROXY_USE_GLOBAL -#define PURPLE_PROXY_NONE PURPLE_PROXY_NONE -#define PURPLE_PROXY_HTTP PURPLE_PROXY_HTTP -#define PURPLE_PROXY_SOCKS4 PURPLE_PROXY_SOCKS4 -#define PURPLE_PROXY_SOCKS5 PURPLE_PROXY_SOCKS5 -#define PURPLE_PROXY_USE_ENVVAR PURPLE_PROXY_USE_ENVVAR -#define PurpleProxyType PurpleProxyType - -#define PurpleProxyInfo PurpleProxyInfo - -#define PurpleProxyConnectData PurpleProxyConnectData -#define PurpleProxyConnectFunction PurpleProxyConnectFunction - -#define purple_proxy_info_new purple_proxy_info_new -#define purple_proxy_info_destroy purple_proxy_info_destroy -#define purple_proxy_info_set_type purple_proxy_info_set_type -#define purple_proxy_info_set_host purple_proxy_info_set_host -#define purple_proxy_info_set_port purple_proxy_info_set_port -#define purple_proxy_info_set_username purple_proxy_info_set_username -#define purple_proxy_info_set_password purple_proxy_info_set_password -#define purple_proxy_info_get_type purple_proxy_info_get_type -#define purple_proxy_info_get_host purple_proxy_info_get_host -#define purple_proxy_info_get_port purple_proxy_info_get_port -#define purple_proxy_info_get_username purple_proxy_info_get_username -#define purple_proxy_info_get_password purple_proxy_info_get_password - -#define purple_global_proxy_get_info purple_global_proxy_get_info -#define purple_proxy_get_handle purple_proxy_get_handle -#define purple_proxy_init purple_proxy_init -#define purple_proxy_uninit purple_proxy_uninit -#define purple_proxy_get_setup purple_proxy_get_setup - -#define purple_proxy_connect purple_proxy_connect -#define purple_proxy_connect_socks5 purple_proxy_connect_socks5 -#define purple_proxy_connect_cancel purple_proxy_connect_cancel -#define purple_proxy_connect_cancel_with_handle purple_proxy_connect_cancel_with_handle +#define GAIM_PROXY_USE_GLOBAL PURPLE_PROXY_USE_GLOBAL +#define GAIM_PROXY_NONE PURPLE_PROXY_NONE +#define GAIM_PROXY_HTTP PURPLE_PROXY_HTTP +#define GAIM_PROXY_SOCKS4 PURPLE_PROXY_SOCKS4 +#define GAIM_PROXY_SOCKS5 PURPLE_PROXY_SOCKS5 +#define GAIM_PROXY_USE_ENVVAR PURPLE_PROXY_USE_ENVVAR +#define GaimProxyType PurpleProxyType + +#define GaimProxyInfo PurpleProxyInfo + +#define GaimProxyConnectData PurpleProxyConnectData +#define GaimProxyConnectFunction PurpleProxyConnectFunction + +#define gaim_proxy_info_new purple_proxy_info_new +#define gaim_proxy_info_destroy purple_proxy_info_destroy +#define gaim_proxy_info_set_type purple_proxy_info_set_type +#define gaim_proxy_info_set_host purple_proxy_info_set_host +#define gaim_proxy_info_set_port purple_proxy_info_set_port +#define gaim_proxy_info_set_username purple_proxy_info_set_username +#define gaim_proxy_info_set_password purple_proxy_info_set_password +#define gaim_proxy_info_get_type purple_proxy_info_get_type +#define gaim_proxy_info_get_host purple_proxy_info_get_host +#define gaim_proxy_info_get_port purple_proxy_info_get_port +#define gaim_proxy_info_get_username purple_proxy_info_get_username +#define gaim_proxy_info_get_password purple_proxy_info_get_password + +#define gaim_global_proxy_get_info purple_global_proxy_get_info +#define gaim_proxy_get_handle purple_proxy_get_handle +#define gaim_proxy_init purple_proxy_init +#define gaim_proxy_uninit purple_proxy_uninit +#define gaim_proxy_get_setup purple_proxy_get_setup + +#define gaim_proxy_connect purple_proxy_connect +#define gaim_proxy_connect_socks5 purple_proxy_connect_socks5 +#define gaim_proxy_connect_cancel purple_proxy_connect_cancel +#define gaim_proxy_connect_cancel_with_handle purple_proxy_connect_cancel_with_handle /* from prpl.h */ -#define PurplePluginProtocolInfo PurplePluginProtocolInfo - -#define PURPLE_ICON_SCALE_DISPLAY PURPLE_ICON_SCALE_DISPLAY -#define PURPLE_ICON_SCALE_SEND PURPLE_ICON_SCALE_SEND -#define PurpleIconScaleRules PurpleIconScaleRules - -#define PurpleBuddyIconSpec PurpleBuddyIconSpec - -#define PurpleProtocolOptions PurpleProtocolOptions - -#define PURPLE_IS_PROTOCOL_PLUGIN PURPLE_IS_PROTOCOL_PLUGIN - -#define PURPLE_PLUGIN_PROTOCOL_INFO PURPLE_PLUGIN_PROTOCOL_INFO - -#define purple_prpl_got_account_idle purple_prpl_got_account_idle -#define purple_prpl_got_account_login_time purple_prpl_got_account_login_time -#define purple_prpl_got_account_status purple_prpl_got_account_status -#define purple_prpl_got_user_idle purple_prpl_got_user_idle -#define purple_prpl_got_user_login_time purple_prpl_got_user_login_time -#define purple_prpl_got_user_status purple_prpl_got_user_status -#define purple_prpl_change_account_status purple_prpl_change_account_status -#define purple_prpl_get_statuses purple_prpl_get_statuses - -#define purple_find_prpl purple_find_prpl +#define GaimPluginProtocolInfo PurplePluginProtocolInfo + +#define GAIM_ICON_SCALE_DISPLAY PURPLE_ICON_SCALE_DISPLAY +#define GAIM_ICON_SCALE_SEND PURPLE_ICON_SCALE_SEND +#define GaimIconScaleRules PurpleIconScaleRules + +#define GaimBuddyIconSpec PurpleBuddyIconSpec + +#define GaimProtocolOptions PurpleProtocolOptions + +#define GAIM_IS_PROTOCOL_PLUGIN PURPLE_IS_PROTOCOL_PLUGIN + +#define GAIM_PLUGIN_PROTOCOL_INFO PURPLE_PLUGIN_PROTOCOL_INFO + +#define gaim_prpl_got_account_idle purple_prpl_got_account_idle +#define gaim_prpl_got_account_login_time purple_prpl_got_account_login_time +#define gaim_prpl_got_account_status purple_prpl_got_account_status +#define gaim_prpl_got_user_idle purple_prpl_got_user_idle +#define gaim_prpl_got_user_login_time purple_prpl_got_user_login_time +#define gaim_prpl_got_user_status purple_prpl_got_user_status +#define gaim_prpl_change_account_status purple_prpl_change_account_status +#define gaim_prpl_get_statuses purple_prpl_get_statuses + +#define gaim_find_prpl purple_find_prpl /* from request.h */ -#define PURPLE_DEFAULT_ACTION_NONE PURPLE_DEFAULT_ACTION_NONE - -#define PURPLE_REQUEST_INPUT PURPLE_REQUEST_INPUT -#define PURPLE_REQUEST_CHOICE PURPLE_REQUEST_CHOICE -#define PURPLE_REQUEST_ACTION PURPLE_REQUEST_ACTION -#define PURPLE_REQUEST_FIELDS PURPLE_REQUEST_FIELDS -#define PURPLE_REQUEST_FILE PURPLE_REQUEST_FILE -#define PURPLE_REQUEST_FOLDER PURPLE_REQUEST_FOLDER -#define PurpleRequestType PurpleRequestType - -#define PURPLE_REQUEST_FIELD_NONE PURPLE_REQUEST_FIELD_NONE -#define PURPLE_REQUEST_FIELD_STRING PURPLE_REQUEST_FIELD_STRING -#define PURPLE_REQUEST_FIELD_INTEGER PURPLE_REQUEST_FIELD_INTEGER -#define PURPLE_REQUEST_FIELD_BOOLEAN PURPLE_REQUEST_FIELD_BOOLEAN -#define PURPLE_REQUEST_FIELD_CHOICE PURPLE_REQUEST_FIELD_CHOICE -#define PURPLE_REQUEST_FIELD_LIST PURPLE_REQUEST_FIELD_LIST -#define PURPLE_REQUEST_FIELD_LABEL PURPLE_REQUEST_FIELD_LABEL -#define PURPLE_REQUEST_FIELD_IMAGE PURPLE_REQUEST_FIELD_IMAGE -#define PURPLE_REQUEST_FIELD_ACCOUNT PURPLE_REQUEST_FIELD_ACCOUNT -#define PurpleRequestFieldType PurpleRequestFieldType - -#define PurpleRequestFields PurpleRequestFields - -#define PurpleRequestFieldGroup PurpleRequestFieldGroup - -#define PurpleRequestField PurpleRequestField - -#define PurpleRequestUiOps PurpleRequestUiOps - -#define PurpleRequestInputCb PurpleRequestInputCb -#define PurpleRequestActionCb PurpleRequestActionCb -#define PurpleRequestChoiceCb PurpleRequestChoiceCb -#define PurpleRequestFieldsCb PurpleRequestFieldsCb -#define PurpleRequestFileCb PurpleRequestFileCb - -#define purple_request_fields_new purple_request_fields_new -#define purple_request_fields_destroy purple_request_fields_destroy -#define purple_request_fields_add_group purple_request_fields_add_group -#define purple_request_fields_get_groups purple_request_fields_get_groups -#define purple_request_fields_exists purple_request_fields_exists -#define purple_request_fields_get_required purple_request_fields_get_required -#define purple_request_fields_is_field_required purple_request_fields_is_field_required -#define purple_request_fields_all_required_filled purple_request_fields_all_required_filled -#define purple_request_fields_get_field purple_request_fields_get_field -#define purple_request_fields_get_string purple_request_fields_get_string -#define purple_request_fields_get_integer purple_request_fields_get_integer -#define purple_request_fields_get_bool purple_request_fields_get_bool -#define purple_request_fields_get_choice purple_request_fields_get_choice -#define purple_request_fields_get_account purple_request_fields_get_account - -#define purple_request_field_group_new purple_request_field_group_new -#define purple_request_field_group_destroy purple_request_field_group_destroy -#define purple_request_field_group_add_field purple_request_field_group_add_field -#define purple_request_field_group_get_title purple_request_field_group_get_title -#define purple_request_field_group_get_fields purple_request_field_group_get_fields - -#define purple_request_field_new purple_request_field_new -#define purple_request_field_destroy purple_request_field_destroy -#define purple_request_field_set_label purple_request_field_set_label -#define purple_request_field_set_visible purple_request_field_set_visible -#define purple_request_field_set_type_hint purple_request_field_set_type_hint -#define purple_request_field_set_required purple_request_field_set_required -#define purple_request_field_get_type purple_request_field_get_type -#define purple_request_field_get_id purple_request_field_get_id -#define purple_request_field_get_label purple_request_field_get_label -#define purple_request_field_is_visible purple_request_field_is_visible -#define purple_request_field_get_type_hint purple_request_field_get_type_hint -#define purple_request_field_is_required purple_request_field_is_required - -#define purple_request_field_string_new purple_request_field_string_new -#define purple_request_field_string_set_default_value \ +#define GAIM_DEFAULT_ACTION_NONE PURPLE_DEFAULT_ACTION_NONE + +#define GAIM_REQUEST_INPUT PURPLE_REQUEST_INPUT +#define GAIM_REQUEST_CHOICE PURPLE_REQUEST_CHOICE +#define GAIM_REQUEST_ACTION PURPLE_REQUEST_ACTION +#define GAIM_REQUEST_FIELDS PURPLE_REQUEST_FIELDS +#define GAIM_REQUEST_FILE PURPLE_REQUEST_FILE +#define GAIM_REQUEST_FOLDER PURPLE_REQUEST_FOLDER +#define GaimRequestType PurpleRequestType + +#define GAIM_REQUEST_FIELD_NONE PURPLE_REQUEST_FIELD_NONE +#define GAIM_REQUEST_FIELD_STRING PURPLE_REQUEST_FIELD_STRING +#define GAIM_REQUEST_FIELD_INTEGER PURPLE_REQUEST_FIELD_INTEGER +#define GAIM_REQUEST_FIELD_BOOLEAN PURPLE_REQUEST_FIELD_BOOLEAN +#define GAIM_REQUEST_FIELD_CHOICE PURPLE_REQUEST_FIELD_CHOICE +#define GAIM_REQUEST_FIELD_LIST PURPLE_REQUEST_FIELD_LIST +#define GAIM_REQUEST_FIELD_LABEL PURPLE_REQUEST_FIELD_LABEL +#define GAIM_REQUEST_FIELD_IMAGE PURPLE_REQUEST_FIELD_IMAGE +#define GAIM_REQUEST_FIELD_ACCOUNT PURPLE_REQUEST_FIELD_ACCOUNT +#define GaimRequestFieldType PurpleRequestFieldType + +#define GaimRequestFields PurpleRequestFields + +#define GaimRequestFieldGroup PurpleRequestFieldGroup + +#define GaimRequestField PurpleRequestField + +#define GaimRequestUiOps PurpleRequestUiOps + +#define GaimRequestInputCb PurpleRequestInputCb +#define GaimRequestActionCb PurpleRequestActionCb +#define GaimRequestChoiceCb PurpleRequestChoiceCb +#define GaimRequestFieldsCb PurpleRequestFieldsCb +#define GaimRequestFileCb PurpleRequestFileCb + +#define gaim_request_fields_new purple_request_fields_new +#define gaim_request_fields_destroy purple_request_fields_destroy +#define gaim_request_fields_add_group purple_request_fields_add_group +#define gaim_request_fields_get_groups purple_request_fields_get_groups +#define gaim_request_fields_exists purple_request_fields_exists +#define gaim_request_fields_get_required purple_request_fields_get_required +#define gaim_request_fields_is_field_required purple_request_fields_is_field_required +#define gaim_request_fields_all_required_filled purple_request_fields_all_required_filled +#define gaim_request_fields_get_field purple_request_fields_get_field +#define gaim_request_fields_get_string purple_request_fields_get_string +#define gaim_request_fields_get_integer purple_request_fields_get_integer +#define gaim_request_fields_get_bool purple_request_fields_get_bool +#define gaim_request_fields_get_choice purple_request_fields_get_choice +#define gaim_request_fields_get_account purple_request_fields_get_account + +#define gaim_request_field_group_new purple_request_field_group_new +#define gaim_request_field_group_destroy purple_request_field_group_destroy +#define gaim_request_field_group_add_field purple_request_field_group_add_field +#define gaim_request_field_group_get_title purple_request_field_group_get_title +#define gaim_request_field_group_get_fields purple_request_field_group_get_fields + +#define gaim_request_field_new purple_request_field_new +#define gaim_request_field_destroy purple_request_field_destroy +#define gaim_request_field_set_label purple_request_field_set_label +#define gaim_request_field_set_visible purple_request_field_set_visible +#define gaim_request_field_set_type_hint purple_request_field_set_type_hint +#define gaim_request_field_set_required purple_request_field_set_required +#define gaim_request_field_get_type purple_request_field_get_type +#define gaim_request_field_get_id purple_request_field_get_id +#define gaim_request_field_get_label purple_request_field_get_label +#define gaim_request_field_is_visible purple_request_field_is_visible +#define gaim_request_field_get_type_hint purple_request_field_get_type_hint +#define gaim_request_field_is_required purple_request_field_is_required + +#define gaim_request_field_string_new purple_request_field_string_new +#define gaim_request_field_string_set_default_value \ purple_request_field_string_set_default_value -#define purple_request_field_string_set_value purple_request_field_string_set_value -#define purple_request_field_string_set_masked purple_request_field_string_set_masked -#define purple_request_field_string_set_editable purple_request_field_string_set_editable -#define purple_request_field_string_get_default_value \ +#define gaim_request_field_string_set_value purple_request_field_string_set_value +#define gaim_request_field_string_set_masked purple_request_field_string_set_masked +#define gaim_request_field_string_set_editable purple_request_field_string_set_editable +#define gaim_request_field_string_get_default_value \ purple_request_field_string_get_default_value -#define purple_request_field_string_get_value purple_request_field_string_get_value -#define purple_request_field_string_is_multiline purple_request_field_string_is_multiline -#define purple_request_field_string_is_masked purple_request_field_string_is_masked -#define purple_request_field_string_is_editable purple_request_field_string_is_editable - -#define purple_request_field_int_new purple_request_field_int_new -#define purple_request_field_int_set_default_value \ +#define gaim_request_field_string_get_value purple_request_field_string_get_value +#define gaim_request_field_string_is_multiline purple_request_field_string_is_multiline +#define gaim_request_field_string_is_masked purple_request_field_string_is_masked +#define gaim_request_field_string_is_editable purple_request_field_string_is_editable + +#define gaim_request_field_int_new purple_request_field_int_new +#define gaim_request_field_int_set_default_value \ purple_request_field_int_set_default_value -#define purple_request_field_int_set_value purple_request_field_int_set_value -#define purple_request_field_int_get_default_value \ +#define gaim_request_field_int_set_value purple_request_field_int_set_value +#define gaim_request_field_int_get_default_value \ purple_request_field_int_get_default_value -#define purple_request_field_int_get_value purple_request_field_int_get_value - -#define purple_request_field_bool_new purple_request_field_bool_new -#define purple_request_field_bool_set_default_value \ +#define gaim_request_field_int_get_value purple_request_field_int_get_value + +#define gaim_request_field_bool_new purple_request_field_bool_new +#define gaim_request_field_bool_set_default_value \ purple_request_field_book_set_default_value -#define purple_request_field_bool_set_value purple_request_field_bool_set_value -#define purple_request_field_bool_get_default_value \ +#define gaim_request_field_bool_set_value purple_request_field_bool_set_value +#define gaim_request_field_bool_get_default_value \ purple_request_field_bool_get_default_value -#define purple_request_field_bool_get_value purple_request_field_bool_get_value - -#define purple_request_field_choice_new purple_request_field_choice_new -#define purple_request_field_choice_add purple_request_field_choice_add -#define purple_request_field_choice_set_default_value \ +#define gaim_request_field_bool_get_value purple_request_field_bool_get_value + +#define gaim_request_field_choice_new purple_request_field_choice_new +#define gaim_request_field_choice_add purple_request_field_choice_add +#define gaim_request_field_choice_set_default_value \ purple_request_field_choice_set_default_value -#define purple_request_field_choice_set_value purple_request_field_choice_set_value -#define purple_request_field_choice_get_default_value \ +#define gaim_request_field_choice_set_value purple_request_field_choice_set_value +#define gaim_request_field_choice_get_default_value \ purple_request_field_choice_get_default_value -#define purple_request_field_choice_get_value purple_request_field_choice_get_value -#define purple_request_field_choice_get_labels purple_request_field_choice_get_labels - -#define purple_request_field_list_new purple_request_field_list_new -#define purple_request_field_list_set_multi_select purple_request_field_list_set_multi_select -#define purple_request_field_list_get_multi_select purple_request_field_list_get_multi_select -#define purple_request_field_list_get_data purple_request_field_list_get_data -#define purple_request_field_list_add purple_request_field_list_add -#define purple_request_field_list_add_selected purple_request_field_list_add_selected -#define purple_request_field_list_clear_selected purple_request_field_list_clear_selected -#define purple_request_field_list_set_selected purple_request_field_list_set_selected -#define purple_request_field_list_is_selected purple_request_field_list_is_selected -#define purple_request_field_list_get_selected purple_request_field_list_get_selected -#define purple_request_field_list_get_items purple_request_field_list_get_items - -#define purple_request_field_label_new purple_request_field_label_new - -#define purple_request_field_image_new purple_request_field_image_new -#define purple_request_field_image_set_scale purple_request_field_image_set_scale -#define purple_request_field_image_get_buffer purple_request_field_image_get_buffer -#define purple_request_field_image_get_size purple_request_field_image_get_size -#define purple_request_field_image_get_scale_x purple_request_field_image_get_scale_x -#define purple_request_field_image_get_scale_y purple_request_field_image_get_scale_y - -#define purple_request_field_account_new purple_request_field_account_new -#define purple_request_field_account_set_default_value purple_request_field_account_set_default_value -#define purple_request_field_account_set_value purple_request_field_account_set_value -#define purple_request_field_account_set_show_all purple_request_field_account_set_show_all -#define purple_request_field_account_set_filter purple_request_field_account_set_filter -#define purple_request_field_account_get_default_value purple_request_field_account_get_default_value -#define purple_request_field_account_get_value purple_request_field_account_get_value -#define purple_request_field_account_get_show_all purple_request_field_account_get_show_all -#define purple_request_field_account_get_filter purple_request_field_account_get_filter - -#define purple_request_input purple_request_input -#define purple_request_choice purple_request_choice -#define purple_request_choice_varg purple_request_choice_varg -#define purple_request_action purple_request_action -#define purple_request_action_varg purple_request_action_varg -#define purple_request_fields purple_request_fields -#define purple_request_close purple_request_close -#define purple_request_close_with_handle purple_request_close_with_handle - -#define purple_request_yes_no purple_request_yes_no -#define purple_request_ok_cancel purple_request_ok_cancel -#define purple_request_accept_cancel purple_request_accept_cancel - -#define purple_request_file purple_request_file -#define purple_request_folder purple_request_folder - -#define purple_request_set_ui_ops purple_request_set_ui_ops -#define purple_request_get_ui_ops purple_request_get_ui_ops +#define gaim_request_field_choice_get_value purple_request_field_choice_get_value +#define gaim_request_field_choice_get_labels purple_request_field_choice_get_labels + +#define gaim_request_field_list_new purple_request_field_list_new +#define gaim_request_field_list_set_multi_select purple_request_field_list_set_multi_select +#define gaim_request_field_list_get_multi_select purple_request_field_list_get_multi_select +#define gaim_request_field_list_get_data purple_request_field_list_get_data +#define gaim_request_field_list_add purple_request_field_list_add +#define gaim_request_field_list_add_selected purple_request_field_list_add_selected +#define gaim_request_field_list_clear_selected purple_request_field_list_clear_selected +#define gaim_request_field_list_set_selected purple_request_field_list_set_selected +#define gaim_request_field_list_is_selected purple_request_field_list_is_selected +#define gaim_request_field_list_get_selected purple_request_field_list_get_selected +#define gaim_request_field_list_get_items purple_request_field_list_get_items + +#define gaim_request_field_label_new purple_request_field_label_new + +#define gaim_request_field_image_new purple_request_field_image_new +#define gaim_request_field_image_set_scale purple_request_field_image_set_scale +#define gaim_request_field_image_get_buffer purple_request_field_image_get_buffer +#define gaim_request_field_image_get_size purple_request_field_image_get_size +#define gaim_request_field_image_get_scale_x purple_request_field_image_get_scale_x +#define gaim_request_field_image_get_scale_y purple_request_field_image_get_scale_y + +#define gaim_request_field_account_new purple_request_field_account_new +#define gaim_request_field_account_set_default_value purple_request_field_account_set_default_value +#define gaim_request_field_account_set_value purple_request_field_account_set_value +#define gaim_request_field_account_set_show_all purple_request_field_account_set_show_all +#define gaim_request_field_account_set_filter purple_request_field_account_set_filter +#define gaim_request_field_account_get_default_value purple_request_field_account_get_default_value +#define gaim_request_field_account_get_value purple_request_field_account_get_value +#define gaim_request_field_account_get_show_all purple_request_field_account_get_show_all +#define gaim_request_field_account_get_filter purple_request_field_account_get_filter + +#define gaim_request_input purple_request_input +#define gaim_request_choice purple_request_choice +#define gaim_request_choice_varg purple_request_choice_varg +#define gaim_request_action purple_request_action +#define gaim_request_action_varg purple_request_action_varg +#define gaim_request_fields purple_request_fields +#define gaim_request_close purple_request_close +#define gaim_request_close_with_handle purple_request_close_with_handle + +#define gaim_request_yes_no purple_request_yes_no +#define gaim_request_ok_cancel purple_request_ok_cancel +#define gaim_request_accept_cancel purple_request_accept_cancel + +#define gaim_request_file purple_request_file +#define gaim_request_folder purple_request_folder + +#define gaim_request_set_ui_ops purple_request_set_ui_ops +#define gaim_request_get_ui_ops purple_request_get_ui_ops /* from roomlist.h */ -#define PurpleRoomlist PurpleRoomlist -#define PurpleRoomlistRoom PurpleRoomlistRoom -#define PurpleRoomlistField PurpleRoomlistField -#define PurpleRoomlistUiOps PurpleRoomlistUiOps - -#define PURPLE_ROOMLIST_ROOMTYPE_CATEGORY PURPLE_ROOMLIST_ROOMTYPE_CATEGORY -#define PURPLE_ROOMLIST_ROOMTYPE_ROOM PURPLE_ROOMLIST_ROOMTYPE_ROOM -#define PurpleRoomlistRoomType PurpleRoomlistRoomType - -#define PURPLE_ROOMLIST_FIELD_BOOL PURPLE_ROOMLIST_BOOL -#define PURPLE_ROOMLIST_FIELD_INT PURPLE_ROOMLIST_INT -#define PURPLE_ROOMLIST_FIELD_STRING PURPLE_ROOMLIST_STRING -#define PurpleRoomlistFieldType PurpleRoomlistFieldType - -#define purple_roomlist_show_with_account purple_roomlist_show_with_account -#define purple_roomlist_new purple_roomlist_new -#define purple_roomlist_ref purple_roomlist_ref -#define purple_roomlist_unref purple_roomlist_unref -#define purple_roomlist_set_fields purple_roomlist_set_fields -#define purple_roomlist_set_in_progress purple_roomlist_set_in_progress -#define purple_roomlist_get_in_progress purple_roomlist_get_in_progress -#define purple_roomlist_room_add purple_roomlist_room_add - -#define purple_roomlist_get_list purple_roomlist_get_list -#define purple_roomlist_cancel_get_list purple_roomlist_cancel_get_list -#define purple_roomlist_expand_category purple_roomlist_expand_category - -#define purple_roomlist_room_new purple_roomlist_room_new -#define purple_roomlist_room_add_field purple_roomlist_room_add_field -#define purple_roomlist_room_join purple_roomlist_room_join -#define purple_roomlist_field_new purple_roomlist_field_new - -#define purple_roomlist_set_ui_ops purple_roomlist_set_ui_ops -#define purple_roomlist_get_ui_ops purple_roomlist_get_ui_ops +#define GaimRoomlist PurpleRoomlist +#define GaimRoomlistRoom PurpleRoomlistRoom +#define GaimRoomlistField PurpleRoomlistField +#define GaimRoomlistUiOps PurpleRoomlistUiOps + +#define GAIM_ROOMLIST_ROOMTYPE_CATEGORY PURPLE_ROOMLIST_ROOMTYPE_CATEGORY +#define GAIM_ROOMLIST_ROOMTYPE_ROOM PURPLE_ROOMLIST_ROOMTYPE_ROOM +#define GaimRoomlistRoomType PurpleRoomlistRoomType + +#define GAIM_ROOMLIST_FIELD_BOOL PURPLE_ROOMLIST_BOOL +#define GAIM_ROOMLIST_FIELD_INT PURPLE_ROOMLIST_INT +#define GAIM_ROOMLIST_FIELD_STRING PURPLE_ROOMLIST_STRING +#define GaimRoomlistFieldType PurpleRoomlistFieldType + +#define gaim_roomlist_show_with_account purple_roomlist_show_with_account +#define gaim_roomlist_new purple_roomlist_new +#define gaim_roomlist_ref purple_roomlist_ref +#define gaim_roomlist_unref purple_roomlist_unref +#define gaim_roomlist_set_fields purple_roomlist_set_fields +#define gaim_roomlist_set_in_progress purple_roomlist_set_in_progress +#define gaim_roomlist_get_in_progress purple_roomlist_get_in_progress +#define gaim_roomlist_room_add purple_roomlist_room_add + +#define gaim_roomlist_get_list purple_roomlist_get_list +#define gaim_roomlist_cancel_get_list purple_roomlist_cancel_get_list +#define gaim_roomlist_expand_category purple_roomlist_expand_category + +#define gaim_roomlist_room_new purple_roomlist_room_new +#define gaim_roomlist_room_add_field purple_roomlist_room_add_field +#define gaim_roomlist_room_join purple_roomlist_room_join +#define gaim_roomlist_field_new purple_roomlist_field_new + +#define gaim_roomlist_set_ui_ops purple_roomlist_set_ui_ops +#define gaim_roomlist_get_ui_ops purple_roomlist_get_ui_ops /* from savedstatuses.h */ -#define PurpleSavedStatus PurpleSavedStatus -#define PurpleSavedStatusSub PurpleSavedStatusSub - -#define purple_savedstatus_new purple_savedstatus_new -#define purple_savedstatus_set_title purple_savedstatus_set_title -#define purple_savedstatus_set_type purple_savedstatus_set_type -#define purple_savedstatus_set_message purple_savedstatus_set_message -#define purple_savedstatus_set_substatus purple_savedstatus_set_substatus -#define purple_savedstatus_unset_substatus purple_savedstatus_unset_substatus -#define purple_savedstatus_delete purple_savedstatus_delete - -#define purple_savedstatuses_get_all purple_savedstatuses_get_all -#define purple_savedstatuses_get_popular purple_savedstatuses_get_popular -#define purple_savedstatus_get_current purple_savedstatus_get_current -#define purple_savedstatus_get_default purple_savedstatus_get_default -#define purple_savedstatus_get_idleaway purple_savedstatus_get_idleaway -#define purple_savedstatus_is_idleaway purple_savedstatus_is_idleaway -#define purple_savedstatus_set_idleaway purple_savedstatus_set_idleaway -#define purple_savedstatus_get_startup purple_savedstatus_get_startup -#define purple_savedstatus_find purple_savedstatus_find -#define purple_savedstatus_find_by_creation_time purple_savedstatus_find_by_creation_time -#define purple_savedstatus_find_transient_by_type_and_message \ +#define GaimSavedStatus PurpleSavedStatus +#define GaimSavedStatusSub PurpleSavedStatusSub + +#define gaim_savedstatus_new purple_savedstatus_new +#define gaim_savedstatus_set_title purple_savedstatus_set_title +#define gaim_savedstatus_set_type purple_savedstatus_set_type +#define gaim_savedstatus_set_message purple_savedstatus_set_message +#define gaim_savedstatus_set_substatus purple_savedstatus_set_substatus +#define gaim_savedstatus_unset_substatus purple_savedstatus_unset_substatus +#define gaim_savedstatus_delete purple_savedstatus_delete + +#define gaim_savedstatuses_get_all purple_savedstatuses_get_all +#define gaim_savedstatuses_get_popular purple_savedstatuses_get_popular +#define gaim_savedstatus_get_current purple_savedstatus_get_current +#define gaim_savedstatus_get_default purple_savedstatus_get_default +#define gaim_savedstatus_get_idleaway purple_savedstatus_get_idleaway +#define gaim_savedstatus_is_idleaway purple_savedstatus_is_idleaway +#define gaim_savedstatus_set_idleaway purple_savedstatus_set_idleaway +#define gaim_savedstatus_get_startup purple_savedstatus_get_startup +#define gaim_savedstatus_find purple_savedstatus_find +#define gaim_savedstatus_find_by_creation_time purple_savedstatus_find_by_creation_time +#define gaim_savedstatus_find_transient_by_type_and_message \ purple_savedstatus_find_transient_by_type_and_message -#define purple_savedstatus_is_transient purple_savedstatus_is_transient -#define purple_savedstatus_get_title purple_savedstatus_get_title -#define purple_savedstatus_get_type purple_savedstatus_get_type -#define purple_savedstatus_get_message purple_savedstatus_get_message -#define purple_savedstatus_get_creation_time purple_savedstatus_get_creation_time -#define purple_savedstatus_has_substatuses purple_savedstatus_has_substatuses -#define purple_savedstatus_get_substatus purple_savedstatus_get_substatus -#define purple_savedstatus_substatus_get_type purple_savedstatus_substatus_get_type -#define purple_savedstatus_substatus_get_message purple_savedstatus_substatus_get_message -#define purple_savedstatus_activate purple_savedstatus_activate -#define purple_savedstatus_activate_for_account purple_savedstatus_activate_for_account - -#define purple_savedstatuses_get_handle purple_savedstatuses_get_handle -#define purple_savedstatuses_init purple_savedstatuses_init -#define purple_savedstatuses_uninit purple_savedstatuses_uninit +#define gaim_savedstatus_is_transient purple_savedstatus_is_transient +#define gaim_savedstatus_get_title purple_savedstatus_get_title +#define gaim_savedstatus_get_type purple_savedstatus_get_type +#define gaim_savedstatus_get_message purple_savedstatus_get_message +#define gaim_savedstatus_get_creation_time purple_savedstatus_get_creation_time +#define gaim_savedstatus_has_substatuses purple_savedstatus_has_substatuses +#define gaim_savedstatus_get_substatus purple_savedstatus_get_substatus +#define gaim_savedstatus_substatus_get_type purple_savedstatus_substatus_get_type +#define gaim_savedstatus_substatus_get_message purple_savedstatus_substatus_get_message +#define gaim_savedstatus_activate purple_savedstatus_activate +#define gaim_savedstatus_activate_for_account purple_savedstatus_activate_for_account + +#define gaim_savedstatuses_get_handle purple_savedstatuses_get_handle +#define gaim_savedstatuses_init purple_savedstatuses_init +#define gaim_savedstatuses_uninit purple_savedstatuses_uninit /* from signals.h */ -#define PURPLE_CALLBACK PURPLE_CALLBACK - -#define PurpleCallback PurpleCallback -#define PurpleSignalMarshalFunc PurpleSignalMarshalFunc - -#define PURPLE_SIGNAL_PRIORITY_DEFAULT PURPLE_SIGNAL_PRIORITY_DEFAULT -#define PURPLE_SIGNAL_PRIORITY_HIGHEST PURPLE_SIGNAL_PRIORITY_HIGHEST -#define PURPLE_SIGNAL_PRIORITY_LOWEST PURPLE_SIGNAL_PRIORITY_LOWEST - -#define purple_signal_register purple_signal_register -#define purple_signal_unregister purple_signal_unregister - -#define purple_signals_unregister_by_instance purple_signals_unregister_by_instance - -#define purple_signal_get_values purple_signal_get_values -#define purple_signal_connect_priority purple_signal_connect_priority -#define purple_signal_connect purple_signal_connect -#define purple_signal_connect_priority_vargs purple_signal_connect_priority_vargs -#define purple_signal_connect_vargs purple_signal_connect_vargs -#define purple_signal_disconnect purple_signal_disconnect - -#define purple_signals_disconnect_by_handle purple_signals_disconnect_by_handle - -#define purple_signal_emit purple_signal_emit -#define purple_signal_emit_vargs purple_signal_emit_vargs -#define purple_signal_emit_return_1 purple_signal_emit_vargs -#define purple_signal_emit_vargs_return_1 purple_signal_emit_vargs_return_1 - -#define purple_signals_init purple_signals_init -#define purple_signals_uninit purple_signals_uninit - -#define purple_marshal_VOID \ +#define GAIM_CALLBACK PURPLE_CALLBACK + +#define GaimCallback PurpleCallback +#define GaimSignalMarshalFunc PurpleSignalMarshalFunc + +#define GAIM_SIGNAL_PRIORITY_DEFAULT PURPLE_SIGNAL_PRIORITY_DEFAULT +#define GAIM_SIGNAL_PRIORITY_HIGHEST PURPLE_SIGNAL_PRIORITY_HIGHEST +#define GAIM_SIGNAL_PRIORITY_LOWEST PURPLE_SIGNAL_PRIORITY_LOWEST + +#define gaim_signal_register purple_signal_register +#define gaim_signal_unregister purple_signal_unregister + +#define gaim_signals_unregister_by_instance purple_signals_unregister_by_instance + +#define gaim_signal_get_values purple_signal_get_values +#define gaim_signal_connect_priority purple_signal_connect_priority +#define gaim_signal_connect purple_signal_connect +#define gaim_signal_connect_priority_vargs purple_signal_connect_priority_vargs +#define gaim_signal_connect_vargs purple_signal_connect_vargs +#define gaim_signal_disconnect purple_signal_disconnect + +#define gaim_signals_disconnect_by_handle purple_signals_disconnect_by_handle + +#define gaim_signal_emit purple_signal_emit +#define gaim_signal_emit_vargs purple_signal_emit_vargs +#define gaim_signal_emit_return_1 purple_signal_emit_vargs +#define gaim_signal_emit_vargs_return_1 purple_signal_emit_vargs_return_1 + +#define gaim_signals_init purple_signals_init +#define gaim_signals_uninit purple_signals_uninit + +#define gaim_marshal_VOID \ purple_marshal_VOID -#define purple_marshal_VOID__INT \ +#define gaim_marshal_VOID__INT \ purple_marshal_VOID__INT -#define purple_marshal_VOID__INT_INT \ +#define gaim_marshal_VOID__INT_INT \ purple_marshal_VOID_INT_INT -#define purple_marshal_VOID__POINTER \ +#define gaim_marshal_VOID__POINTER \ purple_marshal_VOID__POINTER -#define purple_marshal_VOID__POINTER_UINT \ +#define gaim_marshal_VOID__POINTER_UINT \ purple_marshal_VOID__POINTER_UINT -#define purple_marshal_VOID__POINTER_INT_INT \ +#define gaim_marshal_VOID__POINTER_INT_INT \ purple_marshal_VOID__POINTER_INT_INT -#define purple_marshal_VOID__POINTER_POINTER \ +#define gaim_marshal_VOID__POINTER_POINTER \ purple_marshal_VOID__POINTER_POINTER -#define purple_marshal_VOID__POINTER_POINTER_UINT \ +#define gaim_marshal_VOID__POINTER_POINTER_UINT \ purple_marshal_VOID__POINTER_POINTER_UINT -#define purple_marshal_VOID__POINTER_POINTER_UINT_UINT \ +#define gaim_marshal_VOID__POINTER_POINTER_UINT_UINT \ purple_marshal_VOID__POINTER_POINTER_UINT_UINT -#define purple_marshal_VOID__POINTER_POINTER_POINTER \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER \ purple_marshal_VOID__POINTER_POINTER_POINTER -#define purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER \ purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER -#define purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER \ purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER -#define purple_marshal_VOID__POINTER_POINTER_POINTER_UINT \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT \ purple_marshal_VOID__POINTER_POINTER_POINTER_UINT -#define purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT \ purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT -#define purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT \ +#define gaim_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT \ purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT -#define purple_marshal_INT__INT \ +#define gaim_marshal_INT__INT \ purple_marshal_INT__INT -#define purple_marshal_INT__INT_INT \ +#define gaim_marshal_INT__INT_INT \ purple_marshal_INT__INT_INT -#define purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER \ +#define gaim_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER \ purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER -#define purple_marshal_BOOLEAN__POINTER \ +#define gaim_marshal_BOOLEAN__POINTER \ purple_marshal_BOOLEAN__POINTER -#define purple_marshal_BOOLEAN__POINTER_POINTER \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER \ purple_marshal_BOOLEAN__POINTER_POINTER -#define purple_marshal_BOOLEAN__POINTER_POINTER_POINTER \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER \ purple_marshal_BOOLEAN__POINTER_POINTER_POINTER -#define purple_marshal_BOOLEAN__POINTER_POINTER_UINT \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER_UINT \ purple_marshal_BOOLEAN__POINTER_POINTER_UINT -#define purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT \ purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT -#define purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER \ purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER -#define purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER \ +#define gaim_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER \ purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER -#define purple_marshal_BOOLEAN__INT_POINTER \ +#define gaim_marshal_BOOLEAN__INT_POINTER \ purple_marshal_BOOLEAN__INT_POINTER -#define purple_marshal_POINTER__POINTER_INT \ +#define gaim_marshal_POINTER__POINTER_INT \ purple_marshal_POINTER__POINTER_INT -#define purple_marshal_POINTER__POINTER_INT64 \ +#define gaim_marshal_POINTER__POINTER_INT64 \ purple_marshal_POINTER__POINTER_INT64 -#define purple_marshal_POINTER__POINTER_INT_BOOLEAN \ +#define gaim_marshal_POINTER__POINTER_INT_BOOLEAN \ purple_marshal_POINTER__POINTER_INT_BOOLEAN -#define purple_marshal_POINTER__POINTER_INT64_BOOLEAN \ +#define gaim_marshal_POINTER__POINTER_INT64_BOOLEAN \ purple_marshal_POINTER__POINTER_INT64_BOOLEAN -#define purple_marshal_POINTER__POINTER_POINTER \ +#define gaim_marshal_POINTER__POINTER_POINTER \ purple_marshal_POINTER__POINTER_POINTER /* from sound.h */ -#define PURPLE_SOUND_BUDDY_ARRIVE PURPLE_SOUND_BUDDY_ARRIVE -#define PURPLE_SOUND_BUDDY_LEAVE PURPLE_SOUND_BUDDY_LEAVE -#define PURPLE_SOUND_RECEIVE PURPLE_SOUND_RECEIVE -#define PURPLE_SOUND_FIRST_RECEIVE PURPLE_SOUND_FIRST_RECEIVE -#define PURPLE_SOUND_SEND PURPLE_SOUND_SEND -#define PURPLE_SOUND_CHAT_JOIN PURPLE_SOUND_CHAT_JOIN -#define PURPLE_SOUND_CHAT_LEAVE PURPLE_SOUND_CHAT_LEAVE -#define PURPLE_SOUND_CHAT_YOU_SAY PURPLE_SOUND_CHAT_YOU_SAY -#define PURPLE_SOUND_CHAT_SAY PURPLE_SOUND_CHAT_SAY -#define PURPLE_SOUND_POUNCE_DEFAULT PURPLE_SOUND_POUNCE_DEFAULT -#define PURPLE_SOUND_CHAT_NICK PURPLE_SOUND_CHAT_NICK -#define PURPLE_NUM_SOUNDS PURPLE_NUM_SOUNDS -#define PurpleSoundEventID PurpleSoundEventID - -#define PurpleSoundUiOps PurpleSoundUiOps - -#define purple_sound_play_file purple_sound_play_file -#define purple_sound_play_event purple_sound_play_event -#define purple_sound_set_ui_ops purple_sound_set_ui_ops -#define purple_sound_get_ui_ops purple_sound_get_ui_ops -#define purple_sound_init purple_sound_init -#define purple_sound_uninit purple_sound_uninit - -#define purple_sounds_get_handle purple_sounds_get_handle +#define GAIM_SOUND_BUDDY_ARRIVE PURPLE_SOUND_BUDDY_ARRIVE +#define GAIM_SOUND_BUDDY_LEAVE PURPLE_SOUND_BUDDY_LEAVE +#define GAIM_SOUND_RECEIVE PURPLE_SOUND_RECEIVE +#define GAIM_SOUND_FIRST_RECEIVE PURPLE_SOUND_FIRST_RECEIVE +#define GAIM_SOUND_SEND PURPLE_SOUND_SEND +#define GAIM_SOUND_CHAT_JOIN PURPLE_SOUND_CHAT_JOIN +#define GAIM_SOUND_CHAT_LEAVE PURPLE_SOUND_CHAT_LEAVE +#define GAIM_SOUND_CHAT_YOU_SAY PURPLE_SOUND_CHAT_YOU_SAY +#define GAIM_SOUND_CHAT_SAY PURPLE_SOUND_CHAT_SAY +#define GAIM_SOUND_POUNCE_DEFAULT PURPLE_SOUND_POUNCE_DEFAULT +#define GAIM_SOUND_CHAT_NICK PURPLE_SOUND_CHAT_NICK +#define GAIM_NUM_SOUNDS PURPLE_NUM_SOUNDS +#define GaimSoundEventID PurpleSoundEventID + +#define GaimSoundUiOps PurpleSoundUiOps + +#define gaim_sound_play_file purple_sound_play_file +#define gaim_sound_play_event purple_sound_play_event +#define gaim_sound_set_ui_ops purple_sound_set_ui_ops +#define gaim_sound_get_ui_ops purple_sound_get_ui_ops +#define gaim_sound_init purple_sound_init +#define gaim_sound_uninit purple_sound_uninit + +#define gaim_sounds_get_handle purple_sounds_get_handle /* from sslconn.h */ -#define PURPLE_SSL_DEFAULT_PORT PURPLE_SSL_DEFAULT_PORT - -#define PURPLE_SSL_HANDSHAKE_FAILED PURPLE_SSL_HANDSHAKE_FAILED -#define PURPLE_SSL_CONNECT_FAILED PURPLE_SSL_CONNECT_FAILED -#define PurpleSslErrorType PurpleSslErrorType - -#define PurpleSslConnection PurpleSslConnection - -#define PurpleSslInputFunction PurpleSslInputFunction -#define PurpleSslErrorFunction PurpleSslErrorFunction - -#define PurpleSslOps PurpleSslOps - -#define purple_ssl_is_supported purple_ssl_is_supported -#define purple_ssl_connect purple_ssl_connect -#define purple_ssl_connect_fd purple_ssl_connect_fd -#define purple_ssl_input_add purple_ssl_input_add -#define purple_ssl_close purple_ssl_close -#define purple_ssl_read purple_ssl_read -#define purple_ssl_write purple_ssl_write - -#define purple_ssl_set_ops purple_ssl_set_ops -#define purple_ssl_get_ops purple_ssl_get_ops -#define purple_ssl_init purple_ssl_init -#define purple_ssl_uninit purple_ssl_uninit +#define GAIM_SSL_DEFAULT_PORT PURPLE_SSL_DEFAULT_PORT + +#define GAIM_SSL_HANDSHAKE_FAILED PURPLE_SSL_HANDSHAKE_FAILED +#define GAIM_SSL_CONNECT_FAILED PURPLE_SSL_CONNECT_FAILED +#define GaimSslErrorType PurpleSslErrorType + +#define GaimSslConnection PurpleSslConnection + +#define GaimSslInputFunction PurpleSslInputFunction +#define GaimSslErrorFunction PurpleSslErrorFunction + +#define GaimSslOps PurpleSslOps + +#define gaim_ssl_is_supported purple_ssl_is_supported +#define gaim_ssl_connect purple_ssl_connect +#define gaim_ssl_connect_fd purple_ssl_connect_fd +#define gaim_ssl_input_add purple_ssl_input_add +#define gaim_ssl_close purple_ssl_close +#define gaim_ssl_read purple_ssl_read +#define gaim_ssl_write purple_ssl_write + +#define gaim_ssl_set_ops purple_ssl_set_ops +#define gaim_ssl_get_ops purple_ssl_get_ops +#define gaim_ssl_init purple_ssl_init +#define gaim_ssl_uninit purple_ssl_uninit /* from status.h */ -#define PurpleStatusType PurpleStatusType -#define PurpleStatusAttr PurpleStatusAttr -#define PurplePresence PurplePresence -#define PurpleStatus PurpleStatus - -#define PURPLE_PRESENCE_CONTEXT_UNSET PURPLE_PRESENCE_CONTEXT_UNSET -#define PURPLE_PRESENCE_CONTEXT_ACCOUNT PURPLE_PRESENCE_CONTEXT_ACCOUNT -#define PURPLE_PRESENCE_CONTEXT_CONV PURPLE_PRESENCE_CONTEXT_CONV -#define PURPLE_PRESENCE_CONTEXT_BUDDY PURPLE_PRESENCE_CONTEXT_BUDDY -#define PurplePresenceContext PurplePresenceContext - -#define PURPLE_STATUS_UNSET PURPLE_STATUS_UNSET -#define PURPLE_STATUS_OFFLINE PURPLE_STATUS_OFFLINE -#define PURPLE_STATUS_AVAILABLE PURPLE_STATUS_AVAILABLE -#define PURPLE_STATUS_UNAVAILABLE PURPLE_STATUS_UNAVAILABLE -#define PURPLE_STATUS_INVISIBLE PURPLE_STATUS_INVISIBLE -#define PURPLE_STATUS_AWAY PURPLE_STATUS_AWAY -#define PURPLE_STATUS_EXTENDED_AWAY PURPLE_STATUS_EXTENDED_AWAY -#define PURPLE_STATUS_MOBILE PURPLE_STATUS_MOBILE -#define PURPLE_STATUS_NUM_PRIMITIVES PURPLE_STATUS_NUM_PRIMITIVES -#define PurpleStatusPrimitive PurpleStatusPrimitive - -#define purple_primitive_get_id_from_type purple_primitive_get_id_from_type -#define purple_primitive_get_name_from_type purple_primitive_get_name_from_type -#define purple_primitive_get_type_from_id purple_primitive_get_type_from_id - -#define purple_status_type_new_full purple_status_type_new_full -#define purple_status_type_new purple_status_type_new -#define purple_status_type_new_with_attrs purple_status_type_new_with_attrs -#define purple_status_type_destroy purple_status_type_destroy -#define purple_status_type_set_primary_attr purple_status_type_set_primary_attr -#define purple_status_type_add_attr purple_status_type_add_attr -#define purple_status_type_add_attrs purple_status_type_add_attrs -#define purple_status_type_add_attrs_vargs purple_status_type_add_attrs_vargs -#define purple_status_type_get_primitive purple_status_type_get_primitive -#define purple_status_type_get_id purple_status_type_get_id -#define purple_status_type_get_name purple_status_type_get_name -#define purple_status_type_is_saveable purple_status_type_is_saveable -#define purple_status_type_is_user_settable purple_status_type_is_user_settable -#define purple_status_type_is_independent purple_status_type_is_independent -#define purple_status_type_is_exclusive purple_status_type_is_exclusive -#define purple_status_type_is_available purple_status_type_is_available -#define purple_status_type_get_primary_attr purple_status_type_get_primary_attr -#define purple_status_type_get_attr purple_status_type_get_attr -#define purple_status_type_get_attrs purple_status_type_get_attrs -#define purple_status_type_find_with_id purple_status_type_find_with_id - -#define purple_status_attr_new purple_status_attr_new -#define purple_status_attr_destroy purple_status_attr_destroy -#define purple_status_attr_get_id purple_status_attr_get_id -#define purple_status_attr_get_name purple_status_attr_get_name -#define purple_status_attr_get_value purple_status_attr_get_value - -#define purple_status_new purple_status_new -#define purple_status_destroy purple_status_destroy -#define purple_status_set_active purple_status_set_active -#define purple_status_set_active_with_attrs purple_status_set_active_with_attrs -#define purple_status_set_active_with_attrs_list purple_status_set_active_with_attrs_list -#define purple_status_set_attr_boolean purple_status_set_attr_boolean -#define purple_status_set_attr_int purple_status_set_attr_int -#define purple_status_set_attr_string purple_status_set_attr_string -#define purple_status_get_type purple_status_get_type -#define purple_status_get_presence purple_status_get_presence -#define purple_status_get_id purple_status_get_id -#define purple_status_get_name purple_status_get_name -#define purple_status_is_independent purple_status_is_independent -#define purple_status_is_exclusive purple_status_is_exclusive -#define purple_status_is_available purple_status_is_available -#define purple_status_is_active purple_status_is_active -#define purple_status_is_online purple_status_is_online -#define purple_status_get_attr_value purple_status_get_attr_value -#define purple_status_get_attr_boolean purple_status_get_attr_boolean -#define purple_status_get_attr_int purple_status_get_attr_int -#define purple_status_get_attr_string purple_status_get_attr_string -#define purple_status_compare purple_status_compare - -#define purple_presence_new purple_presence_new -#define purple_presence_new_for_account purple_presence_new_for_account -#define purple_presence_new_for_conv purple_presence_new_for_conv -#define purple_presence_new_for_buddy purple_presence_new_for_buddy -#define purple_presence_destroy purple_presence_destroy -#define purple_presence_remove_buddy purple_presence_remove_buddy -#define purple_presence_add_status purple_presence_add_status -#define purple_presence_add_list purple_presence_add_list -#define purple_presence_set_status_active purple_presence_set_status_active -#define purple_presence_switch_status purple_presence_switch_status -#define purple_presence_set_idle purple_presence_set_idle -#define purple_presence_set_login_time purple_presence_set_login_time -#define purple_presence_get_context purple_presence_get_context -#define purple_presence_get_account purple_presence_get_account -#define purple_presence_get_conversation purple_presence_get_conversation -#define purple_presence_get_chat_user purple_presence_get_chat_user -#define purple_presence_get_buddies purple_presence_get_buddies -#define purple_presence_get_statuses purple_presence_get_statuses -#define purple_presence_get_status purple_presence_get_status -#define purple_presence_get_active_status purple_presence_get_active_status -#define purple_presence_is_available purple_presence_is_available -#define purple_presence_is_online purple_presence_is_online -#define purple_presence_is_status_active purple_presence_is_status_active -#define purple_presence_is_status_primitive_active \ +#define GaimStatusType PurpleStatusType +#define GaimStatusAttr PurpleStatusAttr +#define GaimPresence PurplePresence +#define GaimStatus PurpleStatus + +#define GAIM_PRESENCE_CONTEXT_UNSET PURPLE_PRESENCE_CONTEXT_UNSET +#define GAIM_PRESENCE_CONTEXT_ACCOUNT PURPLE_PRESENCE_CONTEXT_ACCOUNT +#define GAIM_PRESENCE_CONTEXT_CONV PURPLE_PRESENCE_CONTEXT_CONV +#define GAIM_PRESENCE_CONTEXT_BUDDY PURPLE_PRESENCE_CONTEXT_BUDDY +#define GaimPresenceContext PurplePresenceContext + +#define GAIM_STATUS_UNSET PURPLE_STATUS_UNSET +#define GAIM_STATUS_OFFLINE PURPLE_STATUS_OFFLINE +#define GAIM_STATUS_AVAILABLE PURPLE_STATUS_AVAILABLE +#define GAIM_STATUS_UNAVAILABLE PURPLE_STATUS_UNAVAILABLE +#define GAIM_STATUS_INVISIBLE PURPLE_STATUS_INVISIBLE +#define GAIM_STATUS_AWAY PURPLE_STATUS_AWAY +#define GAIM_STATUS_EXTENDED_AWAY PURPLE_STATUS_EXTENDED_AWAY +#define GAIM_STATUS_MOBILE PURPLE_STATUS_MOBILE +#define GAIM_STATUS_NUM_PRIMITIVES PURPLE_STATUS_NUM_PRIMITIVES +#define GaimStatusPrimitive PurpleStatusPrimitive + +#define gaim_primitive_get_id_from_type purple_primitive_get_id_from_type +#define gaim_primitive_get_name_from_type purple_primitive_get_name_from_type +#define gaim_primitive_get_type_from_id purple_primitive_get_type_from_id + +#define gaim_status_type_new_full purple_status_type_new_full +#define gaim_status_type_new purple_status_type_new +#define gaim_status_type_new_with_attrs purple_status_type_new_with_attrs +#define gaim_status_type_destroy purple_status_type_destroy +#define gaim_status_type_set_primary_attr purple_status_type_set_primary_attr +#define gaim_status_type_add_attr purple_status_type_add_attr +#define gaim_status_type_add_attrs purple_status_type_add_attrs +#define gaim_status_type_add_attrs_vargs purple_status_type_add_attrs_vargs +#define gaim_status_type_get_primitive purple_status_type_get_primitive +#define gaim_status_type_get_id purple_status_type_get_id +#define gaim_status_type_get_name purple_status_type_get_name +#define gaim_status_type_is_saveable purple_status_type_is_saveable +#define gaim_status_type_is_user_settable purple_status_type_is_user_settable +#define gaim_status_type_is_independent purple_status_type_is_independent +#define gaim_status_type_is_exclusive purple_status_type_is_exclusive +#define gaim_status_type_is_available purple_status_type_is_available +#define gaim_status_type_get_primary_attr purple_status_type_get_primary_attr +#define gaim_status_type_get_attr purple_status_type_get_attr +#define gaim_status_type_get_attrs purple_status_type_get_attrs +#define gaim_status_type_find_with_id purple_status_type_find_with_id + +#define gaim_status_attr_new purple_status_attr_new +#define gaim_status_attr_destroy purple_status_attr_destroy +#define gaim_status_attr_get_id purple_status_attr_get_id +#define gaim_status_attr_get_name purple_status_attr_get_name +#define gaim_status_attr_get_value purple_status_attr_get_value + +#define gaim_status_new purple_status_new +#define gaim_status_destroy purple_status_destroy +#define gaim_status_set_active purple_status_set_active +#define gaim_status_set_active_with_attrs purple_status_set_active_with_attrs +#define gaim_status_set_active_with_attrs_list purple_status_set_active_with_attrs_list +#define gaim_status_set_attr_boolean purple_status_set_attr_boolean +#define gaim_status_set_attr_int purple_status_set_attr_int +#define gaim_status_set_attr_string purple_status_set_attr_string +#define gaim_status_get_type purple_status_get_type +#define gaim_status_get_presence purple_status_get_presence +#define gaim_status_get_id purple_status_get_id +#define gaim_status_get_name purple_status_get_name +#define gaim_status_is_independent purple_status_is_independent +#define gaim_status_is_exclusive purple_status_is_exclusive +#define gaim_status_is_available purple_status_is_available +#define gaim_status_is_active purple_status_is_active +#define gaim_status_is_online purple_status_is_online +#define gaim_status_get_attr_value purple_status_get_attr_value +#define gaim_status_get_attr_boolean purple_status_get_attr_boolean +#define gaim_status_get_attr_int purple_status_get_attr_int +#define gaim_status_get_attr_string purple_status_get_attr_string +#define gaim_status_compare purple_status_compare + +#define gaim_presence_new purple_presence_new +#define gaim_presence_new_for_account purple_presence_new_for_account +#define gaim_presence_new_for_conv purple_presence_new_for_conv +#define gaim_presence_new_for_buddy purple_presence_new_for_buddy +#define gaim_presence_destroy purple_presence_destroy +#define gaim_presence_remove_buddy purple_presence_remove_buddy +#define gaim_presence_add_status purple_presence_add_status +#define gaim_presence_add_list purple_presence_add_list +#define gaim_presence_set_status_active purple_presence_set_status_active +#define gaim_presence_switch_status purple_presence_switch_status +#define gaim_presence_set_idle purple_presence_set_idle +#define gaim_presence_set_login_time purple_presence_set_login_time +#define gaim_presence_get_context purple_presence_get_context +#define gaim_presence_get_account purple_presence_get_account +#define gaim_presence_get_conversation purple_presence_get_conversation +#define gaim_presence_get_chat_user purple_presence_get_chat_user +#define gaim_presence_get_buddies purple_presence_get_buddies +#define gaim_presence_get_statuses purple_presence_get_statuses +#define gaim_presence_get_status purple_presence_get_status +#define gaim_presence_get_active_status purple_presence_get_active_status +#define gaim_presence_is_available purple_presence_is_available +#define gaim_presence_is_online purple_presence_is_online +#define gaim_presence_is_status_active purple_presence_is_status_active +#define gaim_presence_is_status_primitive_active \ purple_presence_is_status_primitive_active -#define purple_presence_is_idle purple_presence_is_idle -#define purple_presence_get_idle_time purple_presence_get_idle_time -#define purple_presence_get_login_time purple_presence_get_login_time -#define purple_presence_compare purple_presence_compare - -#define purple_status_get_handle purple_status_get_handle -#define purple_status_init purple_status_init -#define purple_status_uninit purple_status_uninit +#define gaim_presence_is_idle purple_presence_is_idle +#define gaim_presence_get_idle_time purple_presence_get_idle_time +#define gaim_presence_get_login_time purple_presence_get_login_time +#define gaim_presence_compare purple_presence_compare + +#define gaim_status_get_handle purple_status_get_handle +#define gaim_status_init purple_status_init +#define gaim_status_uninit purple_status_uninit /* from stringref.h */ -#define PurpleStringref PurpleStringref - -#define purple_stringref_new purple_stringref_new -#define purple_stringref_new_noref purple_stringref_new_noref -#define purple_stringref_printf purple_stringref_printf -#define purple_stringref_ref purple_stringref_ref -#define purple_stringref_unref purple_stringref_unref -#define purple_stringref_value purple_stringref_value -#define purple_stringref_cmp purple_stringref_cmp -#define purple_stringref_len purple_stringref_len +#define GaimStringref PurpleStringref + +#define gaim_stringref_new purple_stringref_new +#define gaim_stringref_new_noref purple_stringref_new_noref +#define gaim_stringref_printf purple_stringref_printf +#define gaim_stringref_ref purple_stringref_ref +#define gaim_stringref_unref purple_stringref_unref +#define gaim_stringref_value purple_stringref_value +#define gaim_stringref_cmp purple_stringref_cmp +#define gaim_stringref_len purple_stringref_len /* from stun.h */ -#define PurpleStunNatDiscovery PurpleStunNatDiscovery - -#define PURPLE_STUN_STATUS_UNDISCOVERED PURPLE_STUN_STATUS_UNDISCOVERED -#define PURPLE_STUN_STATUS_UNKNOWN PURPLE_STUN_STATUS_UNKNOWN -#define PURPLE_STUN_STATUS_DISCOVERING PURPLE_STUN_STATUS_DISCOVERING -#define PURPLE_STUN_STATUS_DISCOVERED PURPLE_STUN_STATUS_DISCOVERED -#define PurpleStunStatus PurpleStunStatus - -#define PURPLE_STUN_NAT_TYPE_PUBLIC_IP PURPLE_STUN_NAT_TYPE_PUBLIC_IP -#define PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT -#define PURPLE_STUN_NAT_TYPE_FULL_CONE PURPLE_STUN_NAT_TYPE_FULL_CONE -#define PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE -#define PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE -#define PURPLE_STUN_NAT_TYPE_SYMMETRIC PURPLE_STUN_NAT_TYPE_SYMMETRIC -#define PurpleStunNatType PurpleStunNatType - -/* why didn't this have a Purple prefix before? */ +#define GaimStunNatDiscovery PurpleStunNatDiscovery + +#define GAIM_STUN_STATUS_UNDISCOVERED PURPLE_STUN_STATUS_UNDISCOVERED +#define GAIM_STUN_STATUS_UNKNOWN PURPLE_STUN_STATUS_UNKNOWN +#define GAIM_STUN_STATUS_DISCOVERING PURPLE_STUN_STATUS_DISCOVERING +#define GAIM_STUN_STATUS_DISCOVERED PURPLE_STUN_STATUS_DISCOVERED +#define GaimStunStatus PurpleStunStatus + +#define GAIM_STUN_NAT_TYPE_PUBLIC_IP PURPLE_STUN_NAT_TYPE_PUBLIC_IP +#define GAIM_STUN_NAT_TYPE_UNKNOWN_NAT PURPLE_STUN_NAT_TYPE_UNKNOWN_NAT +#define GAIM_STUN_NAT_TYPE_FULL_CONE PURPLE_STUN_NAT_TYPE_FULL_CONE +#define GAIM_STUN_NAT_TYPE_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_RESTRICTED_CONE +#define GAIM_STUN_NAT_TYPE_PORT_RESTRICTED_CONE PURPLE_STUN_NAT_TYPE_PORT_RESTRICTED_CONE +#define GAIM_STUN_NAT_TYPE_SYMMETRIC PURPLE_STUN_NAT_TYPE_SYMMETRIC +#define GaimStunNatType PurpleStunNatType + +/* why didn't this have a Gaim prefix before? */ #define StunCallback PurpleStunCallback -#define purple_stun_discover purple_stun_discover -#define purple_stun_init purple_stun_init +#define gaim_stun_discover purple_stun_discover +#define gaim_stun_init purple_stun_init /* from upnp.h */ /* suggested rename: PurpleUPnpMappingHandle */ #define UPnPMappingAddRemove PurpleUPnPMappingAddRemove -#define PurpleUPnPCallback PurpleUPnPCallback - -#define purple_upnp_discover purple_upnp_discover -#define purple_upnp_get_public_ip purple_upnp_get_public_ip -#define purple_upnp_cancel_port_mapping purple_upnp_cancel_port_mapping -#define purple_upnp_set_port_mapping purple_upnp_set_port_mapping - -#define purple_upnp_remove_port_mapping purple_upnp_remove_port_mapping +#define GaimUPnPCallback PurpleUPnPCallback + +#define gaim_upnp_discover purple_upnp_discover +#define gaim_upnp_get_public_ip purple_upnp_get_public_ip +#define gaim_upnp_cancel_port_mapping purple_upnp_cancel_port_mapping +#define gaim_upnp_set_port_mapping purple_upnp_set_port_mapping + +#define gaim_upnp_remove_port_mapping purple_upnp_remove_port_mapping /* from util.h */ -#define PurpleUtilFetchUrlData PurpleUtilFetchUrlData -#define PurpleMenuAction PurpleMenuAction - -#define PurpleInfoFieldFormatCallback PurpleIntoFieldFormatCallback - -#define PurpleKeyValuePair PurpleKeyValuePair - -#define purple_menu_action_new purple_menu_action_new -#define purple_menu_action_free purple_menu_action_free - -#define purple_base16_encode purple_base16_encode -#define purple_base16_decode purple_base16_decode -#define purple_base64_encode purple_base64_encode -#define purple_base64_decode purple_base64_decode -#define purple_quotedp_decode purple_quotedp_decode - -#define purple_mime_decode_field purple_mime_deco_field - -#define purple_utf8_strftime purple_utf8_strftime -#define purple_date_format_short purple_date_format_short -#define purple_date_format_long purple_date_format_long -#define purple_date_format_full purple_date_format_full -#define purple_time_format purple_time_format -#define purple_time_build purple_time_build - -#define PURPLE_NO_TZ_OFF PURPLE_NO_TZ_OFF - -#define purple_str_to_time purple_str_to_time - -#define purple_markup_find_tag purple_markup_find_tag -#define purple_markup_extract_info_field purple_markup_extract_info_field -#define purple_markup_html_to_xhtml purple_markup_html_to_xhtml -#define purple_markup_strip_html purple_markup_strip_html -#define purple_markup_linkify purple_markup_linkify -#define purple_markup_slice purple_markup_slice -#define purple_markup_get_tag_name purple_markup_get_tag_name -#define purple_unescape_html purple_unescape_html - -#define purple_home_dir purple_home_dir -#define purple_user_dir purple_user_dir - -#define purple_util_set_user_dir purple_util_set_user_dir - -#define purple_build_dir purple_build_dir - -#define purple_util_write_data_to_file purple_util_write_data_to_file - -#define purple_util_read_xml_from_file purple_util_read_xml_from_file - -#define purple_mkstemp purple_mkstemp - -#define purple_program_is_valid purple_program_is_valid - -#define purple_running_gnome purple_running_gnome -#define purple_running_kde purple_running_kde -#define purple_running_osx purple_running_osx - -#define purple_fd_get_ip purple_fd_get_ip - -#define purple_normalize purple_normalize -#define purple_normalize_nocase purple_normalize_nocase - -#define purple_strdup_withhtml purple_strdup_withhtml - -#define purple_str_has_prefix purple_str_has_prefix -#define purple_str_has_suffix purple_str_has_suffix -#define purple_str_add_cr purple_str_add_cr -#define purple_str_strip_char purple_str_strip_char - -#define purple_util_chrreplace purple_util_chrreplace - -#define purple_strreplace purple_strreplace - -#define purple_utf8_ncr_encode purple_utf8_ncr_encode -#define purple_utf8_ncr_decode purple_utf8_ncr_decode - -#define purple_strcasereplace purple_strcasereplace -#define purple_strcasestr purple_strcasestr - -#define purple_str_size_to_units purple_str_size_to_units -#define purple_str_seconds_to_string purple_str_seconds_to_string -#define purple_str_binary_to_ascii purple_str_binary_to_ascii - - -#define purple_got_protocol_handler_uri purple_got_protocol_handler_uri - -#define purple_url_parse purple_url_parse - -#define PurpleUtilFetchUrlCallback PurpleUtilFetchUrlCallback -#define purple_util_fetch_url purple_util_fetch_url -#define purple_util_fetch_url_request purple_util_fetch_url_request -#define purple_util_fetch_url_cancel purple_util_fetch_url_cancel - -#define purple_url_decode purple_url_decode -#define purple_url_encode purple_url_encode - -#define purple_email_is_valid purple_email_is_valid - -#define purple_uri_list_extract_uris purple_uri_list_extract_uris -#define purple_uri_list_extract_filenames purple_uri_list_extract_filenames - -#define purple_utf8_try_convert purple_utf8_try_convert -#define purple_utf8_salvage purple_utf8_salvage -#define purple_utf8_strcasecmp purple_utf8_strcasecmp -#define purple_utf8_has_word purple_utf8_has_word - -#define purple_print_utf8_to_console purple_print_utf8_to_console - -#define purple_message_meify purple_message_meify - -#define purple_text_strip_mnemonic purple_text_strip_mnemonic - -#define purple_unescape_filename purple_unescape_filename -#define purple_escape_filename purple_escape_filename +#define GaimUtilFetchUrlData PurpleUtilFetchUrlData +#define GaimMenuAction PurpleMenuAction + +#define GaimInfoFieldFormatCallback PurpleIntoFieldFormatCallback + +#define GaimKeyValuePair PurpleKeyValuePair + +#define gaim_menu_action_new purple_menu_action_new +#define gaim_menu_action_free purple_menu_action_free + +#define gaim_base16_encode purple_base16_encode +#define gaim_base16_decode purple_base16_decode +#define gaim_base64_encode purple_base64_encode +#define gaim_base64_decode purple_base64_decode +#define gaim_quotedp_decode purple_quotedp_decode + +#define gaim_mime_decode_field purple_mime_deco_field + +#define gaim_utf8_strftime purple_utf8_strftime +#define gaim_date_format_short purple_date_format_short +#define gaim_date_format_long purple_date_format_long +#define gaim_date_format_full purple_date_format_full +#define gaim_time_format purple_time_format +#define gaim_time_build purple_time_build + +#define GAIM_NO_TZ_OFF PURPLE_NO_TZ_OFF + +#define gaim_str_to_time purple_str_to_time + +#define gaim_markup_find_tag purple_markup_find_tag +#define gaim_markup_extract_info_field purple_markup_extract_info_field +#define gaim_markup_html_to_xhtml purple_markup_html_to_xhtml +#define gaim_markup_strip_html purple_markup_strip_html +#define gaim_markup_linkify purple_markup_linkify +#define gaim_markup_slice purple_markup_slice +#define gaim_markup_get_tag_name purple_markup_get_tag_name +#define gaim_unescape_html purple_unescape_html + +#define gaim_home_dir purple_home_dir +#define gaim_user_dir purple_user_dir + +#define gaim_util_set_user_dir purple_util_set_user_dir + +#define gaim_build_dir purple_build_dir + +#define gaim_util_write_data_to_file purple_util_write_data_to_file + +#define gaim_util_read_xml_from_file purple_util_read_xml_from_file + +#define gaim_mkstemp purple_mkstemp + +#define gaim_program_is_valid purple_program_is_valid + +#define gaim_running_gnome purple_running_gnome +#define gaim_running_kde purple_running_kde +#define gaim_running_osx purple_running_osx + +#define gaim_fd_get_ip purple_fd_get_ip + +#define gaim_normalize purple_normalize +#define gaim_normalize_nocase purple_normalize_nocase + +#define gaim_strdup_withhtml purple_strdup_withhtml + +#define gaim_str_has_prefix purple_str_has_prefix +#define gaim_str_has_suffix purple_str_has_suffix +#define gaim_str_add_cr purple_str_add_cr +#define gaim_str_strip_char purple_str_strip_char + +#define gaim_util_chrreplace purple_util_chrreplace + +#define gaim_strreplace purple_strreplace + +#define gaim_utf8_ncr_encode purple_utf8_ncr_encode +#define gaim_utf8_ncr_decode purple_utf8_ncr_decode + +#define gaim_strcasereplace purple_strcasereplace +#define gaim_strcasestr purple_strcasestr + +#define gaim_str_size_to_units purple_str_size_to_units +#define gaim_str_seconds_to_string purple_str_seconds_to_string +#define gaim_str_binary_to_ascii purple_str_binary_to_ascii + + +#define gaim_got_protocol_handler_uri purple_got_protocol_handler_uri + +#define gaim_url_parse purple_url_parse + +#define GaimUtilFetchUrlCallback PurpleUtilFetchUrlCallback +#define gaim_util_fetch_url purple_util_fetch_url +#define gaim_util_fetch_url_request purple_util_fetch_url_request +#define gaim_util_fetch_url_cancel purple_util_fetch_url_cancel + +#define gaim_url_decode purple_url_decode +#define gaim_url_encode purple_url_encode + +#define gaim_email_is_valid purple_email_is_valid + +#define gaim_uri_list_extract_uris purple_uri_list_extract_uris +#define gaim_uri_list_extract_filenames purple_uri_list_extract_filenames + +#define gaim_utf8_try_convert purple_utf8_try_convert +#define gaim_utf8_salvage purple_utf8_salvage +#define gaim_utf8_strcasecmp purple_utf8_strcasecmp +#define gaim_utf8_has_word purple_utf8_has_word + +#define gaim_print_utf8_to_console purple_print_utf8_to_console + +#define gaim_message_meify purple_message_meify + +#define gaim_text_strip_mnemonic purple_text_strip_mnemonic + +#define gaim_unescape_filename purple_unescape_filename +#define gaim_escape_filename purple_escape_filename /* from value.h */ -#define PURPLE_TYPE_UNKNOWN PURPLE_TYPE_UNKNOWN -#define PURPLE_TYPE_SUBTYPE PURPLE_TYPE_SUBTYPE -#define PURPLE_TYPE_CHAR PURPLE_TYPE_CHAR -#define PURPLE_TYPE_UCHAR PURPLE_TYPE_UCHAR -#define PURPLE_TYPE_BOOLEAN PURPLE_TYPE_BOOLEAN -#define PURPLE_TYPE_SHORT PURPLE_TYPE_SHORT -#define PURPLE_TYPE_USHORT PURPLE_TYPE_USHORT -#define PURPLE_TYPE_INT PURPLE_TYPE_INT -#define PURPLE_TYPE_UINT PURPLE_TYPE_UINT -#define PURPLE_TYPE_LONG PURPLE_TYPE_LONG -#define PURPLE_TYPE_ULONG PURPLE_TYPE_ULONG -#define PURPLE_TYPE_INT64 PURPLE_TYPE_INT64 -#define PURPLE_TYPE_UINT64 PURPLE_TYPE_UINT64 -#define PURPLE_TYPE_STRING PURPLE_TYPE_STRING -#define PURPLE_TYPE_OBJECT PURPLE_TYPE_OBJECT -#define PURPLE_TYPE_POINTER PURPLE_TYPE_POINTER -#define PURPLE_TYPE_ENUM PURPLE_TYPE_ENUM -#define PURPLE_TYPE_BOXED PURPLE_TYPE_BOXED -#define PurpleType PurpleType - - -#define PURPLE_SUBTYPE_UNKNOWN PURPLE_SUBTYPE_UNKNOWN -#define PURPLE_SUBTYPE_ACCOUNT PURPLE_SUBTYPE_ACCOUNT -#define PURPLE_SUBTYPE_BLIST PURPLE_SUBTYPE_BLIST -#define PURPLE_SUBTYPE_BLIST_BUDDY PURPLE_SUBTYPE_BLIST_BUDDY -#define PURPLE_SUBTYPE_BLIST_GROUP PURPLE_SUBTYPE_BLIST_GROUP -#define PURPLE_SUBTYPE_BLIST_CHAT PURPLE_SUBTYPE_BLIST_CHAT -#define PURPLE_SUBTYPE_BUDDY_ICON PURPLE_SUBTYPE_BUDDY_ICON -#define PURPLE_SUBTYPE_CONNECTION PURPLE_SUBTYPE_CONNECTION -#define PURPLE_SUBTYPE_CONVERSATION PURPLE_SUBTYPE_CONVERSATION -#define PURPLE_SUBTYPE_PLUGIN PURPLE_SUBTYPE_PLUGIN -#define PURPLE_SUBTYPE_BLIST_NODE PURPLE_SUBTYPE_BLIST_NODE -#define PURPLE_SUBTYPE_CIPHER PURPLE_SUBTYPE_CIPHER -#define PURPLE_SUBTYPE_STATUS PURPLE_SUBTYPE_STATUS -#define PURPLE_SUBTYPE_LOG PURPLE_SUBTYPE_LOG -#define PURPLE_SUBTYPE_XFER PURPLE_SUBTYPE_XFER -#define PURPLE_SUBTYPE_SAVEDSTATUS PURPLE_SUBTYPE_SAVEDSTATUS -#define PURPLE_SUBTYPE_XMLNODE PURPLE_SUBTYPE_XMLNODE -#define PURPLE_SUBTYPE_USERINFO PURPLE_SUBTYPE_USERINFO -#define PurpleSubType PurpleSubType - -#define PurpleValue PurpleValue - -#define purple_value_new purple_value_new -#define purple_value_new_outgoing purple_value_new_outgoing -#define purple_value_destroy purple_value_destroy -#define purple_value_dup purple_value_dup -#define purple_value_get_type purple_value_get_type -#define purple_value_get_subtype purple_value_get_subtype -#define purple_value_get_specific_type purple_value_get_specific_type -#define purple_value_is_outgoing purple_value_is_outgoing -#define purple_value_set_char purple_value_set_char -#define purple_value_set_uchar purple_value_set_uchar -#define purple_value_set_boolean purple_value_set_boolean -#define purple_value_set_short purple_value_set_short -#define purple_value_set_ushort purple_value_set_ushort -#define purple_value_set_int purple_value_set_int -#define purple_value_set_uint purple_value_set_uint -#define purple_value_set_long purple_value_set_long -#define purple_value_set_ulong purple_value_set_ulong -#define purple_value_set_int64 purple_value_set_int64 -#define purple_value_set_uint64 purple_value_set_uint64 -#define purple_value_set_string purple_value_set_string -#define purple_value_set_object purple_value_set_object -#define purple_value_set_pointer purple_value_set_pointer -#define purple_value_set_enum purple_value_set_enum -#define purple_value_set_boxed purple_value_set_boxed -#define purple_value_get_char purple_value_get_char -#define purple_value_get_uchar purple_value_get_uchar -#define purple_value_get_boolean purple_value_get_boolean -#define purple_value_get_short purple_value_get_short -#define purple_value_get_ushort purple_value_get_ushort -#define purple_value_get_int purple_value_get_int -#define purple_value_get_uint purple_value_get_uint -#define purple_value_get_long purple_value_get_long -#define purple_value_get_ulong purple_value_get_ulong -#define purple_value_get_int64 purple_value_get_int64 -#define purple_value_get_uint64 purple_value_get_uint64 -#define purple_value_get_string purple_value_get_string -#define purple_value_get_object purple_value_get_object -#define purple_value_get_pointer purple_value_get_pointer -#define purple_value_get_enum purple_value_get_enum -#define purple_value_get_boxed purple_value_get_boxed +#define GAIM_TYPE_UNKNOWN PURPLE_TYPE_UNKNOWN +#define GAIM_TYPE_SUBTYPE PURPLE_TYPE_SUBTYPE +#define GAIM_TYPE_CHAR PURPLE_TYPE_CHAR +#define GAIM_TYPE_UCHAR PURPLE_TYPE_UCHAR +#define GAIM_TYPE_BOOLEAN PURPLE_TYPE_BOOLEAN +#define GAIM_TYPE_SHORT PURPLE_TYPE_SHORT +#define GAIM_TYPE_USHORT PURPLE_TYPE_USHORT +#define GAIM_TYPE_INT PURPLE_TYPE_INT +#define GAIM_TYPE_UINT PURPLE_TYPE_UINT +#define GAIM_TYPE_LONG PURPLE_TYPE_LONG +#define GAIM_TYPE_ULONG PURPLE_TYPE_ULONG +#define GAIM_TYPE_INT64 PURPLE_TYPE_INT64 +#define GAIM_TYPE_UINT64 PURPLE_TYPE_UINT64 +#define GAIM_TYPE_STRING PURPLE_TYPE_STRING +#define GAIM_TYPE_OBJECT PURPLE_TYPE_OBJECT +#define GAIM_TYPE_POINTER PURPLE_TYPE_POINTER +#define GAIM_TYPE_ENUM PURPLE_TYPE_ENUM +#define GAIM_TYPE_BOXED PURPLE_TYPE_BOXED +#define GaimType PurpleType + + +#define GAIM_SUBTYPE_UNKNOWN PURPLE_SUBTYPE_UNKNOWN +#define GAIM_SUBTYPE_ACCOUNT PURPLE_SUBTYPE_ACCOUNT +#define GAIM_SUBTYPE_BLIST PURPLE_SUBTYPE_BLIST +#define GAIM_SUBTYPE_BLIST_BUDDY PURPLE_SUBTYPE_BLIST_BUDDY +#define GAIM_SUBTYPE_BLIST_GROUP PURPLE_SUBTYPE_BLIST_GROUP +#define GAIM_SUBTYPE_BLIST_CHAT PURPLE_SUBTYPE_BLIST_CHAT +#define GAIM_SUBTYPE_BUDDY_ICON PURPLE_SUBTYPE_BUDDY_ICON +#define GAIM_SUBTYPE_CONNECTION PURPLE_SUBTYPE_CONNECTION +#define GAIM_SUBTYPE_CONVERSATION PURPLE_SUBTYPE_CONVERSATION +#define GAIM_SUBTYPE_PLUGIN PURPLE_SUBTYPE_PLUGIN +#define GAIM_SUBTYPE_BLIST_NODE PURPLE_SUBTYPE_BLIST_NODE +#define GAIM_SUBTYPE_CIPHER PURPLE_SUBTYPE_CIPHER +#define GAIM_SUBTYPE_STATUS PURPLE_SUBTYPE_STATUS +#define GAIM_SUBTYPE_LOG PURPLE_SUBTYPE_LOG +#define GAIM_SUBTYPE_XFER PURPLE_SUBTYPE_XFER +#define GAIM_SUBTYPE_SAVEDSTATUS PURPLE_SUBTYPE_SAVEDSTATUS +#define GAIM_SUBTYPE_XMLNODE PURPLE_SUBTYPE_XMLNODE +#define GAIM_SUBTYPE_USERINFO PURPLE_SUBTYPE_USERINFO +#define GaimSubType PurpleSubType + +#define GaimValue PurpleValue + +#define gaim_value_new purple_value_new +#define gaim_value_new_outgoing purple_value_new_outgoing +#define gaim_value_destroy purple_value_destroy +#define gaim_value_dup purple_value_dup +#define gaim_value_get_type purple_value_get_type +#define gaim_value_get_subtype purple_value_get_subtype +#define gaim_value_get_specific_type purple_value_get_specific_type +#define gaim_value_is_outgoing purple_value_is_outgoing +#define gaim_value_set_char purple_value_set_char +#define gaim_value_set_uchar purple_value_set_uchar +#define gaim_value_set_boolean purple_value_set_boolean +#define gaim_value_set_short purple_value_set_short +#define gaim_value_set_ushort purple_value_set_ushort +#define gaim_value_set_int purple_value_set_int +#define gaim_value_set_uint purple_value_set_uint +#define gaim_value_set_long purple_value_set_long +#define gaim_value_set_ulong purple_value_set_ulong +#define gaim_value_set_int64 purple_value_set_int64 +#define gaim_value_set_uint64 purple_value_set_uint64 +#define gaim_value_set_string purple_value_set_string +#define gaim_value_set_object purple_value_set_object +#define gaim_value_set_pointer purple_value_set_pointer +#define gaim_value_set_enum purple_value_set_enum +#define gaim_value_set_boxed purple_value_set_boxed +#define gaim_value_get_char purple_value_get_char +#define gaim_value_get_uchar purple_value_get_uchar +#define gaim_value_get_boolean purple_value_get_boolean +#define gaim_value_get_short purple_value_get_short +#define gaim_value_get_ushort purple_value_get_ushort +#define gaim_value_get_int purple_value_get_int +#define gaim_value_get_uint purple_value_get_uint +#define gaim_value_get_long purple_value_get_long +#define gaim_value_get_ulong purple_value_get_ulong +#define gaim_value_get_int64 purple_value_get_int64 +#define gaim_value_get_uint64 purple_value_get_uint64 +#define gaim_value_get_string purple_value_get_string +#define gaim_value_get_object purple_value_get_object +#define gaim_value_get_pointer purple_value_get_pointer +#define gaim_value_get_enum purple_value_get_enum +#define gaim_value_get_boxed purple_value_get_boxed /* from version.h */ -#define PURPLE_MAJOR_VERSION PURPLE_MAJOR_VERSION -#define PURPLE_MINOR_VERSION PURPLE_MINOR_VERSION -#define PURPLE_MICRO_VERSION PURPLE_MICRO_VERSION - -#define PURPLE_VERSION_CHECK PURPLE_VERSION_CHECK +#define GAIM_MAJOR_VERSION PURPLE_MAJOR_VERSION +#define GAIM_MINOR_VERSION PURPLE_MINOR_VERSION +#define GAIM_MICRO_VERSION PURPLE_MICRO_VERSION + +#define GAIM_VERSION_CHECK PURPLE_VERSION_CHECK /* from whiteboard.h */ -#ifndef _PURPLE_WHITEBOARD_H_ -#define _PURPLE_WHITEBOARD_H_ - -#define PurpleWhiteboardPrplOps PurpleWhiteboardPrplOps -#define PurpleWhiteboard PurpleWhiteboard -#define PurpleWhiteboardUiOps PurpleWhiteboardUiOps - -#define purple_whiteboard_set_ui_ops purple_whiteboard_set_ui_ops -#define purple_whiteboard_set_prpl_ops purple_whiteboard_set_prpl_ops - -#define purple_whiteboard_create purple_whiteboard_create -#define purple_whiteboard_destroy purple_whiteboard_destroy -#define purple_whiteboard_start purple_whiteboard_start -#define purple_whiteboard_get_session purple_whiteboard_get_session -#define purple_whiteboard_draw_list_destroy purple_whiteboard_draw_list_destroy -#define purple_whiteboard_get_dimensions purple_whiteboard_get_dimensions -#define purple_whiteboard_set_dimensions purple_whiteboard_set_dimensions -#define purple_whiteboard_draw_point purple_whiteboard_draw_point -#define purple_whiteboard_send_draw_list purple_whiteboard_send_draw_list -#define purple_whiteboard_draw_line purple_whiteboard_draw_line -#define purple_whiteboard_clear purple_whiteboard_clear -#define purple_whiteboard_send_clear purple_whiteboard_send_clear -#define purple_whiteboard_send_brush purple_whiteboard_send_brush -#define purple_whiteboard_get_brush purple_whiteboard_get_brush -#define purple_whiteboard_set_brush purple_whiteboard_set_brush - -#endif /* _PURPLE_COMPAT_H_ */ +#define GaimWhiteboardPrplOps PurpleWhiteboardPrplOps +#define GaimWhiteboard PurpleWhiteboard +#define GaimWhiteboardUiOps PurpleWhiteboardUiOps + +#define gaim_whiteboard_set_ui_ops purple_whiteboard_set_ui_ops +#define gaim_whiteboard_set_prpl_ops purple_whiteboard_set_prpl_ops + +#define gaim_whiteboard_create purple_whiteboard_create +#define gaim_whiteboard_destroy purple_whiteboard_destroy +#define gaim_whiteboard_start purple_whiteboard_start +#define gaim_whiteboard_get_session purple_whiteboard_get_session +#define gaim_whiteboard_draw_list_destroy purple_whiteboard_draw_list_destroy +#define gaim_whiteboard_get_dimensions purple_whiteboard_get_dimensions +#define gaim_whiteboard_set_dimensions purple_whiteboard_set_dimensions +#define gaim_whiteboard_draw_point purple_whiteboard_draw_point +#define gaim_whiteboard_send_draw_list purple_whiteboard_send_draw_list +#define gaim_whiteboard_draw_line purple_whiteboard_draw_line +#define gaim_whiteboard_clear purple_whiteboard_clear +#define gaim_whiteboard_send_clear purple_whiteboard_send_clear +#define gaim_whiteboard_send_brush purple_whiteboard_send_brush +#define gaim_whiteboard_get_brush purple_whiteboard_get_brush +#define gaim_whiteboard_set_brush purple_whiteboard_set_brush + +/* for static plugins */ +#define gaim_init_ssl_plugin purple_init_ssl_plugin +#define gaim_init_ssl_openssl_plugin purple_init_ssl_openssl_plugin +#define gaim_init_ssl_gnutls_plugin purple_init_ssl_gnutls_plugin +#define gaim_init_gg_plugin purple_init_gg_plugin +#define gaim_init_jabber_plugin purple_init_jabber_plugin +#define gaim_init_sametime_plugin purple_init_sametime_plugin +#define gaim_init_msn_plugin purple_init_msn_plugin +#define gaim_init_novell_plugin purple_init_novell_plugin +#define gaim_init_qq_plugin purple_init_qq_plugin +#define gaim_init_simple_plugin purple_init_simple_plugin +#define gaim_init_yahoo_plugin purple_init_yahoo_plugin +#define gaim_init_zephyr_plugin purple_init_zephyr_plugin +#define gaim_init_aim_plugin purple_init_aim_plugin +#define gaim_init_icq_plugin purple_init_icq_plugin + +#endif /* _GAIM_COMPAT_H_ */ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-notifications-example --- a/libpurple/gaim-notifications-example Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -#!/usr/bin/env python - -# This is a simple gaim notification server. -# It shows notifications when your buddy signs on or you get an IM message. -# -# This script requires Python 2.4 and PyGTK bindings -# -# Note that all function names are resolved dynamically, no -# gaim-specific library is needed. - -import dbus -import dbus.glib -import dbus.decorators -import gobject -import os - -def ensureimconversation(conversation, account, name): - if conversation != 0: - return conversation - else: - # 1 = GAIM_CONV_IM - return gaim.GaimConversationNew(1, account, name) - -def receivedimmsg(account, name, message, conversation, flags): - buddy = gaim.GaimFindBuddy(account, name) - if buddy != 0: - alias = gaim.GaimBuddyGetAlias(buddy) - else: - alias = name - - text = "%s says %s" % (alias, message) - code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", - "'So what?','Show me',Close,Abuse", text) - - if code == 101: # so what? - pass - else: - conversation = ensureimconversation(conversation, account, name) - - if code == 102: # show me - window = gaim.GaimConversationGetWindow(conversation) - gaim.GaimConvWindowRaise(window) - - if code == 103: # close - gaim.GaimConversationDestroy(conversation) - - if code == 104: # abuse - im = gaim.GaimConversationGetImData(conversation) - gaim.GaimConvImSend(im, "Go away you f...") - - -def buddysignedon(buddyid): - alias = gaim.GaimBuddyGetAlias(buddyid) - text = "%s is online" % alias - - code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", - "'So what?','Let's talk'", text) - - if code == 101: # so what? - pass - - if code == 102: # talk - name = gaim.GaimBuddyGetName(buddyid) - account = gaim.GaimBuddyGetAccount(buddyid) - gaim.GaimConversationNew(1, account, name) - - -bus = dbus.SessionBus() -obj = bus.get_object("net.sf.gaim.GaimService", "/net/sf/gaim/GaimObject") -gaim = dbus.Interface(obj, "net.sf.gaim.GaimInterface") - -bus.add_signal_receiver(receivedimmsg, - dbus_interface = "net.sf.gaim.GaimInterface", - signal_name = "ReceivedImMsg") - -bus.add_signal_receiver(buddysignedon, - dbus_interface = "net.sf.gaim.GaimInterface", - signal_name = "BuddySignedOn") - -print "This is a simple gaim notification server." -print "It shows notifications when your buddy signs on or you get an IM message." - -loop = gobject.MainLoop() -loop.run() - - diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-remote --- a/libpurple/gaim-remote Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -#!/usr/bin/python - -import dbus -import re -import urllib -import sys - -import xml.dom.minidom - -xml.dom.minidom.Element.all = xml.dom.minidom.Element.getElementsByTagName - -obj = dbus.SessionBus().get_object("net.sf.gaim.GaimService", "/net/sf/gaim/GaimObject") -gaim = dbus.Interface(obj, "net.sf.gaim.GaimInterface") - -class CheckedObject: - def __init__(self, obj): - self.obj = obj - - def __getattr__(self, attr): - return CheckedAttribute(self, attr) - -class CheckedAttribute: - def __init__(self, cobj, attr): - self.cobj = cobj - self.attr = attr - - def __call__(self, *args): - result = self.cobj.obj.__getattr__(self.attr)(*args) - if result == 0: - raise "Error: " + self.attr + " " + str(args) + " returned " + str(result) - return result - -def show_help(): - print """This program uses DBus to communicate with gaim. - -Usage: - - %s "command1" "command2" ... - -Each command is of one of the three types: - - [protocol:]commandname?param1=value1¶m2=value2&... - FunctionName?param1=value1¶m2=value2&... - FunctionName(value1,value2,...) - -The second and third form are provided for completeness but their use -is not recommended; use gaim-send or gaim-send-async instead. The -second form uses introspection to find out the parameter names and -their types, therefore it is rather slow. - -Examples of commands: - - jabber:goim?screenname=testone@localhost&message=hi - jabber:gochat?room=TestRoom&server=conference.localhost - jabber:getinfo?screenname=testone@localhost - jabber:addbuddy?screenname=my friend - - setstatus?status=away&message=don't disturb - quit - - GaimAccountsFindConnected?name=&protocol=prpl-jabber - GaimAccountFindConnected(,prpl-jabber) -""" % sys.argv[0] - -cgaim = CheckedObject(gaim) - -urlregexp = r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?" - -def extendlist(list, length, fill): - if len(list) < length: - return list + [fill] * (length - len(list)) - else: - return list - -def convert(value): - try: - return int(value) - except: - return value - -def findaccount(accountname, protocolname): - try: - # prefer connected accounts - account = cgaim.GaimAccountsFindConnected(accountname, protocolname) - return account - except: - # try to get any account and connect it - account = cgaim.GaimAccountsFindAny(accountname, protocolname) - gaim.GaimAccountSetStatusVargs(account, "online", 1) - gaim.GaimAccountConnect(account) - return account - - -def execute(uri): - match = re.match(urlregexp, uri) - protocol = match.group(2) - if protocol == "aim" or protocol == "icq": - protocol = "oscar" - if protocol is not None: - protocol = "prpl-" + protocol - command = match.group(5) - paramstring = match.group(7) - params = {} - if paramstring is not None: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=",1), 2, "") - params[key] = urllib.unquote(value) - - accountname = params.get("account", "") - - if command == "goim": - account = findaccount(accountname, protocol) - conversation = cgaim.GaimConversationNew(1, account, params["screenname"]) - if "message" in params: - im = cgaim.GaimConversationGetImData(conversation) - gaim.GaimConvImSend(im, params["message"]) - return None - - elif command == "gochat": - account = findaccount(accountname, protocol) - connection = cgaim.GaimAccountGetConnection(account) - return gaim.ServJoinChat(connection, params) - - elif command == "addbuddy": - account = findaccount(accountname, protocol) - return cgaim.GaimBlistRequestAddBuddy(account, params["screenname"], - params.get("group", ""), "") - - elif command == "setstatus": - current = gaim.GaimSavedstatusGetCurrent() - - if "status" in params: - status_id = params["status"] - status_type = gaim.GaimPrimitiveGetTypeFromId(status_id) - else: - status_type = gaim.GaimSavedstatusGetType(current) - status_id = gaim.GaimPrimitiveGetIdFromType(status_type) - - if "message" in params: - message = params["message"]; - else: - message = gaim.GaimSavedstatusGetMessage(current) - - if "account" in params: - accounts = [cgaim.GaimAccountsFindAny(accountname, protocol)] - - for account in accounts: - status = gaim.GaimAccountGetStatus(account, status_id) - type = gaim.GaimStatusGetType(status) - gaim.GaimSavedstatusSetSubstatus(current, account, type, message) - gaim.GaimSavedstatusActivateForAccount(current, account) - else: - accounts = gaim.GaimAccountsGetAllActive() - saved = gaim.GaimSavedstatusNew("", status_type) - gaim.GaimSavedstatusSetMessage(saved, message) - gaim.GaimSavedstatusActivate(saved) - - return None - - elif command == "getinfo": - account = findaccount(accountname, protocol) - connection = cgaim.GaimAccountGetConnection(account) - return gaim.ServGetInfo(connection, params["screenname"]) - - elif command == "quit": - return gaim.GaimCoreQuit() - - elif command == "uri": - return None - - else: - match = re.match(r"(\w+)\s*\(([^)]*)\)", command) - if match is not None: - name = match.group(1) - argstr = match.group(2) - if argstr == "": - args = [] - else: - args = argstr.split(",") - fargs = [] - for arg in args: - fargs.append(convert(arg.strip())) - return gaim.__getattr__(name)(*fargs) - else: - # introspect the object to get parameter names and types - # this is slow because the entire introspection info must be downloaded - data = dbus.Interface(obj, "org.freedesktop.DBus.Introspectable").\ - Introspect() - introspect = xml.dom.minidom.parseString(data).documentElement - for method in introspect.all("method"): - if command == method.getAttribute("name"): - methodparams = [] - for arg in method.all("arg"): - if arg.getAttribute("direction") == "in": - value = params[arg.getAttribute("name")] - type = arg.getAttribute("type") - if type == "s": - methodparams.append(value) - elif type == "i": - methodparams.append(int(value)) - else: - raise "Don't know how to handle type \"%s\"" % type - return gaim.__getattr__(command)(*methodparams) - show_help() - raise "Unknown command: %s" % command - -if len(sys.argv) == 1: - show_help() - -for arg in sys.argv[1:]: - output = execute(arg) - - if (output != None): - print output - diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gaim-send --- a/libpurple/gaim-send Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -#!/bin/bash - -METHOD_NAME=$1 - -if test -z "$METHOD_NAME" -then - cat < - - - - /schemas/desktop/gnome/url-handlers/aim/enabled - /desktop/gnome/url-handlers/aim/enabled - gaim - bool - true - - Whether the specified command should handle "aim" URLs - True if the command specified in the "command" key should handle "aim" URLs. - - - - /schemas/desktop/gnome/url-handlers/aim/command - /desktop/gnome/url-handlers/aim/command - gaim - string - gaim-url-handler "%s" - - The handler for "aim" URLs - The command used to handle "aim" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/aim/needs_terminal - /desktop/gnome/url-handlers/aim/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/gg/enabled - /desktop/gnome/url-handlers/gg/enabled - gaim - bool - true - - Whether the specified command should handle "gg" URLs - True if the command specified in the "command" key should handle "gg" URLs. - - - - /schemas/desktop/gnome/url-handlers/gg/command - /desktop/gnome/url-handlers/gg/command - gaim - string - gaim-url-handler "%s" - - The handler for "gg" URLs - The command used to handle "gg" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/gg/needs_terminal - /desktop/gnome/url-handlers/gg/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/icq/enabled - /desktop/gnome/url-handlers/icq/enabled - gaim - bool - true - - Whether the specified command should handle "icq" URLs - True if the command specified in the "command" key should handle "icq" URLs. - - - - /schemas/desktop/gnome/url-handlers/icq/command - /desktop/gnome/url-handlers/icq/command - gaim - string - gaim-url-handler "%s" - - The handler for "icq" URLs - The command used to handle "icq" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/icq/needs_terminal - /desktop/gnome/url-handlers/icq/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/irc/enabled - /desktop/gnome/url-handlers/irc/enabled - gaim - bool - true - - Whether the specified command should handle "irc" URLs - True if the command specified in the "command" key should handle "irc" URLs. - - - - /schemas/desktop/gnome/url-handlers/irc/command - /desktop/gnome/url-handlers/irc/command - gaim - string - gaim-url-handler "%s" - - The handler for "irc" URLs - The command used to handle "irc" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/irc/needs_terminal - /desktop/gnome/url-handlers/irc/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/msnim/enabled - /desktop/gnome/url-handlers/msnim/enabled - gaim - bool - true - - Whether the specified command should handle "msnim" URLs - True if the command specified in the "command" key should handle "msnim" URLs. - - - - /schemas/desktop/gnome/url-handlers/msnim/command - /desktop/gnome/url-handlers/msnim/command - gaim - string - gaim-url-handler "%s" - - The handler for "msnim" URLs - The command used to handle "msnim" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/msnim/needs_terminal - /desktop/gnome/url-handlers/msnim/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/sip/enabled - /desktop/gnome/url-handlers/sip/enabled - gaim - bool - true - - Whether the specified command should handle "sip" URLs - True if the command specified in the "command" key should handle "sip" URLs. - - - - /schemas/desktop/gnome/url-handlers/sip/command - /desktop/gnome/url-handlers/sip/command - gaim - string - gaim-url-handler "%s" - - The handler for "sip" URLs - The command used to handle "sip" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/sip/needs_terminal - /desktop/gnome/url-handlers/sip/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/xmpp/enabled - /desktop/gnome/url-handlers/xmpp/enabled - gaim - bool - true - - Whether the specified command should handle "xmpp" URLs - True if the command specified in the "command" key should handle "xmpp" URLs. - - - - /schemas/desktop/gnome/url-handlers/xmpp/command - /desktop/gnome/url-handlers/xmpp/command - gaim - string - gaim-url-handler "%s" - - The handler for "xmpp" URLs - The command used to handle "xmpp" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/xmpp/needs_terminal - /desktop/gnome/url-handlers/xmpp/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - - /schemas/desktop/gnome/url-handlers/ymsgr/enabled - /desktop/gnome/url-handlers/ymsgr/enabled - gaim - bool - true - - Whether the specified command should handle "ymsgr" URLs - True if the command specified in the "command" key should handle "ymsgr" URLs. - - - - /schemas/desktop/gnome/url-handlers/ymsgr/command - /desktop/gnome/url-handlers/ymsgr/command - gaim - string - gaim-url-handler "%s" - - The handler for "ymsgr" URLs - The command used to handle "ymsgr" URLs, if enabled. - - - - /schemas/desktop/gnome/url-handlers/ymsgr/needs_terminal - /desktop/gnome/url-handlers/ymsgr/needs_terminal - gaim - bool - false - - Run the command in a terminal - True if the command used to handle this type of URL should be run in a terminal. - - - - diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/gconf/purple.schemas.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/gconf/purple.schemas.in Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,276 @@ + + + + + /schemas/desktop/gnome/url-handlers/aim/enabled + /desktop/gnome/url-handlers/aim/enabled + purple + bool + true + + Whether the specified command should handle "aim" URLs + True if the command specified in the "command" key should handle "aim" URLs. + + + + /schemas/desktop/gnome/url-handlers/aim/command + /desktop/gnome/url-handlers/aim/command + purple + string + purple-url-handler "%s" + + The handler for "aim" URLs + The command used to handle "aim" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/aim/needs_terminal + /desktop/gnome/url-handlers/aim/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/gg/enabled + /desktop/gnome/url-handlers/gg/enabled + purple + bool + true + + Whether the specified command should handle "gg" URLs + True if the command specified in the "command" key should handle "gg" URLs. + + + + /schemas/desktop/gnome/url-handlers/gg/command + /desktop/gnome/url-handlers/gg/command + purple + string + purple-url-handler "%s" + + The handler for "gg" URLs + The command used to handle "gg" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/gg/needs_terminal + /desktop/gnome/url-handlers/gg/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/icq/enabled + /desktop/gnome/url-handlers/icq/enabled + purple + bool + true + + Whether the specified command should handle "icq" URLs + True if the command specified in the "command" key should handle "icq" URLs. + + + + /schemas/desktop/gnome/url-handlers/icq/command + /desktop/gnome/url-handlers/icq/command + purple + string + purple-url-handler "%s" + + The handler for "icq" URLs + The command used to handle "icq" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/icq/needs_terminal + /desktop/gnome/url-handlers/icq/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/irc/enabled + /desktop/gnome/url-handlers/irc/enabled + purple + bool + true + + Whether the specified command should handle "irc" URLs + True if the command specified in the "command" key should handle "irc" URLs. + + + + /schemas/desktop/gnome/url-handlers/irc/command + /desktop/gnome/url-handlers/irc/command + purple + string + purple-url-handler "%s" + + The handler for "irc" URLs + The command used to handle "irc" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/irc/needs_terminal + /desktop/gnome/url-handlers/irc/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/msnim/enabled + /desktop/gnome/url-handlers/msnim/enabled + purple + bool + true + + Whether the specified command should handle "msnim" URLs + True if the command specified in the "command" key should handle "msnim" URLs. + + + + /schemas/desktop/gnome/url-handlers/msnim/command + /desktop/gnome/url-handlers/msnim/command + purple + string + purple-url-handler "%s" + + The handler for "msnim" URLs + The command used to handle "msnim" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/msnim/needs_terminal + /desktop/gnome/url-handlers/msnim/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/sip/enabled + /desktop/gnome/url-handlers/sip/enabled + purple + bool + true + + Whether the specified command should handle "sip" URLs + True if the command specified in the "command" key should handle "sip" URLs. + + + + /schemas/desktop/gnome/url-handlers/sip/command + /desktop/gnome/url-handlers/sip/command + purple + string + purple-url-handler "%s" + + The handler for "sip" URLs + The command used to handle "sip" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/sip/needs_terminal + /desktop/gnome/url-handlers/sip/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/xmpp/enabled + /desktop/gnome/url-handlers/xmpp/enabled + purple + bool + true + + Whether the specified command should handle "xmpp" URLs + True if the command specified in the "command" key should handle "xmpp" URLs. + + + + /schemas/desktop/gnome/url-handlers/xmpp/command + /desktop/gnome/url-handlers/xmpp/command + purple + string + purple-url-handler "%s" + + The handler for "xmpp" URLs + The command used to handle "xmpp" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/xmpp/needs_terminal + /desktop/gnome/url-handlers/xmpp/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + + /schemas/desktop/gnome/url-handlers/ymsgr/enabled + /desktop/gnome/url-handlers/ymsgr/enabled + purple + bool + true + + Whether the specified command should handle "ymsgr" URLs + True if the command specified in the "command" key should handle "ymsgr" URLs. + + + + /schemas/desktop/gnome/url-handlers/ymsgr/command + /desktop/gnome/url-handlers/ymsgr/command + purple + string + purple-url-handler "%s" + + The handler for "ymsgr" URLs + The command used to handle "ymsgr" URLs, if enabled. + + + + /schemas/desktop/gnome/url-handlers/ymsgr/needs_terminal + /desktop/gnome/url-handlers/ymsgr/needs_terminal + purple + bool + false + + Run the command in a terminal + True if the command used to handle this type of URL should be run in a terminal. + + + + diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/internal.h --- a/libpurple/internal.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/internal.h Mon Mar 26 02:48:09 2007 +0000 @@ -181,7 +181,7 @@ #define purple_strlcpy(dest, src) g_strlcpy(dest, src, sizeof(dest)) #define purple_strlcat(dest, src) g_strlcat(dest, src, sizeof(dest)) -#define PURPLE_WEBSITE "http://purple.sourceforge.net/" +#define PURPLE_WEBSITE "http://pidgin.im/" #ifndef _WIN32 /* Everything needs to include this, because diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/log.c --- a/libpurple/log.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/log.c Mon Mar 26 02:48:09 2007 +0000 @@ -638,7 +638,7 @@ #else #error Unknown size of time_t #endif - purple_value_new(PURPLE_TYPE_STRING), 2, + purple_value_new(PURPLE_TYPE_STRING), 3, purple_value_new(PURPLE_TYPE_SUBTYPE, PURPLE_SUBTYPE_LOG), #if SIZEOF_TIME_T == 4 diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/nat-pmp.c --- a/libpurple/nat-pmp.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/nat-pmp.c Mon Mar 26 02:48:09 2007 +0000 @@ -31,14 +31,13 @@ #include "nat-pmp.h" #include "debug.h" +#include +#include #include #include #include #include -#include - -#include #include #include @@ -47,26 +46,68 @@ #include #include -#include #include #include #ifdef NET_RT_DUMP2 + +#define PMP_DEBUG 1 + +typedef struct { + uint8_t version; + uint8_t opcode; +} PurplePmpIpRequest; + +typedef struct { + uint8_t version; + uint8_t opcode; // 128 + n + uint16_t resultcode; + uint32_t epoch; + uint32_t address; +} PurplePmpIpResponse; + +typedef struct { + uint8_t version; + uint8_t opcode; + char reserved[2]; + uint16_t privateport; + uint16_t publicport; + uint32_t lifetime; +} PurplePmpMapRequest; + +struct _PurplePmpMapResponse { + uint8_t version; + uint8_t opcode; + uint16_t resultcode; + uint32_t epoch; + uint16_t privateport; + uint16_t publicport; + uint32_t lifetime; +}; + +typedef struct _PurplePmpMapResponse PurplePmpMapResponse; + /* * Thanks to R. Matthew Emerson for the fixes on this */ +#define PMP_MAP_OPCODE_UDP 1 +#define PMP_MAP_OPCODE_TCP 2 + +#define PMP_VERSION 0 +#define PMP_PORT 5351 +#define PMP_TIMEOUT 250000 /* 250000 useconds */ + /* alignment constraint for routing socket */ -#define ROUNDUP(a) \ -((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) -#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) +#define ROUNDUP(a) ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long)) +#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len)) static void get_rtaddrs(int bitmask, struct sockaddr *sa, struct sockaddr *addrs[]) { int i; - - for (i = 0; i < RTAX_MAX; i++) + + for (i = 0; i < RTAX_MAX; i++) { if (bitmask & (1 << i)) { @@ -84,10 +125,10 @@ is_default_route(struct sockaddr *sa, struct sockaddr *mask) { struct sockaddr_in *sin; - + if (sa->sa_family != AF_INET) return 0; - + sin = (struct sockaddr_in *)sa; if ((sin->sin_addr.s_addr == INADDR_ANY) && mask && @@ -98,6 +139,9 @@ return 0; } +/*! + * The return sockaddr_in must be g_free()'d when no longer needed + */ static struct sockaddr_in * default_gw() { @@ -106,35 +150,38 @@ char *buf, *next, *lim; struct rt_msghdr2 *rtm; struct sockaddr *sa; - struct sockaddr *rti_info[RTAX_MAX]; - struct sockaddr_in *sin; - + struct sockaddr_in *sin = NULL; + gboolean found = FALSE; + mib[0] = CTL_NET; - mib[1] = PF_ROUTE; - mib[2] = 0; - mib[3] = 0; + mib[1] = PF_ROUTE; /* entire routing table or a subset of it */ + mib[2] = 0; /* protocol number - always 0 */ + mib[3] = 0; /* address family - 0 for all addres families */ mib[4] = NET_RT_DUMP2; mib[5] = 0; - + + /* Determine the buffer side needed to get the full routing table */ if (sysctl(mib, 6, NULL, &needed, NULL, 0) < 0) { - err(1, "sysctl: net.route.0.0.dump estimate"); + purple_debug_warning("nat-pmp", "sysctl: net.route.0.0.dump estimate"); + return NULL; } - - buf = malloc(needed); - - if (buf == 0) + + if (!(buf = malloc(needed))) { - err(2, "malloc"); + purple_debug_warning("nat-pmp", "malloc"); + return NULL; } - + + /* Read the routing table into buf */ if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) { - err(1, "sysctl: net.route.0.0.dump"); + purple_debug_warning("nat-pmp", "sysctl: net.route.0.0.dump"); + return NULL; } - + lim = buf + needed; - + for (next = buf; next < lim; next += rtm->rtm_msglen) { rtm = (struct rt_msghdr2 *)next; @@ -142,51 +189,46 @@ if (sa->sa_family == AF_INET) { - sin = (struct sockaddr_in *)sa; - struct sockaddr addr, mask; - - get_rtaddrs(rtm->rtm_addrs, sa, rti_info); - bzero(&addr, sizeof(addr)); - - if (rtm->rtm_addrs & RTA_DST) - bcopy(rti_info[RTAX_DST], &addr, rti_info[RTAX_DST]->sa_len); - - bzero(&mask, sizeof(mask)); - - if (rtm->rtm_addrs & RTA_NETMASK) - bcopy(rti_info[RTAX_NETMASK], &mask, rti_info[RTAX_NETMASK]->sa_len); - - if (is_default_route(&addr, &mask)) + sin = (struct sockaddr_in*) sa; + + if ((rtm->rtm_flags & RTF_GATEWAY) && sin->sin_addr.s_addr == INADDR_ANY) { - sin = (struct sockaddr_in *)rti_info[RTAX_GATEWAY]; - break; + /* We found the default route. Now get the destination address and netmask. */ + struct sockaddr *rti_info[RTAX_MAX]; + struct sockaddr addr, mask; + + get_rtaddrs(rtm->rtm_addrs, sa, rti_info); + bzero(&addr, sizeof(addr)); + + if (rtm->rtm_addrs & RTA_DST) + bcopy(rti_info[RTAX_DST], &addr, rti_info[RTAX_DST]->sa_len); + + bzero(&mask, sizeof(mask)); + + if (rtm->rtm_addrs & RTA_NETMASK) + bcopy(rti_info[RTAX_NETMASK], &mask, rti_info[RTAX_NETMASK]->sa_len); + + if (rtm->rtm_addrs & RTA_GATEWAY && + is_default_route(&addr, &mask)) + { + if (rti_info[RTAX_GATEWAY]) { + struct sockaddr_in *rti_sin = (struct sockaddr_in *)rti_info[RTAX_GATEWAY]; + sin = g_new0(struct sockaddr_in, 1); + sin->sin_family = rti_sin->sin_family; + sin->sin_port = rti_sin->sin_port; + sin->sin_addr.s_addr = rti_sin->sin_addr.s_addr; + memcpy(sin, rti_info[RTAX_GATEWAY], sizeof(struct sockaddr_in)); + + purple_debug_info("nat-pmp", "found a default gateway"); + found = TRUE; + break; + } + } } } - - rtm = (struct rt_msghdr2 *)next; } - - free(buf); - - return sin; -} -//! double_timeout(struct timeval *) will handle doubling a timeout for backoffs required by NAT-PMP -static void -double_timeout(struct timeval *to) -{ - int second = 1000000; // number of useconds - - to->tv_sec = (to->tv_sec * 2); - to->tv_usec = (to->tv_usec * 2); - - // Overflow useconds if necessary - if (to->tv_usec >= second) - { - int overflow = (to->tv_usec / second); - to->tv_usec = (to->tv_usec - (overflow * second)); - to->tv_sec = (to->tv_sec + overflow); - } + return (found ? sin : NULL); } /*! @@ -199,89 +241,88 @@ purple_pmp_get_public_ip() { struct sockaddr_in *gateway = default_gw(); - - if (gateway == NULL) + + if (!gateway) { purple_debug_info("nat-pmp", "Cannot request public IP from a NULL gateway!\n"); return NULL; } + + /* Default port for NAT-PMP is 5351 */ if (gateway->sin_port != PMP_PORT) - { - gateway->sin_port = htons(PMP_PORT); // Default port for NAT-PMP is 5351 - } + gateway->sin_port = htons(PMP_PORT); int sendfd; - int req_attempts = 1; struct timeval req_timeout; - pmp_ip_request_t req; - pmp_ip_response_t resp; + PurplePmpIpRequest req; + PurplePmpIpResponse resp; struct sockaddr_in *publicsockaddr = NULL; req_timeout.tv_sec = 0; req_timeout.tv_usec = PMP_TIMEOUT; sendfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - - // Clean out both req and resp structures - bzero(&req, sizeof(pmp_ip_request_t)); - bzero(&resp, sizeof(pmp_ip_response_t)); + + /* Clean out both req and resp structures */ + bzero(&req, sizeof(PurplePmpIpRequest)); + bzero(&resp, sizeof(PurplePmpIpResponse)); req.version = 0; req.opcode = 0; - - // Attempt to contact NAT-PMP device 9 times as per: draft-cheshire-nat-pmp-02.txt - while (req_attempts < 10) - { + + /* The NAT-PMP spec says we should attempt to contact the gateway 9 times, doubling the time we wait each time. + * Even starting with a timeout of 0.1 seconds, that means that we have a total waiting of 204.6 seconds. + * With the recommended timeout of 0.25 seconds, we're talking 511.5 seconds (8.5 minutes). + * + * This seems really silly... if this were nonblocking, a couple retries might be in order, but it's not at present. + * XXX Make this nonblocking. + */ #ifdef PMP_DEBUG - purple_debug_info("nat-pmp", "Attempting to retrieve the public ip address for the NAT device at: %s\n", inet_ntoa(gateway->sin_addr)); - purple_debug_info("nat-pmp", "\tTimeout: %ds %dus, Request #: %d\n", req_timeout.tv_sec, req_timeout.tv_usec, req_attempts); + purple_debug_info("nat-pmp", "Attempting to retrieve the public ip address for the NAT device at: %s\n", inet_ntoa(gateway->sin_addr)); + purple_debug_info("nat-pmp", "\tTimeout: %ds %dus\n", req_timeout.tv_sec, req_timeout.tv_usec); #endif - struct sockaddr_in addr; - socklen_t len = sizeof(struct sockaddr_in); + struct sockaddr_in addr; + socklen_t len = sizeof(struct sockaddr_in); + + /* TODO: Non-blocking! */ + if (sendto(sendfd, &req, sizeof(req), 0, (struct sockaddr *)(gateway), sizeof(struct sockaddr)) < 0) + { + purple_debug_info("nat-pmp", "There was an error sending the NAT-PMP public IP request! (%s)\n", strerror(errno)); + g_free(gateway); + return NULL; + } - if (sendto(sendfd, &req, sizeof(req), 0, (struct sockaddr *)(gateway), sizeof(struct sockaddr)) < 0) + if (setsockopt(sendfd, SOL_SOCKET, SO_RCVTIMEO, &req_timeout, sizeof(req_timeout)) < 0) + { + purple_debug_info("nat-pmp", "There was an error setting the socket's options! (%s)\n", strerror(errno)); + g_free(gateway); + return NULL; + } + + /* TODO: Non-blocking! */ + if (recvfrom(sendfd, &resp, sizeof(PurplePmpIpResponse), 0, (struct sockaddr *)(&addr), &len) < 0) + { + if (errno != EAGAIN) { - purple_debug_info("nat-pmp", "There was an error sending the NAT-PMP public IP request! (%s)\n", strerror(errno)); + purple_debug_info("nat-pmp", "There was an error receiving the response from the NAT-PMP device! (%s)\n", strerror(errno)); + g_free(gateway); return NULL; } - - if (setsockopt(sendfd, SOL_SOCKET, SO_RCVTIMEO, &req_timeout, sizeof(req_timeout)) < 0) - { - purple_debug_info("nat-pmp", "There was an error setting the socket's options! (%s)\n", strerror(errno)); - return NULL; - } - - if (recvfrom(sendfd, &resp, sizeof(pmp_ip_response_t), 0, (struct sockaddr *)(&addr), &len) < 0) - { - if ( (errno != EAGAIN) || (req_attempts == 9) ) - { - purple_debug_info("nat-pmp", "There was an error receiving the response from the NAT-PMP device! (%s)\n", strerror(errno)); - return NULL; - } - else - { - goto iterate; - } - } - - if (addr.sin_addr.s_addr != gateway->sin_addr.s_addr) - { - purple_debug_info("nat-pmp", "Response was not received from our gateway! Instead from: %s\n", inet_ntoa(addr.sin_addr)); - goto iterate; - } - else - { - publicsockaddr = &addr; - break; - } + } -iterate: - ++req_attempts; - double_timeout(&req_timeout); + if (addr.sin_addr.s_addr == gateway->sin_addr.s_addr) + publicsockaddr = &addr; + else + { + purple_debug_info("nat-pmp", "Response was not received from our gateway! Instead from: %s\n", inet_ntoa(addr.sin_addr)); + g_free(gateway); + return NULL; } - - if (publicsockaddr == NULL) + + if (!publicsockaddr) { + g_free(gateway); return NULL; - + } + #ifdef PMP_DEBUG purple_debug_info("nat-pmp", "Response received from NAT-PMP device:\n"); purple_debug_info("nat-pmp", "version: %d\n", resp.version); @@ -294,126 +335,128 @@ #endif publicsockaddr->sin_addr.s_addr = resp.address; - + + g_free(gateway); + return inet_ntoa(publicsockaddr->sin_addr); } -/*! - * will return NULL on error, or a pointer to the pmp_map_response_t type - */ -pmp_map_response_t * -purple_pmp_create_map(uint8_t type, uint16_t privateport, uint16_t publicport, uint32_t lifetime) +gboolean +purple_pmp_create_map(PurplePmpType type, unsigned short privateport, unsigned short publicport, int lifetime) { - struct sockaddr_in *gateway = default_gw(); - - if (gateway == NULL) + struct sockaddr_in *gateway; + gboolean success = TRUE; + int sendfd; + struct timeval req_timeout; + PurplePmpMapRequest req; + PurplePmpMapResponse *resp; + + gateway = default_gw(); + + if (!gateway) { purple_debug_info("nat-pmp", "Cannot create mapping on a NULL gateway!\n"); - return NULL; - } - if (gateway->sin_port != PMP_PORT) - { - gateway->sin_port = htons(PMP_PORT); // Default port for NAT-PMP is 5351 + return FALSE; } - - int sendfd; - int req_attempts = 1; - struct timeval req_timeout; - pmp_map_request_t req; - pmp_map_response_t *resp = (pmp_map_response_t *)(malloc(sizeof(pmp_map_response_t))); - + + /* Default port for NAT-PMP is 5351 */ + if (gateway->sin_port != PMP_PORT) + gateway->sin_port = htons(PMP_PORT); + + resp = g_new0(PurplePmpMapResponse, 1); + req_timeout.tv_sec = 0; req_timeout.tv_usec = PMP_TIMEOUT; - + sendfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - - // Clean out both req and resp structures - bzero(&req, sizeof(pmp_map_request_t)); - bzero(resp, sizeof(pmp_map_response_t)); + + /* Set up the req */ + bzero(&req, sizeof(PurplePmpMapRequest)); req.version = 0; - req.opcode = type; + req.opcode = ((type == PURPLE_PMP_TYPE_UDP) ? PMP_MAP_OPCODE_UDP : PMP_MAP_OPCODE_TCP); req.privateport = htons(privateport); // What a difference byte ordering makes...d'oh! req.publicport = htons(publicport); req.lifetime = htonl(lifetime); - - // Attempt to contact NAT-PMP device 9 times as per: draft-cheshire-nat-pmp-02.txt - while (req_attempts < 10) - { + + /* The NAT-PMP spec says we should attempt to contact the gateway 9 times, doubling the time we wait each time. + * Even starting with a timeout of 0.1 seconds, that means that we have a total waiting of 204.6 seconds. + * With the recommended timeout of 0.25 seconds, we're talking 511.5 seconds (8.5 minutes). + * + * This seems really silly... if this were nonblocking, a couple retries might be in order, but it's not at present. + * XXX Make this nonblocking. + * XXX This code looks like the pmp_get_public_ip() code. Can it be consolidated? + */ #ifdef PMP_DEBUG - purple_debug_info("nat-pmp", "Attempting to create a NAT-PMP mapping the private port %d, and the public port %d\n", privateport, publicport); - purple_debug_info("nat-pmp", "\tTimeout: %ds %dus, Request #: %d\n", req_timeout.tv_sec, req_timeout.tv_usec, req_attempts); + purple_debug_info("nat-pmp", "Attempting to create a NAT-PMP mapping the private port %d, and the public port %d\n", privateport, publicport); + purple_debug_info("nat-pmp", "\tTimeout: %ds %dus\n", req_timeout.tv_sec, req_timeout.tv_usec); #endif - if (sendto(sendfd, &req, sizeof(req), 0, (struct sockaddr *)(gateway), sizeof(struct sockaddr)) < 0) - { - purple_debug_info("nat-pmp", "There was an error sending the NAT-PMP mapping request! (%s)\n", strerror(errno)); - return NULL; - } - - if (setsockopt(sendfd, SOL_SOCKET, SO_RCVTIMEO, &req_timeout, sizeof(req_timeout)) < 0) - { + /* TODO: Non-blocking! */ + success = (sendto(sendfd, &req, sizeof(req), 0, (struct sockaddr *)(gateway), sizeof(struct sockaddr)) >= 0); + if (!success) + purple_debug_info("nat-pmp", "There was an error sending the NAT-PMP mapping request! (%s)\n", strerror(errno)); + + if (success) + { + success = (setsockopt(sendfd, SOL_SOCKET, SO_RCVTIMEO, &req_timeout, sizeof(req_timeout)) >= 0); + if (!success) purple_debug_info("nat-pmp", "There was an error setting the socket's options! (%s)\n", strerror(errno)); - return NULL; - } - - if (recvfrom(sendfd, resp, sizeof(pmp_map_response_t), 0, NULL, NULL) < 0) - { - if ( (errno != EAGAIN) || (req_attempts == 9) ) - { - purple_debug_info("nat-pmp", "There was an error receiving the response from the NAT-PMP device! (%s)\n", strerror(errno)); - return NULL; - } - else - { - goto iterate; - } - } - - if (resp->opcode != (req.opcode + 128)) - { + } + + if (success) + { + /* The original code treats EAGAIN as a reason to iterate.. but I've removed iteration. This may be a problem */ + /* TODO: Non-blocking! */ + success = ((recvfrom(sendfd, resp, sizeof(PurplePmpMapResponse), 0, NULL, NULL) >= 0) || + (errno == EAGAIN)); + if (!success) + purple_debug_info("nat-pmp", "There was an error receiving the response from the NAT-PMP device! (%s)\n", strerror(errno)); + } + + if (success) + { + success = (resp->opcode == (req.opcode + 128)); + if (!success) purple_debug_info("nat-pmp", "The opcode for the response from the NAT device does not match the request opcode!\n"); - goto iterate; - } - - break; - -iterate: - ++req_attempts; - double_timeout(&req_timeout); } - + #ifdef PMP_DEBUG - purple_debug_info("nat-pmp", "Response received from NAT-PMP device:\n"); - purple_debug_info("nat-pmp", "version: %d\n", resp->version); - purple_debug_info("nat-pmp", "opcode: %d\n", resp->opcode); - purple_debug_info("nat-pmp", "resultcode: %d\n", ntohs(resp->resultcode)); - purple_debug_info("nat-pmp", "epoch: %d\n", ntohl(resp->epoch)); - purple_debug_info("nat-pmp", "privateport: %d\n", ntohs(resp->privateport)); - purple_debug_info("nat-pmp", "publicport: %d\n", ntohs(resp->publicport)); - purple_debug_info("nat-pmp", "lifetime: %d\n", ntohl(resp->lifetime)); -#endif + if (success) + { + purple_debug_info("nat-pmp", "Response received from NAT-PMP device:\n"); + purple_debug_info("nat-pmp", "version: %d\n", resp->version); + purple_debug_info("nat-pmp", "opcode: %d\n", resp->opcode); + purple_debug_info("nat-pmp", "resultcode: %d\n", ntohs(resp->resultcode)); + purple_debug_info("nat-pmp", "epoch: %d\n", ntohl(resp->epoch)); + purple_debug_info("nat-pmp", "privateport: %d\n", ntohs(resp->privateport)); + purple_debug_info("nat-pmp", "publicport: %d\n", ntohs(resp->publicport)); + purple_debug_info("nat-pmp", "lifetime: %d\n", ntohl(resp->lifetime)); + } +#endif - return resp; + g_free(resp); + g_free(gateway); + + /* XXX The private port may actually differ from the one we requested, according to the spec. + * We don't handle that situation at present. + * + * TODO: Look at the result and verify it matches what we wanted; either return a failure if it doesn't, + * or change network.c to know what to do if the desired private port shifts as a result of the nat-pmp operation. + */ + return success; } -/*! - * pmp_destroy_map(uint8_t,uint16_t) - * will return NULL on error, or a pointer to the pmp_map_response_t type - */ -pmp_map_response_t * -purple_pmp_destroy_map(uint8_t type, uint16_t privateport) +gboolean +purple_pmp_destroy_map(PurplePmpType type, unsigned short privateport) { - pmp_map_response_t *response = NULL; - - if ((response = purple_pmp_create_map(type, privateport, 0, 0)) == NULL) - { - purple_debug_info("nat-pmp", "Failed to properly destroy mapping for %d!\n", privateport); - return NULL; - } - else - { - return response; - } + gboolean success; + + success = purple_pmp_create_map(((type == PURPLE_PMP_TYPE_UDP) ? PMP_MAP_OPCODE_UDP : PMP_MAP_OPCODE_TCP), + privateport, 0, 0); + if (!success) + purple_debug_warning("nat-pmp", "Failed to properly destroy mapping for %d!\n", privateport); + + return success; } #else /* #ifdef NET_RT_DUMP2 */ char * @@ -422,15 +465,15 @@ return NULL; } -pmp_map_response_t * -purple_pmp_create_map(uint8_t type, uint16_t privateport, uint16_t publicport, uint32_t lifetime) +gboolean +purple_pmp_create_map(PurplePmpType type, unsigned short privateport, unsigned short publicport, int lifetime) { - return NULL; + return FALSE; } -pmp_map_response_t * -purple_pmp_destroy_map(uint8_t type, uint16_t privateport) +gboolean +purple_pmp_destroy_map(PurplePmpType type, unsigned short privateport) { - return NULL; + return FALSE; } #endif /* #ifndef NET_RT_DUMP2 */ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/nat-pmp.h --- a/libpurple/nat-pmp.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/nat-pmp.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /** -* @file nat-pmp.h NAT-PMP Implementation + * @file nat-pmp.h NAT-PMP Implementation * @ingroup core * * purple @@ -28,26 +28,13 @@ * OF SUCH DAMAGE. */ -#ifndef _PMPMAPPER_H -#define _PMPMAPPER_H +#ifndef _PURPLE_NAT_PMP_H +#define _PURPLE_NAT_PMP_H -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include -#define PMP_VERSION 0 -#define PMP_PORT 5351 -#define PMP_TIMEOUT 250000 // 250000 useconds -#define PMP_LIFETIME 3600 // 3600 seconds - -#define PMP_MAP_UDP 1 -#define PMP_MAP_TCP 2 +#define PURPLE_PMP_LIFETIME 3600 /* 3600 seconds */ /* * uint8_t: version, opcodes @@ -55,40 +42,42 @@ * unint32_t: epoch (seconds since mappings reset) */ -typedef struct { - uint8_t version; - uint8_t opcode; -} pmp_ip_request_t; +typedef enum { + PURPLE_PMP_TYPE_UDP, + PURPLE_PMP_TYPE_TCP +} PurplePmpType; -typedef struct { - uint8_t version; - uint8_t opcode; // 128 + n - uint16_t resultcode; - uint32_t epoch; - uint32_t address; -} pmp_ip_response_t; +/** + * + */ + +/* + * TODO: This should probably cache the result of this lookup requests + * so that subsequent calls to this function do not require a + * round-trip exchange with the local router. + */ +char *purple_pmp_get_public_ip(); -typedef struct { - uint8_t version; - uint8_t opcode; - char reserved[2]; - uint16_t privateport; - uint16_t publicport; - uint32_t lifetime; -} pmp_map_request_t; +/** + * Remove the NAT-PMP mapping for a specified type on a specified port + * + * @param type The PurplePmpType + * @param privateport The private port on which we are listening locally + * @param publicport The public port on which we are expecting a response + * @param lifetime The lifetime of the mapping. It is recommended that this be PURPLE_PMP_LIFETIME. + * + * @returns TRUE if succesful; FALSE if unsuccessful + */ +gboolean purple_pmp_create_map(PurplePmpType type, unsigned short privateport, unsigned short publicport, int lifetime); -typedef struct { - uint8_t version; - uint8_t opcode; - uint16_t resultcode; - uint32_t epoch; - uint16_t privateport; - uint16_t publicport; - uint32_t lifetime; -} pmp_map_response_t; - -char *purple_pmp_get_public_ip(); -pmp_map_response_t *purple_pmp_create_map(uint8_t type, uint16_t privateport, uint16_t publicport, uint32_t lifetime); -pmp_map_response_t *purple_pmp_destroy_map(uint8_t type, uint16_t privateport); +/** + * Remove the NAT-PMP mapping for a specified type on a specified port + * + * @param type The PurplePmpType + * @param privateport The private port on which the mapping was previously made + * + * @returns TRUE if succesful; FALSE if unsuccessful + */ +gboolean purple_pmp_destroy_map(PurplePmpType type, unsigned short privateport); #endif \ No newline at end of file diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/network.c --- a/libpurple/network.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/network.c Mon Mar 26 02:48:09 2007 +0000 @@ -47,6 +47,8 @@ #include "stun.h" #include "upnp.h" +/* #define ENABLE_NAT_PMP 1 */ + #ifdef ENABLE_NAT_PMP #include "nat-pmp.h" #endif @@ -79,9 +81,6 @@ PurpleNetworkListenCallback cb; gpointer cb_data; UPnPMappingAddRemove *mapping_data; -#ifdef ENABLE_NAT_PMP - gboolean has_pmp_mapping; -#endif }; #ifdef HAVE_LIBNM @@ -200,7 +199,7 @@ return ip; #ifdef ENABLE_NAT_PMP - /* Attempt to ge tthe IP from a NAT device using NAT-PMP */ + /* Attempt to get the IP from a NAT device using NAT-PMP */ ip = purple_pmp_get_public_ip(); if (ip != NULL) return ip; @@ -251,6 +250,22 @@ purple_network_listen_cancel(listen_data); } +#ifdef ENABLE_NAT_PMP +static gboolean +purple_network_finish_pmp_map_cb(gpointer data) +{ + PurpleNetworkListenData *listen_data; + + listen_data = data; + + if (listen_data->cb) + listen_data->cb(listen_data->listenfd, listen_data->cb_data); + + purple_network_listen_cancel(listen_data); + + return FALSE; +} +#endif static PurpleNetworkListenData * purple_network_do_listen(unsigned short port, int socket_type, PurpleNetworkListenCallback cb, gpointer cb_data) @@ -338,7 +353,7 @@ actual_port = purple_network_get_port_from_fd(listenfd); purple_debug_info("network", "Listening on port: %hu\n", actual_port); - + listen_data = g_new0(PurpleNetworkListenData, 1); listen_data->listenfd = listenfd; listen_data->adding = TRUE; @@ -348,15 +363,22 @@ #ifdef ENABLE_NAT_PMP /* Attempt a NAT-PMP Mapping, which will return immediately */ - listen_data->has_pmp_mapping = (purple_pmp_create_map(((socket_type == SOCK_STREAM) ? PURPLE_PMP_TYPE_TCP : PURPLE_PMP_TYPE_UDP), - actual_port, actual_port, PURPLE_PMP_LIFETIME) != NULL); + if (purple_pmp_create_map(((socket_type == SOCK_STREAM) ? PURPLE_PMP_TYPE_TCP : PURPLE_PMP_TYPE_UDP), + actual_port, actual_port, PURPLE_PMP_LIFETIME) != NULL) + { + purple_debug_info("network", "Created NAT-PMP mapping on port %i",actual_port); + /* We want to return listen_data now, and on the next run loop trigger the cb and destroy listen_data */ + purple_timeout_add(0, purple_network_finish_pmp_map_cb, listen_data); + } + else #endif - - /* Attempt a UPnP Mapping */ - listen_data->mapping_data = purple_upnp_set_port_mapping( - actual_port, - (socket_type == SOCK_STREAM) ? "TCP" : "UDP", - purple_network_set_upnp_port_mapping_cb, listen_data); + { + /* Attempt a UPnP Mapping */ + listen_data->mapping_data = purple_upnp_set_port_mapping( + actual_port, + (socket_type == SOCK_STREAM) ? "TCP" : "UDP", + purple_network_set_upnp_port_mapping_cb, listen_data); + } return listen_data; } @@ -398,12 +420,6 @@ if (listen_data->mapping_data != NULL) purple_upnp_cancel_port_mapping(listen_data->mapping_data); -#ifdef ENABLE_NAT_PMP - if (listen_data->has_pmp_mapping) - purple_pmp_destroy_map(((listen_data->socket_type == SOCK_STREAM) ? PURPLE_PMP_TYPE_TCP : PURPLE_PMP_TYPE_UDP), - purple_network_get_port_from_fd(listen_data->listenfd)); -#endif - g_free(listen_data); } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugin.c --- a/libpurple/plugin.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugin.c Mon Mar 26 02:48:09 2007 +0000 @@ -369,6 +369,20 @@ return plugin; } + /* + * Check to make sure a plugin has defined an id. + * Not having this check caused purple_plugin_unload to + * enter an infinite loop in certain situations by passing + * purple_find_plugin_by_id a NULL value. -- ecoffey + */ + if (!plugin->info->id || !strcmp(plugin->info->id, "")) + { + plugin->error = g_strdup_printf(_("This plugin has not defined an ID.")); + purple_debug_error("plugins", "%s is not loadable: info->id is not defined.\n", plugin->path); + plugin->unloadable = TRUE; + return plugin; + } + /* Really old plugins. */ if (plugin->info->magic != PURPLE_PLUGIN_MAGIC) { @@ -658,12 +672,10 @@ { if (!purple_plugin_unload(dep_plugin)) { - char *translated_name = g_strdup(_(dep_plugin->info->name)); char *tmp; tmp = g_strdup_printf(_("The dependent plugin %s failed to unload."), - translated_name); - g_free(translated_name); + _(dep_plugin->info->name)); purple_notify_error(NULL, NULL, _("There were errors unloading the plugin."), tmp); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/Makefile.am --- a/libpurple/plugins/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -100,10 +100,10 @@ EXTRA_DIST = \ Makefile.mingw \ + ciphertest.c \ dbus-buddyicons-example.py \ filectl.c \ fortuneprofile.pl \ - gaim.pl \ ipc-test-client.c \ ipc-test-server.c \ pluginpref_example.c \ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/codeinline.c --- a/libpurple/plugins/codeinline.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/codeinline.c Mon Mar 26 02:48:09 2007 +0000 @@ -75,7 +75,7 @@ "Changes the formatting of any outgoing text such that " "anything underlined will be received green and monospace.", "Sean Egan ", - "http://purple.sourceforge.net", + PURPLE_WEBSITE, plugin_load, NULL, NULL, diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/gaim.pl --- a/libpurple/plugins/gaim.pl Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -sub description { - my($a, $b, $c, $d, $e, $f) = @_; - ("Example", "1.0", "An example Gaim perl script that does nothing particularly useful:\n\t-Show a dialog on load\n\t-Set user idle for 6,000 seconds\n\t-Greets people signing on with \"Hello\"\n\t-Informs you when script has been loaded for one minute.", "Eric Warmenhoven <eric\@warmenhoven.org>", "http://gaim.sf.net", "/dev/null"); -} - -$handle = GAIM::register("Example", "1.0", "goodbye", ""); - -GAIM::print("Perl Says", "Handle $handle"); - -$ver = GAIM::get_info(0); -@ids = GAIM::get_info(1); - -$msg = "Gaim $ver:"; -foreach $id (@ids) { - $pro = GAIM::get_info(7, $id); - $nam = GAIM::get_info(3, $id); - $msg .= "\n$nam using $pro"; -} - - -GAIM::command("idle", 6000); - -GAIM::add_event_handler($handle, "event_buddy_signon", "echo_reply"); -GAIM::add_timeout_handler($handle, 60, "notify"); - -sub echo_reply { - $index = $_[0]; - $who = $_[1]; - GAIM::print_to_conv($index, $who, "Hello", 0); -} - -sub notify { - GAIM::print("1 minute", "gaim test has been loaded for 1 minute"); -} - -sub goodbye { - GAIM::print("You Bastard!", "You killed Kenny!"); -} - diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/BooPlugin.boo --- a/libpurple/plugins/mono/BooPlugin.boo Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/BooPlugin.boo Mon Mar 26 02:48:09 2007 +0000 @@ -1,6 +1,6 @@ -import Gaim +import Purple -class BooPlugin(GaimPlugin): +class BooPlugin(PurplePlugin): def handle(*args as (object)): b as Buddy @@ -18,5 +18,5 @@ Debug.debug(Debug.INFO, "booplugin", "destroying...\n") override def Info(): - return GaimPluginInfo("Boo Plugin", "0.1", "Test Boo Plugin", "Longer Description", "Eoin Coffey", "urled") + return PurplePluginInfo("mono-boo", "Boo Plugin", "0.1", "Test Boo Plugin", "Longer Description", "Eoin Coffey", "urled") diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/GetBuddyBack.cs --- a/libpurple/plugins/mono/GetBuddyBack.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/GetBuddyBack.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,8 +1,8 @@ -using Gaim; +using Purple; public class GetBuddyBack : Plugin { - private static PluginInfo info = new PluginInfo("C# Get Buddy Back", "0.1", "Prints when a Buddy returns", "Longer Description", "Eoin Coffey", "urled"); + private static PluginInfo info = new PluginInfo("mono-buddyback", "C# Get Buddy Back", "0.1", "Prints when a Buddy returns", "Longer Description", "Eoin Coffey", "urled"); public GetBuddyBack() : base (info) @@ -21,7 +21,7 @@ Debug.debug(Debug.INFO, "buddyback", "loading...\n"); /*Signal.connect(BuddyList.GetHandle(), this, "buddy-back", new Signal.Handler(HandleSig));*/ - /*BuddyList.OnBuddyBack.connect(this, new Signal.Handler(HandleSig));*/ + BuddyList.OnBuddyStatusChanged.connect(this, new Signal.Handler(HandleSig)); } public override void Unload() diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/MPlugin.cs --- a/libpurple/plugins/mono/MPlugin.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/MPlugin.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,8 +1,8 @@ -using Gaim; +using Purple; public class MPlugin : Plugin { - private static PluginInfo info = new PluginInfo("C# Plugin", "0.1", "Test C# Plugin", "Longer Description", "Eoin Coffey", "urled"); + private static PluginInfo info = new PluginInfo("mono-mplugin", "C# Plugin", "0.1", "Test C# Plugin", "Longer Description", "Eoin Coffey", "urled"); public MPlugin() : base(info) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/Makefile.am --- a/libpurple/plugins/mono/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -12,8 +12,8 @@ all: $(mono_SCRIPTS) SUFFIXES = .cs .dll -.cs.dll: api/GaimAPI.dll $(mono_build_sources) - mcs -t:library -lib:./api -out:$@ -r:GaimAPI.dll $< +.cs.dll: api/PurpleAPI.dll $(mono_build_sources) + mcs -t:library -lib:./api -out:$@ -r:PurpleAPI.dll $< clean-local: rm -f $(mono_SCRIPTS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/BlistNode.cs --- a/libpurple/plugins/mono/api/BlistNode.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/BlistNode.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim { +namespace Purple { public abstract class BlistNode { } } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Buddy.cs --- a/libpurple/plugins/mono/api/Buddy.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Buddy.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim { +namespace Purple { public class Buddy : BlistNode { private string name; private string alias; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/BuddyList.cs --- a/libpurple/plugins/mono/api/BuddyList.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/BuddyList.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim { +namespace Purple { using System; using System.Runtime.CompilerServices; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Contact.cs --- a/libpurple/plugins/mono/api/Contact.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Contact.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim { +namespace Purple { public class Contact : BlistNode { } } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Debug.cs --- a/libpurple/plugins/mono/api/Debug.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Debug.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ using System; using System.Runtime.CompilerServices; -namespace Gaim +namespace Purple { public class Debug { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Event.cs --- a/libpurple/plugins/mono/api/Event.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Event.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,6 +1,6 @@ using System; -namespace Gaim +namespace Purple { public class Event { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/GaimPlugin.cs --- a/libpurple/plugins/mono/api/GaimPlugin.cs Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -namespace Gaim { - public class PluginInfo { - private string name; - private string version; - private string summary; - private string description; - private string author; - private string homepage; - - public PluginInfo(string name, string version, string summary, - string description, string author, string homepage) - { - this.name = name; - this.version = version; - this.summary = summary; - this.description = description; - this.author = author; - this.homepage = homepage; - } - - public string Name { - get { return name; } - } - - public string Version { - get { return version; } - } - - public string Summary { - get { return summary; } - } - - public string Description { - get { return description; } - } - - public string Author { - get { return author; } - } - - public string Homepage { - get { return homepage; } - } - } - - abstract public class Plugin { - private PluginInfo info; - - public Plugin(PluginInfo info) { - this.info = info; - } - - public abstract void Load(); - public abstract void Unload(); - public abstract void Destroy(); - - public PluginInfo Info { - get { return info; } - } - } -} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Group.cs --- a/libpurple/plugins/mono/api/Group.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Group.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim { +namespace Purple { public class Group : BlistNode { } } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Makefile.am --- a/libpurple/plugins/mono/api/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,5 @@ -monodir=$(libdir)/gaim +monodir=$(libdir)/purple + mono_sources = \ BlistNode.cs \ BuddyList.cs \ @@ -6,14 +7,14 @@ Contact.cs \ Debug.cs \ Event.cs \ - GaimPlugin.cs \ + PurplePlugin.cs \ Group.cs \ Signal.cs \ Status.cs EXTRA_DIST = $(mono_sources) -mono_SCRIPTS = GaimAPI.dll +mono_SCRIPTS = PurpleAPI.dll mono_build_sources = $(addprefix $(srcdir)/, $(mono_sources)) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/PurplePlugin.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/plugins/mono/api/PurplePlugin.cs Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,67 @@ +namespace Purple { + public class PluginInfo { + private string id; + private string name; + private string version; + private string summary; + private string description; + private string author; + private string homepage; + + public PluginInfo(string id, string name, string version, string summary, + string description, string author, string homepage) + { + this.id = id; + this.name = name; + this.version = version; + this.summary = summary; + this.description = description; + this.author = author; + this.homepage = homepage; + } + + public string Id { + get { return id; } + } + + public string Name { + get { return name; } + } + + public string Version { + get { return version; } + } + + public string Summary { + get { return summary; } + } + + public string Description { + get { return description; } + } + + public string Author { + get { return author; } + } + + public string Homepage { + get { return homepage; } + } + } + + abstract public class Plugin { + private PluginInfo info; + + public Plugin(PluginInfo info) { + this.info = info; + } + + public abstract void Load(); + public abstract void Unload(); + public abstract void Destroy(); + + public PluginInfo Info { + get { return info; } + } + } +} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Signal.cs --- a/libpurple/plugins/mono/api/Signal.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Signal.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ using System; using System.Runtime.CompilerServices; -namespace Gaim +namespace Purple { public class Signal { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/api/Status.cs --- a/libpurple/plugins/mono/api/Status.cs Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/api/Status.cs Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -namespace Gaim +namespace Purple { public class Status { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/loader/Makefile.am --- a/libpurple/plugins/mono/loader/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/loader/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -plugindir = $(libdir)/gaim +plugindir = $(libdir)/purple plugin_LTLIBRARIES = mono.la @@ -19,7 +19,7 @@ AM_CPPFLAGS = \ -DVERSION=\"$(VERSION)\" \ -I$(top_srcdir) \ - -I$(top_srcdir)/libgaim \ + -I$(top_srcdir)/libpurple \ $(DEBUG_CFLAGS) \ $(PLUGIN_CFLAGS) \ $(MONO_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/loader/mono-helper.c --- a/libpurple/plugins/mono/loader/mono-helper.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/loader/mono-helper.c Mon Mar 26 02:48:09 2007 +0000 @@ -84,10 +84,13 @@ total = mono_image_get_table_rows (image, MONO_TABLE_TYPEDEF); for (i = 1; i <= total; ++i) { klass = mono_class_get (image, MONO_TOKEN_TYPE_DEF | i); + pklass = mono_class_get_parent(klass); - if (pklass) - if (strcmp("PurplePlugin", mono_class_get_name(pklass)) == 0) + if (pklass) { + + if (strcmp("Plugin", mono_class_get_name(pklass)) == 0) return klass; + } } return NULL; @@ -126,6 +129,18 @@ return mono_string_to_utf8(str); } +MonoObject* ml_get_info_prop(MonoObject *obj) +{ + MonoClass *klass; + MonoProperty *prop; + + klass = mono_class_get_parent(mono_object_get_class(obj)); + + prop = mono_class_get_property_from_name(klass, "Info"); + + return mono_property_get_value(prop, obj, NULL, NULL); +} + gboolean ml_is_api_dll(MonoImage *image) { MonoClass *klass; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/loader/mono-helper.h --- a/libpurple/plugins/mono/loader/mono-helper.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/loader/mono-helper.h Mon Mar 26 02:48:09 2007 +0000 @@ -40,6 +40,8 @@ void ml_set_prop_string(MonoObject *obj, char *field, char *data); +MonoObject* ml_get_info_prop(MonoObject *obj); + gboolean ml_is_api_dll(MonoImage *image); MonoDomain* ml_get_domain(void); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/mono/loader/mono.c --- a/libpurple/plugins/mono/loader/mono.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/mono/loader/mono.c Mon Mar 26 02:48:09 2007 +0000 @@ -26,9 +26,8 @@ { MonoAssembly *assm; MonoMethod *m = NULL; - MonoMethod *info_method = NULL; MonoObject *plugin_info; - gboolean found_load = FALSE, found_unload = FALSE, found_destroy = FALSE, found_info = FALSE; + gboolean found_load = FALSE, found_unload = FALSE, found_destroy = FALSE; gpointer iter = NULL; PurplePluginInfo *info; @@ -71,6 +70,7 @@ mono_runtime_object_init(mplug->obj); while ((m = mono_class_get_methods(mplug->klass, &iter))) { + purple_debug_info("mono", "plugin method: %s\n", mono_method_get_name(m)); if (strcmp(mono_method_get_name(m), "Load") == 0) { mplug->load = m; found_load = TRUE; @@ -80,22 +80,20 @@ } else if (strcmp(mono_method_get_name(m), "Destroy") == 0) { mplug->destroy = m; found_destroy = TRUE; - } else if (strcmp(mono_method_get_name(m), "Info") == 0) { - info_method = m; - found_info = TRUE; } } - if (!(found_load && found_unload && found_destroy && found_info)) { + if (!(found_load && found_unload && found_destroy)) { purple_debug(PURPLE_DEBUG_ERROR, "mono", "did not find the required methods\n"); return FALSE; } - - plugin_info = ml_invoke(info_method, mplug->obj, NULL); + + plugin_info = ml_get_info_prop(mplug->obj); /* now that the methods are filled out we can populate the info struct with all the needed info */ + info->id = ml_get_prop_string(plugin_info, "Id"); info->name = ml_get_prop_string(plugin_info, "Name"); info->version = ml_get_prop_string(plugin_info, "Version"); info->summary = ml_get_prop_string(plugin_info, "Summary"); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/perl/Makefile.am --- a/libpurple/plugins/perl/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/perl/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -4,10 +4,10 @@ perl_dirs = common plugin_LTLIBRARIES = perl.la -hack_LTLIBRARIES = libgaimperl.la +hack_LTLIBRARIES = libpurpleperl.la perl_la_LDFLAGS = -module -avoid-version -perl_la_LIBADD = $(GLIB_LIBS) $(PERL_LIBS) libgaimperl.la +perl_la_LIBADD = $(GLIB_LIBS) $(PERL_LIBS) libpurpleperl.la perl_la_SOURCES = \ perl.c \ perl-common.c \ @@ -18,11 +18,11 @@ perl_la_DEPENDENCIES = \ .libs/libperl_orig.a \ .libs/DynaLoader.a \ - libgaimperl.la + libpurpleperl.la -libgaimperl_la_LDFLAGS = -module -avoid-version -libgaimperl_la_LIBADD = $(GLIB_LIBS) -libgaimperl_la_SOURCES = libgaimperl.c +libpurpleperl_la_LDFLAGS = -module -avoid-version +libpurpleperl_la_LIBADD = $(GLIB_LIBS) +libpurpleperl_la_SOURCES = libpurpleperl.c .libs/libperl_orig.a: @mkdir -p .libs @@ -55,8 +55,6 @@ common/Conversation.xs \ common/Debug.xs \ common/FT.xs \ - common/Purple.pm \ - common/Purple.xs \ common/ImgStore.xs \ common/Log.xs \ common/Makefile.PL.in \ @@ -69,6 +67,7 @@ common/Privacy.xs \ common/Proxy.xs \ common/Prpl.xs \ + common/Purple.pm \ common/Request.xs \ common/Roomlist.xs \ common/SSLConn.xs \ @@ -90,7 +89,7 @@ Makefile.mingw \ common/Makefile.mingw \ $(common_sources) \ - libgaimperl.c + libpurpleperl.c common/Makefile: common/Makefile.PL @if test "x${top_srcdir}" != "x${top_builddir}"; then \ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/perl/libgaimperl.c --- a/libpurple/plugins/perl/libgaimperl.c Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -#include - -#ifdef __SUNPRO_C -#pragma init (my_init) -void my_init(void); - -void my_init() { -#else -void __attribute__ ((constructor)) my_init(void); - -void __attribute__ ((constructor)) my_init() { -#endif - - /* Very evil hack...puts perl.so's symbols in the global table - * but does not create a circular dependancy because g_module_open - * will only open the library once. */ - g_module_open("perl.so", 0); -} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/perl/libpurpleperl.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/plugins/perl/libpurpleperl.c Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,18 @@ +#include + +#ifdef __SUNPRO_C +#pragma init (my_init) +void my_init(void); + +void my_init() { +#else +void __attribute__ ((constructor)) my_init(void); + +void __attribute__ ((constructor)) my_init() { +#endif + + /* Very evil hack...puts perl.so's symbols in the global table + * but does not create a circular dependancy because g_module_open + * will only open the library once. */ + g_module_open("perl.so", 0); +} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/plugins/ssl/Makefile.am --- a/libpurple/plugins/ssl/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/plugins/ssl/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -26,7 +26,7 @@ AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ - -DLIBDIR=\"$(libdir)/gaim/\" \ + -DLIBDIR=\"$(libdir)/libpurple\" \ -I$(top_srcdir)/libpurple \ $(DEBUG_CFLAGS) \ $(GLIB_CFLAGS) \ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/prefs.c --- a/libpurple/prefs.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/prefs.c Mon Mar 26 02:48:09 2007 +0000 @@ -87,9 +87,9 @@ static struct purple_pref *find_pref(const char *name) { - if (!name || name[0] != '/') - return NULL; - else if (name[1] == '\0') + g_return_val_if_fail(name != NULL && name[0] == '/', NULL); + + if (name[1] == '\0') return &prefs; else return g_hash_table_lookup(prefs_hash, name); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/bonjour/Makefile.am --- a/libpurple/protocols/bonjour/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/bonjour/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -19,7 +19,7 @@ if STATIC_BONJOUR -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libbonjour.a libbonjour_a_SOURCES = $(BONJOURSOURCES) libbonjour_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/bonjour/bonjour.c --- a/libpurple/protocols/bonjour/bonjour.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/bonjour/bonjour.c Mon Mar 26 02:48:09 2007 +0000 @@ -58,7 +58,7 @@ { PurpleAccount *account = purple_connection_get_account(gc); PurpleBuddyList *blist; - PurpleBlistNode *gnode, *cnode, *bnode; + PurpleBlistNode *gnode, *cnode, *cnodenext, *bnode, *bnodenext; PurpleBuddy *buddy; blist = purple_get_blist(); @@ -70,12 +70,14 @@ { if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) continue; - for (cnode = gnode->child; cnode; cnode = cnode->next) + for (cnode = gnode->child; cnode; cnode = cnodenext) { + cnodenext = cnode->next; if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode)) continue; - for (bnode = cnode->child; bnode; bnode = bnode->next) + for (bnode = cnode->child; bnode; bnode = bnodenext) { + bnodenext = bnode->next; if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) continue; buddy = (PurpleBuddy *)bnode; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/gg/Makefile.am --- a/libpurple/protocols/gg/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/gg/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -51,7 +51,7 @@ if STATIC_GG -st = -DGAIM_STATIC_PRPL $(GADU_CFLAGS) +st = -DPURPLE_STATIC_PRPL $(GADU_CFLAGS) noinst_LIBRARIES = libgg.a pkg_LTLIBRARIES = diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/irc/Makefile.am --- a/libpurple/protocols/irc/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/irc/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -10,7 +10,7 @@ if STATIC_IRC -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libirc.a pkg_LTLIBRARIES = diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/Makefile.am --- a/libpurple/protocols/jabber/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -42,7 +42,7 @@ if STATIC_JABBER -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libjabber.a pkg_LTLIBRARIES = diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Mon Mar 26 02:48:09 2007 +0000 @@ -20,18 +20,20 @@ */ #include "internal.h" +#include "account.h" +#include "debug.h" +#include "cipher.h" +#include "conversation.h" +#include "request.h" +#include "sslconn.h" +#include "util.h" +#include "xmlnode.h" + #include "jutil.h" #include "auth.h" -#include "xmlnode.h" #include "jabber.h" #include "iq.h" -#include "debug.h" -#include "util.h" -#include "cipher.h" -#include "sslconn.h" -#include "request.h" - static void auth_old_result_cb(JabberStream *js, xmlnode *packet, gpointer data); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/jabber.c Mon Mar 26 02:48:09 2007 +0000 @@ -25,6 +25,7 @@ #include "blist.h" #include "cmds.h" #include "connection.h" +#include "conversation.h" #include "debug.h" #include "dnssrv.h" #include "message.h" @@ -36,6 +37,7 @@ #include "server.h" #include "util.h" #include "version.h" +#include "xmlnode.h" #include "auth.h" #include "buddy.h" @@ -169,12 +171,16 @@ void jabber_process_packet(JabberStream *js, xmlnode *packet) { + const char *xmlns; + purple_signal_emit(my_protocol, "jabber-receiving-xmlnode", js->gc, &packet); /* if the signal leaves us with a null packet, we're done */ if(NULL == packet) return; + xmlns = xmlnode_get_namespace(packet); + if(!strcmp(packet->name, "iq")) { jabber_iq_parse(js, packet); } else if(!strcmp(packet->name, "presence")) { @@ -183,13 +189,13 @@ jabber_message_parse(js, packet); } else if(!strcmp(packet->name, "stream:features")) { jabber_stream_features_parse(js, packet); - } else if (!strcmp(packet->name, "features") && - !strcmp(xmlnode_get_namespace(packet), "http://etherx.jabber.org/streams")) { + } else if (!strcmp(packet->name, "features") && + !strcmp(xmlns, "http://etherx.jabber.org/streams")) { jabber_stream_features_parse(js, packet); - } else if(!strcmp(packet->name, "stream:error")) { - jabber_stream_handle_error(js, packet); - } else if (!strcmp(packet->name, "error") && - !strcmp(xmlnode_get_namespace(packet), "http://etherx.jabber.org/streams")) { + } else if(!strcmp(packet->name, "stream:error") || + (!strcmp(packet->name, "error") && + !strcmp(xmlns, "http://etherx.jabber.org/streams"))) + { jabber_stream_handle_error(js, packet); } else if(!strcmp(packet->name, "challenge")) { if(js->state == JABBER_STREAM_AUTHENTICATING) @@ -1526,7 +1532,9 @@ js->gc->wants_to_die = TRUE; text = _("Authentication Failure"); } - } else if(!strcmp(packet->name, "stream:error")) { + } else if(!strcmp(packet->name, "stream:error") || + (!strcmp(packet->name, "error") && + !strcmp(xmlns, "http://etherx.jabber.org/streams"))) { if(xmlnode_get_child(packet, "bad-format")) { text = _("Bad Format"); } else if(xmlnode_get_child(packet, "bad-namespace-prefix")) { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/jutil.c --- a/libpurple/protocols/jabber/jutil.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/jutil.c Mon Mar 26 02:48:09 2007 +0000 @@ -19,8 +19,11 @@ * */ #include "internal.h" +#include "account.h" +#include "conversation.h" #include "server.h" #include "util.h" +#include "xmlnode.h" #include "chat.h" #include "presence.h" diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/jutil.h --- a/libpurple/protocols/jabber/jutil.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/jutil.h Mon Mar 26 02:48:09 2007 +0000 @@ -22,11 +22,6 @@ #ifndef _PURPLE_JABBER_JUTIL_H_ #define _PURPLE_JABBER_JUTIL_H_ -#include "account.h" -#include "conversation.h" -#include "xmlnode.h" - - typedef struct _JabberID { char *node; char *domain; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/message.c --- a/libpurple/protocols/jabber/message.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/message.c Mon Mar 26 02:48:09 2007 +0000 @@ -33,7 +33,7 @@ void jabber_message_free(JabberMessage *jm) { - g_free(jm->from); + g_free(jm->from); g_free(jm->to); g_free(jm->id); g_free(jm->subject); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/jabber/presence.c Mon Mar 26 02:48:09 2007 +0000 @@ -20,20 +20,22 @@ */ #include "internal.h" +#include "account.h" #include "cipher.h" +#include "conversation.h" #include "debug.h" #include "notify.h" #include "request.h" #include "server.h" #include "status.h" #include "util.h" +#include "xmlnode.h" #include "buddy.h" #include "chat.h" #include "presence.h" #include "iq.h" #include "jutil.h" -#include "xmlnode.h" static void chats_send_presence_foreach(gpointer key, gpointer val, diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/msn/Makefile.am --- a/libpurple/protocols/msn/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/msn/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -69,7 +69,7 @@ if STATIC_MSN -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libmsn.a libmsn_a_SOURCES = $(MSNSOURCES) libmsn_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/novell/Makefile.am --- a/libpurple/protocols/novell/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/novell/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -32,7 +32,7 @@ if STATIC_NOVELL -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libnovell.a pkg_LTLIBRARIES = diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/oscar/Makefile.am --- a/libpurple/protocols/oscar/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/oscar/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -51,7 +51,7 @@ libicq_la_LDFLAGS = -module -avoid-version if STATIC_OSCAR -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = liboscar.a libaim.a libicq.a liboscar_a_SOURCES = $(OSCARSOURCES) liboscar_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Mon Mar 26 02:48:09 2007 +0000 @@ -60,7 +60,7 @@ #define OSCAR_STATUS_ID_CUSTOM "custom" #define OSCAR_STATUS_ID_MOBILE "mobile" -#define AIMHASHDATA "http://purple.sourceforge.net/aim_data.php3" +#define AIMHASHDATA "http://pidgin.im/aim_data.php3" #define OSCAR_CONNECT_STEPS 6 @@ -1593,7 +1593,7 @@ pos->modname = g_strdup(modname); /* TODO: Keep track of this return value. */ - if (purple_proxy_connect(NULL, pos->gc->account, "purple.sourceforge.net", 80, + if (purple_proxy_connect(NULL, pos->gc->account, "pidgin.im", 80, straight_to_hell, pos) == NULL) { char buf[256]; diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/oscar/oscar_data.c --- a/libpurple/protocols/oscar/oscar_data.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/oscar/oscar_data.c Mon Mar 26 02:48:09 2007 +0000 @@ -53,14 +53,14 @@ aim__registermodule(od, locate_modfirst); aim__registermodule(od, buddylist_modfirst); aim__registermodule(od, msg_modfirst); - aim__registermodule(od, adverts_modfirst); - aim__registermodule(od, invite_modfirst); + /* aim__registermodule(od, adverts_modfirst); */ + /* aim__registermodule(od, invite_modfirst); */ aim__registermodule(od, admin_modfirst); aim__registermodule(od, popups_modfirst); aim__registermodule(od, bos_modfirst); aim__registermodule(od, search_modfirst); aim__registermodule(od, stats_modfirst); - aim__registermodule(od, translate_modfirst); + /* aim__registermodule(od, translate_modfirst); */ aim__registermodule(od, chatnav_modfirst); aim__registermodule(od, chat_modfirst); aim__registermodule(od, odir_modfirst); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/oscar/peer.h --- a/libpurple/protocols/oscar/peer.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/oscar/peer.h Mon Mar 26 02:48:09 2007 +0000 @@ -278,15 +278,4 @@ */ void peer_proxy_connection_established_cb(gpointer data, gint source, const gchar *error_message); -#if 0 -int peer_oft_sendheader(OscarData *od, guint16 type, PeerConnection *peer_connection); -guint32 peer_oft_checksum_chunk(const guint8 *buffer, int bufferlen, guint32 prevcheck); -guint32 peer_oft_checksum_file(char *filename); -int peer_oft_sendheader(OscarData *od, guint16 type, PeerConnection *peer_connection); -PeerConnection *peer_oft_createinfo(OscarData *od, const guchar *cookie, const char *sn, - const char *ip, guint16 port, guint32 size, guint32 modtime, char *filename, int send_or_recv, - int method, int stage); -int peer_oft_destroyinfo(PeerConnection *peer_connection); -#endif - #endif /* _PEER_H_ */ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/qq/Makefile.am --- a/libpurple/protocols/qq/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/qq/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -77,7 +77,7 @@ if STATIC_QQ -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libqq.a libqq_a_SOURCES = $(QQSOURCES) libqq_a_CFLAGS = $(AM_CFLAGS) @@ -94,7 +94,6 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/libpurple \ -DVERSION=\"$(VERSION)\" \ - -DQQ_BUDDY_ICON_DIR=\"$(datadir)/pixmaps/gaim/buddy_icons/qq\" \ + -DQQ_BUDDY_ICON_DIR=\"$(datadir)/pixmaps/purple/buddy_icons/qq\" \ $(DEBUG_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(GAIM_CFLAGS) + $(GLIB_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/sametime/Makefile.am --- a/libpurple/protocols/sametime/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/sametime/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -12,7 +12,7 @@ if STATIC_SAMETIME -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libsametime.a libsametime_a_SOURCES = $(SAMETIMESOURCES) libsametime_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/silc/Makefile.am --- a/libpurple/protocols/silc/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/silc/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -6,26 +6,26 @@ AM_CFLAGS = $(st) -libsilcgaim_la_LDFLAGS = -module -avoid-version +libsilcpurple_la_LDFLAGS = -module -avoid-version if STATIC_SILC -st = -DGAIM_STATIC_PRPL $(SILC_CFLAGS) -noinst_LIBRARIES = libsilcgaim.a +st = -DPURPLE_STATIC_PRPL $(SILC_CFLAGS) +noinst_LIBRARIES = libsilcpurple.a pkg_LTLIBRARIES = -libsilcgaim_a_SOURCES = $(SILCSOURCES) -libsilcgaim_a_CFLAGS = $(AM_CFLAGS) -libsilcgaim_a_LIBADD = $(SILC_LIBS) +libsilcpurple_a_SOURCES = $(SILCSOURCES) +libsilcpurple_a_CFLAGS = $(AM_CFLAGS) +libsilcpurple_a_LIBADD = $(SILC_LIBS) else st = $(SILC_CFLAGS) -pkg_LTLIBRARIES = libsilcgaim.la +pkg_LTLIBRARIES = libsilcpurple.la noinst_LIBRARIES = -libsilcgaim_la_SOURCES = $(SILCSOURCES) -libsilcgaim_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) +libsilcpurple_la_SOURCES = $(SILCSOURCES) +libsilcpurple_la_LIBADD = $(GLIB_LIBS) $(SILC_LIBS) endif diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/simple/Makefile.am --- a/libpurple/protocols/simple/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/simple/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -15,7 +15,7 @@ if STATIC_MSN -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libsimple.a libsimple_a_SOURCES = $(SIMPLESOURCES) libsimple_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/toc/Makefile.am --- a/libpurple/protocols/toc/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/toc/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -12,7 +12,7 @@ if STATIC_TOC -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libtoc.a libtoc_a_SOURCES = $(TOCSOURCES) libtoc_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/yahoo/Makefile.am --- a/libpurple/protocols/yahoo/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/yahoo/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -33,7 +33,7 @@ if STATIC_YAHOO -st = -DGAIM_STATIC_PRPL +st = -DPURPLE_STATIC_PRPL noinst_LIBRARIES = libyahoo.a libyahoo_a_SOURCES = $(YAHOOSOURCES) libyahoo_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/yahoo/yahoo_packet.c --- a/libpurple/protocols/yahoo/yahoo_packet.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo_packet.c Mon Mar 26 02:48:09 2007 +0000 @@ -161,6 +161,7 @@ } if (accept) { + /* TODO: strstr() should not be used here because data isn't NULL terminated */ delimiter = (const guchar *)strstr((char *)&data[pos], "\xc0\x80"); if (delimiter == NULL) { diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/protocols/zephyr/Makefile.am --- a/libpurple/protocols/zephyr/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/protocols/zephyr/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -77,7 +77,7 @@ if STATIC_ZEPHYR -st = -DGAIM_STATIC_PRPL -Dlint +st = -DPURPLE_STATIC_PRPL -Dlint noinst_LIBRARIES = libzephyr.a libzephyr_a_SOURCES = $(ZEPHYRSOURCES) libzephyr_a_CFLAGS = $(AM_CFLAGS) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/purple-client-example.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-client-example.c Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,39 @@ +#define DBUS_API_SUBJECT_TO_CHANGE + +#include +#include + +#include "purple-client.h" + +/* + This example demonstrates how to use libpurple-client to communicate + with purple. The names and signatures of functions provided by + libpurple-client are the same as those in purple. However, all + structures (such as PurpleAccount) are opaque, that is, you can only + use pointer to them. In fact, these pointers DO NOT actually point + to anything, they are just integer identifiers of assigned to these + structures by purple. So NEVER try to dereference these pointers. + Integer ids as disguised as pointers to provide type checking and + prevent mistakes such as passing an id of PurpleAccount when an id of + PurpleBuddy is expected. According to glib manual, this technique is + portable. +*/ + +int main (int argc, char **argv) +{ + GList *alist, *node; + + purple_init(); + + alist = purple_accounts_get_all(); + for (node = alist; node != NULL; node = node->next) + { + PurpleAccount *account = (PurpleAccount*) node->data; + char *name = purple_account_get_username(account); + g_print("Name: %s\n", name); + g_free(name); + } + g_list_free(alist); + + return 0; +} diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/purple-client.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-client.c Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,81 @@ +#define DBUS_API_SUBJECT_TO_CHANGE + +#include +#include +#include + +#include "dbus-purple.h" +#include "purple-client-bindings.h" + +static DBusGConnection *bus; +static DBusGProxy *purple_proxy; + +static GList *garray_int_to_glist(GArray *array) +{ + GList *list = NULL; + int i; + + for (i = 0; i < array->len; i++) + list = g_list_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); + + g_array_free(array, TRUE); + return list; +} + +static GSList *garray_int_to_gslist(GArray *array) +{ + GSList *list = NULL; + int i; + + for (i = 0; i < array->len; i++) + list = g_slist_append(list, GINT_TO_POINTER(g_array_index(array,gint,i))); + + g_array_free(array, TRUE); + return list; +} + +#include "purple-client-bindings.c" + +static void lose(const char *fmt, ...) G_GNUC_NORETURN G_GNUC_PRINTF (1, 2); +static void lose_gerror(const char *prefix, GError *error) G_GNUC_NORETURN; + +static void +lose(const char *str, ...) +{ + va_list args; + + va_start(args, str); + + vfprintf(stderr, str, args); + fputc('\n', stderr); + + va_end(args); + + exit(1); +} + +static void +lose_gerror(const char *prefix, GError *error) +{ + lose("%s: %s", prefix, error->message); +} + +void purple_init(void) +{ + GError *error = NULL; + + g_type_init (); + + bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error); + if (!bus) + lose_gerror ("Couldn't connect to session bus", error); + + purple_proxy = dbus_g_proxy_new_for_name (bus, + DBUS_SERVICE_PURPLE, + DBUS_PATH_PURPLE, + DBUS_INTERFACE_PURPLE); + + if (!purple_proxy) + lose_gerror ("Couldn't connect to the Purple Service", error); +} + diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/purple-notifications-example --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-notifications-example Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,86 @@ +#!/usr/bin/env python + +# This is a simple gaim notification server. +# It shows notifications when your buddy signs on or you get an IM message. +# +# This script requires Python 2.4 and PyGTK bindings +# +# Note that all function names are resolved dynamically, no +# gaim-specific library is needed. + +import dbus +import dbus.glib +import dbus.decorators +import gobject +import os + +def ensureimconversation(conversation, account, name): + if conversation != 0: + return conversation + else: + # 1 = GAIM_CONV_IM + return gaim.GaimConversationNew(1, account, name) + +def receivedimmsg(account, name, message, conversation, flags): + buddy = gaim.GaimFindBuddy(account, name) + if buddy != 0: + alias = gaim.GaimBuddyGetAlias(buddy) + else: + alias = name + + text = "%s says %s" % (alias, message) + code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", + "'So what?','Show me',Close,Abuse", text) + + if code == 101: # so what? + pass + else: + conversation = ensureimconversation(conversation, account, name) + + if code == 102: # show me + window = gaim.GaimConversationGetWindow(conversation) + gaim.GaimConvWindowRaise(window) + + if code == 103: # close + gaim.GaimConversationDestroy(conversation) + + if code == 104: # abuse + im = gaim.GaimConversationGetImData(conversation) + gaim.GaimConvImSend(im, "Go away you f...") + + +def buddysignedon(buddyid): + alias = gaim.GaimBuddyGetAlias(buddyid) + text = "%s is online" % alias + + code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", + "'So what?','Let's talk'", text) + + if code == 101: # so what? + pass + + if code == 102: # talk + name = gaim.GaimBuddyGetName(buddyid) + account = gaim.GaimBuddyGetAccount(buddyid) + gaim.GaimConversationNew(1, account, name) + + +bus = dbus.SessionBus() +obj = bus.get_object("net.sf.gaim.GaimService", "/net/sf/gaim/GaimObject") +gaim = dbus.Interface(obj, "net.sf.gaim.GaimInterface") + +bus.add_signal_receiver(receivedimmsg, + dbus_interface = "net.sf.gaim.GaimInterface", + signal_name = "ReceivedImMsg") + +bus.add_signal_receiver(buddysignedon, + dbus_interface = "net.sf.gaim.GaimInterface", + signal_name = "BuddySignedOn") + +print "This is a simple gaim notification server." +print "It shows notifications when your buddy signs on or you get an IM message." + +loop = gobject.MainLoop() +loop.run() + + diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/purple-remote --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-remote Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,215 @@ +#!/usr/bin/python + +import dbus +import re +import urllib +import sys + +import xml.dom.minidom + +xml.dom.minidom.Element.all = xml.dom.minidom.Element.getElementsByTagName + +obj = dbus.SessionBus().get_object("net.sf.gaim.GaimService", "/net/sf/gaim/GaimObject") +gaim = dbus.Interface(obj, "net.sf.gaim.GaimInterface") + +class CheckedObject: + def __init__(self, obj): + self.obj = obj + + def __getattr__(self, attr): + return CheckedAttribute(self, attr) + +class CheckedAttribute: + def __init__(self, cobj, attr): + self.cobj = cobj + self.attr = attr + + def __call__(self, *args): + result = self.cobj.obj.__getattr__(self.attr)(*args) + if result == 0: + raise "Error: " + self.attr + " " + str(args) + " returned " + str(result) + return result + +def show_help(): + print """This program uses DBus to communicate with gaim. + +Usage: + + %s "command1" "command2" ... + +Each command is of one of the three types: + + [protocol:]commandname?param1=value1¶m2=value2&... + FunctionName?param1=value1¶m2=value2&... + FunctionName(value1,value2,...) + +The second and third form are provided for completeness but their use +is not recommended; use gaim-send or gaim-send-async instead. The +second form uses introspection to find out the parameter names and +their types, therefore it is rather slow. + +Examples of commands: + + jabber:goim?screenname=testone@localhost&message=hi + jabber:gochat?room=TestRoom&server=conference.localhost + jabber:getinfo?screenname=testone@localhost + jabber:addbuddy?screenname=my friend + + setstatus?status=away&message=don't disturb + quit + + GaimAccountsFindConnected?name=&protocol=prpl-jabber + GaimAccountFindConnected(,prpl-jabber) +""" % sys.argv[0] + +cgaim = CheckedObject(gaim) + +urlregexp = r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?" + +def extendlist(list, length, fill): + if len(list) < length: + return list + [fill] * (length - len(list)) + else: + return list + +def convert(value): + try: + return int(value) + except: + return value + +def findaccount(accountname, protocolname): + try: + # prefer connected accounts + account = cgaim.GaimAccountsFindConnected(accountname, protocolname) + return account + except: + # try to get any account and connect it + account = cgaim.GaimAccountsFindAny(accountname, protocolname) + gaim.GaimAccountSetStatusVargs(account, "online", 1) + gaim.GaimAccountConnect(account) + return account + + +def execute(uri): + match = re.match(urlregexp, uri) + protocol = match.group(2) + if protocol == "aim" or protocol == "icq": + protocol = "oscar" + if protocol is not None: + protocol = "prpl-" + protocol + command = match.group(5) + paramstring = match.group(7) + params = {} + if paramstring is not None: + for param in paramstring.split("&"): + key, value = extendlist(param.split("=",1), 2, "") + params[key] = urllib.unquote(value) + + accountname = params.get("account", "") + + if command == "goim": + account = findaccount(accountname, protocol) + conversation = cgaim.GaimConversationNew(1, account, params["screenname"]) + if "message" in params: + im = cgaim.GaimConversationGetImData(conversation) + gaim.GaimConvImSend(im, params["message"]) + return None + + elif command == "gochat": + account = findaccount(accountname, protocol) + connection = cgaim.GaimAccountGetConnection(account) + return gaim.ServJoinChat(connection, params) + + elif command == "addbuddy": + account = findaccount(accountname, protocol) + return cgaim.GaimBlistRequestAddBuddy(account, params["screenname"], + params.get("group", ""), "") + + elif command == "setstatus": + current = gaim.GaimSavedstatusGetCurrent() + + if "status" in params: + status_id = params["status"] + status_type = gaim.GaimPrimitiveGetTypeFromId(status_id) + else: + status_type = gaim.GaimSavedstatusGetType(current) + status_id = gaim.GaimPrimitiveGetIdFromType(status_type) + + if "message" in params: + message = params["message"]; + else: + message = gaim.GaimSavedstatusGetMessage(current) + + if "account" in params: + accounts = [cgaim.GaimAccountsFindAny(accountname, protocol)] + + for account in accounts: + status = gaim.GaimAccountGetStatus(account, status_id) + type = gaim.GaimStatusGetType(status) + gaim.GaimSavedstatusSetSubstatus(current, account, type, message) + gaim.GaimSavedstatusActivateForAccount(current, account) + else: + accounts = gaim.GaimAccountsGetAllActive() + saved = gaim.GaimSavedstatusNew("", status_type) + gaim.GaimSavedstatusSetMessage(saved, message) + gaim.GaimSavedstatusActivate(saved) + + return None + + elif command == "getinfo": + account = findaccount(accountname, protocol) + connection = cgaim.GaimAccountGetConnection(account) + return gaim.ServGetInfo(connection, params["screenname"]) + + elif command == "quit": + return gaim.GaimCoreQuit() + + elif command == "uri": + return None + + else: + match = re.match(r"(\w+)\s*\(([^)]*)\)", command) + if match is not None: + name = match.group(1) + argstr = match.group(2) + if argstr == "": + args = [] + else: + args = argstr.split(",") + fargs = [] + for arg in args: + fargs.append(convert(arg.strip())) + return gaim.__getattr__(name)(*fargs) + else: + # introspect the object to get parameter names and types + # this is slow because the entire introspection info must be downloaded + data = dbus.Interface(obj, "org.freedesktop.DBus.Introspectable").\ + Introspect() + introspect = xml.dom.minidom.parseString(data).documentElement + for method in introspect.all("method"): + if command == method.getAttribute("name"): + methodparams = [] + for arg in method.all("arg"): + if arg.getAttribute("direction") == "in": + value = params[arg.getAttribute("name")] + type = arg.getAttribute("type") + if type == "s": + methodparams.append(value) + elif type == "i": + methodparams.append(int(value)) + else: + raise "Don't know how to handle type \"%s\"" % type + return gaim.__getattr__(command)(*methodparams) + show_help() + raise "Unknown command: %s" % command + +if len(sys.argv) == 1: + show_help() + +for arg in sys.argv[1:]: + output = execute(arg) + + if (output != None): + print output + diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/purple-send --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libpurple/purple-send Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,32 @@ +#!/bin/bash + +METHOD_NAME=$1 + +if test -z "$METHOD_NAME" +then + cat < + #include "tests.h" +#include "../account.h" +#include "../conversation.h" +#include "../xmlnode.h" #include "../protocols/jabber/jutil.h" START_TEST(test_get_resource) @@ -29,12 +34,14 @@ START_TEST(test_nodeprep_validate) { + char *longnode; + fail_unless(jabber_nodeprep_validate(NULL)); fail_unless(jabber_nodeprep_validate("foo")); fail_unless(jabber_nodeprep_validate("%d")); fail_unless(jabber_nodeprep_validate("y\\z")); - char *longnode = g_strnfill(1023, 'a'); + longnode = g_strnfill(1023, 'a'); fail_unless(jabber_nodeprep_validate(longnode)); g_free(longnode); } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/tests/test_util.c --- a/libpurple/tests/test_util.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/tests/test_util.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,3 +1,5 @@ +#include + #include "tests.h" #include "../util.h" diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/tests/tests.h --- a/libpurple/tests/tests.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/tests/tests.h Mon Mar 26 02:48:09 2007 +0000 @@ -6,6 +6,7 @@ /* define the test suites here */ /* remember to add the suite to the runner in check_libpurple.c */ +Suite * master_suite(void); Suite * cipher_suite(void); Suite * jabber_jutil_suite(void); Suite * util_suite(void); diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/util.c --- a/libpurple/util.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/util.c Mon Mar 26 02:48:09 2007 +0000 @@ -2184,8 +2184,8 @@ #endif } -/* returns a string of the form ~/.purple, where ~ is replaced by the user's home - * dir. Note that there is no trailing slash after .purple. */ +/* returns a string of the form ~/.gaim, where ~ is replaced by the user's home + * dir. Note that there is no trailing slash after .gaim. */ const char * purple_user_dir(void) { @@ -2196,7 +2196,7 @@ if (hd) { g_strlcpy((char*) &home_dir, hd, sizeof(home_dir)); - g_strlcat((char*) &home_dir, G_DIR_SEPARATOR_S ".purple", + g_strlcat((char*) &home_dir, G_DIR_SEPARATOR_S ".gaim", sizeof(home_dir)); } } diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/win32/libc_interface.h --- a/libpurple/win32/libc_interface.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/win32/libc_interface.h Mon Mar 26 02:48:09 2007 +0000 @@ -30,60 +30,52 @@ #include /* sys/socket.h */ -int wpurple_socket(int namespace, int style, int protocol); #define socket( namespace, style, protocol ) \ wpurple_socket( namespace, style, protocol ) -int wpurple_connect(int socket, struct sockaddr *addr, u_long length); #define connect( socket, addr, length ) \ wpurple_connect( socket, addr, length ) -int wpurple_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr); #define getsockopt( args... ) \ wpurple_getsockopt( args ) -int wpurple_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen); #define setsockopt( args... ) \ wpurple_setsockopt( args ) -int wpurple_getsockname (int socket, struct sockaddr *addr, socklen_t *lenptr); #define getsockname( socket, addr, lenptr ) \ wpurple_getsockname( socket, addr, lenptr ) -int wpurple_bind(int socket, struct sockaddr *addr, socklen_t length); #define bind( socket, addr, length ) \ wpurple_bind( socket, addr, length ) -int wpurple_listen(int socket, unsigned int n); #define listen( socket, n ) \ wpurple_listen( socket, n ) -int wpurple_sendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); #define sendto(socket, buf, len, flags, to, tolen) \ wpurple_sendto(socket, buf, len, flags, to, tolen) +#define recv(fd, buf, len, flags) \ +wpurple_recv(fd, buf, len, flags) + +#define send(socket, buf, buflen, flags) \ +wpurple_send(socket, buf, buflen, flags) + /* sys/ioctl.h */ -int wpurple_ioctl(int fd, int command, void* opt); #define ioctl( fd, command, val ) \ wpurple_ioctl( fd, command, val ) /* fcntl.h */ -int wpurple_fcntl(int socket, int command, int val); #define fcntl( fd, command, val ) \ wpurple_fcntl( fd, command, val ) /* arpa/inet.h */ -int wpurple_inet_aton(const char *name, struct in_addr *addr); #define inet_aton( name, addr ) \ wpurple_inet_aton( name, addr ) -const char * -wpurple_inet_ntop (int af, const void *src, char *dst, socklen_t cnt); #define inet_ntop( af, src, dst, cnt ) \ wpurple_inet_ntop( af, src, dst, cnt ) /* netdb.h */ -struct hostent* wpurple_gethostbyname(const char *name); #define gethostbyname( name ) \ wpurple_gethostbyname( name ) @@ -92,7 +84,6 @@ (unsigned int)ntohl( netlong ) /* string.h */ -char* wpurple_strerror( int errornum ); #define hstrerror( herror ) \ wpurple_strerror( errno ) #define strerror( errornum ) \ @@ -101,28 +92,16 @@ #define bzero( dest, size ) memset( dest, 0, size ) /* unistd.h */ -int wpurple_read(int fd, void *buf, unsigned int size); #define read( fd, buf, buflen ) \ wpurple_read( fd, buf, buflen ) -int wpurple_write(int fd, const void *buf, unsigned int size); #define write( socket, buf, buflen ) \ wpurple_write( socket, buf, buflen ) -int wpurple_recv(int fd, void *buf, size_t len, int flags); -#define recv(fd, buf, len, flags) \ -wpurple_recv(fd, buf, len, flags) - -int wpurple_send(int fd, const void *buf, unsigned int size, int flags); -#define send(socket, buf, buflen, flags) \ -wpurple_send(socket, buf, buflen, flags) - -int wpurple_close(int fd); #define close( fd ) \ wpurple_close( fd ) #if !GLIB_CHECK_VERSION(2,8,0) -int wpurple_g_access(const gchar *filename, int mode); #define g_access( filename, mode) \ wpurple_g_access( filename, mode ) #endif @@ -131,12 +110,10 @@ #define sleep(x) Sleep((x)*1000) #endif -int wpurple_gethostname(char *name, size_t size); #define gethostname( name, size ) \ wpurple_gethostname( name, size ) /* sys/time.h */ -int wpurple_gettimeofday(struct timeval *p, struct timezone *z); #define gettimeofday( timeval, timezone ) \ wpurple_gettimeofday( timeval, timezone ) @@ -144,7 +121,6 @@ #define snprintf _snprintf #define vsnprintf _vsnprintf -int wpurple_rename(const char *oldname, const char *newname); #define rename( oldname, newname ) \ wpurple_rename( oldname, newname ) @@ -157,13 +133,10 @@ wpurple_rename(oldname, newname) #endif - /* sys/stat.h */ - #define fchmod(a,b) /* time.h */ -struct tm *wpurple_localtime_r(const time_t *time, struct tm *resultp); #define localtime_r( time, resultp ) \ wpurple_localtime_r( time, resultp ) diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/win32/libc_internal.h --- a/libpurple/win32/libc_internal.h Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/win32/libc_internal.h Mon Mar 26 02:48:09 2007 +0000 @@ -22,13 +22,40 @@ */ #ifndef _LIBC_INTERNAL_ #define _LIBC_INTERNAL_ +#include + + +/* sys/socket.h */ +int wpurple_socket(int namespace, int style, int protocol); +int wpurple_connect(int socket, struct sockaddr *addr, u_long length); +int wpurple_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr); +int wpurple_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen); +int wpurple_getsockname (int socket, struct sockaddr *addr, socklen_t *lenptr); +int wpurple_bind(int socket, struct sockaddr *addr, socklen_t length); +int wpurple_listen(int socket, unsigned int n); +int wpurple_sendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); +int wpurple_recv(int fd, void *buf, size_t len, int flags); +int wpurple_send(int fd, const void *buf, unsigned int size, int flags); + +/* arpa/inet.h */ +int wpurple_inet_aton(const char *name, struct in_addr *addr); +const char * +wpurple_inet_ntop (int af, const void *src, char *dst, socklen_t cnt); + +/* netdb.h */ +struct hostent* wpurple_gethostbyname(const char *name); + +/* string.h */ +char* wpurple_strerror( int errornum ); /* fcntl.h */ +int wpurple_fcntl(int socket, int command, int val); #define F_SETFL 1 #define O_NONBLOCK 1 -/* ioctl.h */ +/* sys/ioctl.h */ #define SIOCGIFCONF 0x8912 /* get iface list */ +int wpurple_ioctl(int fd, int command, void* opt); /* net/if.h */ struct ifreq @@ -89,6 +116,24 @@ int tz_minuteswest; int tz_dsttime; }; +int wpurple_gettimeofday(struct timeval *p, struct timezone *z); + +/* time.h */ +struct tm *wpurple_localtime_r(const time_t *time, struct tm *resultp); +/* unistd.h */ +int wpurple_read(int fd, void *buf, unsigned int size); +int wpurple_write(int fd, const void *buf, unsigned int size); +int wpurple_close(int fd); +int wpurple_gethostname(char *name, size_t size); + + +#if !GLIB_CHECK_VERSION(2,8,0) +int wpurple_g_access(const gchar *filename, int mode); +#endif + +/* stdio.h */ +int wpurple_rename(const char *oldname, const char *newname); + #endif /* _LIBC_INTERNAL_ */ diff -r f771cdcc551a -r 5f9b7e2652f0 libpurple/xmlnode.c --- a/libpurple/xmlnode.c Mon Mar 26 01:11:46 2007 +0000 +++ b/libpurple/xmlnode.c Mon Mar 26 02:48:09 2007 +0000 @@ -27,6 +27,7 @@ * write my own stuff. Also, re-writing this lets me be as lightweight * as I want to be. Thank you libxode for giving me a good starting point */ +#include "debug.h" #include "internal.h" #include diff -r f771cdcc551a -r 5f9b7e2652f0 m4macros/Makefile.am --- a/m4macros/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/m4macros/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -installed_m4=gaim.m4 +installed_m4=purple.m4 EXTRA_DIST=$(installed_m4) diff -r f771cdcc551a -r 5f9b7e2652f0 m4macros/gaim.m4 --- a/m4macros/gaim.m4 Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -dnl ########################################################################### -dnl # Configure paths for Gaim -dnl # Gary Kramlich 2005 -dnl # -dnl # Based off of glib-2.0.m4 by Owen Taylor -dnl ########################################################################### - -dnl ########################################################################### -dnl # AM_PATH_GAIM([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl # -dnl # Test for gaim and define GAIM_CFLAGS, GAIM_LIBS, GAIM_DATADIR, and -dnl # GAIM_LIBDIR -dnl ########################################################################### -AC_DEFUN([AM_PATH_GAIM], -[dnl - AC_PATH_PROG(PKG_CONFIG, pkg-config, no) - - no_gaim="" - - if test x"$PKG_CONFIG" != x"no" ; then - if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then - : - else - echo "*** pkg-config is too old; version 0.7 or newer is required." - no_gaim="yes" - PKG_CONFIG="no" - fi - else - no_gaim="yes" - fi - - min_version=ifelse([$1], ,2.0.0,$1) - found_version="" - - AC_MSG_CHECKING(for gaim - version >= $min_version) - - if test x"$no_gaim" = x"" ; then - GAIM_DATADIR=`$PKG_CONFIG --variable=datadir gaim` - GAIM_LIBDIR=`$PKG_CONFIG --variable=libdir gaim` - - GAIM_CFLAGS=`$PKG_CONFIG --cflags gaim` - GAIM_LIBS=`$PKG_CONFIG --libs gaim` - - gaim_version=`$PKG_CONFIG --modversion gaim` - gaim_major_version=`echo $gaim_version | cut -d. -f 1` - gaim_minor_version=`echo $gaim_version | cut -d. -f 2` - - dnl # stash the micro version in a temp variable. Then stash - dnl # the numeric for it in gaim_micro_version and anything - dnl # else in gaim_extra_version. - gaim_micro_version_temp=`echo $gaim_version | cut -d. -f 3` - gaim_micro_version=`echo $gaim_micro_version_temp | sed 's/[[^0-9]]//g'` - gaim_extra_version=`echo $gaim_micro_version_temp | sed 's/[[0-9]]//g'` - - dnl # get the major, minor, and macro that the user gave us - min_major_version=`echo $min_version | cut -d. -f 1` - min_minor_version=`echo $min_version | cut -d. -f 2` - min_micro_version=`echo $min_version | cut -d. -f 3` - - dnl # check the users version against the version from pkg-config - if test $gaim_major_version -eq $min_major_version -a \ - $gaim_minor_version -ge $min_minor_version -a \ - $gaim_micro_version -ge $min_micro_version - then - : - else - no_gaim="yes" - found_version="$gaim_major_version.$gaim_minor_version.$gaim_micro_version$gaim_extra_version" - fi - - dnl # Do we want a compile test here? - fi - - if test x"$no_gaim" = x"" ; then - AC_MSG_RESULT(yes (version $gaim_major_version.$gaim_minor_version.$gaim_micro_version$gaim_extra_version)) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - if test x"$PKG_CONFIG" = x"no" ; then - echo "*** A new enough version of pkg-config was not found." - echo "*** See http://www.freedesktop.org/software/pkgconfig/" - fi - - if test x"found_version" != x"" ; then - echo "*** A new enough version of gaim was not found." - echo "*** You have version $found_version" - echo "*** See http://gaim.sf.net/" - fi - - GAIM_CFLAGS="" - GAIM_LIBS="" - GAIM_DATADIR="" - GAIM_LIBDIR="" - - ifelse([$3], , :, [$3]) - fi - - AC_SUBST(GAIM_CFLAGS) - AC_SUBST(GAIM_LIBS) - AC_SUBST(GAIM_DATADIR) - AC_SUBST(GAIM_LIBDIR) -]) diff -r f771cdcc551a -r 5f9b7e2652f0 m4macros/purple.m4 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m4macros/purple.m4 Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,102 @@ +dnl ########################################################################### +dnl # Configure paths for libpurple +dnl # Gary Kramlich 2005 +dnl # +dnl # Based off of glib-2.0.m4 by Owen Taylor +dnl ########################################################################### + +dnl ########################################################################### +dnl # AM_PATH_PURPLE([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl # +dnl # Test for purple and define PURPLE_CFLAGS, PURPLE_LIBS, PURPLE_DATADIR, and +dnl # PURPLE_LIBDIR +dnl ########################################################################### +AC_DEFUN([AM_PATH_PURPLE], +[dnl + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + + no_purple="" + + if test x"$PKG_CONFIG" != x"no" ; then + if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then + : + else + echo "*** pkg-config is too old; version 0.7 or newer is required." + no_purple="yes" + PKG_CONFIG="no" + fi + else + no_purple="yes" + fi + + min_version=ifelse([$1], ,2.0.0,$1) + found_version="" + + AC_MSG_CHECKING(for purple - version >= $min_version) + + if test x"$no_purple" = x"" ; then + PURPLE_DATADIR=`$PKG_CONFIG --variable=datadir purple` + PURPLE_LIBDIR=`$PKG_CONFIG --variable=libdir purple` + + PURPLE_CFLAGS=`$PKG_CONFIG --cflags purple` + PURPLE_LIBS=`$PKG_CONFIG --libs purple` + + purple_version=`$PKG_CONFIG --modversion purple` + purple_major_version=`echo $purple_version | cut -d. -f 1` + purple_minor_version=`echo $purple_version | cut -d. -f 2` + + dnl # stash the micro version in a temp variable. Then stash + dnl # the numeric for it in purple_micro_version and anything + dnl # else in purple_extra_version. + purple_micro_version_temp=`echo $purple_version | cut -d. -f 3` + purple_micro_version=`echo $purple_micro_version_temp | sed 's/[[^0-9]]//g'` + purple_extra_version=`echo $purple_micro_version_temp | sed 's/[[0-9]]//g'` + + dnl # get the major, minor, and macro that the user gave us + min_major_version=`echo $min_version | cut -d. -f 1` + min_minor_version=`echo $min_version | cut -d. -f 2` + min_micro_version=`echo $min_version | cut -d. -f 3` + + dnl # check the users version against the version from pkg-config + if test $purple_major_version -eq $min_major_version -a \ + $purple_minor_version -ge $min_minor_version -a \ + $purple_micro_version -ge $min_micro_version + then + : + else + no_purple="yes" + found_version="$purple_major_version.$purple_minor_version.$purple_micro_version$purple_extra_version" + fi + + dnl # Do we want a compile test here? + fi + + if test x"$no_purple" = x"" ; then + AC_MSG_RESULT(yes (version $purple_major_version.$purple_minor_version.$purple_micro_version$purple_extra_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test x"$PKG_CONFIG" = x"no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://www.freedesktop.org/software/pkgconfig/" + fi + + if test x"found_version" != x"" ; then + echo "*** A new enough version of purple was not found." + echo "*** You have version $found_version" + echo "*** See http://pidgin.im/" + fi + + PURPLE_CFLAGS="" + PURPLE_LIBS="" + PURPLE_DATADIR="" + PURPLE_LIBDIR="" + + ifelse([$3], , :, [$3]) + fi + + AC_SUBST(PURPLE_CFLAGS) + AC_SUBST(PURPLE_LIBS) + AC_SUBST(PURPLE_DATADIR) + AC_SUBST(PURPLE_LIBDIR) +]) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin.apspec.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin.apspec.in Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,69 @@ +# -*-shell-script-*- + +[Meta] +RootName: @pidgin.im/pidgin:$SOFTWAREVERSION +DisplayName: Pidgin Internet Messenger +ShortName: Pidgin +Maintainer: The Pidgin Developers +URL: http://pidgin.im/ +Packager: Tim Ringenbach +Summary: A GTK+ based multiprotocol instant messaging client +SoftwareVersion: @VERSION@ +InterfaceVersion: 2.0 +PackageVersion: 1 + +[Description] +Pidgin allows you to talk to anyone using a variety of messaging protocols, +including AIM (Oscar and TOC), ICQ, IRC, Yahoo!, MSN Messenger, Jabber, +Gadu-Gadu, and Zephyr. These protocols are implemented using a +modular, easy to use design. To use a protocol, just add an account using the +account editor. + +Pidgin supports many common features of other clients, as well as many unique +features, such as perl scripting, TCL scripting and C plugins. + +Pidgin is NOT affiliated with or endorsed by America Online, Inc., Microsoft +Corporation, Yahoo! Inc., or ICQ Inc. + +[BuildPrepare] +APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-gtktest --disable-glibtest --disable-vv --disable-fortify +#APBUILD_STATIC="Xss startup-notification-1" prepareBuild --enable-nss --enable-gnutls --enable-binreloc --disable-perl --disable-tcl --disable-vv + + +[BuildUnprepare] +unprepareBuild + +[Imports] +rm -rf include +rm -rf lib/pkgconfig +find -name '*.la' | xargs rm +echo '*' | import + +[Prepare] +# Dependency checking +require @gtk.org/gtk 2.2 +require @68k.org/libaudiofile 0.0 +require @xiph.org/libao 2.0 +require @gtkspell.sourceforge.net/gtkspell 0.0 +require @gnutls.org/gnutls 11.0 || { require @mozilla.org/nspr 4 && require @mozilla.org/nss 3; } + +[Install] +# Put your installation script here +installExe ./bin/* +installLib ./lib/libpurple-remote.so.0.0.0 +# do the plugins +copyFiles ./lib/pidgin "$PREFIX/lib" +installMan 1 ./man/man1/pidgin.1 +installDesktop "Networking/Instant Messaging" ./share/applications/pidgin.desktop +installLocale ./share/locale +copyFiles ./share/pixmaps "$PREFIX/share" +copyFiles ./share/sounds "$PREFIX/share" +installIcon ./share/pixmaps/pidgin.png +# install and fix the .pc file +# move this to the -devel package when I make one +# copyFile ./lib/pkgconfig/pidgin.pc "$PREFIX/lib/pkgconfig/pidgin.pc" +# safeSed "$PREFIX/lib/pkgconfig/pidgin.pc" "s|prefix=/usr/local|prefix=$PREFIX|" + +[Uninstall] +# Usually just the following line is enough to uninstall everything +uninstallFromLog diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin.spec.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin.spec.in Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,495 @@ +# Older RPM doesn't define these by default +%{!?perl_vendorlib: %define perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)} +%{!?perl_vendorarch: %define perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)} +%{!?perl_archlib: %define perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)} + +# When not doing betas comment this out +# NOTE: %defines in spec files are evaluated in comments so the correct +# way to comment it out is to replace the % with # +#define beta 7 + +%if 0%{?beta} +%define pidginver %(echo "@VERSION@"|sed -e 's/dev//; s/beta.*//') +%else +%define pidginver @VERSION@ +%endif + +Summary: A GTK+ based multiprotocol instant messaging client +Name: @PACKAGE@ +Version: %pidginver +Release: 0%{?beta:.beta%{beta}} +Epoch: 0 +License: GPL +Group: Applications/Internet +URL: http://pidgin.im/ +Packager: %{packager} +Source: %{name}-@VERSION@.tar.bz2 +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +# Generic build requirements +BuildRequires: libtool, pkgconfig, intltool, gettext, libxml2-devel +%{?_with_avahi:BuildRequires: avahi-compat-howl-devel} +%{!?_without_gtkspell:BuildRequires: gtkspell-devel} +%{?_with_howl:BuildRequires: howl-devel} +%{?_with_meanwhile:BuildRequires: meanwhile-devel} +%{?_with_mono:BuildRequires: mono-devel} +%{?_with_sasl:BuildRequires: cyrus-sasl-devel >= 2} +%{?_with_silc:BuildRequires: /usr/include/silc/silcclient.h} +%{?_with_tcl:BuildRequires: tcl, tk, /usr/include/tcl.h} +%{!?_without_text:BuildRequires: ncurses-devel} + +%if "%{_vendor}" == "suse" +# For SuSE: +BuildRequires: gnutls-devel +%{?_with_dbus:BuildRequires: dbus-1-devel >= 0.35} +%{!?_without_gstreamer:BuildRequires: gstreamer010-devel >= 0.10} +%else +%{?_with_dbus:BuildRequires: dbus-devel >= 0.35} +%{!?_without_gstreamer:BuildRequires: gstreamer-devel >= 0.10} +%endif + +# Mandrake 10.1 and lower || Mandrake 10.2 (and higher?) +%if "%{_vendor}" == "MandrakeSoft" || "%{_vendor}" == "Mandrakesoft" || "%{_vendor}" == "Mandriva" +# For Mandrake/Mandriva: +BuildRequires: libgtk+2.0_0-devel, libnss3-devel, perl-devel +Obsoletes: libgaim-remote0 +%else +# For SuSE, Red Hat, Fedora and others: +BuildRequires: gtk2-devel +%if "%{_vendor}" != "suse" +# For Red Hat, Fedora and others: +# let's assume RH & FC1 are the only brain-dead distros missing the +# perl-XML-Parser dependency on intltool and that other RH/FC releases +# don't care if we specify it here +BuildRequires: perl-XML-Parser +BuildRequires: mozilla-nss-devel +%endif +%endif + +# For some reason perl isn't always automatically detected as a requirement :( +Requires: perl +# Gadu-Gadu support was split out temporarily (only as gaim) +Provides: gaim-gadugadu = %{epoch}:%{version}-%{release} + +%package devel +Summary: Development headers, documentation, and libraries for Pidgin +Group: Applications/Internet +Requires: pkgconfig, pidgin = %{epoch}:%{version} + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%package bonjour +Summary: Bonjour plugin for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_meanwhile:1} +%package meanwhile +Summary: Lotus Sametime plugin for Pidgin using the Meanwhile library +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_mono:1} +%package mono +Summary: Mono .NET plugin support for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_silc:1} +%package silc +Summary: SILC (Secure Internet Live Conferencing) plugin for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{?_with_tcl:1} +%package tcl +Summary: Tcl scripting support for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%if 0%{!?_without_text:1} +%package -n finch +Summary: A text-based user interface for Pidgin +Group: Applications/Internet +Requires: pidgin = %{epoch}:%{version} +%endif + +%description +Pidgin allows you to talk to anyone using a variety of messaging +protocols including AIM, MSN, Yahoo!, Jabber, Bonjour, Gadu-Gadu, +ICQ, IRC, Novell Groupwise, QQ, Lotus Sametime, SILC, Simple and +Zephyr. These protocols are implemented using a modular, easy to +use design. To use a protocol, just add an account using the +account editor. + +Pidgin supports many common features of other clients, as well as many +unique features, such as perl scripting, TCL scripting and C plugins. + +Pidgin is not affiliated with or endorsed by America Online, Inc., +Microsoft Corporation, Yahoo! Inc., or ICQ Inc. + +%description devel +The pidgin-devel package contains the header files, developer +documentation, and libraries required for development of Pidgin scripts +and plugins. + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%description bonjour +Bonjour plugin for Pidgin. +%endif + +%if 0%{?_with_meanwhile:1} +%description meanwhile +Lotus Sametime plugin for Pidgin using the Meanwhile library. +%endif + +%if 0%{?_with_mono:1} +%description mono +Mono plugin loader for Pidgin. This package will allow you to write or +use Pidgin plugins written in the .NET programming language. +%endif + +%if 0%{?_with_silc:1} +%description silc +SILC (Secure Internet Live Conferencing) plugin for Pidgin. +%endif + +%if 0%{!?without_text:1} +%description -n finch +A text-based user interface for Pidgin. This can be run from a +standard text console or from a terminal within X Windows. It +uses ncurses and our homegrown gnt library for drawing windows +and text. +%endif + +%if 0%{?_with_tcl:1} +%description tcl +Tcl plugin loader for Pidgin. This package will allow you to write or +use Pidgin plugins written in the Tcl programming language. +%endif + +%prep +%setup -q -n %{name}-@VERSION@ + +%build +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{_prefix} \ + --bindir=%{_bindir} \ + --datadir=%{_datadir} \ + --includedir=%{_includedir} \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ + --sysconfdir=%{_sysconfdir} \ + --disable-schemas-install \ + %{!?_with_dbus:--disable-dbus} \ + %{?_without_gstreamer:--disable-gstreamer} \ + %{?_without_gtkspell:--disable-gtkspell} \ + %{?_with_mono:--enable-mono} \ + %{?_with_perlmakehack:--with-perl-lib=%{buildroot}%{_prefix}} \ + %{!?_with_perlmakehack:--with-perl-lib=%{_prefix}} \ + %{?_with_sasl:--enable-cyrus-sasl} \ + %{?_with_silc:--with-silc-includes=%{_includedir}/silc} \ + %{?_with_silc:--with-silc-libs=%{_libdir}/silc} \ + %{!?_with_tcl:--disable-tcl} \ + %{?_without_text:--disable-consoleui} + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} +%if 0%{?_with_perlmakehack:1} +make prefix=%{buildroot}%{_prefix} bindir=%{buildroot}%{_bindir} \ + datadir=%{buildroot}%{_datadir} includedir=%{buildroot}%{_includedir} \ + libdir=%{buildroot}%{_libdir} mandir=%{buildroot}%{_mandir} \ + sysconfdir=%{buildroot}%{_sysconfdir} \ + install +%else +make DESTDIR=$RPM_BUILD_ROOT install +%endif + +# Delete files that we don't want to put in any of the RPMs +rm -f $RPM_BUILD_ROOT%{_libdir}/finch/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/pidgin/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod +find $RPM_BUILD_ROOT -type f -name .packlist -exec rm -f {} ';' +find $RPM_BUILD_ROOT -type f -name '*.bs' -empty -exec rm -f {} ';' +# do we want to ship the nullclient ? +rm -f $RPM_BUILD_ROOT%{_bindir}/nullclient + +%if 0%{!?_with_howl:1} && 0%{!?_with_avahi:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libbonjour.so +%endif + +%if 0%{!?_with_meanwhile:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libsametime.so +%endif + +%if 0%{!?_with_mono:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/mono.so +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/*.dll +%endif + +%if 0%{!?_with_silc:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/libsilcpurple.so +%endif + +%if 0%{!?_with_tcl:1} +rm -f $RPM_BUILD_ROOT%{_libdir}/libpurple/tcl.so +%endif + +%if 0%{?_without_text:1} +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/finch.* +rm -rf $RPM_BUILD_ROOT%{_bindir}/finch +rm -f $RPM_BUILD_ROOT%{_libdir}/libgnt.so.* +%endif + +%find_lang %{name} + +find $RPM_BUILD_ROOT%{_libdir}/pidgin $RPM_BUILD_ROOT%{_libdir}/libpurple -xtype f -print | \ + sed "s@^$RPM_BUILD_ROOT@@g" | \ + grep -v /libbonjour.so | \ + grep -v /libsilcpurple.so | \ + grep -v /libsametime.so | \ + grep -v /mono.so | \ + grep -v /tcl.so | \ + grep -v ".dll$" | \ + grep -v ".tcl$" > %{name}-%{version}-coreplugins + +# files -f file can only take one filename :( +cat %{name}.lang >> %{name}-%{version}-coreplugins + +%clean +rm -rf %{buildroot} + +%pre +if [ "$1" -gt 1 -a -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas >/dev/null || : + killall -HUP gconfd-2 || : +fi + +%post +if [ -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-install-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : + killall -HUP gconfd-2 || : +fi +/sbin/ldconfig + +%preun +if [ "$1" -eq 0 -a -n "`which gconftool-2 2>/dev/null`" ]; then + export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` + gconftool-2 --makefile-uninstall-rule \ + %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || : + killall -HUP gconfd-2 || : +fi + +%postun -p /sbin/ldconfig + +%files -f %{name}-%{version}-coreplugins +%defattr(-, root, root) + +%doc AUTHORS +%doc COPYING +%doc COPYRIGHT +%doc ChangeLog +%doc NEWS +%doc README +%doc README.SVN +%doc doc/FAQ +%doc doc/the_penguin.txt +%doc %{_mandir}/man1/pidgin.* +%doc %{_mandir}/man3*/* + +%dir %{_libdir}/pidgin +%dir %{_libdir}/libpurple +%attr(755, root, root) %{perl_vendorarch}/Purple* +%attr(755, root, root) %{perl_vendorarch}/auto/Purple + +%{_bindir}/pidgin +%{_datadir}/pixmaps/* +%dir %{_datadir}/sounds/pidgin +%{_datadir}/sounds/pidgin/* +%{_datadir}/applications/* +%{_libdir}/libpurple.so.* +%{_sysconfdir}/gconf/schemas/gaim.schemas + +%if 0%{?_with_dbus:1} +%{_bindir}/purple-client-example +%{_bindir}/purple-remote +%{_bindir}/purple-send +%{_bindir}/purple-send-async +%{_bindir}/purple-url-handler +%{_libdir}/libpurple-client.so.* +%{_datadir}/dbus-1/services/gaim.service +%doc README.dbus +%doc libpurple/purple-notifications-example +%endif + +%files devel +%defattr(-, root, root) + +%doc ChangeLog.API +%doc HACKING +%doc PLUGIN_HOWTO +%doc PROGRAMMING_NOTES + +%dir %{_includedir}/finch +%dir %{_includedir}/gnt +%dir %{_includedir}/libpurple +%dir %{_includedir}/pidgin +%{_includedir}/finch/*.h +%{_includedir}/gnt/*.h +%{_includedir}/libpurple/*.h +%{_includedir}/pidgin/*.h +%{_libdir}/libpurple.so +%{_libdir}/libgnt.so +%{_libdir}/pkgconfig/purple.pc +%{_libdir}/pkgconfig/pidgin.pc +%{_libdir}/pkgconfig/gnt.pc +%{_datadir}/aclocal/pidgin.m4 +%if 0%{?_with_dbus:1} +%{_libdir}/libpurple-client.so +%endif + +%if 0%{?_with_howl:1} || 0%{?_with_avahi:1} +%files bonjour +%defattr(-, root, root) + +%{_libdir}/libpurple/libbonjour.* +%endif + +%if 0%{?_with_meanwhile:1} +%files meanwhile +%defattr(-, root, root) + +%{_libdir}/libpurple/libsametime.* +%endif + +%if 0%{?_with_mono:1} +%files mono +%defattr(-, root, root) + +%{_libdir}/libpurple/mono.so +%{_libdir}/libpurple/*.dll +%endif + +%if 0%{?_with_silc:1} +%files silc +%defattr(-, root, root) + +%{_libdir}/libpurple/libsilcpurple.* +%endif + +%if 0%{?_with_tcl:1} +%files tcl +%defattr(-, root, root) + +%{_libdir}/libpurple/tcl.so +%endif + +%if 0%{!?_without_text:1} +%files -n finch +%defattr(-, root, root) + +%doc %{_mandir}/man1/finch.* +%{_bindir}/finch +%{_libdir}/finch/*.so +%{_libdir}/libgnt.so.* +%endif + +%changelog +* Sat Mar 24 2007 Stu Tomlinson +- Update to reflect renaming to pidgin/libpurple + +* Sun Oct 1 2006 Stu Tomlinson +- We can build with internal gadu gadu again, so bring it back into the + main package +- Deal with gconf schame uninstallation on package upgrade and removal + +* Sun Aug 20 2006 Stu Tomlinson +- Make the gstreamer-devel dependency overridable with '--without-gstreamer' + to allow building on older distributions without suitable gstreamer + +* Tue Aug 15 2006 Mark Doliner +- Add a BuildRequire for gstreamer-devel +- Remove the BuildRequires for audiofile-devel and libao-devel + +* Mon May 8 2006 Mark Doliner +- Add --with avahi option to compile the gaim-bonjour package against + Avahi's Howl compatibility layer + +* Wed Mar 29 2006 Stu Tomlinson +- Source RPM uses tar.bz2 now to save space +- Update BuildRequires for new intltool dependencies +- Add a --with perlmakehack option to allow builds to succeed on RH9 +- Add a --with gadugadu to build (separate) gaim-gadugadu package + +* Sat Dec 17 2005 Stu Tomlinson +- Add support for beta versions so the subsequent releases are seen as newer + by RPM +- Split of sametime support to gaim-meanwhile +- Use make DESTDIR=... instead of overloading prefix etc. when installing +- Default build to include cyrus-sasl support in Jabber +- Add --with dbus to build with DBUS support + +* Sun Dec 04 2005 Christopher O'Brien +- Added obsoletes gaim-meanwhile + +* Sun Oct 30 2005 Stu Tomlinson +- Add separate gaim-bonjour package if built with --with-howl +- Add separate gaim-mono package if built with --with-mono +- Exclude some unwanted perl files + +* Sat Aug 20 2005 Stu Tomlinson +- Include libgaimperl.so +- Include gaim.m4 in gaim-devel + +* Thu Apr 28 2005 Stu Tomlinson +- Use perl_vendorlib & perl_archlib for better 64bit compat (Jeff Mahoney) +- Clean up Requires, most should be auto-detected +- Restore gtkspell-devel build requirement (and add --without gtkspell option) +- Fix Tcl build requirements to work across more distros +- Fix SILC build requirements to work across more distros + +* Mon Oct 11 2004 John Jolly +- Added if "%{_vendor}" == "suse" to handle GnuTLS libraries for SuSE + +* Sat Oct 2 2004 Stu Tomlinson +- If --with tcl or silc are not specified, make sure the plugins don't + exist to prevent RPM complaining about unpackaged files + +* Tue Jun 29 2004 Ethan Blanton +- Change Tcl to use --with tcl, the same as SILC, and build a gaim-tcl + package if specified. + +* Thu Jun 24 2004 Mark Doliner +- Add --with silc rebuild option for compiling a separate gaim-silc + RPM containing the silc protocol plugin (Stu Tomlinson). + +* Wed Jun 23 2004 Ethan Blanton +- Moved gaim headers and a pkgconfig configuration file into the + gaim-devel RPM (Stu Tomlinson). + +* Thu Jan 15 2004 Ethan Blanton +- Removed the manual strip command, as it seems to be unwarranted if + the necessary programs are properly installed. (For me, this was + elfutils.) + +* Sun Jul 20 2003 Bjoern Voigt +- Added pkgconfig build dependency. +- if "%{_vendor}" != "MandrakeSoft" now also works with rpm 3.x. +- Added Gaim-specific directories to list of Gaim's files. + +* Wed Jul 16 2003 Ethan Blanton +- Complete spec file rewrite to take advantage of "new" RPM features + and make things prettier. +- Use system-supplied %%{_prefix}, %%{_datadir}, etc. rather than + attempt to define our own. diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/Makefile.am --- a/pidgin/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -4,6 +4,7 @@ getopt1.c \ Makefile.mingw \ pidgin.pc.in \ + pidgin-uninstalled.pc.in \ win32/IdleTracker/Makefile.mingw \ win32/IdleTracker/idletrack.c \ win32/IdleTracker/idletrack.h \ diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/getopt.c --- a/pidgin/getopt.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/getopt.c Mon Mar 26 02:48:09 2007 +0000 @@ -3,7 +3,7 @@ "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! - Purple is the legal property of its developers, whose names are too numerous + Pidgin is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/getopt1.c --- a/pidgin/getopt1.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/getopt1.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Purple is the legal property of its developers, whose names are too numerous + Pidgin is the legal property of its developers, whose names are too numerous to list here. Please refer to the COPYRIGHT file distributed with this source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkaccount.c --- a/pidgin/gtkaccount.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkaccount.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkaccount.c GTK+ Account Editor UI * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkaccount.h --- a/pidgin/gtkaccount.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkaccount.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkaccount.h GTK+ Account Editor UI * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkblist.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkblist.c GTK+ BuddyList API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -2279,6 +2279,7 @@ else tmp = g_markup_escape_text(purple_chat_get_name((PurpleChat*)node), -1); node_name = g_strdup_printf("%s", tmp); + g_free(tmp); pango_layout_set_markup(td->layout, tooltip_text, -1); pango_layout_set_wrap(td->layout, PANGO_WRAP_WORD); diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkblist.h --- a/pidgin/gtkblist.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkblist.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkblist.h GTK+ Buddy List API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkcellrendererexpander.c --- a/pidgin/gtkcellrendererexpander.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkcellrendererexpander.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkcellrendererexpander.c GTK+ Cell Renderer Expander * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkcellrendererprogress.c --- a/pidgin/gtkcellrendererprogress.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkcellrendererprogress.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkcellrendererprogress.c GTK+ Cell Renderer Progress * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkconn.c --- a/pidgin/gtkconn.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkconn.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkconn.c GTK+ Connection API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkconn.h --- a/pidgin/gtkconn.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkconn.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** * @file gtkconn.h GTK+ Connection API * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkconv.c --- a/pidgin/gtkconv.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkconv.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkconv.c GTK+ Conversation API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -3488,7 +3488,7 @@ g_object_unref(pixbuf); if (flags && purple_conv_chat_is_user_ignored(chat, name)) { - filename = g_build_filename(DATADIR, "pixmaps", "purple", "status", "default", "ignored.png", NULL); + filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "status", "default", "ignored.png", NULL); pixbuf = gdk_pixbuf_new_from_file(filename, NULL); g_free(filename); scale2 = gdk_pixbuf_scale_simple(pixbuf, 15, 15, GDK_INTERP_BILINEAR); @@ -7043,9 +7043,9 @@ * @file gtkconvwin.c GTK+ Conversation Window API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkconv.h --- a/pidgin/gtkconv.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkconv.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkconv.h GTK+ Conversation API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkconvwin.h --- a/pidgin/gtkconvwin.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkconvwin.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkconvwin.h GTK+ Conversation Window API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkdebug.c --- a/pidgin/gtkdebug.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkdebug.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkdebug.c GTK+ Debug API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkdebug.h --- a/pidgin/gtkdebug.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkdebug.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkdebug.h GTK+ Debug API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkdialogs.c --- a/pidgin/gtkdialogs.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkdialogs.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkdialogs.c GTK+ Dialogs * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -162,7 +162,7 @@ {N_("Italian"), "it", "Claudio Satriano", "satriano@na.infn.it"}, {N_("Japanese"), "ja", "Takashi Aihana", "aihana@gnome.gr.jp"}, {N_("Georgian"), "ka", "Ubuntu Georgian Translators", "alexander.didebulidze@stusta.mhn.de"}, - {N_("Kannada"), "kn", "Kannada Translation team" "translation@sampada.info"}, + {N_("Kannada"), "kn", "Kannada Translation team", "translation@sampada.info"}, {N_("Korean"), "ko", "Kyung-uk Son", "vvs740@chol.com"}, {N_("Kurdish"), "ku", "Erdal Ronahi", "erdal.ronahi@gmail.com"}, {N_("Kurdish"), "ku", "Amed Ç. Jiyan", "amedcj@hotmail.com"}, @@ -332,7 +332,7 @@ /* Generate a logo with a version number */ logo = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_realize(logo); - filename = g_build_filename(DATADIR, "pixmaps", "purple", "logo.png", NULL); + filename = g_build_filename(DATADIR, "pixmaps", "pidgin", "logo.png", NULL); pixbuf = gdk_pixbuf_new_from_file(filename, NULL); g_free(filename); pidgin_logo_versionize(&pixbuf, logo); diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkdialogs.h --- a/pidgin/gtkdialogs.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkdialogs.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** * @defgroup gtkui GTK+ User Interface * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkdnd-hints.c --- a/pidgin/gtkdnd-hints.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkdnd-hints.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkdnd-hints.c GTK+ Drag-and-Drop arrow hints * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -122,7 +122,7 @@ for (i = 0; hint_windows[i].filename != NULL; i++) { gchar *fname; - fname = g_build_filename(DATADIR, "pixmaps", "purple", + fname = g_build_filename(DATADIR, "pixmaps", "pidgin", hint_windows[i].filename, NULL); hint_windows[i].widget = dnd_hints_init_window(fname); diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkeventloop.c --- a/pidgin/gtkeventloop.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkeventloop.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtk_eventloop.c Purple Event Loop API (gtk implementation) * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkeventloop.h --- a/pidgin/gtkeventloop.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkeventloop.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkeventloop.h Pidgin GTK+ Event Loop Implementation * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkft.c --- a/pidgin/gtkft.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkft.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkft.c GTK+ File Transfer UI * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkft.h --- a/pidgin/gtkft.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkft.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkft.h GTK+ File Transfer UI * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkidle.c --- a/pidgin/gtkidle.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkidle.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkidle.h --- a/pidgin/gtkidle.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkidle.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkidle.h GTK+ Idle API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkimhtml.c --- a/pidgin/gtkimhtml.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkimhtml.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkimhtml.c GTK+ IMHtml * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkimhtmltoolbar.c --- a/pidgin/gtkimhtmltoolbar.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkimhtmltoolbar.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkimhtmltoolbar.c GTK+ IMHtml Toolbar * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtklog.c --- a/pidgin/gtklog.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtklog.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtklog.c GTK+ Log viewer * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtklog.h --- a/pidgin/gtklog.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtklog.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtklog.h GTK+ Log viewer * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkmain.c --- a/pidgin/gtkmain.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkmain.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkmenutray.c --- a/pidgin/gtkmenutray.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkmenutray.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /* - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtknickcolors.h --- a/pidgin/gtknickcolors.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtknickcolors.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtknickcolors.h GTK+ Conversation API * @ingroup gtkui * - * purple + * pidgin * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtknotify.c --- a/pidgin/gtknotify.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtknotify.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtknotify.c GTK+ Notification API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtknotify.h --- a/pidgin/gtknotify.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtknotify.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtknotify.h GTK+ Notification API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkplugin.c --- a/pidgin/gtkplugin.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkplugin.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkplugin.c GTK+ Plugins support * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkplugin.h --- a/pidgin/gtkplugin.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkplugin.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkplugin.h GTK+ Plugin API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkpluginpref.c --- a/pidgin/gtkpluginpref.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkpluginpref.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkpluginpref.c GTK+ Plugin preferences * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkpluginpref.h --- a/pidgin/gtkpluginpref.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkpluginpref.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkpluginpref.h GTK+ Plugin Preferences * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkpounce.c --- a/pidgin/gtkpounce.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkpounce.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkpounce.c GTK+ Buddy Pounce API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkpounce.h --- a/pidgin/gtkpounce.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkpounce.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkpounce.h GTK+ Buddy Pounce API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkprefs.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkprefs.c GTK+ Preferences * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkprefs.h --- a/pidgin/gtkprefs.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkprefs.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkprefs.h GTK+ Preferences * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkprivacy.c --- a/pidgin/gtkprivacy.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkprivacy.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkprivacy.c GTK+ Privacy UI * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkprivacy.h --- a/pidgin/gtkprivacy.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkprivacy.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkprivacy.h GTK+ Privacy UI * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkrequest.c --- a/pidgin/gtkrequest.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkrequest.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkrequest.c GTK+ Request API * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkrequest.h --- a/pidgin/gtkrequest.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkrequest.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkrequest.h GTK+ Request API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkroomlist.c --- a/pidgin/gtkroomlist.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkroomlist.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkroomlist.c GTK+ Room List UI * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkroomlist.h --- a/pidgin/gtkroomlist.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkroomlist.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkroomlist.h GTK+ Room List UI * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksavedstatuses.c --- a/pidgin/gtksavedstatuses.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksavedstatuses.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtksavedstatus.c GTK+ Saved Status Editor UI * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksavedstatuses.h --- a/pidgin/gtksavedstatuses.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksavedstatuses.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtksavedstatuses.h GTK+ Saved Status Editor UI * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkscrollbook.c --- a/pidgin/gtkscrollbook.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkscrollbook.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkscrollbook.c GTK+ Scrolling notebook widget * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkscrollbook.h --- a/pidgin/gtkscrollbook.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkscrollbook.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkscrollbook GTK+ Scrolling notebook Widget * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksession.c --- a/pidgin/gtksession.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksession.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtksession.c X Windows session management API * @ingroup gtkui * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksession.h --- a/pidgin/gtksession.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksession.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtksession.h X Windows session management API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksound.c --- a/pidgin/gtksound.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksound.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtksound.c GTK+ Sound * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -529,7 +529,7 @@ char *filename = g_strdup(purple_prefs_get_path(file_pref)); if(!filename || !strlen(filename)) { g_free(filename); - filename = g_build_filename(DATADIR, "sounds", "purple", sounds[event].def, NULL); + filename = g_build_filename(DATADIR, "sounds", "pidgin", sounds[event].def, NULL); } purple_sound_play_file(filename, NULL); diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksound.h --- a/pidgin/gtksound.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksound.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtksound.h GTK+ Sound API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtksourceiter.c --- a/pidgin/gtksourceiter.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtksourceiter.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- * gtksourceiter.c * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkstatusbox.c --- a/pidgin/gtkstatusbox.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkstatusbox.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkstatusbox.c GTK+ Status Selection Widget * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -298,23 +298,22 @@ static void statusbox_got_url(PurpleUtilFetchUrlData *url_data, gpointer user_data, - const gchar *themedata, size_t len, const gchar *error_message, - PidginStatusBox *status_box) + const gchar *themedata, size_t len, const gchar *error_message) { - FILE *f; - gchar *path; + FILE *f; + gchar *path; - if ((error_message != NULL) || (len == 0)) - return; + if ((error_message != NULL) || (len == 0)) + return; - f = purple_mkstemp(&path, TRUE); - fwrite(themedata, len, 1, f); - fclose(f); + f = purple_mkstemp(&path, TRUE); + fwrite(themedata, len, 1, f); + fclose(f); - icon_choose_cb(path, status_box); + icon_choose_cb(path, user_data); - g_unlink(path); - g_free(path); + g_unlink(path); + g_free(path); } @@ -322,7 +321,7 @@ statusbox_uri_handler(const char *proto, const char *cmd, GHashTable *params, void *data) { const char *src; -printf("%s %s\n", proto, cmd); + if (g_ascii_strcasecmp(proto, "aim")) return FALSE; diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkstatusbox.h --- a/pidgin/gtkstatusbox.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkstatusbox.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkstatusbox.c GTK+ Status Selection Widget * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkthemes.c --- a/pidgin/gtkthemes.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkthemes.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* - * Themes for Purple + * Themes for Pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -264,7 +264,7 @@ int l; char* probedirs[3]; - probedirs[0] = g_build_filename(DATADIR, "pixmaps", "purple", "smileys", NULL); + probedirs[0] = g_build_filename(DATADIR, "pixmaps", "pidgin", "emotes", NULL); probedirs[1] = g_build_filename(purple_user_dir(), "smileys", NULL); probedirs[2] = 0; for (l=0; probedirs[l]; l++) { diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkthemes.h --- a/pidgin/gtkthemes.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkthemes.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkthemes.h GTK+ Smiley Theme API * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkutils.c --- a/pidgin/gtkutils.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkutils.c Mon Mar 26 02:48:09 2007 +0000 @@ -2,9 +2,9 @@ * @file gtkutils.c GTK+ utility functions * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkutils.h --- a/pidgin/gtkutils.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkutils.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkutils.h GTK+ utility functions * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkwhiteboard.c --- a/pidgin/gtkwhiteboard.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkwhiteboard.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/gtkwhiteboard.h --- a/pidgin/gtkwhiteboard.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/gtkwhiteboard.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /** * @file gtkwhiteboard.h The PidginWhiteboard frontend object * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pidgin-uninstalled.pc.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pidgin-uninstalled.pc.in Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ +datadir=@datadir@ +sysconfdir=@sysconfdir@ + +Name: Pidgin +Description: Pidgin is a GTK2-based instant messenger application. +Version: @VERSION@ +Requires: gtk+-2.0 purple +Cflags: -I${pc_top_builddir}/${pcfiledir} diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pidgin.h --- a/pidgin/pidgin.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pidgin.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file pidgin.h UI definitions and includes * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pidgin.pc.in --- a/pidgin/pidgin.pc.in Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pidgin.pc.in Mon Mar 26 02:48:09 2007 +0000 @@ -4,10 +4,10 @@ includedir=@includedir@ datadir=@datadir@ sysconfdir=@sysconfdir@ - + Name: Pidgin Description: Pidgin is a GTK2-based instant messenger application. Version: @VERSION@ -Requires: glib-2.0 gtk+-2.0 purple +Requires: gtk+-2.0 purple Cflags: -I${includedir}/pidgin diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pidginstock.c --- a/pidgin/pidginstock.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pidginstock.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,10 +1,10 @@ /** - * @file purplestock.c GTK+ Stock resources + * @file pidginstock.c GTK+ Stock resources * @ingroup gtkui * - * purple + * pidgin * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * @@ -81,7 +81,7 @@ { PIDGIN_STOCK_OPEN_MAIL, NULL, GTK_STOCK_JUMP_TO }, { PIDGIN_STOCK_SIGN_ON, NULL, GTK_STOCK_EXECUTE }, { PIDGIN_STOCK_SIGN_OFF, NULL, GTK_STOCK_CLOSE }, - { PIDGIN_STOCK_TYPED, "purple", "typed.png" }, + { PIDGIN_STOCK_TYPED, "pidgin", "typed.png" }, { PIDGIN_STOCK_UPLOAD, NULL, GTK_STOCK_GO_UP }, }; @@ -183,11 +183,11 @@ if (base == NULL) return NULL; - if (!strcmp(dir, "purple")) - filename = g_build_filename(DATADIR, "pixmaps", "purple", base, NULL); + if (!strcmp(dir, "pidgin")) + filename = g_build_filename(DATADIR, "pixmaps", "pidgin", base, NULL); else { - filename = g_build_filename(DATADIR, "pixmaps", "purple", dir, + filename = g_build_filename(DATADIR, "pixmaps", "pidgin", dir, base, NULL); } diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pidginstock.h --- a/pidgin/pidginstock.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pidginstock.h Mon Mar 26 02:48:09 2007 +0000 @@ -2,7 +2,7 @@ * @file gtkstock.h GTK+ Stock resources * @ingroup gtkui * - * purple + * pidgin * * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/Makefile.am --- a/pidgin/pixmaps/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -9,8 +9,8 @@ connect.png \ edit.png \ pidgin.png \ - gaim.svg \ - info.png \ + pidgin.svg \ + info.png \ insert-image.png \ insert-image-small.png \ insert-link-small.png \ @@ -23,7 +23,7 @@ pause.png \ phone.png \ send-im.png \ - status-online.png \ + status-online.png \ status-offline.png \ status-away.png \ status-invisible.png \ @@ -46,20 +46,20 @@ text_smaller.png \ typed.png \ typing.png \ + window-icon.png \ Makefile.mingw \ - gaim.ico + pidgin.ico -gaimbuttonpixdir = $(datadir)/pixmaps/gaim/buttons -gaimbuttonpix_DATA = about_menu.png accounts.png change-bgcolor-small.png change-fgcolor-small.png edit.png info.png insert-image-small.png insert-link-small.png insert-smiley-small.png pause.png text_bigger.png text_normal.png text_smaller.png send-im.png +pidginbuttonpixdir = $(datadir)/pixmaps/pidgin/buttons +pidginbuttonpix_DATA = about_menu.png accounts.png change-bgcolor-small.png change-fgcolor-small.png edit.png info.png insert-image-small.png insert-link-small.png insert-smiley-small.png pause.png text_bigger.png text_normal.png text_smaller.png send-im.png -gaimiconpixdir = $(datadir)/pixmaps/pidgin/icons -gaimiconpix_DATA = window-icon.png +pidginiconpixdir = $(datadir)/pixmaps/pidgin/icons +pidginiconpix_DATA = window-icon.png -gaimdistpixdir = $(datadir)/pixmaps/gaim -gaimdistpix_DATA = logo.png tb_drag_arrow_down.xpm tb_drag_arrow_left.xpm tb_drag_arrow_right.xpm tb_drag_arrow_up.xpm typed.png typing.png status-online.png status-offline.png status-away.png status-invisible.png status-typing0.png status-typing1.png status-typing2.png status-typing3.png status-connect0.png status-connect1.png status-connect2.png status-connect3.png phone.png insert-image.png +pidgindistpixdir = $(datadir)/pixmaps/pidgin +pidgindistpix_DATA = logo.png tb_drag_arrow_down.xpm tb_drag_arrow_left.xpm tb_drag_arrow_right.xpm tb_drag_arrow_up.xpm typed.png typing.png status-online.png status-offline.png status-away.png status-invisible.png status-typing0.png status-typing1.png status-typing2.png status-typing3.png status-connect0.png status-connect1.png status-connect2.png status-connect3.png phone.png insert-image.png distpixmapdir = $(datadir)/pixmaps -distpixmap_DATA = pidgin.png gaim.svg - +distpixmap_DATA = pidgin.png pidgin.svg \ No newline at end of file diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/buddy_icons/qq/Makefile.am --- a/pidgin/pixmaps/buddy_icons/qq/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/buddy_icons/qq/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -100,6 +100,6 @@ qq_99.png \ qq_100.png -qqbuddyiconspixdir = $(datadir)/pixmaps/gaim/buddy_icons/qq +qqbuddyiconspixdir = $(datadir)/pixmaps/purple/buddy_icons/qq qqbuddyiconspix_DATA = $(EXTRA_DIST) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/emblems/16/scalable/Makefile.am --- a/pidgin/pixmaps/emblems/16/scalable/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/emblems/16/scalable/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,9 +1,8 @@ -EXTRA_DIST = aol-client.svg \ +EXTRA_DIST = aol-client.svg \ blocked.svg \ bot.svg \ external.svg \ female.svg \ - founder.svg \ free-for-chat.svg \ game.svg \ male.svg \ diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/emotes/default/22/Makefile.am --- a/pidgin/pixmaps/emotes/default/22/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/emotes/default/22/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -163,7 +163,7 @@ yawn.png \ yin-yang.png -pidginsmileypixdir = $(datadir)/pixmaps/gaim/smileys/default +pidginsmileypixdir = $(datadir)/pixmaps/pidgin/emotes/default pidginsmileypix_DATA = \ $(SMILEYS) \ theme diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/emotes/default/22/theme --- a/pidgin/pixmaps/emotes/default/22/theme Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/emotes/default/22/theme Mon Mar 26 02:48:09 2007 +0000 @@ -234,7 +234,7 @@ cowboy.png <):) dance.png \\:D/ \\:d/ rose.png @};- -don't-know.png :-L :-l +dont-know.png :-L :-l ghost.png 8-X 8-x hug-left.png >:D< >:d< hypnotized.png @-) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/emotes/none/Makefile.am --- a/pidgin/pixmaps/emotes/none/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/emotes/none/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ -gaimsmileypixdir = $(datadir)/pixmaps/gaim/smileys/none -gaimsmileypix_DATA = theme +pidginsmileypixdir = $(datadir)/pixmaps/pidgin/emotes/none +pidginsmileypix_DATA = theme -EXTRA_DIST = $(gaimsmileypix_DATA) \ +EXTRA_DIST = $(pidginsmileypix_DATA) \ Makefile.mingw diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/gaim.ico Binary file pidgin/pixmaps/gaim.ico has changed diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/gaim.png Binary file pidgin/pixmaps/gaim.png has changed diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/gaim.svg --- a/pidgin/pixmaps/gaim.svg Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/pidgin.ico Binary file pidgin/pixmaps/pidgin.ico has changed diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/pidgin.png Binary file pidgin/pixmaps/pidgin.png has changed diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/pidgin.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/pixmaps/pidgin.svg Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,176 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/status/16/extended-away.png Binary file pidgin/pixmaps/status/16/extended-away.png has changed diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/status/16/scalable/extended-away.svg --- a/pidgin/pixmaps/status/16/scalable/extended-away.svg Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/status/16/scalable/extended-away.svg Mon Mar 26 02:48:09 2007 +0000 @@ -7,64 +7,43 @@ xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/s odipodi-0.dtd" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="16" - height="16" - id="svg1307" + width="16px" + height="16px" + id="svg4245" sodipodi:version="0.32" - inkscape:version="0.43" - sodipodi:docbase="/home/hbons/Desktop/Gaim Refresh/status/16/scalable" - sodipodi:docname="extended-away16.svg" - inkscape:export-filename="/home/hbons/Desktop/Gaim Refresh/status/16/extended-away16.png" + inkscape:version="0.44.1" + sodipodi:docbase="/home/hbons/GUI/Tango/Gaim Refresh/status/16/scalable" + sodipodi:docname="extended-away.svg" + inkscape:export-filename="/home/hbons/GUI/Tango/Gaim Refresh/status/16/extended-away.png" inkscape:export-xdpi="90" - inkscape:export-ydpi="90" - version="1.0"> + inkscape:export-ydpi="90"> + id="defs4247"> + id="linearGradient2260"> + id="stop2262" /> - - - - - + id="stop2264" /> + xlink:href="#linearGradient2260" + id="radialGradient5300" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1,0,0,0.626667,0,6.566431)" + cx="11.756953" + cy="17.588654" + fx="11.756953" + fy="17.588654" + r="6.3436799" /> + inkscape:window-width="872" + inkscape:window-height="626" + inkscape:window-x="129" + inkscape:window-y="124" /> + id="metadata4250"> @@ -103,51 +79,74 @@ inkscape:label="Layer 1" inkscape:groupmode="layer"> + sodipodi:type="arc" + style="fill:url(#radialGradient5300);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.81530744;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5131" + sodipodi:cx="11.756953" + sodipodi:cy="17.588654" + sodipodi:rx="6.3436799" + sodipodi:ry="3.9753728" + d="M 18.100633 17.588654 A 6.3436799 3.9753728 0 1 1 5.4132733,17.588654 A 6.3436799 3.9753728 0 1 1 18.100633 17.588654 z" + transform="matrix(-1.024642,0,0,0.754646,19.54667,-0.273206)" /> + transform="matrix(-1.708738,0,0,1.647118,-1.878642,-0.867731)" + style="fill:#fce94f;fill-opacity:1;stroke:#ce5c00;stroke-width:0.59607363;stroke-miterlimit:4;stroke-opacity:1" + d="M -9,3.2233667 L -7.134588,1.4374993 L -2.89508,1.4374993 C -2.3096744,1.4374993 -1.9824877,1.8329068 -1.9824877,2.3263196 L -1.9824877,9.3300741 L -9,9.3300741 L -9,3.2233667 z " + id="rect5097" + sodipodi:nodetypes="ccccccc" /> + + style="opacity:0.4;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5988" + width="2.9375007" + height="3.6875" + x="23" + y="2.5624993" + transform="matrix(-0.340425,0,0,0.813559,17.82977,0.918776)" /> + style="opacity:0.4;fill:#ce5c00;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect5990" + width="2.9375007" + height="3.6875" + x="23" + y="2.5624993" + transform="matrix(-6.824498e-8,0.340421,0.542373,-4.516053e-7,8.610169,-2.826144)" /> + + style="fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7302" + width="6.4375" + height="1.9999993" + x="1" + y="0" + transform="matrix(0.776699,0,0,0.5,3.223302,6.999992)" /> + style="fill:#888a85;fill-opacity:1;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect7304" + width="6.4375" + height="1.9999993" + x="1" + y="0" + transform="matrix(0.621359,0,0,0.5,3.378642,4.999992)" /> + diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/status/default/Makefile.am --- a/pidgin/pixmaps/status/default/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/status/default/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -42,6 +42,6 @@ yahoo.png \ zephyr.png -gaimstatuspixdir = $(datadir)/pixmaps/gaim/status/default +pidginstatuspixdir = $(datadir)/pixmaps/pidgin/status/default -gaimstatuspix_DATA = $(EXTRA_DIST) +pidginstatuspix_DATA = $(EXTRA_DIST) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/tray/16/Makefile.am --- a/pidgin/pixmaps/tray/16/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/tray/16/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -6,13 +6,7 @@ tray-offline.png \ tray-online.png -EXTRA_DIST = tray-away.ico \ - tray-busy.ico \ - tray-connecting.ico \ - tray-extended-away.ico \ - tray-message.ico \ - tray-offline.ico \ - tray-online.ico +EXTRA_DIST = $(TRAY_ICONS) pidgintraypixdir = $(datadir)/pixmaps/pidgin/tray/16 pidgintraypix_DATA = $(TRAY_ICONS) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/pixmaps/tray/22/Makefile.am --- a/pidgin/pixmaps/tray/22/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/pixmaps/tray/22/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -6,13 +6,14 @@ tray-offline.png \ tray-online.png -EXTRA_DIST = tray-away.ico \ +EXTRA_DIST = $(TRAY_ICONS) \ + tray-away.ico \ tray-busy.ico \ - tray-connecting.ico \ tray-extended-away.ico \ tray-message.ico \ tray-offline.ico \ - tray-online.ico + tray-online.ico +# tray-connecting.ico pidgintraypixdir = $(datadir)/pixmaps/pidgin/tray/22 pidgintraypix_DATA = $(TRAY_ICONS) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/Makefile.am --- a/pidgin/plugins/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -28,11 +28,11 @@ convcolors_la_LDFLAGS = -module -avoid-version extplacement_la_LDFLAGS = -module -avoid-version -gaimrc_la_LDFLAGS = -module -avoid-version history_la_LDFLAGS = -module -avoid-version iconaway_la_LDFLAGS = -module -avoid-version markerline_la_LDFLAGS = -module -avoid-version notify_la_LDFLAGS = -module -avoid-version +pidginrc_la_LDFLAGS = -module -avoid-version relnot_la_LDFLAGS = -module -avoid-version spellchk_la_LDFLAGS = -module -avoid-version timestamp_la_LDFLAGS = -module -avoid-version @@ -44,11 +44,11 @@ plugin_LTLIBRARIES = \ convcolors.la \ extplacement.la \ - gaimrc.la \ history.la \ iconaway.la \ markerline.la \ notify.la \ + pidginrc.la \ relnot.la \ spellchk.la \ timestamp.la \ @@ -57,11 +57,11 @@ convcolors_la_SOURCES = convcolors.c extplacement_la_SOURCES = extplacement.c -gaimrc_la_SOURCES = gaimrc.c history_la_SOURCES = history.c iconaway_la_SOURCES = iconaway.c markerline_la_SOURCES = markerline.c notify_la_SOURCES = notify.c +pidginrc_la_SOURCES = pidginrc.c relnot_la_SOURCES = relnot.c spellchk_la_SOURCES = spellchk.c timestamp_la_SOURCES = timestamp.c @@ -70,11 +70,11 @@ convcolors_la_LIBADD = $(GTK_LIBS) extplacement_la_LIBADD = $(GTK_LIBS) -gaimrc_la_LIBADD = $(GTK_LIBS) history_la_LIBADD = $(GTK_LIBS) iconaway_la_LIBADD = $(GTK_LIBS) markerline_la_LIBADD = $(GTK_LIBS) notify_la_LIBADD = $(GTK_LIBS) +pidginrc_la_LIBADD = $(GTK_LIBS) relnot_la_LIBADD = $(GLIB_LIBS) spellchk_la_LIBADD = $(GTK_LIBS) timestamp_la_LIBADD = $(GTK_LIBS) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/crazychat/Makefile.am --- a/pidgin/plugins/crazychat/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/crazychat/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,8 +1,8 @@ -plugindir = $(libdir)/gaim +plugindir = $(libdir)/pidgin if ENABLE_DEBUG DEBUG_CPPFLAGS = -g -pg -# DEBUG_CPPFLAGS = -D_DEBUG_ -g -pg +# DEBUG_CPPFLAGS = -D_DEBUG_ -g -pg DEBUG_LFLAGS = -pg else DEBUG_CPPFLAGS = -O2 @@ -18,7 +18,7 @@ endif crazychat_la_LDFLAGS = -module -avoid-version $(GTK_LIBS) $(DEBUG_LFLAGS) -crazychat_la_SOURCES = cc_gaim_plugin.c cc_gtk_gl.c cc_gtk_gl.h \ +crazychat_la_SOURCES = cc_pidgin_plugin.c cc_gtk_gl.c cc_gtk_gl.h \ cc_interface.h crazychat.c crazychat.h util.h\ cc_network.c cc_network.h filter.c filter.h\ cc_output.c face.c face.h doggy.c doggy.h glm.h glm.c sharky.h sharky.c models.h models.c @@ -31,9 +31,9 @@ #$(GTKGLEXT_CFLAGS) \ #-I$(top_srcdir)/include -AM_CPPFLAGS = -DGAIM_PLUGINS \ - -I$(top_srcdir)/libgaim \ - -I$(top_srcdir)/gtk \ +AM_CPPFLAGS = -DPURPLE_PLUGINS \ + -I$(top_srcdir)/libpurple \ + -I$(top_srcdir)/pidgin \ $(GTK_CFLAGS) \ $(GTKGLEXT_CFLAGS) \ $(DEBUG_CPPFLAGS) \ diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/crazychat/cc_gaim_plugin.c --- a/pidgin/plugins/crazychat/cc_gaim_plugin.c Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,485 +0,0 @@ -#include -#include - -#include "internal.h" -#include "plugin.h" -#include "gtkplugin.h" -#include "gtkblist.h" -#include "gtkutils.h" -#include "connection.h" -#include "conversation.h" -#include "network.h" - -#include -#include -#include - -#include "crazychat.h" -#include "cc_network.h" -#include "cc_interface.h" -#include "cc_gtk_gl.h" -#include "util.h" - -/* --- begin type and global variable definitions --- */ - -static struct crazychat cc_info; - -/* --- begin function declarations --- */ - -/** - * Called by purple plugin to start CrazyChat - * @param cc the crazychat struct - */ -static void cc_init(struct crazychat *cc); - -/** - * Called by purple plugin to destroy CrazyChat - * @param cc the crazychat struct - */ -static void cc_destroy(struct crazychat *cc); - - -/** - * Buddy menu drawing callback. Adds a CrazyChat menuitem. - * @param menu the buddy menu widget - * @param b the buddy whose menu this is - */ -static gboolean cc_buddy_menu(GtkWidget *menu, PurpleBuddy *b); - -/** - * Buddy menu callback. Initiates the CrazyChat session. - * @param item the gtk buddy menu item - * @param b the buddy whose menu the item was in - */ -static void cc_menu_cb(GtkMenuItem *item, PurpleBuddy *b); - -/** - * IM callback. Handles receiving a CrazyChat session request. - * @param account the account we received the IM on - * @param sender the buddy who we received the message from - * @param message the message we received - * @param flags IM flags - * @param data user data - */ -static gboolean receive_im_cb(PurpleAccount *account, char **sender, - char **message, int *flags, void *data); - -/** - * Displaying IM callback. Drops CrazyChat messages from IM window. - * @param account the account we are displaying the IM on - * @param conv the conversation we are displaying the IM on - * @param message the message we are displaying - * @param data user data - */ -static gboolean display_im_cb(PurpleAccount *account, const char *who, char **message, - PurpleConnection *conv, PurpleMessageFlags flags, void *data); - -/** - * Callback for CrazyChat plugin configuration frame - * @param plugin the plugin data - * @return the configuration frame - */ -static GtkWidget *get_config_frame(PurplePlugin *plugin); - -/** - * TCP port callback. Changes the port used to listen for new CC sessions - * @param spin the spinner button whose value changed - * @param data user data - */ -static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc); - -/** - * UDP port callback. Changes the port used to send/recv CC session frames - * @param spin the spinner button whose value changed - * @param data user data - */ -static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc); - -/** - * Features enabling/disabling callback. Initializes the input processing - * or shuts it down. - * @param data user data - */ -static void features_enable_cb(struct crazychat *cc); - -/** - * User signed on callback. Now we have a buddy list to connect a signal - * handler to. - * @param gc the purple connection we are signed on - * @param plugin our plugin struct - */ -static gboolean cc_signed_on(PurpleConnection *gc, void *plugin); - -/** - * Plugin loading callback. If a buddy list exists, connect our buddy menu - * drawing callback to the signal handler, otherwise, connect a signed on - * signal handler so we know when we get a buddy list. - * @param plugin our plugin struct - */ -static gboolean plugin_load(PurplePlugin *plugin); - -/** - * Plugin unloading callback. Disconnect all handlers and free data. - * @param plugin our plugin struct - */ -static gboolean plugin_unload(PurplePlugin *plugin); - - -/* --- end function declarations --- */ - - -#define CRAZYCHAT_PLUGIN_ID "gtk-crazychat" - -static PidginPluginUiInfo ui_info = { - get_config_frame /**< get_config_frame */ -}; - -static PurplePluginInfo info = { - 2, /**< api_version */ - PURPLE_PLUGIN_STANDARD, /**< type */ - PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ - 0, /**< flags */ - NULL, /**< dependencies */ - PURPLE_PRIORITY_DEFAULT, /**< priority */ - - CRAZYCHAT_PLUGIN_ID, /**< id */ - N_("Crazychat"), /**< name */ - VERSION, /**< version */ - /** summary */ - N_("Plugin to establish a Crazychat session."), - /** description */ - N_("Uses Purple to obtain buddy ips to connect for a Crazychat session"), - "\n" - "William Chan \n" - "Ian Spiro \n" - "Charlie Stockman\n" - "Steve Yelderman", /**< author */ - PURPLE_WEBSITE, /**< homepage */ - - plugin_load, /**< load */ - plugin_unload, /**< unload */ - NULL, /**< destroy */ - - &ui_info, /**< ui_info */ - &cc_info /**< extra_info */ -}; - -/* --- end plugin struct definition --- */ - -static void cc_init(struct crazychat *cc) -{ - /* initialize main crazychat thread */ - - assert(cc); - memset(cc, 0, sizeof(*cc)); - - /* initialize network configuration */ - cc->tcp_port = DEFAULT_CC_PORT; - cc->udp_port = DEFAULT_CC_PORT; - - /* disable input subsystem */ - //cc->features_state = 0; - - /* initialize input subsystem */ - cc->features_state = 1; - cc->input_data = init_input(cc); -} - -static void cc_destroy(struct crazychat *cc) -{ - assert(cc); - - if (cc->features_state) { - destroy_input(cc->input_data); - } - memset(cc, 0, sizeof(*cc)); -} - -static gboolean cc_buddy_menu(GtkWidget *menu, PurpleBuddy *b) -{ - GtkWidget *menuitem; - - menuitem = gtk_menu_item_new_with_mnemonic("CrazyChat"); - g_signal_connect(G_OBJECT(menuitem), "activate", - G_CALLBACK(cc_menu_cb), b); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); - return FALSE; -} - -static void cc_menu_cb(GtkMenuItem *item, PurpleBuddy *b) -{ - assert(item); - assert(b); - - /* send the invite */ - cc_net_send_invite(&cc_info, b->name, b->account); -} - -static gboolean receive_im_cb(PurpleAccount *account, char **sender, - char **message, int *flags, void *data) -{ - struct crazychat *cc; - - cc = (struct crazychat*)data; - assert(cc); - if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, - strlen(CRAZYCHAT_INVITE_CODE))) { - Debug(*message); - char *split = strchr(*message, '!'); - assert(split); - *split = 0; - split++; - cc_net_recv_invite(account, cc, *sender, - &(*message)[strlen(CRAZYCHAT_INVITE_CODE)], - split); - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, - strlen(CRAZYCHAT_ACCEPT_CODE))) { - cc_net_recv_accept(account, cc, *sender, - &(*message)[strlen(CRAZYCHAT_ACCEPT_CODE)]); - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, - strlen(CRAZYCHAT_READY_CODE))) { - cc_net_recv_ready(account, cc, *sender); - return TRUE; - } - - return FALSE; -} - -static gboolean display_im_cb(PurpleAccount *account, PurpleConversation *conv, - char **message, void *data) -{ - struct crazychat *cc; - - cc = (struct crazychat*)data; - assert(cc); - if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, - strlen(CRAZYCHAT_INVITE_CODE))) { - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, - strlen(CRAZYCHAT_ACCEPT_CODE))) { - return TRUE; - } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, - strlen(CRAZYCHAT_READY_CODE))) { - return TRUE; - } - - return FALSE; -} - -static GtkWidget *get_config_frame(PurplePlugin *plugin) -{ - GtkWidget *ret; - GtkWidget *frame; - GtkWidget *vbox, *hbox; - GtkWidget *drawing_area; - GtkWidget *label; - GtkAdjustment *adj; - GtkWidget *spinner; - GtkWidget *button, *button1, *button2; - GSList *group; - struct draw_info *info; - struct crazychat *cc; - - cc = (struct crazychat*)plugin->info->extra_info; - assert(cc); - - /* create widgets */ - - /* creating the config frame */ - ret = gtk_vbox_new(FALSE, 18); - gtk_container_set_border_width(GTK_CONTAINER(ret), 12); - - /* make the network configuration frame */ - frame = pidgin_make_frame(ret, _("Network Configuration")); - gtk_widget_show(frame); - - /* add boxes for packing purposes */ - vbox = gtk_vbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(frame), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add widgets to row 1 */ - hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - gtk_widget_show(hbox); - label = gtk_label_new(_("TCP port")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); - gtk_widget_show(label); - adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, - G_MAXUSHORT, 1, 1000, 0); - spinner = gtk_spin_button_new(adj, 1, 0); - g_signal_connect(G_OBJECT(spinner), "value_changed", - G_CALLBACK(tcp_port_cb), cc); - gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); - gtk_widget_show(spinner); - label = gtk_label_new(_("UDP port")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); - gtk_widget_show(label); - adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, - G_MAXUSHORT, 1, 1000, 0); - spinner = gtk_spin_button_new(adj, 1, 0); - g_signal_connect(G_OBJECT(spinner), "value_changed", - G_CALLBACK(udp_port_cb), cc); - gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); - gtk_widget_show(spinner); - - /* make the feature configuration frame */ - frame = pidgin_make_frame(ret, _("Feature Calibration")); - gtk_widget_show(frame); - - /* add hbox for packing purposes */ - hbox = gtk_hbox_new(TRUE, 40); - gtk_box_pack_start(GTK_BOX(frame), hbox, TRUE, TRUE, 0); - gtk_widget_show(hbox); - - /* add feature calibration options */ - - /* add vbox for packing purposes */ - vbox = gtk_vbox_new(TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add enabled / disabled */ - button1 = gtk_radio_button_new_with_label(NULL, _("Enabled")); - gtk_box_pack_start(GTK_BOX(vbox), button1, TRUE, TRUE, 0); - gtk_widget_show(button1); - - group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1)); - button2 = gtk_radio_button_new_with_label(group, _("Disabled")); - gtk_box_pack_start(GTK_BOX(vbox), button2, TRUE, TRUE, 0); - gtk_widget_show(button2); - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1), - cc->features_state); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2), - !cc->features_state); - g_signal_connect_swapped(G_OBJECT(button1), "toggled", - G_CALLBACK(features_enable_cb), cc); - - /* add vbox for packing purposes */ - vbox = gtk_vbox_new(TRUE, 0); - gtk_box_pack_end(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); - gtk_widget_show(vbox); - - /* add calibrate button */ - button = gtk_button_new_with_label("Calibrate"); - gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, FALSE, 0); - gtk_widget_show(button); - - gtk_widget_show(ret); - - return ret; -} - -static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc) -{ - assert(spin); - assert(cc); - cc->tcp_port = gtk_spin_button_get_value_as_int(spin); - Debug("New tcp port: %d\n", cc->tcp_port); -} - -static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc) -{ - assert(spin); - assert(cc); - cc->udp_port = gtk_spin_button_get_value_as_int(spin); - Debug("New udp port: %d\n", cc->udp_port); -} - -static void features_enable_cb(struct crazychat *cc) -{ - Debug("Changing features state\n"); - cc->features_state = !cc->features_state; - if (cc->features_state) { - cc->input_data = init_input(cc); - } else { - if (cc->input_data) { - gtk_widget_destroy(cc->input_data->widget); - } - } -} - -static gboolean cc_signed_on(PurpleConnection *gc, void *plugin) -{ - struct crazychat *extra; - void *conv_handle; - - assert(plugin); - extra = (struct crazychat*)((PurplePlugin*)plugin)->info->extra_info; - purple_signal_disconnect - (purple_connections_get_handle(), "signed-on", - plugin, PURPLE_CALLBACK(cc_signed_on)); - purple_signal_connect(PIDGIN_BLIST - (purple_get_blist()), - "drawing-menu", plugin, - PURPLE_CALLBACK(cc_buddy_menu), NULL); - conv_handle = purple_conversations_get_handle(); - purple_signal_connect(conv_handle, "received-im-msg", plugin, - PURPLE_CALLBACK(receive_im_cb), extra); - purple_signal_connect(conv_handle, "displaying-im-msg", plugin, - PURPLE_CALLBACK(display_im_cb), extra); - return FALSE; -} - -static gboolean plugin_load(PurplePlugin *plugin) -{ - PurpleBuddyList *buddy_list; - void *conv_handle; - - if (cc_init_gtk_gl()) - return FALSE; - - cc_init(&cc_info); - buddy_list = purple_get_blist(); - if (buddy_list) { - purple_signal_connect(PIDGIN_BLIST - (buddy_list), - "drawing-menu", plugin, - PURPLE_CALLBACK(cc_buddy_menu), NULL); - conv_handle = purple_conversations_get_handle(); - purple_signal_connect(conv_handle, "received-im-msg", plugin, - PURPLE_CALLBACK(receive_im_cb), &cc_info); - purple_signal_connect(conv_handle, "displaying-im-msg", plugin, - PURPLE_CALLBACK(display_im_cb), &cc_info); - } else { - purple_signal_connect - (purple_connections_get_handle(), "signed-on", - plugin, PURPLE_CALLBACK(cc_signed_on), plugin); - } - - Debug("CrazyChat plugin loaded.\n"); - - return TRUE; -} - -static gboolean plugin_unload(PurplePlugin *plugin) -{ - void *conv_handle; - struct crazychat *extra; - assert(plugin); - extra = (struct crazychat*) plugin->info->extra_info; - cc_destroy(extra); - conv_handle = purple_conversations_get_handle(); - purple_signal_disconnect(PIDGIN_BLIST - (purple_get_blist()), - "drawing-menu", plugin, - PURPLE_CALLBACK(cc_buddy_menu)); - purple_signal_disconnect(conv_handle, "received-im", plugin, - PURPLE_CALLBACK(receive_im_cb)); - purple_signal_disconnect(conv_handle, "displaying-im-msg", plugin, - PURPLE_CALLBACK(display_im_cb)); - Debug("CrazyChat plugin unloaded.\n"); - return TRUE; -} - -static void init_plugin(PurplePlugin *plugin) -{ - gtk_gl_init(NULL, NULL); - memset(&cc_info, 0, sizeof(cc_info)); - Debug("CrazyChat plugin initialized\n"); -} - -PURPLE_INIT_PLUGIN(crazychat, init_plugin, info) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/crazychat/cc_pidgin_plugin.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/plugins/crazychat/cc_pidgin_plugin.c Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,485 @@ +#include +#include + +#include "internal.h" +#include "plugin.h" +#include "gtkplugin.h" +#include "gtkblist.h" +#include "gtkutils.h" +#include "connection.h" +#include "conversation.h" +#include "network.h" + +#include +#include +#include + +#include "crazychat.h" +#include "cc_network.h" +#include "cc_interface.h" +#include "cc_gtk_gl.h" +#include "util.h" + +/* --- begin type and global variable definitions --- */ + +static struct crazychat cc_info; + +/* --- begin function declarations --- */ + +/** + * Called by purple plugin to start CrazyChat + * @param cc the crazychat struct + */ +static void cc_init(struct crazychat *cc); + +/** + * Called by purple plugin to destroy CrazyChat + * @param cc the crazychat struct + */ +static void cc_destroy(struct crazychat *cc); + + +/** + * Buddy menu drawing callback. Adds a CrazyChat menuitem. + * @param menu the buddy menu widget + * @param b the buddy whose menu this is + */ +static gboolean cc_buddy_menu(GtkWidget *menu, PurpleBuddy *b); + +/** + * Buddy menu callback. Initiates the CrazyChat session. + * @param item the gtk buddy menu item + * @param b the buddy whose menu the item was in + */ +static void cc_menu_cb(GtkMenuItem *item, PurpleBuddy *b); + +/** + * IM callback. Handles receiving a CrazyChat session request. + * @param account the account we received the IM on + * @param sender the buddy who we received the message from + * @param message the message we received + * @param flags IM flags + * @param data user data + */ +static gboolean receive_im_cb(PurpleAccount *account, char **sender, + char **message, int *flags, void *data); + +/** + * Displaying IM callback. Drops CrazyChat messages from IM window. + * @param account the account we are displaying the IM on + * @param conv the conversation we are displaying the IM on + * @param message the message we are displaying + * @param data user data + */ +static gboolean display_im_cb(PurpleAccount *account, const char *who, char **message, + PurpleConnection *conv, PurpleMessageFlags flags, void *data); + +/** + * Callback for CrazyChat plugin configuration frame + * @param plugin the plugin data + * @return the configuration frame + */ +static GtkWidget *get_config_frame(PurplePlugin *plugin); + +/** + * TCP port callback. Changes the port used to listen for new CC sessions + * @param spin the spinner button whose value changed + * @param data user data + */ +static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc); + +/** + * UDP port callback. Changes the port used to send/recv CC session frames + * @param spin the spinner button whose value changed + * @param data user data + */ +static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc); + +/** + * Features enabling/disabling callback. Initializes the input processing + * or shuts it down. + * @param data user data + */ +static void features_enable_cb(struct crazychat *cc); + +/** + * User signed on callback. Now we have a buddy list to connect a signal + * handler to. + * @param gc the purple connection we are signed on + * @param plugin our plugin struct + */ +static gboolean cc_signed_on(PurpleConnection *gc, void *plugin); + +/** + * Plugin loading callback. If a buddy list exists, connect our buddy menu + * drawing callback to the signal handler, otherwise, connect a signed on + * signal handler so we know when we get a buddy list. + * @param plugin our plugin struct + */ +static gboolean plugin_load(PurplePlugin *plugin); + +/** + * Plugin unloading callback. Disconnect all handlers and free data. + * @param plugin our plugin struct + */ +static gboolean plugin_unload(PurplePlugin *plugin); + + +/* --- end function declarations --- */ + + +#define CRAZYCHAT_PLUGIN_ID "gtk-crazychat" + +static PidginPluginUiInfo ui_info = { + get_config_frame /**< get_config_frame */ +}; + +static PurplePluginInfo info = { + 2, /**< api_version */ + PURPLE_PLUGIN_STANDARD, /**< type */ + PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ + 0, /**< flags */ + NULL, /**< dependencies */ + PURPLE_PRIORITY_DEFAULT, /**< priority */ + + CRAZYCHAT_PLUGIN_ID, /**< id */ + N_("Crazychat"), /**< name */ + VERSION, /**< version */ + /** summary */ + N_("Plugin to establish a Crazychat session."), + /** description */ + N_("Uses Purple to obtain buddy ips to connect for a Crazychat session"), + "\n" + "William Chan \n" + "Ian Spiro \n" + "Charlie Stockman\n" + "Steve Yelderman", /**< author */ + PURPLE_WEBSITE, /**< homepage */ + + plugin_load, /**< load */ + plugin_unload, /**< unload */ + NULL, /**< destroy */ + + &ui_info, /**< ui_info */ + &cc_info /**< extra_info */ +}; + +/* --- end plugin struct definition --- */ + +static void cc_init(struct crazychat *cc) +{ + /* initialize main crazychat thread */ + + assert(cc); + memset(cc, 0, sizeof(*cc)); + + /* initialize network configuration */ + cc->tcp_port = DEFAULT_CC_PORT; + cc->udp_port = DEFAULT_CC_PORT; + + /* disable input subsystem */ + //cc->features_state = 0; + + /* initialize input subsystem */ + cc->features_state = 1; + cc->input_data = init_input(cc); +} + +static void cc_destroy(struct crazychat *cc) +{ + assert(cc); + + if (cc->features_state) { + destroy_input(cc->input_data); + } + memset(cc, 0, sizeof(*cc)); +} + +static gboolean cc_buddy_menu(GtkWidget *menu, PurpleBuddy *b) +{ + GtkWidget *menuitem; + + menuitem = gtk_menu_item_new_with_mnemonic("CrazyChat"); + g_signal_connect(G_OBJECT(menuitem), "activate", + G_CALLBACK(cc_menu_cb), b); + gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); + return FALSE; +} + +static void cc_menu_cb(GtkMenuItem *item, PurpleBuddy *b) +{ + assert(item); + assert(b); + + /* send the invite */ + cc_net_send_invite(&cc_info, b->name, b->account); +} + +static gboolean receive_im_cb(PurpleAccount *account, char **sender, + char **message, int *flags, void *data) +{ + struct crazychat *cc; + + cc = (struct crazychat*)data; + assert(cc); + if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, + strlen(CRAZYCHAT_INVITE_CODE))) { + Debug(*message); + char *split = strchr(*message, '!'); + assert(split); + *split = 0; + split++; + cc_net_recv_invite(account, cc, *sender, + &(*message)[strlen(CRAZYCHAT_INVITE_CODE)], + split); + return TRUE; + } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, + strlen(CRAZYCHAT_ACCEPT_CODE))) { + cc_net_recv_accept(account, cc, *sender, + &(*message)[strlen(CRAZYCHAT_ACCEPT_CODE)]); + return TRUE; + } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, + strlen(CRAZYCHAT_READY_CODE))) { + cc_net_recv_ready(account, cc, *sender); + return TRUE; + } + + return FALSE; +} + +static gboolean display_im_cb(PurpleAccount *account, PurpleConversation *conv, + char **message, void *data) +{ + struct crazychat *cc; + + cc = (struct crazychat*)data; + assert(cc); + if (!strncmp(*message, CRAZYCHAT_INVITE_CODE, + strlen(CRAZYCHAT_INVITE_CODE))) { + return TRUE; + } else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE, + strlen(CRAZYCHAT_ACCEPT_CODE))) { + return TRUE; + } else if (!strncmp(*message, CRAZYCHAT_READY_CODE, + strlen(CRAZYCHAT_READY_CODE))) { + return TRUE; + } + + return FALSE; +} + +static GtkWidget *get_config_frame(PurplePlugin *plugin) +{ + GtkWidget *ret; + GtkWidget *frame; + GtkWidget *vbox, *hbox; + GtkWidget *drawing_area; + GtkWidget *label; + GtkAdjustment *adj; + GtkWidget *spinner; + GtkWidget *button, *button1, *button2; + GSList *group; + struct draw_info *info; + struct crazychat *cc; + + cc = (struct crazychat*)plugin->info->extra_info; + assert(cc); + + /* create widgets */ + + /* creating the config frame */ + ret = gtk_vbox_new(FALSE, 18); + gtk_container_set_border_width(GTK_CONTAINER(ret), 12); + + /* make the network configuration frame */ + frame = pidgin_make_frame(ret, _("Network Configuration")); + gtk_widget_show(frame); + + /* add boxes for packing purposes */ + vbox = gtk_vbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(frame), vbox, TRUE, TRUE, 0); + gtk_widget_show(vbox); + + /* add widgets to row 1 */ + hbox = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show(hbox); + label = gtk_label_new(_("TCP port")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); + gtk_widget_show(label); + adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, + G_MAXUSHORT, 1, 1000, 0); + spinner = gtk_spin_button_new(adj, 1, 0); + g_signal_connect(G_OBJECT(spinner), "value_changed", + G_CALLBACK(tcp_port_cb), cc); + gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); + gtk_widget_show(spinner); + label = gtk_label_new(_("UDP port")); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15); + gtk_widget_show(label); + adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1, + G_MAXUSHORT, 1, 1000, 0); + spinner = gtk_spin_button_new(adj, 1, 0); + g_signal_connect(G_OBJECT(spinner), "value_changed", + G_CALLBACK(udp_port_cb), cc); + gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0); + gtk_widget_show(spinner); + + /* make the feature configuration frame */ + frame = pidgin_make_frame(ret, _("Feature Calibration")); + gtk_widget_show(frame); + + /* add hbox for packing purposes */ + hbox = gtk_hbox_new(TRUE, 40); + gtk_box_pack_start(GTK_BOX(frame), hbox, TRUE, TRUE, 0); + gtk_widget_show(hbox); + + /* add feature calibration options */ + + /* add vbox for packing purposes */ + vbox = gtk_vbox_new(TRUE, 0); + gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); + gtk_widget_show(vbox); + + /* add enabled / disabled */ + button1 = gtk_radio_button_new_with_label(NULL, _("Enabled")); + gtk_box_pack_start(GTK_BOX(vbox), button1, TRUE, TRUE, 0); + gtk_widget_show(button1); + + group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1)); + button2 = gtk_radio_button_new_with_label(group, _("Disabled")); + gtk_box_pack_start(GTK_BOX(vbox), button2, TRUE, TRUE, 0); + gtk_widget_show(button2); + + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1), + cc->features_state); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2), + !cc->features_state); + g_signal_connect_swapped(G_OBJECT(button1), "toggled", + G_CALLBACK(features_enable_cb), cc); + + /* add vbox for packing purposes */ + vbox = gtk_vbox_new(TRUE, 0); + gtk_box_pack_end(GTK_BOX(hbox), vbox, TRUE, TRUE, 0); + gtk_widget_show(vbox); + + /* add calibrate button */ + button = gtk_button_new_with_label("Calibrate"); + gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, FALSE, 0); + gtk_widget_show(button); + + gtk_widget_show(ret); + + return ret; +} + +static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc) +{ + assert(spin); + assert(cc); + cc->tcp_port = gtk_spin_button_get_value_as_int(spin); + Debug("New tcp port: %d\n", cc->tcp_port); +} + +static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc) +{ + assert(spin); + assert(cc); + cc->udp_port = gtk_spin_button_get_value_as_int(spin); + Debug("New udp port: %d\n", cc->udp_port); +} + +static void features_enable_cb(struct crazychat *cc) +{ + Debug("Changing features state\n"); + cc->features_state = !cc->features_state; + if (cc->features_state) { + cc->input_data = init_input(cc); + } else { + if (cc->input_data) { + gtk_widget_destroy(cc->input_data->widget); + } + } +} + +static gboolean cc_signed_on(PurpleConnection *gc, void *plugin) +{ + struct crazychat *extra; + void *conv_handle; + + assert(plugin); + extra = (struct crazychat*)((PurplePlugin*)plugin)->info->extra_info; + purple_signal_disconnect + (purple_connections_get_handle(), "signed-on", + plugin, PURPLE_CALLBACK(cc_signed_on)); + purple_signal_connect(PIDGIN_BLIST + (purple_get_blist()), + "drawing-menu", plugin, + PURPLE_CALLBACK(cc_buddy_menu), NULL); + conv_handle = purple_conversations_get_handle(); + purple_signal_connect(conv_handle, "received-im-msg", plugin, + PURPLE_CALLBACK(receive_im_cb), extra); + purple_signal_connect(conv_handle, "displaying-im-msg", plugin, + PURPLE_CALLBACK(display_im_cb), extra); + return FALSE; +} + +static gboolean plugin_load(PurplePlugin *plugin) +{ + PurpleBuddyList *buddy_list; + void *conv_handle; + + if (cc_init_gtk_gl()) + return FALSE; + + cc_init(&cc_info); + buddy_list = purple_get_blist(); + if (buddy_list) { + purple_signal_connect(PIDGIN_BLIST + (buddy_list), + "drawing-menu", plugin, + PURPLE_CALLBACK(cc_buddy_menu), NULL); + conv_handle = purple_conversations_get_handle(); + purple_signal_connect(conv_handle, "received-im-msg", plugin, + PURPLE_CALLBACK(receive_im_cb), &cc_info); + purple_signal_connect(conv_handle, "displaying-im-msg", plugin, + PURPLE_CALLBACK(display_im_cb), &cc_info); + } else { + purple_signal_connect + (purple_connections_get_handle(), "signed-on", + plugin, PURPLE_CALLBACK(cc_signed_on), plugin); + } + + Debug("CrazyChat plugin loaded.\n"); + + return TRUE; +} + +static gboolean plugin_unload(PurplePlugin *plugin) +{ + void *conv_handle; + struct crazychat *extra; + assert(plugin); + extra = (struct crazychat*) plugin->info->extra_info; + cc_destroy(extra); + conv_handle = purple_conversations_get_handle(); + purple_signal_disconnect(PIDGIN_BLIST + (purple_get_blist()), + "drawing-menu", plugin, + PURPLE_CALLBACK(cc_buddy_menu)); + purple_signal_disconnect(conv_handle, "received-im", plugin, + PURPLE_CALLBACK(receive_im_cb)); + purple_signal_disconnect(conv_handle, "displaying-im-msg", plugin, + PURPLE_CALLBACK(display_im_cb)); + Debug("CrazyChat plugin unloaded.\n"); + return TRUE; +} + +static void init_plugin(PurplePlugin *plugin) +{ + gtk_gl_init(NULL, NULL); + memset(&cc_info, 0, sizeof(cc_info)); + Debug("CrazyChat plugin initialized\n"); +} + +PURPLE_INIT_PLUGIN(crazychat, init_plugin, info) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/extplacement.c --- a/pidgin/plugins/extplacement.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/extplacement.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* * Extra conversation placement options for Purple * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/gaimrc.c --- a/pidgin/plugins/gaimrc.c Mon Mar 26 01:11:46 2007 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,676 +0,0 @@ -/** - * @file purplerc.c Purple gtk resource control plugin. - * - * Copyright (C) 2005 Etan Reisner - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "internal.h" -#include "gtkplugin.h" -#include "gtkprefs.h" -#include "gtkutils.h" -#include "util.h" -#include "version.h" - -static guint pref_callback; - -static const char *color_prefs[] = { - "/plugins/gtk/purplerc/color/GtkWidget::cursor-color", - "/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color", - "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color" -}; -static const char *color_prefs_set[] = { - "/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color", - "/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color", - "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color" -}; -static const char *color_names[] = { - N_("Cursor Color"), - N_("Secondary Cursor Color"), - N_("Hyperlink Color") -}; -static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)]; - -static const char *widget_size_prefs[] = { - "/plugins/gtk/purplerc/size/GtkTreeView::expander_size", - "/plugins/gtk/purplerc/size/GtkTreeView::horizontal_separator" -}; -static const char *widget_size_prefs_set[] = { - "/plugins/gtk/purplerc/set/size/GtkTreeView::expander_size", - "/plugins/gtk/purplerc/set/size/GtkTreeView::horizontal_separator" -}; -static const char *widget_size_names[] = { - N_("GtkTreeView Expander Size"), - N_("GtkTreeView Horizontal Separation") -}; -static GtkWidget *widget_size_widgets[G_N_ELEMENTS(widget_size_prefs)]; - -static const char *font_prefs[] = { - "/plugins/gtk/purplerc/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/font/*pidginlog_imhtml", - "/plugins/gtk/purplerc/font/*pidginrequest_imhtml", - "/plugins/gtk/purplerc/font/*pidginnotify_imhtml", -}; -static const char *font_prefs_set[] = { - "/plugins/gtk/purplerc/set/font/*pidgin_conv_entry", - "/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginlog_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginrequest_imhtml", - "/plugins/gtk/purplerc/set/font/*pidginnotify_imhtml", -}; -static const char *font_names[] = { - N_("Conversation Entry"), - N_("Conversation History"), - N_("Log Viewer"), - N_("Request Dialog"), - N_("Notify Dialog") -}; -static GtkWidget *font_widgets[G_N_ELEMENTS(font_prefs)]; - -static const char *widget_bool_prefs[] = { - "/plugins/gtk/purplerc/bool/GtkTreeView::indent_expanders", -}; -static const char *widget_bool_prefs_set[] = { - "/plugins/gtk/purplerc/set/bool/GtkTreeView::indent_expanders", -}; -static const char *widget_bool_names[] = { - N_("GtkTreeView Indent Expanders"), -}; -static GtkWidget *widget_bool_widgets[G_N_ELEMENTS(widget_bool_prefs)]; - -static void -purplerc_make_changes() -{ - int i; - char *prefbase = NULL; -#if GTK_CHECK_VERSION(2,4,0) - GtkSettings *setting = NULL; -#endif - GString *style_string = g_string_new(""); - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); - } - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); - } - - g_string_append(style_string, "style \"purplerc_style\" {\n"); - - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - if (purple_prefs_get_bool(color_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(color_prefs[i]); - pref = purple_prefs_get_string(color_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "%s = \"%s\"\n", - prefbase, pref); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - if (purple_prefs_get_bool(widget_size_prefs_set[i])) { - prefbase = g_path_get_basename(widget_size_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_int(widget_size_prefs[i])); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { - prefbase = g_path_get_basename(widget_bool_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_bool(widget_bool_prefs[i])); - g_free(prefbase); - } - } - - g_string_append(style_string, "}"); - g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); - - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - if (purple_prefs_get_bool(font_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(font_prefs[i]); - pref = purple_prefs_get_string(font_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", - prefbase, pref, - prefbase, prefbase); - g_free(prefbase); - } - } - - gtk_rc_parse_string(style_string->str); - g_string_free(style_string, TRUE); - -#if GTK_CHECK_VERSION(2,4,0) - setting = gtk_settings_get_default(); - gtk_rc_reset_styles(setting); -#endif -} - -static void -purplerc_write(GtkWidget *widget, gpointer data) -{ - int i; - GString *style_string = g_string_new(""); - char *prefbase = NULL; - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "gtk-font-name = \"%s\"\n", - pref); - } - - if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { - const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "gtk-key-theme-name = \"%s\"\n", - pref); - } - - g_string_append(style_string, "style \"purplerc_style\" {\n"); - - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - if (purple_prefs_get_bool(color_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(color_prefs[i]); - pref = purple_prefs_get_string(color_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "%s = \"%s\"\n", - prefbase, pref); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - if (purple_prefs_get_bool(widget_size_prefs_set[i])) { - prefbase = g_path_get_basename(widget_size_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_int(widget_size_prefs[i])); - g_free(prefbase); - } - } - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { - prefbase = g_path_get_basename(widget_bool_prefs[i]); - g_string_append_printf(style_string, - "%s = %d\n", prefbase, - purple_prefs_get_bool(widget_bool_prefs[i])); - g_free(prefbase); - } - } - - g_string_append(style_string, "}"); - g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); - - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - if (purple_prefs_get_bool(font_prefs_set[i])) { - const char *pref; - - prefbase = g_path_get_basename(font_prefs[i]); - pref = purple_prefs_get_string(font_prefs[i]); - - if (pref != NULL && strcmp(pref, "")) - g_string_append_printf(style_string, - "style \"%s_style\"\n" - "{font_name = \"%s\"}\n" - "widget \"%s\"" - "style \"%s_style\"\n", - prefbase, pref, - prefbase, prefbase); - g_free(prefbase); - } - } - - purple_util_write_data_to_file("gtkrc-2.0", style_string->str, -1); - - g_string_free(style_string, TRUE); -} - -static void -purplerc_reread(GtkWidget *widget, gpointer data) -{ - gtk_rc_reparse_all(); - /* I don't know if this is necessary but if not it shouldn't hurt. */ - purplerc_make_changes(); -} - -static void -purplerc_pref_changed_cb(const char *name, PurplePrefType type, - gconstpointer value, gpointer data) -{ - purplerc_make_changes(); -} - -static void -purplerc_color_response(GtkDialog *color_dialog, gint response, gpointer data) -{ - int subscript = GPOINTER_TO_INT(data); - - if (response == GTK_RESPONSE_OK) { - GtkWidget *colorsel = GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel; - GdkColor color; - char colorstr[8]; - - gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color); - - g_snprintf(colorstr, sizeof(colorstr), "#%02X%02X%02X", - color.red/256, color.green/256, color.blue/256); - - purple_prefs_set_string(color_prefs[subscript], colorstr); - } - gtk_widget_destroy(GTK_WIDGET(color_dialog)); -} - -static void -purplerc_set_color(GtkWidget *widget, gpointer data) -{ - GtkWidget *color_dialog = NULL; - GdkColor color; - char title[128]; - const char *pref = NULL; - int subscript = GPOINTER_TO_INT(data); - - g_snprintf(title, sizeof(title), _("Select Color for %s"), - _(color_names[GPOINTER_TO_INT(data)])); - color_dialog = gtk_color_selection_dialog_new(_("Select Color")); - g_signal_connect(G_OBJECT(color_dialog), "response", - G_CALLBACK(purplerc_color_response), data); - - pref = purple_prefs_get_string(color_prefs[subscript]); - - if (pref != NULL && strcmp(pref, "")) { - if (gdk_color_parse(pref, &color)) { - gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); - } - } - - gtk_window_present(GTK_WINDOW(color_dialog)); -} - -static void -purplerc_font_response(GtkDialog *font_dialog, gint response, gpointer data) -{ - int subscript = GPOINTER_TO_INT(data); - - if (response == GTK_RESPONSE_OK) { - char *fontname = NULL; - - fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); - - purple_prefs_set_string(font_prefs[subscript], fontname); - g_free(fontname); - } - gtk_widget_destroy(GTK_WIDGET(font_dialog)); -} - -static void -purplerc_set_font(GtkWidget *widget, gpointer data) -{ - GtkWidget *font_dialog = NULL; - char title[128]; - const char *pref = NULL; - int subscript = GPOINTER_TO_INT(data); - - g_snprintf(title, sizeof(title), _("Select Font for %s"), - _(font_names[subscript])); - font_dialog = gtk_font_selection_dialog_new(title); - g_signal_connect(G_OBJECT(font_dialog), "response", - G_CALLBACK(purplerc_font_response), data); - - pref = purple_prefs_get_string(font_prefs[subscript]); - - if (pref != NULL && strcmp(pref, "")) { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); - } - - gtk_window_present(GTK_WINDOW(font_dialog)); -} - -static void -purplerc_font_response_special(GtkDialog *font_dialog, gint response, - gpointer data) -{ - if (response == GTK_RESPONSE_OK) { - char *fontname = NULL; - - fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); - - purple_prefs_set_string("/plugins/gtk/purplerc/gtk-font-name", - fontname); - g_free(fontname); - } - gtk_widget_destroy(GTK_WIDGET(font_dialog)); -} - -static void -purplerc_set_font_special(GtkWidget *widget, gpointer data) -{ - GtkWidget *font_dialog = NULL; - const char *pref = NULL; - - font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font")); - g_signal_connect(G_OBJECT(font_dialog), "response", - G_CALLBACK(purplerc_font_response_special), NULL); - - pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); - - if (pref != NULL && strcmp(pref, "")) { - gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); - } - - gtk_window_present(GTK_WINDOW(font_dialog)); -} - -static gboolean -purplerc_plugin_load(PurplePlugin *plugin) -{ - purplerc_make_changes(); - - pref_callback = purple_prefs_connect_callback(plugin, "/plugins/gtk/purplerc", - purplerc_pref_changed_cb, NULL); - - return TRUE; -} - -static gboolean -purplerc_plugin_unload(PurplePlugin *plugin) -{ - purple_prefs_disconnect_callback(pref_callback); - - return TRUE; -} - -static GtkWidget * -purplerc_get_config_frame(PurplePlugin *plugin) -{ - /* Note: Intentionally not using the size group argument to the - * pidgin_prefs_labeled_* functions they only add the text label to - * the size group not the whole thing, which isn't what I want. */ - int i; - char *tmp; - GtkWidget *check = NULL, *widget = NULL; - GtkSizeGroup *labelsg = NULL, *widgetsg = NULL; - GtkWidget *ret = NULL, *frame = NULL, *hbox = NULL, *vbox = NULL; - - ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); - - labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - - frame = pidgin_make_frame(ret, _("General")); - /* interface font */ - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_("GTK+ Interface Font"), - "/plugins/gtk/purplerc/set/gtk-font-name", - hbox); - gtk_size_group_add_widget(labelsg, check); - - widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, - PIDGIN_BUTTON_HORIZONTAL); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0); - gtk_size_group_add_widget(widgetsg, widget); - gtk_widget_set_sensitive(widget, - purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), widget); - g_signal_connect(G_OBJECT(widget), "clicked", - G_CALLBACK(purplerc_set_font_special), NULL); - - /* key theme name */ - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"), - "/plugins/gtk/purplerc/set/gtk-key-theme-name", - hbox); - gtk_size_group_add_widget(labelsg, check); - - widget = pidgin_prefs_labeled_entry(hbox, "", - "/plugins/gtk/purplerc/gtk-key-theme-name", - NULL); - /* - gtk_size_group_add_widget(widgetsg, widget); - */ - gtk_widget_set_sensitive(widget, - purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), widget); - - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(widget_bool_names[i]), - widget_bool_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox); - /* - gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]); - */ - gtk_widget_set_sensitive(widget_bool_widgets[i], - purple_prefs_get_bool(widget_bool_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - widget_bool_widgets[i]); - } - - frame = pidgin_make_frame(ret, _("Interface colors")); - /* imhtml stuff */ - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(color_names[i]), - color_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL); - gtk_size_group_add_widget(widgetsg, color_widgets[i]); - gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE, - FALSE, 0); - gtk_widget_set_sensitive(color_widgets[i], - purple_prefs_get_bool(color_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - color_widgets[i]); - g_signal_connect(G_OBJECT(color_widgets[i]), "clicked", - G_CALLBACK(purplerc_set_color), - GINT_TO_POINTER(i)); - } - - frame = pidgin_make_frame(ret, _("Widget Sizes")); - /* widget size stuff */ - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(widget_size_names[i]), - widget_size_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL); - /* - gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]); - */ - gtk_widget_set_sensitive(widget_size_widgets[i], - purple_prefs_get_bool(widget_size_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - widget_size_widgets[i]); - } - - frame = pidgin_make_frame(ret, _("Fonts")); - /* imhtml font stuff */ - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); - - check = pidgin_prefs_checkbox(_(font_names[i]), - font_prefs_set[i], hbox); - gtk_size_group_add_widget(labelsg, check); - - font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL); - gtk_size_group_add_widget(widgetsg, font_widgets[i]); - gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE, - FALSE, 0); - gtk_widget_set_sensitive(font_widgets[i], - purple_prefs_get_bool(font_prefs_set[i])); - g_signal_connect(G_OBJECT(check), "toggled", - G_CALLBACK(pidgin_toggle_sensitive), - font_widgets[i]); - g_signal_connect(G_OBJECT(font_widgets[i]), "clicked", - G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(i)); - } - - frame = pidgin_make_frame(ret, _("Tools")); - - vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); - gtk_box_pack_start(GTK_BOX(frame), vbox, FALSE, FALSE, 0); - - tmp = g_strdup_printf(_("Write settings to %s%sgtkrc-2.0"), purple_user_dir(), G_DIR_SEPARATOR_S); - check = gtk_button_new_with_label(tmp); - g_free(tmp); - gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); - gtk_size_group_add_widget(labelsg, check); - g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_write), - NULL); - - check = gtk_button_new_with_label(_("Re-read gtkrc files")); - gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); - gtk_size_group_add_widget(labelsg, check); - g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_reread), - NULL); - - gtk_widget_show_all(ret); - return ret; -} - -static PidginPluginUiInfo purplerc_ui_info = -{ - purplerc_get_config_frame, - 0 /* page_num (Reserved) */ -}; - -static PurplePluginInfo purplerc_info = -{ - PURPLE_PLUGIN_MAGIC, - PURPLE_MAJOR_VERSION, - PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_STANDARD, - PIDGIN_PLUGIN_TYPE, - 0, - NULL, - PURPLE_PRIORITY_DEFAULT, - "purplerc", - N_(PIDGIN_NAME " GTK+ Theme Control"), - VERSION, - N_("Provides access to commonly used gtkrc settings."), - N_("Provides access to commonly used gtkrc settings."), - "Etan Reisner ", - PURPLE_WEBSITE, - purplerc_plugin_load, - purplerc_plugin_unload, - NULL, - &purplerc_ui_info, - NULL, - NULL, - NULL -}; - -static void -purplerc_init(PurplePlugin *plugin) -{ - int i; - - purple_prefs_add_none("/plugins"); - purple_prefs_add_none("/plugins/gtk"); - purple_prefs_add_none("/plugins/gtk/purplerc"); - purple_prefs_add_none("/plugins/gtk/purplerc/set"); - - purple_prefs_add_string("/plugins/gtk/purplerc/gtk-font-name", ""); - purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-font-name", FALSE); - - purple_prefs_add_string("/plugins/gtk/purplerc/gtk-key-theme-name", ""); - purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name", FALSE); - - purple_prefs_add_none("/plugins/gtk/purplerc/color"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/color"); - for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { - purple_prefs_add_string(color_prefs[i], ""); - purple_prefs_add_bool(color_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/size"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/size"); - for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { - purple_prefs_add_int(widget_size_prefs[i], 0); - purple_prefs_add_bool(widget_size_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/font"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/font"); - for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { - purple_prefs_add_string(font_prefs[i], ""); - purple_prefs_add_bool(font_prefs_set[i], FALSE); - } - - purple_prefs_add_none("/plugins/gtk/purplerc/bool"); - purple_prefs_add_none("/plugins/gtk/purplerc/set/bool"); - for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { - purple_prefs_add_bool(widget_bool_prefs[i], TRUE); - purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE); - } -} - -PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/gevolution/Makefile.am --- a/pidgin/plugins/gevolution/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/gevolution/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -plugindir = $(libdir)/gaim +plugindir = $(libdir)/pidgin gevolution_la_LDFLAGS = -module -avoid-version diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/iconaway.c --- a/pidgin/plugins/iconaway.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/iconaway.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,6 +1,6 @@ /* purple * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/pidginrc.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pidgin/plugins/pidginrc.c Mon Mar 26 02:48:09 2007 +0000 @@ -0,0 +1,676 @@ +/** + * @file purplerc.c Purple gtk resource control plugin. + * + * Copyright (C) 2005 Etan Reisner + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "internal.h" +#include "gtkplugin.h" +#include "gtkprefs.h" +#include "gtkutils.h" +#include "util.h" +#include "version.h" + +static guint pref_callback; + +static const char *color_prefs[] = { + "/plugins/gtk/purplerc/color/GtkWidget::cursor-color", + "/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color", + "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color" +}; +static const char *color_prefs_set[] = { + "/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color", + "/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color", + "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color" +}; +static const char *color_names[] = { + N_("Cursor Color"), + N_("Secondary Cursor Color"), + N_("Hyperlink Color") +}; +static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)]; + +static const char *widget_size_prefs[] = { + "/plugins/gtk/purplerc/size/GtkTreeView::expander_size", + "/plugins/gtk/purplerc/size/GtkTreeView::horizontal_separator" +}; +static const char *widget_size_prefs_set[] = { + "/plugins/gtk/purplerc/set/size/GtkTreeView::expander_size", + "/plugins/gtk/purplerc/set/size/GtkTreeView::horizontal_separator" +}; +static const char *widget_size_names[] = { + N_("GtkTreeView Expander Size"), + N_("GtkTreeView Horizontal Separation") +}; +static GtkWidget *widget_size_widgets[G_N_ELEMENTS(widget_size_prefs)]; + +static const char *font_prefs[] = { + "/plugins/gtk/purplerc/font/*pidgin_conv_entry", + "/plugins/gtk/purplerc/font/*pidgin_conv_imhtml", + "/plugins/gtk/purplerc/font/*pidginlog_imhtml", + "/plugins/gtk/purplerc/font/*pidginrequest_imhtml", + "/plugins/gtk/purplerc/font/*pidginnotify_imhtml", +}; +static const char *font_prefs_set[] = { + "/plugins/gtk/purplerc/set/font/*pidgin_conv_entry", + "/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginlog_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginrequest_imhtml", + "/plugins/gtk/purplerc/set/font/*pidginnotify_imhtml", +}; +static const char *font_names[] = { + N_("Conversation Entry"), + N_("Conversation History"), + N_("Log Viewer"), + N_("Request Dialog"), + N_("Notify Dialog") +}; +static GtkWidget *font_widgets[G_N_ELEMENTS(font_prefs)]; + +static const char *widget_bool_prefs[] = { + "/plugins/gtk/purplerc/bool/GtkTreeView::indent_expanders", +}; +static const char *widget_bool_prefs_set[] = { + "/plugins/gtk/purplerc/set/bool/GtkTreeView::indent_expanders", +}; +static const char *widget_bool_names[] = { + N_("GtkTreeView Indent Expanders"), +}; +static GtkWidget *widget_bool_widgets[G_N_ELEMENTS(widget_bool_prefs)]; + +static void +purplerc_make_changes() +{ + int i; + char *prefbase = NULL; +#if GTK_CHECK_VERSION(2,4,0) + GtkSettings *setting = NULL; +#endif + GString *style_string = g_string_new(""); + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref); + } + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref); + } + + g_string_append(style_string, "style \"purplerc_style\" {\n"); + + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + if (purple_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(color_prefs[i]); + pref = purple_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + if (purple_prefs_get_bool(widget_size_prefs_set[i])) { + prefbase = g_path_get_basename(widget_size_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_int(widget_size_prefs[i])); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { + prefbase = g_path_get_basename(widget_bool_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_bool(widget_bool_prefs[i])); + g_free(prefbase); + } + } + + g_string_append(style_string, "}"); + g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); + + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + if (purple_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(font_prefs[i]); + pref = purple_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); + g_free(prefbase); + } + } + + gtk_rc_parse_string(style_string->str); + g_string_free(style_string, TRUE); + +#if GTK_CHECK_VERSION(2,4,0) + setting = gtk_settings_get_default(); + gtk_rc_reset_styles(setting); +#endif +} + +static void +purplerc_write(GtkWidget *widget, gpointer data) +{ + int i; + GString *style_string = g_string_new(""); + char *prefbase = NULL; + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-font-name = \"%s\"\n", + pref); + } + + if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) { + const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name"); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "gtk-key-theme-name = \"%s\"\n", + pref); + } + + g_string_append(style_string, "style \"purplerc_style\" {\n"); + + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + if (purple_prefs_get_bool(color_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(color_prefs[i]); + pref = purple_prefs_get_string(color_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "%s = \"%s\"\n", + prefbase, pref); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + if (purple_prefs_get_bool(widget_size_prefs_set[i])) { + prefbase = g_path_get_basename(widget_size_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_int(widget_size_prefs[i])); + g_free(prefbase); + } + } + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + if (purple_prefs_get_bool(widget_bool_prefs_set[i])) { + prefbase = g_path_get_basename(widget_bool_prefs[i]); + g_string_append_printf(style_string, + "%s = %d\n", prefbase, + purple_prefs_get_bool(widget_bool_prefs[i])); + g_free(prefbase); + } + } + + g_string_append(style_string, "}"); + g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n"); + + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + if (purple_prefs_get_bool(font_prefs_set[i])) { + const char *pref; + + prefbase = g_path_get_basename(font_prefs[i]); + pref = purple_prefs_get_string(font_prefs[i]); + + if (pref != NULL && strcmp(pref, "")) + g_string_append_printf(style_string, + "style \"%s_style\"\n" + "{font_name = \"%s\"}\n" + "widget \"%s\"" + "style \"%s_style\"\n", + prefbase, pref, + prefbase, prefbase); + g_free(prefbase); + } + } + + purple_util_write_data_to_file("gtkrc-2.0", style_string->str, -1); + + g_string_free(style_string, TRUE); +} + +static void +purplerc_reread(GtkWidget *widget, gpointer data) +{ + gtk_rc_reparse_all(); + /* I don't know if this is necessary but if not it shouldn't hurt. */ + purplerc_make_changes(); +} + +static void +purplerc_pref_changed_cb(const char *name, PurplePrefType type, + gconstpointer value, gpointer data) +{ + purplerc_make_changes(); +} + +static void +purplerc_color_response(GtkDialog *color_dialog, gint response, gpointer data) +{ + int subscript = GPOINTER_TO_INT(data); + + if (response == GTK_RESPONSE_OK) { + GtkWidget *colorsel = GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel; + GdkColor color; + char colorstr[8]; + + gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color); + + g_snprintf(colorstr, sizeof(colorstr), "#%02X%02X%02X", + color.red/256, color.green/256, color.blue/256); + + purple_prefs_set_string(color_prefs[subscript], colorstr); + } + gtk_widget_destroy(GTK_WIDGET(color_dialog)); +} + +static void +purplerc_set_color(GtkWidget *widget, gpointer data) +{ + GtkWidget *color_dialog = NULL; + GdkColor color; + char title[128]; + const char *pref = NULL; + int subscript = GPOINTER_TO_INT(data); + + g_snprintf(title, sizeof(title), _("Select Color for %s"), + _(color_names[GPOINTER_TO_INT(data)])); + color_dialog = gtk_color_selection_dialog_new(_("Select Color")); + g_signal_connect(G_OBJECT(color_dialog), "response", + G_CALLBACK(purplerc_color_response), data); + + pref = purple_prefs_get_string(color_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + if (gdk_color_parse(pref, &color)) { + gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color); + } + } + + gtk_window_present(GTK_WINDOW(color_dialog)); +} + +static void +purplerc_font_response(GtkDialog *font_dialog, gint response, gpointer data) +{ + int subscript = GPOINTER_TO_INT(data); + + if (response == GTK_RESPONSE_OK) { + char *fontname = NULL; + + fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); + + purple_prefs_set_string(font_prefs[subscript], fontname); + g_free(fontname); + } + gtk_widget_destroy(GTK_WIDGET(font_dialog)); +} + +static void +purplerc_set_font(GtkWidget *widget, gpointer data) +{ + GtkWidget *font_dialog = NULL; + char title[128]; + const char *pref = NULL; + int subscript = GPOINTER_TO_INT(data); + + g_snprintf(title, sizeof(title), _("Select Font for %s"), + _(font_names[subscript])); + font_dialog = gtk_font_selection_dialog_new(title); + g_signal_connect(G_OBJECT(font_dialog), "response", + G_CALLBACK(purplerc_font_response), data); + + pref = purple_prefs_get_string(font_prefs[subscript]); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); + } + + gtk_window_present(GTK_WINDOW(font_dialog)); +} + +static void +purplerc_font_response_special(GtkDialog *font_dialog, gint response, + gpointer data) +{ + if (response == GTK_RESPONSE_OK) { + char *fontname = NULL; + + fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)); + + purple_prefs_set_string("/plugins/gtk/purplerc/gtk-font-name", + fontname); + g_free(fontname); + } + gtk_widget_destroy(GTK_WIDGET(font_dialog)); +} + +static void +purplerc_set_font_special(GtkWidget *widget, gpointer data) +{ + GtkWidget *font_dialog = NULL; + const char *pref = NULL; + + font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font")); + g_signal_connect(G_OBJECT(font_dialog), "response", + G_CALLBACK(purplerc_font_response_special), NULL); + + pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name"); + + if (pref != NULL && strcmp(pref, "")) { + gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref); + } + + gtk_window_present(GTK_WINDOW(font_dialog)); +} + +static gboolean +purplerc_plugin_load(PurplePlugin *plugin) +{ + purplerc_make_changes(); + + pref_callback = purple_prefs_connect_callback(plugin, "/plugins/gtk/purplerc", + purplerc_pref_changed_cb, NULL); + + return TRUE; +} + +static gboolean +purplerc_plugin_unload(PurplePlugin *plugin) +{ + purple_prefs_disconnect_callback(pref_callback); + + return TRUE; +} + +static GtkWidget * +purplerc_get_config_frame(PurplePlugin *plugin) +{ + /* Note: Intentionally not using the size group argument to the + * pidgin_prefs_labeled_* functions they only add the text label to + * the size group not the whole thing, which isn't what I want. */ + int i; + char *tmp; + GtkWidget *check = NULL, *widget = NULL; + GtkSizeGroup *labelsg = NULL, *widgetsg = NULL; + GtkWidget *ret = NULL, *frame = NULL, *hbox = NULL, *vbox = NULL; + + ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER); + + labelsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + + frame = pidgin_make_frame(ret, _("General")); + /* interface font */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_("GTK+ Interface Font"), + "/plugins/gtk/purplerc/set/gtk-font-name", + hbox); + gtk_size_group_add_widget(labelsg, check); + + widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, + PIDGIN_BUTTON_HORIZONTAL); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0); + gtk_size_group_add_widget(widgetsg, widget); + gtk_widget_set_sensitive(widget, + purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), widget); + g_signal_connect(G_OBJECT(widget), "clicked", + G_CALLBACK(purplerc_set_font_special), NULL); + + /* key theme name */ + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"), + "/plugins/gtk/purplerc/set/gtk-key-theme-name", + hbox); + gtk_size_group_add_widget(labelsg, check); + + widget = pidgin_prefs_labeled_entry(hbox, "", + "/plugins/gtk/purplerc/gtk-key-theme-name", + NULL); + /* + gtk_size_group_add_widget(widgetsg, widget); + */ + gtk_widget_set_sensitive(widget, + purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), widget); + + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(widget_bool_names[i]), + widget_bool_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox); + /* + gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]); + */ + gtk_widget_set_sensitive(widget_bool_widgets[i], + purple_prefs_get_bool(widget_bool_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + widget_bool_widgets[i]); + } + + frame = pidgin_make_frame(ret, _("Interface colors")); + /* imhtml stuff */ + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(color_names[i]), + color_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL); + gtk_size_group_add_widget(widgetsg, color_widgets[i]); + gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE, + FALSE, 0); + gtk_widget_set_sensitive(color_widgets[i], + purple_prefs_get_bool(color_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + color_widgets[i]); + g_signal_connect(G_OBJECT(color_widgets[i]), "clicked", + G_CALLBACK(purplerc_set_color), + GINT_TO_POINTER(i)); + } + + frame = pidgin_make_frame(ret, _("Widget Sizes")); + /* widget size stuff */ + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(widget_size_names[i]), + widget_size_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL); + /* + gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]); + */ + gtk_widget_set_sensitive(widget_size_widgets[i], + purple_prefs_get_bool(widget_size_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + widget_size_widgets[i]); + } + + frame = pidgin_make_frame(ret, _("Fonts")); + /* imhtml font stuff */ + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0); + + check = pidgin_prefs_checkbox(_(font_names[i]), + font_prefs_set[i], hbox); + gtk_size_group_add_widget(labelsg, check); + + font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL); + gtk_size_group_add_widget(widgetsg, font_widgets[i]); + gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE, + FALSE, 0); + gtk_widget_set_sensitive(font_widgets[i], + purple_prefs_get_bool(font_prefs_set[i])); + g_signal_connect(G_OBJECT(check), "toggled", + G_CALLBACK(pidgin_toggle_sensitive), + font_widgets[i]); + g_signal_connect(G_OBJECT(font_widgets[i]), "clicked", + G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(i)); + } + + frame = pidgin_make_frame(ret, _("Tools")); + + vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); + gtk_box_pack_start(GTK_BOX(frame), vbox, FALSE, FALSE, 0); + + tmp = g_strdup_printf(_("Write settings to %s%sgtkrc-2.0"), purple_user_dir(), G_DIR_SEPARATOR_S); + check = gtk_button_new_with_label(tmp); + g_free(tmp); + gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); + gtk_size_group_add_widget(labelsg, check); + g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_write), + NULL); + + check = gtk_button_new_with_label(_("Re-read gtkrc files")); + gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0); + gtk_size_group_add_widget(labelsg, check); + g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_reread), + NULL); + + gtk_widget_show_all(ret); + return ret; +} + +static PidginPluginUiInfo purplerc_ui_info = +{ + purplerc_get_config_frame, + 0 /* page_num (Reserved) */ +}; + +static PurplePluginInfo purplerc_info = +{ + PURPLE_PLUGIN_MAGIC, + PURPLE_MAJOR_VERSION, + PURPLE_MINOR_VERSION, + PURPLE_PLUGIN_STANDARD, + PIDGIN_PLUGIN_TYPE, + 0, + NULL, + PURPLE_PRIORITY_DEFAULT, + "purplerc", + N_(PIDGIN_NAME " GTK+ Theme Control"), + VERSION, + N_("Provides access to commonly used gtkrc settings."), + N_("Provides access to commonly used gtkrc settings."), + "Etan Reisner ", + PURPLE_WEBSITE, + purplerc_plugin_load, + purplerc_plugin_unload, + NULL, + &purplerc_ui_info, + NULL, + NULL, + NULL +}; + +static void +purplerc_init(PurplePlugin *plugin) +{ + int i; + + purple_prefs_add_none("/plugins"); + purple_prefs_add_none("/plugins/gtk"); + purple_prefs_add_none("/plugins/gtk/purplerc"); + purple_prefs_add_none("/plugins/gtk/purplerc/set"); + + purple_prefs_add_string("/plugins/gtk/purplerc/gtk-font-name", ""); + purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-font-name", FALSE); + + purple_prefs_add_string("/plugins/gtk/purplerc/gtk-key-theme-name", ""); + purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name", FALSE); + + purple_prefs_add_none("/plugins/gtk/purplerc/color"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/color"); + for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) { + purple_prefs_add_string(color_prefs[i], ""); + purple_prefs_add_bool(color_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/size"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/size"); + for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) { + purple_prefs_add_int(widget_size_prefs[i], 0); + purple_prefs_add_bool(widget_size_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/font"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/font"); + for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) { + purple_prefs_add_string(font_prefs[i], ""); + purple_prefs_add_bool(font_prefs_set[i], FALSE); + } + + purple_prefs_add_none("/plugins/gtk/purplerc/bool"); + purple_prefs_add_none("/plugins/gtk/purplerc/set/bool"); + for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) { + purple_prefs_add_bool(widget_bool_prefs[i], TRUE); + purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE); + } +} + +PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info) diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/raw.c --- a/pidgin/plugins/raw.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/raw.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,7 +1,7 @@ /* * Purple - Send raw data across the connections of some protocols. * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/relnot.c --- a/pidgin/plugins/relnot.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/relnot.c Mon Mar 26 02:48:09 2007 +0000 @@ -96,7 +96,7 @@ { int last_check = purple_prefs_get_int("/plugins/gtk/relnot/last_check"); if(!last_check || time(NULL) - last_check > MIN_CHECK_INTERVAL) { - char *url = g_strdup_printf("http://purple.sourceforge.net/version.php?version=%s&build=%s", purple_core_get_version(), + char *url = g_strdup_printf("http://pidgin.im/version.php?version=%s&build=%s", purple_core_get_version(), #ifdef _WIN32 "purple-win32" #else diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/spellchk.c --- a/pidgin/plugins/spellchk.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/spellchk.c Mon Mar 26 02:48:09 2007 +0000 @@ -5,7 +5,7 @@ * Richard Laager ("rlaager") in April 2005--you may want to contact * them if you have questions. * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/plugins/timestamp_format.c --- a/pidgin/plugins/timestamp_format.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/plugins/timestamp_format.c Mon Mar 26 02:48:09 2007 +0000 @@ -131,13 +131,13 @@ PURPLE_PLUGIN_MAGIC, PURPLE_MAJOR_VERSION, PURPLE_MINOR_VERSION, - PURPLE_PLUGIN_STANDARD, /**< type */ + PURPLE_PLUGIN_STANDARD, /**< type */ PIDGIN_PLUGIN_TYPE, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ - PURPLE_PRIORITY_DEFAULT, /**< priority */ + PURPLE_PRIORITY_DEFAULT, /**< priority */ - NULL, /**< id */ + "core-timestamp_format", /**< id */ N_("Message Timestamp Formats"), /**< name */ VERSION, /**< version */ /** summary */ @@ -147,7 +147,7 @@ "conversation and logging message timestamp " "formats."), "Richard Laager ", /**< author */ - PURPLE_WEBSITE, /**< homepage */ + PURPLE_WEBSITE, /**< homepage */ plugin_load, /**< load */ plugin_unload, /**< unload */ diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/sounds/Makefile.am --- a/pidgin/sounds/Makefile.am Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/sounds/Makefile.am Mon Mar 26 02:48:09 2007 +0000 @@ -1,4 +1,4 @@ -soundsdir = $(datadir)/sounds/gaim +soundsdir = $(datadir)/sounds/pidgin sounds_DATA = \ alert.wav \ login.wav \ diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/win32/pidgin_exe_rc.rc.in --- a/pidgin/win32/pidgin_exe_rc.rc.in Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/win32/pidgin_exe_rc.rc.in Mon Mar 26 02:48:09 2007 +0000 @@ -33,4 +33,4 @@ END END -PURPLE_ICON ICON PIXMAPDIR "gaim.ico" +PURPLE_ICON ICON PIXMAPDIR "pidgin.ico" diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/win32/winpidgin.c --- a/pidgin/win32/winpidgin.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/win32/winpidgin.c Mon Mar 26 02:48:09 2007 +0000 @@ -5,7 +5,7 @@ * Description: Entry point for win32 pidgin, and various win32 dependant * routines. * - * Purple is the legal property of its developers, whose names are too numerous + * Pidgin is the legal property of its developers, whose names are too numerous * to list here. Please refer to the COPYRIGHT file distributed with this * source distribution. * diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/win32/wspell.c --- a/pidgin/win32/wspell.c Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/win32/wspell.c Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /* - * purple + * pidgin * * File: wspell.c * Date: March, 2003 diff -r f771cdcc551a -r 5f9b7e2652f0 pidgin/win32/wspell.h --- a/pidgin/win32/wspell.h Mon Mar 26 01:11:46 2007 +0000 +++ b/pidgin/win32/wspell.h Mon Mar 26 02:48:09 2007 +0000 @@ -1,5 +1,5 @@ /* - * purple + * pidgin * * File: wspell.h * diff -r f771cdcc551a -r 5f9b7e2652f0 po/POTFILES.in --- a/po/POTFILES.in Mon Mar 26 01:11:46 2007 +0000 +++ b/po/POTFILES.in Mon Mar 26 02:48:09 2007 +0000 @@ -1,12 +1,13 @@ -pidgin.desktop.in +finch/finch.c finch/gntaccount.c finch/gntblist.c finch/gntconn.c finch/gntconv.c finch/gntdebug.c -finch/gntgaim.c +finch/gntft.c finch/gntnotify.c finch/gntplugin.c +finch/gntpounce.c finch/gntprefs.c finch/gntrequest.c finch/gntstatus.c @@ -25,76 +26,19 @@ finch/libgnt/gnttree.c finch/libgnt/gntutils.c finch/libgnt/gntwidget.c +finch/plugins/gntclipboard.c finch/plugins/gntgf.c finch/plugins/gnthistory.c finch/plugins/lastlog.c -pidgin/eggtrayicon.c -pidgin/gaimcombobox.c -pidgin/gaimstock.c -pidgin/gtkaccount.c -pidgin/gtkblist.c -pidgin/gtkcellview.c -pidgin/gtkconn.c -pidgin/gtkconv.c -pidgin/gtkdebug.c -pidgin/gtkdialogs.c -pidgin/gtkdocklet.c -pidgin/gtkexpander.c -pidgin/gtkft.c -pidgin/gtkimhtml.c -pidgin/gtkimhtmltoolbar.c -pidgin/gtklog.c -pidgin/gtkmain.c -pidgin/gtknotify.c -pidgin/gtkplugin.c -pidgin/gtkpounce.c -pidgin/gtkprefs.c -pidgin/gtkprivacy.c -pidgin/gtkrequest.c -pidgin/gtkroomlist.c -pidgin/gtksavedstatuses.c -pidgin/gtksound.c -pidgin/gtkstatusbox.c -pidgin/gtkutils.c -pidgin/gtkwhiteboard.c -pidgin/plugins/cap/cap.c -pidgin/plugins/contact_priority.c -pidgin/plugins/convcolors.c -pidgin/plugins/extplacement.c -pidgin/plugins/gaiminc.c -pidgin/plugins/gaimrc.c -pidgin/plugins/gestures/gestures.c -pidgin/plugins/gevolution/add_buddy_dialog.c -pidgin/plugins/gevolution/assoc-buddy.c -pidgin/plugins/gevolution/eds-utils.c -pidgin/plugins/gevolution/gevolution.c -pidgin/plugins/gevolution/gevo-util.c -pidgin/plugins/gevolution/new_person_dialog.c -pidgin/plugins/gtk-signals-test.c -pidgin/plugins/history.c -pidgin/plugins/iconaway.c -pidgin/plugins/mailchk.c -pidgin/plugins/markerline.c -pidgin/plugins/musicmessaging/musicmessaging.c -pidgin/plugins/notify.c -pidgin/plugins/raw.c -pidgin/plugins/relnot.c -pidgin/plugins/spellchk.c -pidgin/plugins/ticker/ticker.c -pidgin/plugins/timestamp.c -pidgin/plugins/timestamp_format.c -pidgin/plugins/xmppconsole.c -pidgin/plugins/win32/transparency/win2ktrans.c -pidgin/plugins/win32/winprefs/winprefs.c libpurple/account.c libpurple/blist.c libpurple/connection.c libpurple/conversation.c +libpurple/dbus-server.c libpurple/desktopitem.c -libpurple/dbus-server.c libpurple/dnsquery.c libpurple/ft.c -libpurple/gconf/gaim.schemas.in +libpurple/gconf/purple.schemas.in libpurple/log.c libpurple/plugin.c libpurple/plugins/autoaccept.c @@ -106,6 +50,7 @@ libpurple/plugins/idle.c libpurple/plugins/ipc-test-client.c libpurple/plugins/ipc-test-server.c +libpurple/plugins/joinpart.c libpurple/plugins/log_reader.c libpurple/plugins/mono/loader/mono.c libpurple/plugins/newline.c @@ -201,5 +146,62 @@ libpurple/server.c libpurple/status.c libpurple/util.c - - +pidgin.desktop.in +pidgin/eggtrayicon.c +pidgin/gtkaccount.c +pidgin/gtkblist.c +pidgin/gtkcellview.c +pidgin/gtkconn.c +pidgin/gtkconv.c +pidgin/gtkdebug.c +pidgin/gtkdialogs.c +pidgin/gtkdocklet.c +pidgin/gtkexpander.c +pidgin/gtkft.c +pidgin/gtkimhtml.c +pidgin/gtkimhtmltoolbar.c +pidgin/gtklog.c +pidgin/gtkmain.c +pidgin/gtknotify.c +pidgin/gtkplugin.c +pidgin/gtkpounce.c +pidgin/gtkprefs.c +pidgin/gtkprivacy.c +pidgin/gtkrequest.c +pidgin/gtkroomlist.c +pidgin/gtksavedstatuses.c +pidgin/gtksound.c +pidgin/gtkstatusbox.c +pidgin/gtkutils.c +pidgin/gtkwhiteboard.c +pidgin/pidgincombobox.c +pidgin/pidginstock.c +pidgin/plugins/cap/cap.c +pidgin/plugins/contact_priority.c +pidgin/plugins/convcolors.c +pidgin/plugins/extplacement.c +pidgin/plugins/gaiminc.c +pidgin/plugins/gestures/gestures.c +pidgin/plugins/gevolution/add_buddy_dialog.c +pidgin/plugins/gevolution/assoc-buddy.c +pidgin/plugins/gevolution/eds-utils.c +pidgin/plugins/gevolution/gevolution.c +pidgin/plugins/gevolution/gevo-util.c +pidgin/plugins/gevolution/new_person_dialog.c +pidgin/plugins/gtk-signals-test.c +pidgin/plugins/history.c +pidgin/plugins/iconaway.c +pidgin/plugins/mailchk.c +pidgin/plugins/markerline.c +pidgin/plugins/musicmessaging/musicmessaging.c +pidgin/plugins/notify.c +pidgin/plugins/pidginrc.c +pidgin/plugins/raw.c +pidgin/plugins/relnot.c +pidgin/plugins/spellchk.c +pidgin/plugins/ticker/ticker.c +pidgin/plugins/timestamp.c +pidgin/plugins/timestamp_format.c +pidgin/plugins/win32/transparency/win2ktrans.c +pidgin/plugins/win32/winprefs/winprefs.c +pidgin/plugins/xmppconsole.c diff -r f771cdcc551a -r 5f9b7e2652f0 po/ta.po --- a/po/ta.po Mon Mar 26 01:11:46 2007 +0000 +++ b/po/ta.po Mon Mar 26 02:48:09 2007 +0000 @@ -8,7 +8,7 @@ # drtvasudevan , 2006. msgid "" msgstr "" -"Project-Id-Version: gaimta\n" +"Project-Id-Version: ta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-10-04 19:30+0000\n" "PO-Revision-Date: 2006-11-28 22:37+0530\n" @@ -7670,7 +7670,7 @@ #: ../src/protocols/msn/msn.c:1555 #, c-format msgid "%sGeneral
%s" -msgstr "s பொது
s" +msgstr "%s பொது
s %s" #: ../src/protocols/msn/msn.c:1564 #: ../src/protocols/yahoo/yahoo_profile.c:1061 @@ -7759,11 +7759,6 @@ msgid "Notes" msgstr "குறிப்புகள்" -#: ../src/protocols/msn/msn.c:1599 -#, c-format -msgid "
Personal
%s" -msgstr "
தனிப்பட்ட
s" - #: ../src/protocols/msn/msn.c:1606 #: ../src/protocols/silc/ops.c:1044 msgid "Job Title" @@ -7823,12 +7818,12 @@ #: ../src/protocols/msn/msn.c:1623 #, c-format msgid "
Business
%s" -msgstr "
தொழில்
s" +msgstr "
தொழில்
s>%s" #: ../src/protocols/msn/msn.c:1634 #, c-format msgid "
Contact Info%s%s" -msgstr "
தொடர்பு தகவல் s s" +msgstr "
தொடர்பு தகவல் s s%s%s" #: ../src/protocols/msn/msn.c:1693 #: ../src/protocols/msn/msn.c:1699 @@ -9607,7 +9602,7 @@ #: ../src/protocols/sametime/sametime.c:1268 #, c-format msgid "Notes Group ID: %s
" -msgstr " குறிப்புகள் குழு அடையாளம் s
" +msgstr " குறிப்புகள் குழு அடையாளம் s
%s
" #: ../src/protocols/sametime/sametime.c:1270 #, c-format @@ -9809,7 +9804,7 @@ #: ../src/protocols/sametime/sametime.c:4088 #, c-format msgid "User ID: %s
" -msgstr " பயனர் அடையாளம் s
" +msgstr " பயனர் அடையாளம் s" #: ../src/protocols/sametime/sametime.c:4094 #, c-format