changeset 15903:6f04fe174f40

Change some stuff from gaim to pidgin
author Mark Doliner <mark@kingant.net>
date Sun, 25 Mar 2007 01:28:40 +0000
parents 15cccdd32321
children aebd10609dce c82d6dced374
files Makefile.am configure.ac doc/funniest_home_convos.txt doc/gaims_funniest_home_convos.txt gaim.apspec.in pidgin.apspec.in pidgin/plugins/Makefile.am pidgin/plugins/gaimrc.c pidgin/plugins/pidginrc.c po/POTFILES.in
diffstat 10 files changed, 1208 insertions(+), 1208 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.am	Sun Mar 25 01:05:56 2007 +0000
+++ b/Makefile.am	Sun Mar 25 01:28:40 2007 +0000
@@ -10,16 +10,16 @@
 		README.SVN \
 		README.dbus \
 		README.mingw \
+		config.h.mingw \
 		gaim.pc.in \
 		gaim-uninstalled.pc.in \
-		gaim.apspec.in \
 		gaim.service.in \
-		pidgin.spec.in \
-		pidgin.desktop.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
--- a/configure.ac	Sun Mar 25 01:05:56 2007 +0000
+++ b/configure.ac	Sun Mar 25 01:28:40 2007 +0000
@@ -1895,12 +1895,12 @@
 
 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/funniest_home_convos.txt	Sun Mar 25 01:28:40 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 <filename> <other filename>
+(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
+
+---
+
+<KingAnt> I dislike the random capitalization utilized by fortunes
+<Paco-Paco> those aren't fortunes
+<Paco-Paco> those are yows
+<Paco-Paco> I don't know why lunix fortune gives back yows
+<KingAnt> Paco-Paco: I understand everything you just said
+<Paco-Paco> does it scare you?
+<KingAnt> 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 <SeanEgan> 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
+<seanegan> 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]
+<seanegan> I guess that was "reproducing"
+
+---
+
+18:33:26 <NoName> hello there
+18:34:03 <NoName> I just wanted to share some bevavior that I think its kinda of
+                  unsafe when using GAIM with yahoo messenges accounts
+18:34:43 <NoName> Whenever you transfer files between users, no receiving
+                  confirmation is requested, the file gets transfered
+                  automatically
+18:37:32 <Paco-Paco> surely you have to accept file transfers
+18:37:57 <NoName> Paco-Paco, nope, Whenever people sends me files, I get no
+                  confirmation request
+18:38:30 <NoName> Paco-Paco, and the files gets right through my home directory
+18:39:00 <deryni> I find this a bit hard to believe since most people come in here
+                  asking for some way to auto-accept.
+18:39:48 <NoName> deryni, I just installed fc3 , fully updated it, no extra
+                  configuration was done and that's the default behavior
+18:40:06 <NoName> deryni, I searched the settings and there is no configuration
+                  on this issue
+18:40:29 <deryni> I know there's no configuration on it, that's what everyone keeps
+                  asking for.
+18:41:08 <NoName> 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 <An_Idiot> I was considering just making a remote control program
+21:26 <An_Idiot> where you type in a password, send it via gaim, and
+                 gaim becomes a text terminal
+      [time passes ...]
+21:38 <An_Idiot>  I'm terribly conservative when it comes to security
+
+19:47 <someusr> hey
+19:48 <someusr> how do i set aim to block all users except those on my
+                buddy list?
+19:48 <someusr> don't tell me i have to log in with the regular AIM :(
+19:48 <Paco-Paco> I wouldn't tell you that, because it's wrong
+19:48 <Paco-Paco> how about you look in privacy
+19:49 <someusr> where?
+19:49 <someusr> i can't find it
+19:49 <SimGuy> in Privacy
+19:49 <someusr> OH!
+19:49 <someusr> haha
+19:49 <someusr> thanks!
+
+14:12 <colorshape> Is it possible for me to see my friends webcam via
+                   msn in gaim?
+14:12 <Paco-Paco> no
+14:13 <colorshape> not voice either then i guess?
+14:13 <Paco-Paco> correct
+14:13 <colorshape> ok, then not much to do.
+14:13 <Err> there's always seppuku
+14:14 <Paco-Paco> so true
+14:14 <colorshape> ok, is that another client?
+14:14 <Err> 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 <itchypants> [blah blah blah simple question]
+      [other traffic]
+14:57 <itchypants> [retransmit simple question]
+14:59 <seanegan> itchypants: you need to chill the hell out
+14:59 <itchypants> seanegan, ah okay thanks
+15:00 <seanegan> 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
--- a/doc/gaims_funniest_home_convos.txt	Sun Mar 25 01:05:56 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 <filename> <other filename>
-(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
-
----
-
-<KingAnt> I dislike the random capitalization utilized by fortunes
-<Paco-Paco> those aren't fortunes
-<Paco-Paco> those are yows
-<Paco-Paco> I don't know why lunix fortune gives back yows
-<KingAnt> Paco-Paco: I understand everything you just said
-<Paco-Paco> does it scare you?
-<KingAnt> 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 <SeanEgan> 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
-<seanegan> 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]
-<seanegan> I guess that was "reproducing"
-
----
-
-18:33:26 <NoName> hello there
-18:34:03 <NoName> I just wanted to share some bevavior that I think its kinda of
-                  unsafe when using GAIM with yahoo messenges accounts
-18:34:43 <NoName> Whenever you transfer files between users, no receiving
-                  confirmation is requested, the file gets transfered
-                  automatically
-18:37:32 <Paco-Paco> surely you have to accept file transfers
-18:37:57 <NoName> Paco-Paco, nope, Whenever people sends me files, I get no
-                  confirmation request
-18:38:30 <NoName> Paco-Paco, and the files gets right through my home directory
-18:39:00 <deryni> I find this a bit hard to believe since most people come in here
-                  asking for some way to auto-accept.
-18:39:48 <NoName> deryni, I just installed fc3 , fully updated it, no extra
-                  configuration was done and that's the default behavior
-18:40:06 <NoName> deryni, I searched the settings and there is no configuration
-                  on this issue
-18:40:29 <deryni> I know there's no configuration on it, that's what everyone keeps
-                  asking for.
-18:41:08 <NoName> 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 <An_Idiot> I was considering just making a remote control program
-21:26 <An_Idiot> where you type in a password, send it via gaim, and
-                 gaim becomes a text terminal
-      [time passes ...]
-21:38 <An_Idiot>  I'm terribly conservative when it comes to security
-
-19:47 <someusr> hey
-19:48 <someusr> how do i set aim to block all users except those on my
-                buddy list?
-19:48 <someusr> don't tell me i have to log in with the regular AIM :(
-19:48 <Paco-Paco> I wouldn't tell you that, because it's wrong
-19:48 <Paco-Paco> how about you look in privacy
-19:49 <someusr> where?
-19:49 <someusr> i can't find it
-19:49 <SimGuy> in Privacy
-19:49 <someusr> OH!
-19:49 <someusr> haha
-19:49 <someusr> thanks!
-
-14:12 <colorshape> Is it possible for me to see my friends webcam via
-                   msn in gaim?
-14:12 <Paco-Paco> no
-14:13 <colorshape> not voice either then i guess?
-14:13 <Paco-Paco> correct
-14:13 <colorshape> ok, then not much to do.
-14:13 <Err> there's always seppuku
-14:14 <Paco-Paco> so true
-14:14 <colorshape> ok, is that another client?
-14:14 <Err> 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 <itchypants> [blah blah blah simple question]
-      [other traffic]
-14:57 <itchypants> [retransmit simple question]
-14:59 <seanegan> itchypants: you need to chill the hell out
-14:59 <itchypants> seanegan, ah okay thanks
-15:00 <seanegan> 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
--- a/gaim.apspec.in	Sun Mar 25 01:05:56 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 <marv_sf@users.sourceforge.net>
-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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin.apspec.in	Sun Mar 25 01:28:40 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 <marv_sf@users.sourceforge.net>
+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
--- a/pidgin/plugins/Makefile.am	Sun Mar 25 01:05:56 2007 +0000
+++ b/pidgin/plugins/Makefile.am	Sun Mar 25 01:28:40 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)
--- a/pidgin/plugins/gaimrc.c	Sun Mar 25 01:05:56 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 <deryni@eden.rutgers.edu>
- *
- * 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 <deryni@eden.rutgers.edu>",
-	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)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pidgin/plugins/pidginrc.c	Sun Mar 25 01:28:40 2007 +0000
@@ -0,0 +1,676 @@
+/**
+ * @file purplerc.c Purple gtk resource control plugin.
+ *
+ * Copyright (C) 2005 Etan Reisner <deryni@eden.rutgers.edu>
+ *
+ * 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 <deryni@eden.rutgers.edu>",
+	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)
--- a/po/POTFILES.in	Sun Mar 25 01:05:56 2007 +0000
+++ b/po/POTFILES.in	Sun Mar 25 01:28:40 2007 +0000
@@ -181,7 +181,6 @@
 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
@@ -196,6 +195,7 @@
 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