You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(106) |
Oct
(334) |
Nov
(246) |
Dec
(145) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(42) |
Feb
(53) |
Mar
(232) |
Apr
(109) |
May
(137) |
Jun
(63) |
Jul
(26) |
Aug
(263) |
Sep
(193) |
Oct
(507) |
Nov
(440) |
Dec
(241) |
2003 |
Jan
(567) |
Feb
(195) |
Mar
(504) |
Apr
(481) |
May
(524) |
Jun
(522) |
Jul
(594) |
Aug
(502) |
Sep
(643) |
Oct
(508) |
Nov
(430) |
Dec
(377) |
2004 |
Jan
(361) |
Feb
(251) |
Mar
(219) |
Apr
(499) |
May
(461) |
Jun
(419) |
Jul
(314) |
Aug
(519) |
Sep
(416) |
Oct
(247) |
Nov
(305) |
Dec
(382) |
2005 |
Jan
(267) |
Feb
(282) |
Mar
(327) |
Apr
(338) |
May
(189) |
Jun
(400) |
Jul
(462) |
Aug
(530) |
Sep
(316) |
Oct
(523) |
Nov
(481) |
Dec
(650) |
2006 |
Jan
(536) |
Feb
(361) |
Mar
(287) |
Apr
(146) |
May
(101) |
Jun
(169) |
Jul
(221) |
Aug
(498) |
Sep
(300) |
Oct
(236) |
Nov
(209) |
Dec
(205) |
2007 |
Jan
(30) |
Feb
(23) |
Mar
(26) |
Apr
(15) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Luke S. <lsc...@us...> - 2002-09-30 05:46:18
|
Update of /cvsroot/gaim/gaim/src/protocols/irc In directory usw-pr-cvs1:/tmp/cvs-serv26938/src/protocols/irc Modified Files: irc.c Log Message: a second attempt at fixing realnames Index: irc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/irc/irc.c,v retrieving revision 1.87 retrieving revision 1.88 diff -u -d -r1.87 -r1.88 --- irc.c 30 Sep 2002 01:05:16 -0000 1.87 +++ irc.c 30 Sep 2002 05:46:14 -0000 1.88 @@ -1315,7 +1315,7 @@ g_snprintf(buf, sizeof(buf), "USER %s %s %s :%s\r\n", g_get_user_name(), hostname, gc->user->proto_opt[USEROPT_SERV], - gc->user->alias ? gc->user->alias : "gaim"); + gc->user->alias && strlen(gc->user->alias) ? gc->user->alias : "gaim"); if (irc_write(idata->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error"); signoff(gc); |
From: Luke S. <lsc...@us...> - 2002-09-30 04:23:29
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv12023/src/protocols/oscar Modified Files: oscar.c Log Message: use snprintf instead of sprintf Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.150 retrieving revision 1.151 diff -u -d -r1.150 -r1.151 --- oscar.c 30 Sep 2002 01:05:17 -0000 1.150 +++ oscar.c 30 Sep 2002 04:23:24 -0000 1.151 @@ -398,7 +398,7 @@ c->inpa = 0; c->fd = -1; aim_conn_kill(odata->sess, &conn); - sprintf(buf, _("You have been disconnected from chat room %s."), c->name); + snprintf(buf, sizeof(buf), _("You have been disconnected from chat room %s."), c->name); do_error_dialog(buf, NULL, GAIM_ERROR); } else if (conn->type == AIM_CONN_TYPE_CHATNAV) { if (odata->cnpa > 0) @@ -1822,7 +1822,7 @@ destn = va_arg(ap, char *); va_end(ap); - sprintf(buf, _("Your message to %s did not get sent:"), destn); + snprintf(buf, sizeof(buf), _("Your message to %s did not get sent:"), destn); do_error_dialog(buf, (reason < msgerrreasonlen) ? msgerrreason[reason] : _("No reason was given."), GAIM_ERROR); return 1; @@ -1839,7 +1839,7 @@ destn = va_arg(ap, char *); va_end(ap); - sprintf(buf, _("User information for %s unavailable:"), destn); + snprintf(buf, sizeof(buf), _("User information for %s unavailable:"), destn); do_error_dialog(buf, (reason < msgerrreasonlen) ? msgerrreason[reason] : _("No reason was given."), GAIM_ERROR); return 1; |
From: Luke S. <lsc...@us...> - 2002-09-30 04:23:28
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv12023 Modified Files: ChangeLog Log Message: use snprintf instead of sprintf Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.551 retrieving revision 1.552 diff -u -d -r1.551 -r1.552 --- ChangeLog 29 Sep 2002 17:00:14 -0000 1.551 +++ ChangeLog 30 Sep 2002 04:23:24 -0000 1.552 @@ -75,6 +75,7 @@ Panel Notification Area applet for GNOME 2, or the kicker for KDE 3.1. (Thanks Robert McQueen, Ari Pollak, Patrick Aussems) * Plugins dialog and perl script menu merged into preferences. + * use snprintf instead of sprintf (Thanks William T. Mahan). version 0.59 (06/24/2002): * Hungarian translation added (Thanks, Sutto Zoltan) |
From: Christian H. <ch...@us...> - 2002-09-30 02:09:36
|
Update of /cvsroot/gaim/web/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv3061 Added Files: forkgettext.jpg Log Message: How could I leave out the most important file on the site? --- NEW FILE: forkgettext.jpg --- ÿØÿà $.' ",#(7),01444'9=82<.342ÿÛ .¨àcã]'Qºó"Ù®â2[2â^G[ãÔÕE×5{ýsĽªCªi«l$Z ¸ÛÊÉÎGzn áMWJ·Í¾¤ÙjQÚd½rKÀ.® ø:mâÒ;½/Ov´.Vý.d.ÙÎ)çh/üCâ¨ôí2Óèçºú]D¬J¨üÄ ÏÌF6ÚÃ*Ø>sâkK}N]>8/.î Ó¬NaÝ÷àf£ðÎÚs\Ï&ka,¡Tô.^fp3ܰïÀ]}áWQñE¾ ö{Ãpïí®|ðÄmÐ # Àª8Ç «ï^²ÉËå!OqFiZÖ£¥\t¬uI£_re»åOÍ:x%Ó^;cÄ13ÈväÈ#,¶qÆû^éôÆ×ïVNõ¶×Æú¾¨4ÝTÝá2âîißoZ>FxïØéz§4ý"{-RÞÑ>o§ÂFd^¾èðqr?Q\y8ѰÒÛ°Á,ÞqññWZ.®!6¶ëpòX£¨ 3¨ä.Hä]&RñÌæ4Zýí¥ÄúÝx.,¾té6IFgÏáñ¯§j¦Ð|/ß®u[û{D¼¤pðÑxÜ9,[µl¹OÝ[2Eo5&ù>@=þh_o ÔÙíÝn±]ÍæÛíÛâ·,¶T·d½¤ºZËg§4/?D2upH'ú³éíCZØÞ^ëVòMôfì±^©ü=ñGA{mcwjâGhÔäFür6çôÙ5Ú¡ÌÉ_ËúóYË)nÒtòèYÀ-#±ªä;üÕüæü*ØQlr½zê7º»^«VÁªÆKrÀÛA^cAåÁûÖv²jlߦÝ+$ì «Ä7pjãIÓÚâêÒþøZK÷/u¤ÇKaÊö?Z¶6pÄÖ ÞMªg%b~hG¸k$1`JrXHôý*îZéÚâ×5>½Þ¤Ö2iÉ-»D£ìO 6çXö®Þ²ñ©Ês´SQÜ.Åd<ÇùÕ%åän_<ä`PßRßBQ`6~+{©¨ÒïOU/{Àu#×#æ¶â }Zå-a°WÞÝP07g·?É"»&-¥Èç#ïZ? kÀ.ìÖ}±\òFGWÛØÖ¸ÓS]4XG»K)\Îèb«Î8ô©-§wyVQ1ÁeöcëB[Qm®b/lñ6ÙB¾ãyǽ4=ÅÂÆý@íGäûW+oÃìé'{6ñJ"¹sÀÿ {kêêXÛ*0z°G¥$÷æ+¨Æ#U06§ÏÞ¥IÖ`-s<¨ñ $ùÔ¯¿Æ*øõòX/ú̦wïo]"ḩ1ó[øÒÂÂi4Åîded+mé>{÷ô®wvÖVÒ[Vßð·:÷÷|sÚ¡»»Ü¤Eàÿ 9ÿ ûÓtròY4bx¡ÁA㸤¾[XuG7s¬à1 é7º\ú í´ì[»-@ÆN àò;Àÿ |QÅ ¯)¢Úê`úóP'mÊKÔ]£¦J6|¬£\QV£Rµ%eD¶þ{c½>ÞòÞke9£``Ãö ¡µZåKCѹO0ÝïP¶$¶qBíJÔàsAng48ÏqÚ½ Ì2\IȦTÆåÏ#5E.Ò¥² D#A;s´ûZEmÒÔ¥ºÛmnæÇHâ ³øýièiBMF, êØ?½-²¤Ñݾ]ÜÐJyûÓpY 7*G)eFEcçjçÔÕGòÉ?-¤vÆÀ§ä®qÜ;Qs[J$²6Öãd/¹¿0xù ±ÇµV,.ÿ ·Óbk1$Åwî #<P9! yïR ãµÒ\ûÆÒ*m>bëä_^ÝY^ªþªHÓ' Ò&Ô-õ(Z_Åq;d!xïÞ®ï"±hÖ"Åg'=2=ý*IÕRÈZ»¬S w«â1ÜcØÑ0Çq©³ßýe¿M¦é#,Àÿ mFwéäÌ9¦6õhxñÁ¡ÙZ3nH£Õ1·º@NAÁª÷FV+íDÙÊ7íly½Muƹå(æ6·}{¤y¤à$cqÞ=fîçê"D+¦6vþ¡óëT¹HþÛ¨V?¨Ç§µzÓN ^Òì$ qâåaÍu¹LÁlãàÖB¶»N:mn îÿ 2|Î|£Zå\:LojýbQn×eþ±ÆsñUÚt¡°AÈäZ'IJj[xÂÊüÇÓÕ= Ò6 ¬³KÎb'I$¢AÂÇÞ¢äѤªdE1ÛíZ{XJu+5%ü'ÞÀÆpÜd3ïT ú.lÕ Q I r8ç!Ïc,·ú3$8§E&MÃssÎiÓJ:TðÀqè*_iz 4ŵÝw±Dϳ3É>ã0uo×O"Ó§8æµí6ÔÉü1Ò!´ÑÎ¥ÜàÒ `*ÛUñ q×[Å1C'8*ÃÓÐäÕ>·ª.£[ÙYʽíö.Ì@ͨB\î?©'¿zë3N'WÖüBöÖv³%âÍlóiÿ FN ìÊ« ,¤úcíBÂ.'(JFY7>AoûÙý+1t>-fóM·X4ÍVIg´FÞFÚq ÷ö}m^îúÎÚÞâÊôÜ@^å,ìàà0<.0~y÷¬óS$Q[C§éɲD! Ý@0e,KAPA{s&µ¢ÓÉ=Í̹3 Áà1ð+¥¿Ó¢é¾ ÑtÝZt½['¹à(ÕBãs¨{rq¶Ö|UÝÊ·×PZI"*Ëi4ÁHóØäg+§êöúL;5;nµ¬÷_QÔ1!ËÌ2y÷Æj·Y¹]N oƤgKx£H óØV.önɨ´×¼Y¨Ý$Iqz¶èH@Ñê¯`[LÐÑ1$¿D. VÈWÅæ?#µUjÅì6¢éâkp®¶Ð½öäÑW&©sggHO9j«'öÀÇïLoÎIbåîV]Aæ{xgár[Ü6{)ö×76Ñ#\62·|lVnÒvk %8mñ3n9$p$cÒîD+$ÉÓȸ%YÈ=v¬ÙÊétú¼Ú\6¢ÚåI&.Òª FªP0u,|`òG=ê¯UÒ.4©Uî®$I? I2Ùö+Á~Õ}¤B¶ú«¼QÜB&ª¬¥yÇ<ã¶9æ³þ!¿{»¨î½ eLxä÷¨µmZ]6xðTÆÑ±ÆÜsöþáÞÑݤ egB{÷4@ú}Ýíä âO2HÞ0¡H'ißÞ\iÆí$7È¢¬[ðÃ;ô\m±o H$C+ ÌfÀÁrr~Ô>£s-½ÍK!R@$gW ´3FL6 K¬»\,&DÆ(#þèk#º4¼âO*¦ßU÷ÏC£tb»®J ~;I¹Cîô p1EµäKpaUrùÚYP ì ¦é÷QÞB¨ÊRM»J`qǽ9[jw-møÝ}²-Ö#ÜÜQ_\ãU¶ÜY"bÐ7ÿ i±j¦X·+u\ ÆIààóðh [ýDÝ\B²z239u(Ú;qïOòi¬¯$y§-ä"6V¿¶GÉ¢R±fÀ Á¿ÞùĨ Úr<çØfrö J¼2l$sÛ<c(/&k-âèuA1r©îq÷¦¾¥sôÊæQX×Ê?«`ÔsǽYIô¶ì]c#Ãh ;$bG>{/|ÔQx ÖYͬ»C®?«-·¸¢c»Òæ»IQâ3º©WÛÉ·>ÔUºiÎåcXÎ /æ VrqΣc¸!d@FxüÃ4ïKu'/-®.§4e1D £T|»cÖ $l¨ý¨IºJ» *Âòh¦XºrcU¡7IJÜÞÕµ©Ð)5+PHB[AOI¢¸(·jèb ¨"Ff=H¿ºö5*i_nQ·ÇCgZ|n*r=*ÛPµ«=*+X"TdÜÒÕQuº¸à´0Âê8Á9<Ø©`¹(U"`Í!ÀÆ1A±Lì$bÇÈ>ôDP:@%1 A VnK7Ú³\2-&mÊtÇ&³¯?MP-õÁw@ÎsÈ%²MTÍtë"´2PÕú` §ýiöPa}0OÔÀ QqM¯éÚ®CÝ\µFvvyszâòöâ°±¶QÙ½ñV t%×p*F âªu!!i³aÊ ë#:=YÔpsV^Ñ<Ii¦ïØz¿²)ÉÇßµV+4,LW¤v®Ãü&ðëZiÒë·iÎ"r±ß¹ÿ ¿¡$Õ×´YµM2þ{¤úèbÀ¨ÌêF|¤ýøÇ¥T_¬¦â^ª t·ÄTúUÌÚU´&%k{À¦÷V öö½<»õ\]@7à;Ò ¥P©a(w$å%ÿ ʨmÎ¥¤C5éÂIýÞ®fѧÑVæHU!ÙVUn=9ß1âÞW\j3K1IIb ªY»nbr8íV:ÁîÃyëUò Ã{{I½páÂä$©Ê§Ñ)"Aܼ¬[;8ç féÛ»"ù±G¨ítË"'{ÔbK!AÍgfÝHò¶ìª³Vã$gÒcÂÔ6r~jÆÒ};sè XI>¸äÖ«#XË«ÊcsùÀÍ\o:]n]&nç7lúQ±ÜίÒC1\ö $*irñAoðÑÿ 3ÆÜqzV~Æúêdâ`¼À$~½ó"íÙEpg.Ïæ=ø9ïÜÕL®ç¿ifÜôïä»r7]Û®ÄVyÀ<¤çè쥰elÈIfÈÑ=Ý嵿mVâFMÎü 8Åa$è³¼« ÂH!H#Oz+'®®"¼»;Ë«ÿ r¯é@ÁU íP.ÏÖÃe Ü{=èÀ9À§læ»ùL?M,[§s~'9ïÞ¤M71Ä<ëÓ ¯Hí°Ç9ý)yö¦K¦¢ÈfYeMçs*¶;Ò[iÑÛI¤³f04´g4åùÏb·-e¢mÊc sRG¦GÌSG4Ê#R»2999âãÓÇ>Dº$b;®ÃÊH æÐm[l}à]°Å9ç#Þ§[qä·4Ê &DØÄÇà þª;Þãêâàý<ÑlTUÁSêsRñþ¸¥Î}(ytÇM©Ô ÌB Ä÷ö¬eôW22uñ& º}ËÂÄÄ;ðk("TݶßÖññÌû®>\¬±þQyWx'Áú/-mæyÁÆ6ãÕ©çÚ¥×´ÖѤ·YÔîÚªx¢<0Ò_x}àµ%·B¹ÜF2)<ZËY³rÞ;úÜJ×RÇ"Å$eúSÔ·'5>r¶W¦ñáBì3FßémîÑnM'õ~õ^ú&¨$æm±C!ÜÓâ±Ô°iéï¥âæí$&YDª¹ %ÌPzg}©nîëSEÕæHÄHÎvd0ÇýjÁom)æâ`öÕÁøæ¬cêÒfI ò2ï* ÁõÅIX¤.à¯o6úÎKÙ-å2I$çUÚøXM[§¢»)nº@~=j÷Òëö®Ð4y<Sâ;=?q)%ËûF§Ôö¯¢¡¶(Ò5áU #RÓm´ùmôM?Q[ã>%¹$Ü»Ñ \I#ª¸äpðm,#¹H"Yd8ͨ,dPì {~R~ÔÉxzò1µwãíéVvÒH#ØÉÁïì1ïAÁ£^ÞCss¿KiÛe³ñÛµGevá,Í« <¸<V§)`®3!Ìb6°8 ¿GSuå¬â1Úº®$-µqß4ÅÔúuo'̱.Ô*Ï9ýÉõ£"ÆmZ(ËO¦Ò.RLüâ.u¤³ÚÖ{¬ì" ã ÑS«Klm£¸é$kpêX(#<ëBÙhùX.z³uJÈÔ+ QØÀ«ËÙÞ7ÓÃxÑê8!;£1`rïß+§®îô5åÚçMÔVDV¶ù'nî~8÷ /§»jÀB$o1u Þb÷ޮmZÙÞ-7P2C3\?(Á%R[ø u+i-Å»ç«ãóqñ\óºcYâdx·98e'ïNñ¢|ÊëØ£¶{f4rFààò>õRb¡ f³5ZõQ`;o$n¨Øíåy%rdá{TI£ÈdEed·\´l#\÷¯1xçv \ò=Å2?qqfú=7Q¹.íp¸ìW¸ýj¡'·yWQkscéË0Û½÷vöÒH¥¿¹CíÆG®}ê¬Ô¢¸y kµÇ_±êÚHí§<aFòIϯùâ¢Õ䵸X&ÜÛA$Ï#ÐúU:õ¾ÕI W`éèMY!ðñ<QäàÏ?55Î4Ul+r¿íH¦6éî!Jɽ½L]'ugüÄã9Íkÿ ªÝQs ôÎY9©z¥¬P¶¡mm$· mÁs7ê(ÅÖ-^õmC7P¶ÌÆìgµU ÓDÛe=5g"2:DóþUÔ.~È·÷Ρ lÇ'õmg}£ÔEp ²12£ àÒ\K¶ÑAjî³K°ÆqNNj ·HÜÌp1Ïnÿ óÙ§!eÕn£Õ ¯E )Ef'·ãJ.ÖìÏw}xÝ F g íóÏ¥ »Ë\5 2ã>~ÕarñX[K(wbqÿ ªxãÔ×u5¦õÊ9â¡dX;ðGAô"¢¶0;7bÍ) °t}gÖ®;Û ®¶SSpò¯éUÁ êR»_QK¦j3¼4¬§ku%ÏÅ=Üí¬È¬"EóD@ÙÛø5?P°Ô/g»e!s¸ö© ó³Ë¢c|³UEÜæ Z禬]¿7¡5jæy´hØ¢^KÊ:ùv§»|ÓZíl·;æE´ôب2°${ êEkuÙq¤/õBJ·ËÚV8Êü}¨dêW4N[8ÌuË?ø³¹¼6ñôã0ÎA ©=Å\jz=½¾HJHíä$ïâ8õïY'PÓQåånnìTàQ©â94ëY¬ìn @ﹼܱ=òO5Ò\5Ìy®9lM¶x÷mÃgÌÓIÁ5¡O:[ß[L¿WÊâ?62yõöÍcì%êÜËnÒ$lrÇqÊ~~ôI¾-lî®sÒ#ÏÎ1Ø|V°¸I»Û9L§t8|tÒ§_z2ÎÂÙ4MA´í\Uw~SÃn=¸=«3qw>¡y¶pûyÀÈ5"Ê×Z`$I¯1mªÄðø¬\ä¶ÈÔ´v¡ý$3Þ_Ô!FmèÅsÁçQ¤xiuíbÒĦIa%Ãçò ïûö¨bCmnæêñ:p¾ÙÚ+§´`Ò[T¸E5î )_2Ä?.~OÖµ<SF¯M(°ÆF¸EPª òri= ùÜýÍ/Mq[÷®WI, Ü,@û×-þ7êPÃákrw<× @ùé®"Q¸ £%Ò¾sþ*ëmâ)~¹ýS-ºÛõ?Ø Ö3åwð¤Ñl-g¹K}°¨A$L¯ß°ôu§}eà$ÞB/B}½Àæª-®` þ½Ì AP×·p]\I²Ý#Rr÷õ«1Õ¶¥Ó5§\ÏQS`Á 0=ÁÁæ ÷ñB ¬ #)ÃHǽqËÅæ7pËáîNºvb÷d;Ñ=Âú¯éÅ2ãAùLUå»VMç#î;VÏTµ¾Á4oà8$Q0Á {{ p.OEº^¼Àɦþ1)hv«ÎÝõ3Æü FsIª¥ÌðDËÑD.$9=qI¥i·W$®`X?çÉÈÈÇ¥NQGi¤[¶év,~g8Ë)Ö×Pf)ÜÇ!E¼®WÞWµòÉbºªÄÚ@zïN¤üÕ³räwn;æáµHïgºYå-.7)o/ë«t»¶x] îSÈ äzm6à\FȲHÁºd:ã½Gu+ Ä1[Ó¬|ì¤îùã¼¾ØÙÍäòÛ³î¹çÓ¿è´Ë8µ7=l«ºd¶0¶{ HÔ [Çq¬² YIÁoËÉ£ÉÓTK³j#Å»9V\äüÔL°êËn\þJaÈ4ò+B\»ÊýMý@HË 2/Û v?qN¬,¾¶Y·¬¸0är{|ÔH·úíÓ¢`ÊKä(a§\EîU#F{ÅÄòlÛÛïPÁ£]E§ÝÄíÔyaäÉÍþ.ÓF[ÛCÓªÀåÓÎ;óßG0à¨?ÍGgn¶¶©D#Ç$ÝÏÜÕ|úWSVYÆÁ¤'vðøÿ ݽsÆ)oÖ¯$d£ Åÿ E ÈÉ;Aõ5(Ïè*{É éï\û®ó¤QòÅ_Úê«h¢&X£ W* pÿ GSCûÓØNp~Õ®Òn/´ËhåxÑç?5¥Þ8P°¬öw\ '=+P¨ÌÁUK1àÞ±ê[i ×F¶°·WÏt9X@ò¯É÷¡Æ÷z\6sî¹Óîÿ ùö1 2ÿ §òË ©<Èqÿ Ê@óè¶}3ڹŵØ"; ½L9#÷ÍwÍM÷6w»9U#ûåf;i®¤fó¹ÎõÇËOG¥«éjRéqØL+¾UL8ÀÈϵl|?£yf² Ñí\NyϽ-ݦ¥A%µá0ÇðO9Ñ:-¯mzî]GrGI°9Ç·ÅuéÆÛo(/<)¤Î[{d±º²\[.Æç0ø5Ê5hµ/åVw nm"½úè¡KIØWdm^Àpn¶v·ü«ÞX>ô}D+"ÜO"¯rÙ9jÆxðé+¤Ø\ÜÛLÐÛÏ") ÈHÅWE!f\íP¹qÜûÞxOR¸Òôû¨+''þ ÿ _QÀ'ET¶Ös¹x zg=é¿Í&[¢zÐ:±&Í8qÏ?p 3rN1éAQmqw.¦Ö²mÆfÙÃù6W1¦3;²a|¤};QZCnd1.Ó#ncrjc1íPQê¼k[2²ÄHüöÍ.d´Ê×JÕLP²~n=Þ¬ m^öh.$bl,àJ0ì½YiÒÉ=M4ðÊ\g0© nyÅQ 'ãvqSx§7»ÔóIOÍx)¤æë>iÜQÆ)Ää~±AíÔªN~=*>àú`Ræ'° ñL'$jör) ÿ IÏ<Ð9>iàsH vþõ öÍG©IÆ}+Ê8¥ +Y½¾ÕÖuöeðî¨È2âÒR>û r8ììîYîZLø) Ç×ÜÖ2g$ñ2Z(Z<· Í2áÃ~2Æ$nrTg?¥J±\ÛÃçY~´;¼09e,ö Áý=ë39öIâÜâ ¡<jMÌóÄìÄ£¾b ¸0HÞqç¶þX/àQ,·`ãw}c5I¡ÚC°·3¤e>øãõÍ,6£«KÖý8d<£~õ£±±²Ñbd%nGç?oj®ävÁcé]§äÔ:ÏJµ´«(Yå+³òªü 6Y `¨ ËtGN3ÿ ®rq?IäøÂÒ9ÃÚä;\,Äq÷ÑeÂâkáÓÚ!ßH´L{úý«XÎfþóÿ -2[8¤Ê$zK'<þµêzbÌö¼´Ø5â¤SÅ/¯5çzK{ihán."±&çÝÑ\!ÃcÐã4 ý¯ÔMnËl²o$ýèag<z\ÅlGûÂD¸ü0¸íþë4r3 |;X{R}yÅT%µØQéº}fÝxô©´»imbeR»* ÉÆ=}*x8íH}ªúÜÝkr¤pf¶ ÁZ3ÖÊ>\гXÝ˦Ol,ÙC],ª:à»<çÆøüW å3ç$zâ¨Í Ò©) OUV·(dçÜQ0Ø4W÷2ÚéÒ6n¯äaß<óAl£ßi¢HäÑ1àÆ¨âÓµäWÞUÆî Úù9n8¢´Ëi-î/$kv92yàbŤDØç =Í;Ð@ÝÅ1½³v¤ä» ßáº^«§ô£Õ.¾6Y¼¥ðWAãÖ¹f§eiu§\¾½ `Täz<ûÐèµÄ-p¨$ÃÆj¬bÜLàrKçâHÚãKKtU ù=}j eºNæMÜc4ë¦$$sO ÇÑË:`QIl=?ZCõ¢[ÝNåñl½8ÈìäzgÚ´¼WÝÆ<ëõÝ´ó(X£Y ÎäGãYùoàr¹Þ0;ô3«Y]E¤]äà{«3^ ã®\s·¥/u Ó¤Mî¸$U=kêÈøÇù·Õ5Õ59®Û;Xá²ÕU©Ù×ÿ pÉý«dÚ]dNGr?¿úS[>ïÃAãÚ¯²2PB÷SÇ1³Í#mE÷5Ù¼=g ´ 7ryçqß>ßaYÝF¶³¼7Â40UíS^Ôµ|N9'5éñMd½-®µ¤.ß¿c ½ÔÚ)HÝÁ5îF;K æ5ÃMäv¦W¾AÕÎ ;½(¸çf kKefåljNTÙ 2Û°8Át(O¦º(ÇaYù´ç`'&«o9¥bXJë¸ð*ÆÓ@Dêüã{à/îx®Yy1Ç·IâÊö§\ZéK7[f0Þ¬Ú[-r²*ºÆVÚ3){x?z»þQ%Ämc1ï,¯6ó}Lkíë^|¿'MÌ0Ý JÝUã²Ãó"¢Vüç`?¾*ÓC¸ÅÔòijÁoÈÞ^qZHæLñ6¡e5ÜýeÆâ7@»3óáé«%©ZÍ¥]ì¸SÒn?ÓóUO¨Ëo3&ï2W@ñ/Ò_é]Höº© ½ _n_n}3Þ¹ÎZ0Äùâü7ù½ÿ íãß$söâ ¸ñDúuíÅ ñ£/Jg@Í Áäw?éChþ Ö.¤_æÖV02±Ü¨YËcµg÷©õ¯áúÙÚIwo,Z© "DFì}»G·z~|/;&3Z }âËëËV·oým³(Y¢¸ÎrnÕKüÌVÎØÉ&8¶ëéRê:^¦Çmsi<×pÜ »¡q_<¤Ã B¬ÃIô.@× çZñêv·ñK2uÄwÜ',Ãg 88ãïNDFæò߯YzAh`ÍXµÔ°_XX"äVfÃàc£Ó&:ÍTìÛÚ EÚ2({njßLæã¦vÁIíý³@EüÒ[X\O«4k»úÿ íÐ}K¢yüã »nôZÏepË,R.Ã"]¾â½o§K"ªtË´`éàW9íí@8ÕfTÉXËd*³`ò3I.¡u'A ¸¶E[§BÜ© C¹;ª¦Õwñ4W í¥×nëVßMx¯vKÉ&äN}DѼ®²P§úØ¥Ó4h¶é½¤ÈVéð¿zµwÀÉï績¶´¶ñçxôíSiVö·ó¤dlûZLòO°´Km¨ºcå *?ñ7 ]ît·±Y ähºx 9 §Ó6Î>*_ÜuDCKTz4dÂAÀתöÜ^À½;QÁ«}JSÞ¶ 8<g&ªÄJ¢¶ÃGf§q¥8b!2ª8ÇæÜÝýF?Zåüòñá¸ß[å5·K#D§Ê?ÒÃT ÓVEÈU¥íxù«» M5/K«Ãq5ÈsMÊT1U$ Ì ý¨ÑÃK-EíííÀ¶r#|§¶jbæÚåRYuèQmLKi³ÛëÍ;Õ~lÕövo=Io¨M-úuaQ°w$⪼Aá¸ôýjÚ?£º;×ñìßê ǪµÖ]FÚÖ-3Tú_ è}P´pQÉçT_O%¾¥iÚF«wiopgæè ;8Æâ=Mc'ÛËɰñéi2OÕnn@óäð;qMÔml´íF woøb9ÿ a<RVJ¬ËF!ÔäéZMCÄwáhãRÎý9¹çïúÖey4è(ÿ §k/S ß®îHàãÔ @hQ4L³NÓFUÂsZ4tY¢Ke)zªÇÓwµÕDPôãúxö6Ô3}ÜdgÚÞõoL]óq16öÏlÓ÷ÓZeºÜÈËq v]£=;v©ÆI¾Þ%êu:A¨8Çb((5X®ºæáæ00*ãô(I©®!½m´p¥ãI!üWy<èB÷À=³PôDöq%ãFÐdO/ç×Òü»mÓÎ×saHS ÿ ÛH]§¾NHÎ)§2Úf;¥u ÝêA、znÛÑp÷/!VfPÊ27zdw¥½³úË9`i +À<½:ënÓ<« ÊÈàwïúQú 6u,ïUXÎ ?zsCZ]öFb +ê1Ú=e3,Ô¦6 ¬#5c¨Å-çÔ@^9aÀN¨üù9Ç's@OòÍ<º¹ºe½b åw¢`Ñ-á &f;0Îã#o£úká¡AkôÉ×M0þsúS5 >òëVå*¯Ló6Bàäñò ¶¸·$+©V*ppj3añAºP±~W æc½:'º7s"m^+åúäc r}¨(µÍ:jĬY,$T]Ä*ß5įv¬²¨¹)ì~õß|BÆ/ j®+g1}¸=¦£jí<üÿ ölxÆâGlN×·J^c³ ;V¢ ®$*;íÇÅù&¶éãËÔÛz<A¦é¶iikoeooBƪõÍuãv\L?lVIG$[·â¸ÏâxãóÏZÙ<e?ýeÁ'¶dùÕuß§eÝNUcïY=½*'rñ¿Ê¿ñüGü¾Gðþ©ªé£ZÙñ v¹#?üUd ÿ ¤a`ÛfAVâNQsØþô.§n²h×ÑÃÀãü&SÏ8¦L7[ʾèÃ¥NIÛäµåE:"ìDÿ Ä03Ít/áÉq5ìQº+ôÑÀoê }«+0#úï[_á ÂÚjÓ;£Úã¹óßë\ü½/H[7DxöíÉ-ç°o¹íX¯^}#Úé飲íb·<Ê\>Ñ$ àã¹ÿ jå|8ܽ«¦>OYÄåéï¥>¿dfîsM¼ìxïQk¦¤bå\Ú7S]°{SsV'9÷ªÏ¥{>Ô¼ E/4ðN;Ó~iýT3sU²q#|0 [ê"Àmîj¥Ü8¨ ^[9u,ìÁqë·¿íRK<6Ño@íï@GaÆrkØÇ½WÝêÖö¢Ü¯â´çðÂãÞÜ9 ÀðEWË«4V²\ý34 Õ0ê*Ì÷Ï< öwj®-Yç¸(íÁG`ªýAþݨûÝ¢K°G¸´ãAr r(4Ô1`ûÙw»à½øý*4×lÞϤ*¦Ip=ªxWýÕ÷þ_¢'ãa¯aY?âÙ£1CÆ8®óâMVØøgPF^kYÓcmžk¾§²XŤ]TÏ7>Õ¼Åämÿ §ÔuFk®måÌh{ëR2ÜÎ+¥¬èmÅØ- KÇ¡UËrióÓj1[+ib;óÏjlXémÆ"Ï¿J|¾þ¾ú?ÿ IâµXGöªÎas·8t^vÆO½µyàÔxÁÊ ÍYRÀÆO)+84èrÃTÕî gò¯¯ëT7z¬·rn¸}ç°ôqYÛ¦óÐØg$îfïß5ë¦2S#>¦ ¬owã¶ vc íYÖâåÿ $¯Ì8<c#A#èÒ4eD,HÍJsÔ릿Xx,.åO9$ öæ¦Ò¦ãK¶w $¹]¾¾ÕX¤ÚÙ´ÅÃ)¸Ø1´ãØã>ô[X][î"h?ìâÄgÓÔóHº|âÚÙ$,(Ñó(Tüg½ ey´Q!N¢»e LdS'¦}?£y1efÝ/KlìF1ßvP-K+ôT.å]£ö Ì$Þ³FÕMÂ>|ÃïéEØÎntøf|ït²»yõàÕhnþ ÜÎUùHdco¡Åí´f+duyPðËÙ¹5é4n¤bPÒ¦íìÀ ·r@¨l¦m~i¦+ôÊÆ"=±ÛJI/nWJÓÌѹLIp½»qÍAwo¶·xDÇÀ Lo´X»$áwÏÅnÍ%´- `ì ¶á{UFyw,i_ÊPÔöª Ghb\IP2JoläÒÝhÍrñÊï𮬨¥T#Ø÷â¡´øéM-̬ìàJD ½tGrÈÁñØíAaÑlI_w(YO£tËW²±ÝäGdÝæDÚ9$öªq}wyÔäÍ X f*0;JÐ.ábH,F2}h+F"êuõJÁiS0Æ3ÃíFÜÛzbEVVWäò=¨hßÿ þb1Û<QwVí?Iâd6å%wÆ9 6Ú êÍ%Ó+Ê»cÛëFé÷_§ÃwÐxD«¹RAæ<güèSKxÖÑb¹Ç@³ ;g?nõf@ÉÏÚ¨õfÕÒå 'céòsýªkh®ªË,×½0 ±1Ïj*xìZ>·1Fá<¸mØ4¯¢E+ïiK9w`Y~ã0·çLÕLQõLøRÜÄzuÌwÒZÛd¹ Ì%s&qÁöÍÜh""À*ª¶8Æ*¹´X¥l}DT1 rãúö£,Öo¤NI`ÞX ÈäÛS`ÃÆa@ 98«í2Ú GV°²·EIm÷Áˤ̻Ïö®ü4ÒìØÝês©ilÆÕØT½7ÝÏ¥ëë2»~ Xð @÷÷43^Î\ÀÀî W` ÚM£ý!0¶²c_MØ#?=Í·&¦]mkÉjëIl3+`D¾£4q:µºõÕÕJ+äsÎAõ£ Ó¬àÝÓ¶r>_CÞ¶}.µfíØ+ëïE¡q<ÖF%¶M;sAêR N"¤Ò4Kæóî ¤àVX½ÿ ñ®uLîiÃÚ+(äâÃW£Íy²Mh7µxÒÒAà)ãµ4RÕÂ`<S÷(¤¥eD1µK`ó*©= ]éèBw;NFÚôÎ]of*Ù$¦ÜÆË(;/`à p{'êH²4ȹ\?o{Q¨©^s ½7é}êµÄoÄâ È '4â5îØxvþúX$ÒôëFº%Lï`ì;$ó°ÓÁ§¼Oe«eÍÆO~|¡Tp0k;ámWù¬ï¥p-ä&ÞáVÆèÁLÖÂÿ äár;Ð[x·³BòXä³Í#¬q .ÀGúÚn³Ý=º}É#Lî ¨@´Óõ¡I 3ÂþïZAv/aY<½dISØUv°¿Hÿ ägãñðAõ'°ÈÜh[6{æ^¤¢ça$95<sG>H¶dê7%ùù Ñí"Ú8Ø 6à-ÿ Ä3y »4t6Ó¥ü·t)"ªìéò1\üÔök1Qp#nÛI¦nö7pºÁÑ$|2ª)öǽü²cor²\2IÕMµ=Ï=«Ö¶W¢ÆèÌóìhãvôª-ÈøÚ}X·¢ôÔÓ*)-ÅÇD Yçò?éQ\iÏq$Í×ÙÕÆsS47y Eü »'ØT(çýiæ¸Î=½iãÞ{ÜS9¤î)GzÛÖ·úÕBø¯Ãï¨ =uv_¦")%ÿ }»e@ý©Ã{Psêz}¥ÔV·Öñ\ÌBÅʹ=°¹É£õþÔÝÔìåh S\Ò´HMSP¶´W8N´w÷¦Kâ ")5WÔ!k*©:6ôbN ÆAHÏn*±¬kp=i1&©¥JsÆÈTóÅý2ª²qÜûÒE»ÈYD\l?¤w(Æ*{èÞíã@ûF1Ô]§ö¨ÙA 2jVG(êUpF®¥È8¤-L$#ÚHõ4ø&Ý5¡ßýá?ùkªyÇ¥ràî[ÏâÆòëç<×ÿ ñE»y<ZªÔ´mGO¹úk«fW(² §p ÓüQ©ÚjÄk»;æ·Q"r¶^(9|Gf]Ñ.ÖB=3þµ=1ËéwxsÅÓç+·×ÍÅVk+-ÂÁ»ÊW<q[X䏯2xæ²>,·dÕRQã`ÖrÃuc8y.WUÍë·Ó.çn'v?½jÆ¨ÛØGqq¼«2Ìw:An QYêS-,íã¶He/õ-Á?ø¾+[§êj¶m.¡&§<¯Ôwð×ÂçÇí\íçÉmmvA=ûSífu] KÎÜíù«»EIà1ï!YF0i²éÏm"î^¤p`)3<`M9Dn¨Ì9ãÞ¡Þ/Í ê£>@ã&¯ ¹'6r[«ädl¯ÔÏ æJìùô«3È3cC\¡Á OÂx ÃûQ !åÁõ§à¼F¬2Oz68°öõ©ÖÒNV@Ê¡§EÊë´ÏsíEbå!x0Nã'¾~+K Xþ¤áTgUZd¥T`TîÎx¥µkØJ4YØÍ~ùûÖÊúycPö¨»[iÆTã<VnNÈÎ\éÜrwöüÜöÿ êt_ j=ûÆSjÖÉsÌ¢9s( ¤@{~äûÑCÄÚº\kSÅuÓxü/äe|±åÛµYøn÷Y·ñÖmyÝ_C©hòhæ $Êã` Ú&,Ã$>{+¤ê~Ð5´ºÔôk» »q ÎgÎZx·Zmv=JãSX'iÑQÆ{ @6ãô¥Æ:¥M¼¶÷VVŤN±HÄÑ\'$ð8ø¢oAð_§Óü:×âéî5IK¢7Ü@e\dÿ Éþ%%|§íÅLnÓkÅÒt? O¬kÚuûϲÚx²IÂí^í¥±Î9äwÀìjÙÿ ¢º+ÎË ®¤tÈ·þóÙoÃ¥úÉhø¸úYéhצC`|üQÖ:u¿D:7©iA'3¥Oxq$PoÖ@¯d>ÿ 1úÍê^þ)ëÿ ß^ëZ ¦VÐh¢èŲHc°Å9qïêEPxâÎÊ;MP¶°O¸Ô,º×°ä"Ø$Ào^õÓ´Oâ Æ£u6quywiô©s&£øFr þ<|Ï_ÿ \é²Ì'N%ú&¯øW/ÀøØ:îãLøeàßæ3jqîúÞÐ2þ7;·~ýiº&ao xbàèÐj³ëÞI8f1áB)ÊH%³ßj_áñkk{itÙ¤··Ýѯ¢)ãÚ7àdòqÞÓüüOÒ :»H¥9tP~¿Í@·zF¡xwÄ·1X[ßÉi¬+ig,v!Sì@${ûóñVÿ ßÊü*ÿ |
From: Sean E. <sea...@us...> - 2002-09-30 01:29:11
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv26166/src Modified Files: perl.c Log Message: perl fix Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.81 retrieving revision 1.82 diff -u -d -r1.81 -r1.82 --- perl.c 30 Sep 2002 01:05:15 -0000 1.81 +++ perl.c 30 Sep 2002 01:29:08 -0000 1.82 @@ -954,10 +954,10 @@ data = handler->data; if (!strcmp(event_name(event), data->event_type)) { handler_return = execute_perl(data->handler_name, buf); - if (SvIV(handler_return)) { + if (handler_return) { if (buf) g_free(buf); - return SvIV(handler_return); + return handler_return; } } } |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:49
|
Update of /cvsroot/gaim/gaim/src/protocols/irc In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/irc Modified Files: irc.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: irc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/irc/irc.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -d -r1.86 -r1.87 --- irc.c 29 Sep 2002 04:26:50 -0000 1.86 +++ irc.c 30 Sep 2002 01:05:16 -0000 1.87 @@ -101,11 +101,6 @@ return NULL; } -static char *irc_name() -{ - return "IRC"; -} - static int irc_write(int fd, char *data, int len) { debug_printf("IRC C: %s", data); @@ -1401,26 +1396,6 @@ g_free(gc->proto_data); } -static GList *irc_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Server:"; - puo->def = "irc.openprojects.net"; - puo->pos = USEROPT_SERV; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Port:"; - puo->def = "6667"; - puo->pos = USEROPT_PORT; - m = g_list_append(m, puo); - - return m; -} - static void set_mode_3(struct gaim_connection *gc, char *who, int sign, int mode, int start, int end, char *word[]) { @@ -1987,10 +1962,10 @@ void irc_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_IRC; ret->options = OPT_PROTO_CHAT_TOPIC | OPT_PROTO_NO_PASSWORD; - ret->name = irc_name; - ret->user_opts = irc_user_opts; + ret->name = g_strdup("IRC"); ret->list_icon = irc_list_icon; ret->login = irc_login; ret->close = irc_close; @@ -2007,32 +1982,28 @@ ret->buddy_menu = irc_buddy_menu; ret->chat_invite = irc_chat_invite; ret->convo_closed = irc_convo_closed; - my_protocol = ret; -} -#ifndef STATIC + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Server:"); + puo->def = g_strdup("irc.openprojects.net"); + puo->pos = USEROPT_SERV; + ret->user_opts = g_list_append(ret->user_opts, puo); -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(irc_init, sizeof(struct prpl)); - return NULL; -} + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Port:"); + puo->def = g_strdup("6667"); + puo->pos = USEROPT_PORT; + ret->user_opts = g_list_append(ret->user_opts, puo); -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_IRC); - if (p == my_protocol) - unload_protocol(p); + my_protocol = ret; } -char *name() -{ - return "IRC"; -} +#ifndef STATIC -char *description() +void *gaim_prpl_init(struct prpl* prpl) { - return PRPL_DESC("IRC"); + irc_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:49
|
Update of /cvsroot/gaim/gaim/src/protocols/gg In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/gg Modified Files: gg.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: gg.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/gg/gg.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- gg.c 29 Aug 2002 01:47:14 -0000 1.22 +++ gg.c 30 Sep 2002 01:05:16 -0000 1.23 @@ -99,10 +99,6 @@ int type; }; -static char *agg_name() -{ - return "Gadu-Gadu"; -} static gchar *charset_convert(const gchar *locstr, const char *encsrc, const char *encdst) { @@ -308,20 +304,6 @@ return m; } -static GList *agg_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = _("Nick:"); - puo->def = _("Gadu-Gadu User"); - puo->pos = USEROPT_NICK; - m = g_list_append(m, puo); - - return m; -} - static void main_callback(gpointer data, gint source, GaimInputCondition cond) { struct gaim_connection *gc = data; @@ -1241,14 +1223,14 @@ void gg_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_GADUGADU; ret->options = 0; - ret->name = agg_name; + ret->name = g_strdup("Gadu-Gadu"); ret->list_icon = agg_list_icon; ret->away_states = agg_away_states; ret->actions = agg_actions; ret->do_action = agg_do_action; - ret->user_opts = agg_user_opts; ret->buddy_menu = agg_buddy_menu; ret->chat_info = NULL; ret->login = agg_login; @@ -1278,32 +1260,22 @@ ret->chat_send = NULL; ret->keepalive = agg_keepalive; ret->normalize = NULL; + + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup(_("Nick:")); + puo->def = g_strdup(_("Gadu-Gadu User")); + puo->pos = USEROPT_NICK; + ret->user_opts = g_list_append(ret->user_opts, puo); + my_protocol = ret; } #ifndef STATIC -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(gg_init, sizeof(struct prpl)); - return NULL; -} - -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_GADUGADU); - if (p == my_protocol) - unload_protocol(p); -} - -char *name() -{ - return "Gadu-Gadu"; -} - -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("Gadu-Gadu"); + gg_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:49
|
Update of /cvsroot/gaim/gaim/src/protocols/icq In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/icq Modified Files: gaim_icq.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: gaim_icq.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/icq/gaim_icq.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- gaim_icq.c 29 Aug 2002 01:47:14 -0000 1.26 +++ gaim_icq.c 30 Sep 2002 01:05:16 -0000 1.27 @@ -23,10 +23,6 @@ static guint ack_timer = 0; -static char *icq_name() { - return "ICQ"; -} - static void icq_do_log(icq_Link *link, time_t time, unsigned char level, const char *log) { debug_printf("ICQ debug %d: %s", level, log); } @@ -474,19 +470,6 @@ return m; } -static GList *icq_user_opts() { - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Nick:"; - puo->def = "Gaim User"; - puo->pos = USEROPT_NICK; - m = g_list_append(m, puo); - - return m; -} - static GList *icq_away_states(struct gaim_connection *gc) { GList *m = NULL; @@ -504,12 +487,12 @@ static struct prpl *my_protocol = NULL; void icq_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_ICQ; - ret->name = icq_name; + ret->name = g_strdup("ICQ"); ret->list_icon = icq_list_icon; ret->away_states = icq_away_states; ret->buddy_menu = icq_buddy_menu; - ret->user_opts = icq_user_opts; ret->login = icq_login; ret->close = icq_close; ret->send_im = icq_send_msg; @@ -520,6 +503,12 @@ ret->set_away = icq_set_away; ret->keepalive = icq_keepalive; + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Nick:"); + puo->def = g_strdup("Gaim User"); + puo->pos = USEROPT_NICK; + ret->user_opts = g_list_append(ret->user_opts, puo); + my_protocol = ret; icq_SocketNotify = icq_sock_notify; @@ -528,27 +517,9 @@ #ifndef STATIC -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(icq_init, sizeof(struct prpl)); - return NULL; -} - -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_ICQ); - if (p == my_protocol) - unload_protocol(p); -} - -char *name() -{ - return "ICQ"; -} - -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("ICQ"); + icq_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } - #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:48
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv18273/src Modified Files: away.c buddy_chat.c conversation.c dialogs.c module.c multi.c perl.c prpl.c prpl.h server.c util.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: away.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/away.c,v retrieving revision 1.74 retrieving revision 1.75 diff -u -d -r1.74 -r1.75 --- away.c 16 Sep 2002 08:35:17 -0000 1.74 +++ away.c 30 Sep 2002 01:05:14 -0000 1.75 @@ -464,7 +464,7 @@ } g_snprintf(buf, sizeof(buf), "%s (%s)", - gc->username, gc->prpl->name()); + gc->username, gc->prpl->name); menuitem = gtk_menu_item_new_with_label(buf); gtk_menu_append(GTK_MENU(awaymenu), menuitem); gtk_widget_show(menuitem); Index: buddy_chat.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy_chat.c,v retrieving revision 1.159 retrieving revision 1.160 diff -u -d -r1.159 -r1.160 --- buddy_chat.c 16 Sep 2002 08:35:20 -0000 1.159 +++ buddy_chat.c 30 Sep 2002 01:05:14 -0000 1.160 @@ -217,7 +217,7 @@ continue; if (!joinchatgc) joinchatgc = g; - g_snprintf(buf, sizeof buf, "%s (%s)", g->username, g->prpl->name()); + g_snprintf(buf, sizeof buf, "%s (%s)", g->username, g->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), g); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(joinchat_choose), g); Index: conversation.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/conversation.c,v retrieving revision 1.382 retrieving revision 1.383 diff -u -d -r1.382 -r1.383 --- conversation.c 26 Sep 2002 15:23:33 -0000 1.382 +++ conversation.c 30 Sep 2002 01:05:14 -0000 1.383 @@ -2480,7 +2480,7 @@ while (g) { c = (struct gaim_connection *)g->data; - g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name()); + g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), cnv); gtk_signal_connect(GTK_OBJECT(opt), "activate", Index: dialogs.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/dialogs.c,v retrieving revision 1.343 retrieving revision 1.344 diff -u -d -r1.343 -r1.344 --- dialogs.c 26 Sep 2002 21:03:06 -0000 1.343 +++ dialogs.c 30 Sep 2002 01:05:14 -0000 1.344 @@ -834,7 +834,7 @@ while (g) { c = (struct gaim_connection *)g->data; - g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name()); + g_snprintf(buf, sizeof(buf), "%s (%s)", c->username, c->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), info); @@ -1045,7 +1045,7 @@ while (g) { c = (struct gaim_connection *)g->data; g_snprintf(buf, sizeof(buf), "%s (%s)", - c->username, c->prpl->name()); + c->username, c->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), b); gtk_signal_connect(GTK_OBJECT(opt), "activate", @@ -1321,7 +1321,7 @@ c = c->next; if (!gc->prpl->set_permit_deny) continue; - g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name()); + g_snprintf(buf, sizeof buf, "%s (%s)", gc->username, gc->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(deny_gc_opt), gc); gtk_widget_show(opt); @@ -1649,7 +1649,7 @@ while (u) { a = (struct aim_user *)u->data; p = (struct prpl *)find_prpl(a->protocol); - g_snprintf(buf, sizeof buf, "%s (%s)", a->username, (p && p->name)?p->name():"Unknown"); + g_snprintf(buf, sizeof buf, "%s (%s)", a->username, (p && p->name)?p->name:"Unknown"); opt = gtk_menu_item_new_with_label(buf); gtk_object_set_user_data(GTK_OBJECT(opt), a); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(pounce_choose), b); @@ -3345,7 +3345,7 @@ while (g) { c = (struct gaim_connection *)g->data; - g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name()); + g_snprintf(buf, sizeof buf, "%s (%s)", c->username, c->prpl->name); opt = gtk_menu_item_new_with_label(buf); gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_import_gc), c); gtk_widget_show(opt); Index: module.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/module.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- module.c 28 Sep 2002 21:39:45 -0000 1.24 +++ module.c 30 Sep 2002 01:05:14 -0000 1.25 @@ -35,6 +35,7 @@ #endif #include "gaim.h" +#include "prpl.h" #include <string.h> #include <sys/time.h> @@ -92,7 +93,9 @@ int l; #if GAIM_PLUGINS char *(*gaim_plugin_init)(GModule *); + char *(*gaim_prpl_init)(struct prpl *); char *(*cfunc)(); + struct prpl * new_prpl; struct gaim_plugin_description *(*desc)(); GModule *handle; #endif @@ -111,6 +114,25 @@ debug_printf("%s is unloadable: %s\n", file, g_module_error()); continue; } + if (g_module_symbol(handle, "gaim_prpl_init", (gpointer *)&gaim_prpl_init)) { + plug = g_new0(struct gaim_plugin, 1); + g_snprintf(plug->path, sizeof(plug->path), path); + plug->type = plugin; + + new_prpl = g_new0(struct prpl, 1); + new_prpl->plug = plug; + gaim_prpl_init(new_prpl); + if (new_prpl->protocol == PROTO_ICQ || + find_prpl(new_prpl->protocol)) { + /* Nothing to see here--move along, move along */ + unload_protocol(new_prpl); + continue; + } + protocols = g_slist_insert_sorted(protocols, new_prpl, (GCompareFunc)proto_compare); + g_module_close(handle); + continue; + } + if (!g_module_symbol(handle, "gaim_plugin_init", (gpointer *)&gaim_plugin_init)) { debug_printf("%s is unloadable %s\n", file, g_module_error()); g_module_close(handle); Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.131 retrieving revision 1.132 diff -u -d -r1.131 -r1.132 --- multi.c 29 Sep 2002 04:48:40 -0000 1.131 +++ multi.c 30 Sep 2002 01:05:14 -0000 1.132 @@ -155,7 +155,7 @@ { struct prpl *p = find_prpl(proto); if (p && p->name) - return p->name(); + return p->name; else return "Unknown"; } @@ -396,7 +396,7 @@ if (!found) count++; if (e->name) - opt = gtk_menu_item_new_with_label(e->name()); + opt = gtk_menu_item_new_with_label(e->name); else opt = gtk_menu_item_new_with_label("Unknown"); gtk_object_set_user_data(GTK_OBJECT(opt), u); @@ -655,12 +655,12 @@ if (!p->user_opts) return; - tmp = op = p->user_opts(); + tmp = op = p->user_opts; if (!op) return; - g_snprintf(buf, sizeof(buf), "%s Options", p->name()); + g_snprintf(buf, sizeof(buf), "%s Options", p->name); u->proto_frame = gtk_frame_new(buf); gtk_box_pack_start(GTK_BOX(box), u->proto_frame, FALSE, FALSE, 0); gtk_widget_show(u->proto_frame); @@ -693,8 +693,7 @@ gtk_widget_show(entry); u->opt_entries = g_list_append(u->opt_entries, entry); - - g_free(puo); + op = op->next; } @@ -705,7 +704,6 @@ gtk_widget_show(u->register_user); } - g_list_free(tmp); } static void show_acct_mod(struct aim_user *a) @@ -1166,7 +1164,7 @@ return; i = gtk_clist_find_row_from_data(GTK_CLIST(list), gc->user); gtk_clist_set_text(GTK_CLIST(list), i, 1, "Yes"); - gtk_clist_set_text(GTK_CLIST(list), i, 3, gc->prpl->name()); + gtk_clist_set_text(GTK_CLIST(list), i, 3, gc->prpl->name); return; } @@ -1324,7 +1322,7 @@ meter->gc = gc; meters = g_slist_append(meters, meter); - g_snprintf(buf, sizeof(buf), "%s Signing On (using %s)", gc->username, gc->prpl->name()); + g_snprintf(buf, sizeof(buf), "%s Signing On (using %s)", gc->username, gc->prpl->name); } gtk_progress_bar_update(GTK_PROGRESS_BAR(meter->progress), howfar / LOGIN_STEPS); Index: perl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/perl.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -d -r1.80 -r1.81 --- perl.c 28 Sep 2002 08:08:14 -0000 1.80 +++ perl.c 30 Sep 2002 01:05:15 -0000 1.81 @@ -550,7 +550,7 @@ { struct gaim_connection *gc = (struct gaim_connection *)SvIV(ST(1)); if (g_slist_find(connections, gc)) - XST_mPV(i++, gc->prpl->name()); + XST_mPV(i++, gc->prpl->name); else XST_mPV(i++, "Unknown"); } Index: prpl.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.c,v retrieving revision 1.60 retrieving revision 1.61 diff -u -d -r1.60 -r1.61 --- prpl.c 10 Sep 2002 15:31:34 -0000 1.60 +++ prpl.c 30 Sep 2002 01:05:15 -0000 1.61 @@ -32,6 +32,7 @@ GSList *protocols = NULL; GtkWidget *protomenu = NULL; +int prpl_accounts[PROTO_UNTAKEN]; struct _prompt { GtkWidget *window; @@ -56,30 +57,39 @@ return NULL; } -static gint proto_compare(struct prpl *a, struct prpl *b) +gint proto_compare(struct prpl *a, struct prpl *b) { /* neg if a before b, 0 if equal, pos if a after b */ return a->protocol - b->protocol; } -void load_protocol(proto_init pi, int size) +#ifdef GAIM_PLUGINS +gboolean load_prpl(struct prpl *p) { - struct prpl *p; - struct prpl *old; - if (size != sizeof(struct prpl)) { - do_error_dialog(_("Incompatible protocol detected."), - _("You have attempted to load a protocol which was not compiled" - " from the same version of the source as this application was." - " Unfortunately, because it is not the same version I cannot" - " safely tell you which one it was. Needless to say, it was not" - " successfully loaded."), GAIM_ERROR); - return; - } + char *(*gaim_prpl_init)(struct prpl *); + debug_printf("Loading protocol %d\n", p->protocol); + + if (!p->plug) + return TRUE; - p = g_new0(struct prpl, 1); - pi(p); - if ((old = find_prpl(p->protocol)) != NULL) - unload_protocol(old); + p->plug->handle = g_module_open(p->plug->path, 0); + if (!p->plug->handle) { + debug_printf("%s is unloadable: %s\n", p->plug->path, g_module_error()); + return TRUE; + } + + if (!g_module_symbol(p->plug->handle, "gaim_prpl_init", (gpointer *)&gaim_prpl_init)) { + return TRUE; + } + + gaim_prpl_init(p); + return FALSE; +} +#endif + +void load_protocol(proto_init pi) +{ + struct prpl *p; if (p->protocol == PROTO_ICQ) do_error_dialog(_("Libicq.so detected."), @@ -89,31 +99,26 @@ "It is reccomended that you use the AIM/ICQ protocol to connect to ICQ"), GAIM_WARNING); - protocols = g_slist_insert_sorted(protocols, p, (GCompareFunc)proto_compare); regenerate_user_list(); } void unload_protocol(struct prpl *p) { - GSList *c = connections; - struct gaim_connection *g; + GList *c; + struct proto_user_opt *puo; + if (p->name) + g_free(p->name); + c = p->user_opts; while (c) { - g = (struct gaim_connection *)c->data; - if (g->prpl == p) { - char buf[256]; - g_snprintf(buf, sizeof buf, _("%s was using %s, which got removed." - " %s is now offline."), g->username, - p->name(), g->username); - do_error_dialog(buf, NULL, GAIM_ERROR); - signoff(g); - c = connections; - } else - c = c->next; + puo = c->data; + g_free(puo->label); + g_free(puo->def); + g_free(puo); + c = c->next; } - protocols = g_slist_remove(protocols, p); - g_free(p); - regenerate_user_list(); + g_list_free(p->user_opts); + p->user_opts = NULL; } STATIC_PROTO_INIT @@ -321,7 +326,7 @@ continue; } - g_snprintf(buf, sizeof(buf), "%s (%s)", gc->username, gc->prpl->name()); + g_snprintf(buf, sizeof(buf), "%s (%s)", gc->username, gc->prpl->name); menuitem = gtk_menu_item_new_with_label(buf); gtk_menu_append(GTK_MENU(protomenu), menuitem); gtk_widget_show(menuitem); Index: prpl.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/prpl.h,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- prpl.h 29 Aug 2002 01:47:14 -0000 1.68 +++ prpl.h 30 Sep 2002 01:05:15 -0000 1.69 @@ -41,6 +41,8 @@ #define PROTO_NAPSTER 9 #define PROTO_ZEPHYR 10 #define PROTO_GADUGADU 11 +#define PROTO_UNTAKEN 17 + /* DON'T TAKE AN UNASSIGNED NUMBER! Talk to Rob or Sean if you'd like * to create a new PRPL. */ @@ -86,7 +88,8 @@ struct prpl { int protocol; int options; - char *(* name)(); + struct gaim_plugin *plug; + char *name; /* for ICQ and Yahoo, who have off/on per-conversation options */ /* char *checkbox; this should be per-connection */ @@ -96,8 +99,8 @@ GList *(* away_states)(struct gaim_connection *gc); GList *(* actions)(); void (* do_action)(struct gaim_connection *, char *); - /* user_opts returns a GList* of g_malloc'd struct proto_user_opts */ - GList *(* user_opts)(); + /* user_opts is a GList* of g_malloc'd struct proto_user_opts */ + GList *user_opts; GList *(* buddy_menu)(struct gaim_connection *, char *); GList *(* edit_buddy_menu)(struct gaim_connection *, char *); GList *(* chat_info)(struct gaim_connection *); @@ -180,13 +183,16 @@ }; extern GSList *protocols; +extern prpl_accounts[]; /* this is mostly just for aim.c, when it initializes the protocols */ extern void static_proto_init(); /* this is what should actually load the protocol. pass it the protocol's initializer */ -extern void load_protocol(proto_init, int); +extern gboolean load_prpl(struct prpl *); +extern void load_protocol(proto_init); extern void unload_protocol(struct prpl *); +extern gint proto_compare(struct prpl *, struct prpl *); extern struct prpl *find_prpl(int); extern void do_proto_menu(); Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.240 retrieving revision 1.241 diff -u -d -r1.240 -r1.241 --- server.c 29 Sep 2002 04:48:40 -0000 1.240 +++ server.c 30 Sep 2002 01:05:15 -0000 1.241 @@ -47,13 +47,25 @@ if (user->gc != NULL) return; +#ifdef GAIM_PLUGINS + if (p->plug) { /* This protocol is a plugin */ + prpl_accounts[p->protocol]++; + debug_printf("Protocol %s is now being used by %d connections.\n", p->name, prpl_accounts[p->protocol]); + if (!p->plug->handle) { /* But the protocol isn't yet loaded. */ + unload_protocol(p); /* Unload it to free the old name and options */ + if (load_prpl(p)) /* And load the plugin */ + return; + } + } +#endif + if (p && p->login) { if (!strlen(user->password) && !(p->options & OPT_PROTO_NO_PASSWORD)) { do_error_dialog(_("Please enter your password"), NULL, GAIM_ERROR); return; } - debug_printf(PACKAGE " " VERSION " logging in %s using %s\n", user->username, p->name()); + debug_printf(PACKAGE " " VERSION " logging in %s using %s\n", user->username, p->name); user->connecting = TRUE; connecting_count++; debug_printf("connecting_count: %d\n", connecting_count); @@ -84,6 +96,7 @@ void serv_close(struct gaim_connection *gc) { + struct prpl *prpl; while (gc->buddy_chats) { struct conversation *b = gc->buddy_chats->data; gc->buddy_chats = g_slist_remove(gc->buddy_chats, b); @@ -99,9 +112,23 @@ if (gc->prpl && gc->prpl->close) gc->prpl->close(gc); - + + prpl = gc->prpl; account_offline(gc); destroy_gaim_conn(gc); + +#ifdef GAIM_PLUGINS + if (prpl->plug) { /* This is a plugin */ + prpl_accounts[prpl->protocol]--; + debug_printf("Prpl %s is now being used by %d accounts\n", prpl->name, prpl_accounts[prpl->protocol]); + if (prpl_accounts[prpl->protocol] == 0) { /* We don't need this protocol anymore */ + debug_printf("Throwing out prpl %s\n", prpl->name); + g_module_close(prpl->plug->handle); + prpl->plug->handle = NULL; + } + } +#endif + } void serv_touch_idle(struct gaim_connection *gc) Index: util.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/util.c,v retrieving revision 1.134 retrieving revision 1.135 diff -u -d -r1.134 -r1.135 --- util.c 17 Sep 2002 15:40:28 -0000 1.134 +++ util.c 30 Sep 2002 01:05:16 -0000 1.135 @@ -1002,32 +1002,32 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "+++ %s (%s) signed on @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "+++ %s (%s) signed off @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "+++ %s (%s) changed away state @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "+++ %s (%s) came back @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "+++ %s (%s) became idle @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "+++ %s (%s) returned from idle @ %s", - gc->username, gc->prpl->name(), full_date()); + gc->username, gc->prpl->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_quit: @@ -1039,33 +1039,33 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed on @ %s", - gc->username, gc->prpl->name(), who->show, who->name, full_date()); + gc->username, gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) signed off @ %s", - gc->username, gc->prpl->name(), who->show, who->name, full_date()); + gc->username, gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) went away @ %s", - gc->username, gc->prpl->name(), who->show, who->name, full_date()); + gc->username, gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) came back @ %s", - gc->username, gc->prpl->name(), who->show, who->name, full_date()); + gc->username, gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) became idle @ %s", - gc->username, gc->prpl->name(), who->show, who->name, full_date()); + gc->username, gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s (%s) returned from idle @ %s", gc->username, - gc->prpl->name(), who->show, who->name, full_date()); + gc->prpl->name, who->show, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; default: @@ -1077,33 +1077,33 @@ switch (what) { case log_signon: g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed on @ %s", - gc->username, gc->prpl->name(), who->name, full_date()); + gc->username, gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "<B>%s</B>", text); break; case log_signoff: g_snprintf(text, sizeof(text), "%s (%s) reported that %s signed off @ %s", - gc->username, gc->prpl->name(), who->name, full_date()); + gc->username, gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "<I><FONT COLOR=GRAY>%s</FONT></I>", text); break; case log_away: g_snprintf(text, sizeof(text), "%s (%s) reported that %s went away @ %s", - gc->username, gc->prpl->name(), who->name, full_date()); + gc->username, gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=OLIVE>%s</FONT>", text); break; case log_back: g_snprintf(text, sizeof(text), "%s (%s) reported that %s came back @ %s", - gc->username, gc->prpl->name(), who->name, full_date()); + gc->username, gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; case log_idle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s became idle @ %s", - gc->username, gc->prpl->name(), who->name, full_date()); + gc->username, gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "<FONT COLOR=GRAY>%s</FONT>", text); break; case log_unidle: g_snprintf(text, sizeof(text), "%s (%s) reported that %s returned from idle @ %s", gc->username, - gc->prpl->name(), who->name, full_date()); + gc->prpl->name, who->name, full_date()); g_snprintf(html, sizeof(html), "%s", text); break; default: |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:46
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv18273 Modified Files: configure.ac configure.in Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: configure.ac =================================================================== RCS file: /cvsroot/gaim/gaim/configure.ac,v retrieving revision 1.82 retrieving revision 1.83 diff -u -d -r1.82 -r1.83 --- configure.ac 26 Sep 2002 07:37:51 -0000 1.82 +++ configure.ac 30 Sep 2002 01:05:13 -0000 1.83 @@ -67,7 +67,7 @@ AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") AC_ARG_ENABLE(multi, [ --disable-multi disable multiple connections],,enable_multi=yes) AC_ARG_ENABLE(prpls, [ --disable-prpls don't build dynamic protocol plugins],,enable_prpls=yes) -AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar") +AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="") if test "x$STATIC_PRPLS" = "xall" ; then STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr" fi @@ -78,7 +78,7 @@ for i in $STATIC_PRPLS ; do STATIC_LINK_LIBS="$STATIC_LINK_LIBS protocols/$i/lib$i.a" extern_init="$extern_init extern void ${i}_init(struct prpl *);" - load_proto="$load_proto load_protocol(${i}_init, sizeof(struct prpl));" + load_proto="$load_proto load_protocol(${i}_init);" case $i in gg) static_gg=yes ;; irc) static_irc=yes ;; Index: configure.in =================================================================== RCS file: /cvsroot/gaim/gaim/configure.in,v retrieving revision 1.131 retrieving revision 1.132 diff -u -d -r1.131 -r1.132 --- configure.in 26 Sep 2002 07:37:51 -0000 1.131 +++ configure.in 30 Sep 2002 01:05:13 -0000 1.132 @@ -66,7 +66,7 @@ AM_CONDITIONAL(DISTRIB, test "x$enable_distrib" = "xyes") AC_ARG_ENABLE(multi, [ --disable-multi disable multiple connections],,enable_multi=yes) AC_ARG_ENABLE(prpls, [ --disable-prpls don't build dynamic protocol plugins],,enable_prpls=yes) -AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="oscar") +AC_ARG_WITH(static-prpls, [ --with-static-prpls link in certain protocols statically],[STATIC_PRPLS=`echo $withval | $sedpath 's/,/ /g'`],STATIC_PRPLS="") if test "x$STATIC_PRPLS" = "xall" ; then STATIC_PRPLS="gg irc jabber msn napster oscar toc yahoo zephyr" fi |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:21
|
Update of /cvsroot/gaim/gaim/src/protocols/zephyr In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/zephyr Modified Files: zephyr.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: zephyr.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/zephyr/zephyr.c,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- zephyr.c 29 Aug 2002 01:47:15 -0000 1.24 +++ zephyr.c 30 Sep 2002 01:05:18 -0000 1.25 @@ -62,11 +62,6 @@ int id; }; -static char *zephyr_name() -{ - return "Zephyr"; -} - #define z_call(func) if (func != ZERR_NONE)\ return; #define z_call_r(func) if (func != ZERR_NONE)\ @@ -945,7 +940,7 @@ { ret->protocol = PROTO_ZEPHYR; ret->options = OPT_PROTO_NO_PASSWORD; - ret->name = zephyr_name; + ret->name = g_strdup("Zephyr"); ret->login = zephyr_login; ret->close = zephyr_close; ret->add_buddy = zephyr_add_buddy; @@ -966,27 +961,11 @@ #ifndef STATIC -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(zephyr_init, sizeof(struct prpl)); - return NULL; -} - -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_ZEPHYR); - if (p == my_protocol) - unload_protocol(p); -} - -char *name() +void *gaim_prpl_init(struct prpl *prpl) { - return "Zephyr"; + zephyr_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } -char *description() -{ - return PRPL_DESC("Zephyr"); -} #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:21
|
Update of /cvsroot/gaim/gaim/src/protocols/yahoo In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/yahoo Modified Files: yahoo.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: yahoo.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/yahoo/yahoo.c,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- yahoo.c 16 Sep 2002 19:50:52 -0000 1.50 +++ yahoo.c 30 Sep 2002 01:05:18 -0000 1.51 @@ -173,10 +173,6 @@ GSList *hash; }; -static char *yahoo_name() { - return "Yahoo"; -} - #define YAHOO_PACKET_HDRLEN (4 + 2 + 2 + 2 + 2 + 4 + 4) static struct yahoo_packet *yahoo_packet_new(enum yahoo_service service, enum yahoo_status status, int id) @@ -1128,26 +1124,6 @@ return m; } -static GList *yahoo_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Pager Host:"; - puo->def = YAHOO_PAGER_HOST; - puo->pos = USEROPT_PAGERHOST; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Pager Port:"; - puo->def = "5050"; - puo->pos = USEROPT_PAGERPORT; - m = g_list_append(m, puo); - - return m; -} - static void yahoo_act_id(gpointer data, char *entry) { struct gaim_connection *gc = data; @@ -1435,10 +1411,10 @@ static struct prpl *my_protocol = NULL; void yahoo_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_YAHOO; ret->options = OPT_PROTO_MAIL_CHECK; - ret->name = yahoo_name; - ret->user_opts = yahoo_user_opts; + ret->name = g_strdup("Yahoo"); ret->login = yahoo_login; ret->close = yahoo_close; ret->buddy_menu = yahoo_buddy_menu; @@ -1455,32 +1431,27 @@ ret->send_typing = yahoo_send_typing; ret->smiley_list = yahoo_smiley_list; - my_protocol = ret; -} - -#ifndef STATIC + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Pager Host:"); + puo->def = g_strdup(YAHOO_PAGER_HOST); + puo->pos = USEROPT_PAGERHOST; + ret->user_opts = g_list_append(ret->user_opts, puo); -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(yahoo_init, sizeof(struct prpl)); - return NULL; -} + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Pager Port:"); + puo->def = g_strdup("5050"); + puo->pos = USEROPT_PAGERPORT; + ret->user_opts = g_list_append(ret->user_opts, puo); -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_YAHOO); - if (p == my_protocol) - unload_protocol(p); + my_protocol = ret; } -char *name() -{ - return "Yahoo"; -} +#ifndef STATIC -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("Yahoo"); + yahoo_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:20
|
Update of /cvsroot/gaim/gaim/src/protocols/toc In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/toc Modified Files: toc.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: toc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/toc/toc.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- toc.c 7 Sep 2002 18:41:09 -0000 1.52 +++ toc.c 30 Sep 2002 01:05:18 -0000 1.53 @@ -927,11 +927,6 @@ } } -static char *toc_name() -{ - return "TOC"; -} - static int toc_send_im(struct gaim_connection *gc, char *name, char *message, int len, int flags) { char buf[BUF_LEN * 2]; @@ -1230,26 +1225,6 @@ return m; } -static GList *toc_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "TOC Host:"; - puo->def = "toc.oscar.aol.com"; - puo->pos = USEROPT_AUTH; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "TOC Port:"; - puo->def = "9898"; - puo->pos = USEROPT_AUTHPORT; - m = g_list_append(m, puo); - - return m; -} - static void toc_add_permit(struct gaim_connection *gc, char *who) { char buf2[BUF_LEN * 2]; @@ -1382,16 +1357,16 @@ static struct prpl *my_protocol = NULL; void toc_init(struct prpl *ret) -{ +{ + struct proto_user_opt *puo; ret->protocol = PROTO_TOC; ret->options = OPT_PROTO_CORRECT_TIME; - ret->name = toc_name; + ret->name = g_strdup("TOC"); ret->list_icon = toc_list_icon; ret->away_states = toc_away_states; ret->actions = toc_actions; ret->do_action = toc_do_action; ret->buddy_menu = toc_buddy_menu; - ret->user_opts = toc_user_opts; ret->login = toc_login; ret->close = toc_close; ret->send_im = toc_send_im; @@ -1421,32 +1396,27 @@ ret->chat_send = toc_chat_send; ret->keepalive = toc_keepalive; - my_protocol = ret; -} - -#ifndef STATIC + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("TOC Host:"); + puo->def = g_strdup("toc.oscar.aol.com"); + puo->pos = USEROPT_AUTH; + ret->user_opts = g_list_append(ret->user_opts, puo); -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(toc_init, sizeof(struct prpl)); - return NULL; -} + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("TOC Port:"); + puo->def = g_strdup("9898"); + puo->pos = USEROPT_AUTHPORT; + ret->user_opts = g_list_append(ret->user_opts, puo); -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_TOC); - if (p == my_protocol) - unload_protocol(p); + my_protocol = ret; } -char *name() -{ - return "TOC"; -} +#ifndef STATIC -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("TOC"); + toc_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:20
|
Update of /cvsroot/gaim/gaim/src/protocols/oscar In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/oscar Modified Files: oscar.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: oscar.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/oscar/oscar.c,v retrieving revision 1.149 retrieving revision 1.150 diff -u -d -r1.149 -r1.150 --- oscar.c 13 Sep 2002 06:41:21 -0000 1.149 +++ oscar.c 30 Sep 2002 01:05:17 -0000 1.150 @@ -2723,10 +2723,6 @@ aim_flap_nop(odata->sess, odata->conn); } -static char *oscar_name() { - return "AIM / ICQ"; -} - static int oscar_send_typing(struct gaim_connection *gc, char *name, int typing) { struct oscar_data *odata = (struct oscar_data *)gc->proto_data; struct direct_im *dim = find_direct_im(odata, name); @@ -3743,26 +3739,6 @@ return m; } -static GList *oscar_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Auth Host:"; - puo->def = "login.oscar.aol.com"; - puo->pos = USEROPT_AUTH; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Auth Port:"; - puo->def = "5190"; - puo->pos = USEROPT_AUTHPORT; - m = g_list_append(m, puo); - - return m; -} - static void oscar_set_permit_deny(struct gaim_connection *gc) { struct oscar_data *od = (struct oscar_data *)gc->proto_data; if (od->icq) { @@ -3983,16 +3959,16 @@ static struct prpl *my_protocol = NULL; void oscar_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_OSCAR; ret->options = OPT_PROTO_BUDDY_ICON | OPT_PROTO_IM_IMAGE; - ret->name = oscar_name; + ret->name = g_strdup("Oscar"); ret->list_icon = oscar_list_icon; ret->away_states = oscar_away_states; ret->actions = oscar_actions; ret->do_action = oscar_do_action; ret->buddy_menu = oscar_buddy_menu; ret->edit_buddy_menu = oscar_edit_buddy_menu; - ret->user_opts = oscar_user_opts; ret->login = oscar_login; ret->close = oscar_close; ret->send_im = oscar_send_im; @@ -4027,32 +4003,27 @@ ret->keepalive = oscar_keepalive; ret->convo_closed = oscar_convo_closed; - my_protocol = ret; -} - -#ifndef STATIC + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Auth Host:"); + puo->def = g_strdup("login.oscar.aol.com"); + puo->pos = USEROPT_AUTH; + ret->user_opts = g_list_append(ret->user_opts, puo); -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(oscar_init, sizeof(struct prpl)); - return NULL; -} + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Auth Port:"); + puo->def = g_strdup("5190"); + puo->pos = USEROPT_AUTHPORT; + ret->user_opts = g_list_append(ret->user_opts, puo); -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_OSCAR); - if (p == my_protocol) - unload_protocol(p); + my_protocol = ret; } -char *name() -{ - return "Oscar"; -} +#ifndef STATIC -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("Oscar"); + oscar_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:20
|
Update of /cvsroot/gaim/gaim/src/protocols/napster In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/napster Modified Files: napster.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: napster.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/napster/napster.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- napster.c 29 Aug 2002 01:47:14 -0000 1.20 +++ napster.c 30 Sep 2002 01:05:17 -0000 1.21 @@ -63,12 +63,6 @@ GSList *channels; }; -static char *nap_name() -{ - return "Napster"; -} - - /* FIXME: Make this use va_arg stuff */ static void nap_write_packet(struct gaim_connection *gc, unsigned short command, const char *message) { @@ -550,27 +544,6 @@ } } - -static GList *nap_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Server:"; - puo->def = NAP_SERVER; - puo->pos = USEROPT_NAPSERVER; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Port:"; - puo->def = "8888"; - puo->pos = USEROPT_NAPPORT; - m = g_list_append(m, puo); - - return m; -} - static char** nap_list_icon(int uc) { return napster_xpm; @@ -580,10 +553,24 @@ void napster_init(struct prpl *ret) { + struct proto_user_opt *puo; + ret->add_buddies = nap_add_buddies; + ret->remove_buddy = nap_remove_buddy; + ret->add_permit = NULL; + ret->rem_permit = NULL; + ret->add_deny = NULL; + ret->rem_deny = NULL; + ret->warn = NULL; + ret->chat_info = nap_chat_info; + ret->join_chat = nap_join_chat; + ret->chat_invite = NULL; + ret->chat_leave = nap_chat_leave; + ret->chat_whisper = NULL; + ret->chat_send = nap_chat_send; + ret->keepalive = NULL; ret->protocol = PROTO_NAPSTER; - ret->name = nap_name; + ret->name = g_strdup("Napster"); ret->list_icon = nap_list_icon; - ret->user_opts = nap_user_opts; ret->login = nap_login; ret->close = nap_close; ret->send_im = nap_send_im; @@ -611,32 +598,26 @@ ret->chat_send = nap_chat_send; ret->keepalive = NULL; - my_protocol = ret; -} - -#ifndef STATIC + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Server:"); + puo->def = g_strdup(NAP_SERVER); + puo->pos = USEROPT_NAPSERVER; + ret->user_opts = g_list_append(ret->user_opts, puo); -char *gaim_plugin_init(GModule * handle) -{ - load_protocol(napster_init, sizeof(struct prpl)); - return NULL; -} + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Port:"); + puo->def = g_strdup("8888"); + puo->pos = USEROPT_NAPPORT; + ret->user_opts = g_list_append(ret->user_opts, puo); -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_NAPSTER); - if (p == my_protocol) - unload_protocol(p); + my_protocol = ret; } -char *name() -{ - return "Napster"; -} +#ifndef STATIC -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("Napster"); + napster_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } - #endif |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:20
|
Update of /cvsroot/gaim/gaim/src/protocols/msn In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/msn Modified Files: msn.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: msn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.c,v retrieving revision 1.97 retrieving revision 1.98 diff -u -d -r1.97 -r1.98 --- msn.c 21 Sep 2002 17:38:34 -0000 1.97 +++ msn.c 30 Sep 2002 01:05:17 -0000 1.98 @@ -153,10 +153,6 @@ while (*(tmp) && isspace(*(tmp))) \ (tmp)++; -static char *msn_name() -{ - return "MSN"; -} static char *msn_normalize(const char *s) { @@ -2404,26 +2400,6 @@ g_free(b->proto_data); } -static GList *msn_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Server:"; - puo->def = MSN_SERVER; - puo->pos = USEROPT_MSNSERVER; - m = g_list_append(m, puo); - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Port:"; - puo->def = "1863"; - puo->pos = USEROPT_MSNPORT; - m = g_list_append(m, puo); - - return m; -} - GSList *msn_smiley_list() { GSList *smilies = NULL; @@ -2530,9 +2506,10 @@ void msn_init(struct prpl *ret) { + struct proto_user_opt *puo; ret->protocol = PROTO_MSN; ret->options = OPT_PROTO_MAIL_CHECK; - ret->name = msn_name; + ret->name = g_strdup("MSN"); ret->list_icon = msn_list_icon; ret->buddy_menu = msn_buddy_menu; ret->login = msn_login; @@ -2559,17 +2536,28 @@ ret->rem_deny = msn_rem_deny; ret->buddy_free = msn_buddy_free; ret->smiley_list = msn_smiley_list; - ret->user_opts = msn_user_opts; + + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Server:"); + puo->def = g_strdup(MSN_SERVER); + puo->pos = USEROPT_MSNSERVER; + ret->user_opts = g_list_append(ret->user_opts, puo); + + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Port:"); + puo->def = g_strdup("1863"); + puo->pos = USEROPT_MSNPORT; + ret->user_opts = g_list_append(ret->user_opts, puo); my_protocol = ret; } #ifndef STATIC -char *gaim_plugin_init(GModule *handle) +void *gaim_prpl_init(struct prpl *prpl) { - load_protocol(msn_init, sizeof(struct prpl)); - return NULL; + msn_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } void gaim_plugin_remove() |
From: Sean E. <sea...@us...> - 2002-09-30 01:05:20
|
Update of /cvsroot/gaim/gaim/src/protocols/jabber In directory usw-pr-cvs1:/tmp/cvs-serv18273/src/protocols/jabber Modified Files: jabber.c Log Message: Phase II. No longer do you have to worry about protocol plugins. When Gaim probes plugins on load, it will detect protocol plugins and add them to the list of available protocols. When you try to log an account on with one of them, Gaim will automatically load the plugin--when no more accounts need the protocol--Gaim will automatically unload it. Protocol plugins are no longer available in the plugins ui, and no protocols are compiled statically by default. Index: jabber.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v retrieving revision 1.63 retrieving revision 1.64 diff -u -d -r1.63 -r1.64 --- jabber.c 31 Aug 2002 03:05:21 -0000 1.63 +++ jabber.c 30 Sep 2002 01:05:16 -0000 1.64 @@ -225,11 +225,6 @@ #define JCS_CLOSED 3 /* closed */ -static char *jabber_name() -{ - return "Jabber"; -} - #define STATE_EVT(arg) if(gjc->on_state) { (gjc->on_state)(gjc, (arg) ); } static void jabber_handlevcard(gjconn, xmlnode, char *); @@ -3193,20 +3188,6 @@ gjab_send_raw(jd->gjc, " \t "); } -static GList *jabber_user_opts() -{ - GList *m = NULL; - struct proto_user_opt *puo; - - puo = g_new0(struct proto_user_opt, 1); - puo->label = "Port:"; - puo->def = "5222"; - puo->pos = USEROPT_PORT; - m = g_list_append(m, puo); - - return m; -} - /*---------------------------------------*/ /* Jabber "set info" (vCard) support */ /*---------------------------------------*/ @@ -3982,16 +3963,16 @@ void jabber_init(struct prpl *ret) { /* the NULL's aren't required but they're nice to have */ + struct proto_user_opt *puo; ret->protocol = PROTO_JABBER; ret->options = OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_CHAT_TOPIC; - ret->name = jabber_name; + ret->name = g_strdup("Jabber"); ret->list_icon = jabber_list_icon; ret->away_states = jabber_away_states; ret->actions = jabber_actions; ret->do_action = jabber_do_action; ret->buddy_menu = jabber_buddy_menu; ret->edit_buddy_menu = jabber_edit_buddy_menu; - ret->user_opts = jabber_user_opts; ret->login = jabber_login; ret->close = jabber_close; ret->send_im = jabber_send_im; @@ -4028,33 +4009,22 @@ ret->send_typing = jabber_send_typing; ret->convo_closed = jabber_convo_closed; ret->rename_group = jabber_rename_group; + + puo = g_new0(struct proto_user_opt, 1); + puo->label = g_strdup("Port:"); + puo->def = g_strdup("5222"); + puo->pos = USEROPT_PORT; + ret->user_opts = g_list_append(ret->user_opts, puo); my_protocol = ret; } #ifndef STATIC -char *gaim_plugin_init(GModule *handle) -{ - load_protocol(jabber_init, sizeof(struct prpl)); - return NULL; -} - -void gaim_plugin_remove() -{ - struct prpl *p = find_prpl(PROTO_JABBER); - if (p == my_protocol) - unload_protocol(p); -} - -char *name() -{ - return "Jabber"; -} - -char *description() +void *gaim_prpl_init(struct prpl *prpl) { - return PRPL_DESC("Jabber"); + jabber_init(prpl); + prpl->plug->desc.api_version = PLUGIN_API_VERSION; } #endif |
From: Christian H. <ch...@us...> - 2002-09-29 19:11:59
|
Update of /cvsroot/gaim/web/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv23426 Modified Files: news.txt Log Message: Got some more of the news back! :) Index: news.txt =================================================================== RCS file: /cvsroot/gaim/web/htdocs/news.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- news.txt 26 Sep 2002 19:01:26 -0000 1.3 +++ news.txt 29 Sep 2002 19:11:53 -0000 1.4 @@ -5,6 +5,12 @@ <b>*Update 09/26/2002 12:00PM PDT*</b> It seems we have all the missing news, and the FAQ is being updated. Thanks for being patient everyone! # +Because nobody reads the FAQ anyway +September 23rd, 2002 - 5:05PM EDT +I just wanted to let you all know that there is no applet for GNOME 2 (nor will there ever be). Instead, Robert McQueen has written a Docklet plugin. A docklet does everything our applet used to do, but with far less overhead. Plus, it'll work with KDE. The docklet conforms to the freedesktop.org standards implemented by GNOME 2 with its Notification Area applet found in GNOME CVS--tarred up here by Robert McQueen and by KDE with this patch from RedHat's null beta. Just load docklet.so, and you're set to go. +<b>*Update 09/24/2002 12:59PM EDT*</b> +We just received word that the above patch to the KDE kicker is now in KDE CVS and will be included in KDE 3.1. +# v0.59.3 released! We broke our Yahoo! September 15th, 2002 - 12:26PM EDT Hey all, Gaim v0.59.3 has been released. This is mostly a release to fix the problem that some people experience with signing on to the Yahoo Messenger service. It also changes the color binding in Conversation windows to Ctrl+K as opposed to Ctrl+C. Any other fixes can be learned of via the <a href="ChangeLog">ChangeLog</a>. |
From: Luke S. <lsc...@us...> - 2002-09-29 17:00:19
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv24193 Modified Files: ChangeLog Log Message: and some credits for this tree also Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.550 retrieving revision 1.551 diff -u -d -r1.550 -r1.551 --- ChangeLog 26 Sep 2002 21:52:33 -0000 1.550 +++ ChangeLog 29 Sep 2002 17:00:14 -0000 1.551 @@ -69,7 +69,7 @@ * Word-wrapping on mail notification text (Thanks, Andrew Molloy) * /topic with no argument displays the current topic (Thanks Mark Doliner) - * i18n fixes (Thanks Matt Wilson) + * i18n fixes (Thanks Matt Wilson, Ethan Blanton, A Lee) * Removed Ctrl-C binding for color * Docklet plugin--replaces the old GNOME applet. You'll need the Panel Notification Area applet for GNOME 2, or the kicker for |
From: Luke S. <lsc...@us...> - 2002-09-29 16:58:43
|
Update of /cvsroot/gaim/gaim In directory usw-pr-cvs1:/tmp/cvs-serv23733 Modified Files: Tag: gtk1-stable ChangeLog Log Message: add credits for things i've committed to this branch Index: ChangeLog =================================================================== RCS file: /cvsroot/gaim/gaim/ChangeLog,v retrieving revision 1.509.2.31 retrieving revision 1.509.2.32 diff -u -d -r1.509.2.31 -r1.509.2.32 --- ChangeLog 26 Sep 2002 21:48:24 -0000 1.509.2.31 +++ ChangeLog 29 Sep 2002 16:58:40 -0000 1.509.2.32 @@ -4,6 +4,8 @@ * Removed color keybinnding altogether. * Added a horizontal scrollbar to Edit page of buddy list. (Thanks, David Fallon) + * bug fixes. (Thanks to (in no particular order): + Ethan Blanton, Mark Doliner, Luke Schierer) version 0.59.3 (09/14/2002): * Reversed patch that accidentally caused Yahoo |
From: Sean E. <sea...@us...> - 2002-09-29 04:48:43
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv16600/src Modified Files: buddy.c multi.c server.c ui.h Log Message: You win, McQueen. Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.339 retrieving revision 1.340 diff -u -d -r1.339 -r1.340 --- buddy.c 29 Sep 2002 04:23:45 -0000 1.339 +++ buddy.c 29 Sep 2002 04:48:40 -0000 1.340 @@ -1993,35 +1993,6 @@ return g; } - -void docklet_toggle() { - /* Useful for the docklet plugin and also for the win32 tray icon*/ - /* This is called when one of those is clicked--it will show/hide the - buddy list/login window--depending on which is active */ - if (connections) { - if (GTK_WIDGET_VISIBLE(blist)) { - if (GAIM_WINDOW_ICONIFIED(blist)) { - unhide_buddy_list(); - } else { - hide_buddy_list(); - } - } else { - unhide_buddy_list(); - } - } else { - if (GTK_WIDGET_VISIBLE(mainwindow)) { - if (GAIM_WINDOW_ICONIFIED(mainwindow)) { - gtk_window_present(GTK_WINDOW(mainwindow)); - } else { - gtk_widget_hide(mainwindow); - } - } else { - gtk_window_present(GTK_WINDOW(mainwindow)); - } - } -} - - /* used by this file, and by iconaway.so */ void hide_buddy_list() { if (blist) { @@ -2072,6 +2043,33 @@ } } +void docklet_toggle() { + /* Useful for the docklet plugin and also for the win32 tray icon*/ + /* This is called when one of those is clicked--it will show/hide the + buddy list/login window--depending on which is active */ + if (connections) { + if (GTK_WIDGET_VISIBLE(blist)) { + if (GAIM_WINDOW_ICONIFIED(blist)) { + unhide_buddy_list(); + } else { + hide_buddy_list(); + } + } else { + unhide_buddy_list(); + } + } else { + if (GTK_WIDGET_VISIBLE(mainwindow)) { + if (GAIM_WINDOW_ICONIFIED(mainwindow)) { + gtk_window_present(GTK_WINDOW(mainwindow)); + } else { + gtk_widget_hide(mainwindow); + } + } else { + gtk_window_present(GTK_WINDOW(mainwindow)); + } + } +} + static gint log_timeout(struct buddy_show *b) { /* this part is really just a bad hack because of a bug I can't find */ @@ -2460,10 +2458,10 @@ } static void change_state_blist_window(GtkWidget *w, GdkEventWindowState *event, void *dummy) { - if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED && - docklet_count) { - gtk_widget_hide(blist); - } + if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED && + docklet_count) { + gtk_widget_hide(blist); + } } /******************************************************************* @@ -2501,7 +2499,7 @@ gtk_widget_add_accelerator(menuitem, "activate", accel, str[0], GDK_MOD1_MASK, GTK_ACCEL_LOCKED); - + return menuitem; } @@ -2625,7 +2623,7 @@ } } -void show_buddy_list() +void make_buddy_list() { /* Build the buddy list, based on *config */ @@ -2648,28 +2646,26 @@ GtkWidget *tbox; if (blist) { - unhide_buddy_list(); return; } blist = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_gravity(GTK_WINDOW(blist), GDK_GRAVITY_STATIC); + gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); + gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); gtk_window_set_wmclass(GTK_WINDOW(blist), "buddy_list", "Gaim"); gtk_widget_realize(blist); - gtk_window_set_gravity(GTK_WINDOW(blist), GDK_GRAVITY_STATIC); - gtk_window_set_policy(GTK_WINDOW(blist), TRUE, TRUE, TRUE); - accel = gtk_accel_group_new(); - gtk_window_add_accel_group(G_OBJECT(blist), accel); + gtk_window_add_accel_group(GTK_WINDOW(blist), accel); menubar = gtk_menu_bar_new(); menu = gtk_menu_new(); gtk_menu_set_accel_group(GTK_MENU(menu), accel); - menuitem = gaim_new_item(NULL, _("File")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu); gtk_menu_bar_append(GTK_MENU_BAR(menubar), menuitem); @@ -2687,15 +2683,13 @@ gaim_new_item_with_pixmap(menu, _("Import Buddy List"), import_small_xpm, GTK_SIGNAL_FUNC(import_callback), NULL, 0, 0, 0); - /*gaim_new_item_with_pixmap(menu, _("Export Buddy List"), export_small_xpm, - GTK_SIGNAL_FUNC(show_export_dialog), 0, 0, 0); */ + gaim_separator(menu); + gaim_new_item_with_pixmap(menu, _("Signoff"), logout_menu_xpm, GTK_SIGNAL_FUNC(signoff_all), (void*)1, 'd', GDK_CONTROL_MASK, "Ctl+D"); - gaim_new_item_with_pixmap(menu, _("Hide"), close_small_xpm, GTK_SIGNAL_FUNC(hide_buddy_list), NULL, 'h', GDK_CONTROL_MASK, "Ctl+H"); - gaim_new_item_with_pixmap(menu, _("Quit"), exit_small_xpm, GTK_SIGNAL_FUNC(do_quit), NULL, 'q', GDK_CONTROL_MASK, "Ctl+Q"); @@ -2723,8 +2717,7 @@ #endif protomenu = gtk_menu_new(); - menuitem = - gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, NULL, 0, 0, 0); + menuitem = gaim_new_item_with_pixmap(menu, _("Protocol Actions"), prefs_small_xpm, NULL, NULL, 0, 0, 0); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), protomenu); do_proto_menu(); @@ -2745,7 +2738,6 @@ gaim_new_item_with_pixmap(menu, _("Debug Window"), search_small_xpm, GTK_SIGNAL_FUNC(clicked_debug), NULL, 0, 0, NULL); gaim_new_item_with_pixmap(menu, _("About Gaim"), about_small_xpm, GTK_SIGNAL_FUNC(show_about), NULL, GDK_F1, GDK_CONTROL_MASK, NULL); - gtk_widget_show(menubar); vbox = gtk_vbox_new(FALSE, 0); @@ -2777,20 +2769,9 @@ if (!(blist_options & OPT_BLIST_NO_BUTTONS)) build_imchat_box(TRUE); - /* Swing the edit buddy */ editpane = gtk_vbox_new(FALSE, 1); - addbutton = gtk_button_new_with_label(_("Add")); - groupbutton = gtk_button_new_with_label(_("Group")); - rembutton = gtk_button_new_with_label(_("Remove")); - - if (misc_options & OPT_MISC_COOL_LOOK) { - gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE); - gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE); - } - edittree = gtk_ctree_new(1, 0); gtk_ctree_set_line_style(GTK_CTREE(edittree), GTK_CTREE_LINES_SOLID);; gtk_ctree_set_expander_style(GTK_CTREE(edittree), GTK_CTREE_EXPANDER_SQUARE); @@ -2809,7 +2790,18 @@ bbox = gtk_hbox_new(TRUE, 5); gtk_container_set_border_width(GTK_CONTAINER(bbox), 5); tbox = gtk_scrolled_window_new(NULL, NULL); - /* Put the buttons in the box */ + + /* buttons */ + addbutton = gtk_button_new_with_label(_("Add")); + groupbutton = gtk_button_new_with_label(_("Group")); + rembutton = gtk_button_new_with_label(_("Remove")); + + if (misc_options & OPT_MISC_COOL_LOOK) { + gtk_button_set_relief(GTK_BUTTON(addbutton), GTK_RELIEF_NONE); + gtk_button_set_relief(GTK_BUTTON(groupbutton), GTK_RELIEF_NONE); + gtk_button_set_relief(GTK_BUTTON(rembutton), GTK_RELIEF_NONE); + } + gtk_box_pack_start(GTK_BOX(bbox), addbutton, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), groupbutton, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(bbox), rembutton, TRUE, TRUE, 0); @@ -2818,14 +2810,14 @@ gtk_tooltips_set_tip(tips, groupbutton, _("Add a new Group"), "Penguin"); gtk_tooltips_set_tip(tips, rembutton, _("Remove selected Buddy/Group"), "Penguin"); + g_signal_connect(G_OBJECT(rembutton), "clicked", G_CALLBACK(do_del_buddy), edittree); + g_signal_connect(G_OBJECT(addbutton), "clicked", G_CALLBACK(add_buddy_callback), NULL); + g_signal_connect(G_OBJECT(groupbutton), "clicked", G_CALLBACK(add_group_callback), NULL); + /* And the boxes in the box */ gtk_box_pack_start(GTK_BOX(editpane), tbox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(editpane), bbox, FALSE, FALSE, 0); - /* Handle closes right */ - - - /* Finish up */ gtk_widget_show(addbutton); gtk_widget_show(groupbutton); @@ -2835,12 +2827,8 @@ gtk_widget_show(bbox); gtk_widget_show(editpane); - - update_button_pix(); - - label = gtk_label_new(_("Online")); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buddypane, label); label = gtk_label_new(_("Edit Buddies")); @@ -2853,47 +2841,24 @@ /* Pack things in the vbox */ gtk_widget_show(vbox); - - - gtk_widget_show(notebook); - - /* Enable buttons */ - - gtk_signal_connect(GTK_OBJECT(rembutton), "clicked", GTK_SIGNAL_FUNC(do_del_buddy), edittree); - gtk_signal_connect(GTK_OBJECT(addbutton), "clicked", GTK_SIGNAL_FUNC(add_buddy_callback), NULL); - gtk_signal_connect(GTK_OBJECT(groupbutton), "clicked", GTK_SIGNAL_FUNC(add_group_callback), - NULL); gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); - gtk_container_add(GTK_CONTAINER(blist), vbox); - gtk_signal_connect(GTK_OBJECT(blist), "delete_event", GTK_SIGNAL_FUNC(close_buddy_list), - NULL); - - gtk_signal_connect(GTK_OBJECT(blist), "configure_event", GTK_SIGNAL_FUNC(configure_blist_window), - NULL); - gtk_signal_connect(GTK_OBJECT(blist), "window_state_event", GTK_SIGNAL_FUNC(change_state_blist_window), - NULL); - - + g_signal_connect(G_OBJECT(blist), "delete_event", G_CALLBACK(close_buddy_list), NULL); + g_signal_connect(G_OBJECT(blist), "configure_event", G_CALLBACK(configure_blist_window), NULL); + g_signal_connect(G_OBJECT(blist), "window_state_event", G_CALLBACK(change_state_blist_window), NULL); /* The edit tree */ gtk_container_add(GTK_CONTAINER(tbox), edittree); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tbox), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - - gtk_window_set_title(GTK_WINDOW(blist), _("Gaim - Buddy List")); - - /* this conveniently moves it to the right place and stuff */ - unhide_buddy_list(); } -void refresh_buddy_window() +void show_buddy_list() { + make_buddy_list(); + unhide_buddy_list(); build_edit_tree(); - update_button_pix(); - gtk_widget_show(blist); } Index: multi.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/multi.c,v retrieving revision 1.130 retrieving revision 1.131 diff -u -d -r1.130 -r1.131 --- multi.c 26 Sep 2002 15:23:33 -0000 1.130 +++ multi.c 29 Sep 2002 04:48:40 -0000 1.131 @@ -1132,7 +1132,6 @@ gtk_widget_hide(mainwindow); show_buddy_list(); - refresh_buddy_window(); update_privacy_connections(); do_away_menu(); @@ -1141,8 +1140,11 @@ gaim_setup(gc); gc->user->connecting = FALSE; - connecting_count--; - + if (connecting_count) { + connecting_count--; + } + debug_printf("connecting_count: %d\n", connecting_count); + plugin_event(event_signon, gc); system_log(log_signon, gc, NULL, OPT_LOG_BUDDY_SIGNON | OPT_LOG_MY_SIGNON); @@ -1439,8 +1441,11 @@ this user was ever on-line or not */ if (gc->user->connecting) { gc->user->connecting = FALSE; - connecting_count--; + if (connecting_count) { + connecting_count--; + } } + debug_printf("connecting_count: %d\n", connecting_count); serv_close(gc); /* more UI stuff */ Index: server.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/server.c,v retrieving revision 1.239 retrieving revision 1.240 diff -u -d -r1.239 -r1.240 --- server.c 16 Sep 2002 20:42:17 -0000 1.239 +++ server.c 29 Sep 2002 04:48:40 -0000 1.240 @@ -56,6 +56,7 @@ debug_printf(PACKAGE " " VERSION " logging in %s using %s\n", user->username, p->name()); user->connecting = TRUE; connecting_count++; + debug_printf("connecting_count: %d\n", connecting_count); plugin_event(event_connecting, user); p->login(user); } Index: ui.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/ui.h,v retrieving revision 1.59 retrieving revision 1.60 diff -u -d -r1.59 -r1.60 --- ui.h 28 Sep 2002 21:39:45 -0000 1.59 +++ ui.h 29 Sep 2002 04:48:40 -0000 1.60 @@ -31,7 +31,6 @@ #define GAIM_DIALOG(x) x = gtk_window_new(GTK_WINDOW_TOPLEVEL); \ gtk_window_set_type_hint(GTK_WINDOW(x), GDK_WINDOW_TYPE_HINT_DIALOG) - #define GAIM_WINDOW_ICONIFIED(x) (gdk_window_get_state(GTK_WIDGET(x)->window) & GDK_WINDOW_STATE_ICONIFIED) #define DEFAULT_FONT_FACE "Helvetica" @@ -331,7 +330,6 @@ extern void update_all_buddies(); extern void update_num_groups(void); extern void show_buddy_list(); -extern void refresh_buddy_window(); extern void signoff_all(); extern void do_im_back(); extern void set_buddy(struct gaim_connection *, struct buddy *); @@ -349,6 +347,7 @@ extern void unhide_buddy_list(); extern void docklet_add(); extern void docklet_remove(); +extern void docklet_toggle(); /* Functions in buddy_chat.c */ extern void join_chat(); |
From: Sean E. <sea...@us...> - 2002-09-29 04:48:42
|
Update of /cvsroot/gaim/gaim/plugins/docklet In directory usw-pr-cvs1:/tmp/cvs-serv16600/plugins/docklet Modified Files: docklet.c Log Message: You win, McQueen. Index: docklet.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/docklet/docklet.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- docklet.c 26 Sep 2002 15:23:31 -0000 1.9 +++ docklet.c 29 Sep 2002 04:48:39 -0000 1.10 @@ -63,10 +63,17 @@ away_options ^= OPT_AWAY_QUEUE_UNREAD; save_prefs(); } - + +/* static void docklet_toggle_blist_show(GtkWidget *widget, void *data) { + blist_options ^= OPT_BLIST_APP_BUDDY_SHOW; + save_prefs(); +} */ + static void docklet_flush_queue() { - purge_away_queue(unread_message_queue); - unread_message_queue = NULL; + if (unread_message_queue) { + purge_away_queue(unread_message_queue); + unread_message_queue = NULL; + } } static void docklet_menu(GdkEventButton *event) { @@ -158,10 +165,9 @@ switch (event->button) { case 1: if (unread_message_queue) { - docklet_flush_queue(); + docklet_flush_queue(); docklet_update_status(); - } - else { + } else { docklet_toggle(); } break; @@ -187,8 +193,7 @@ case away_pending: filename = g_build_filename(DATADIR, "pixmaps", "gaim", "msgpend.png", NULL); break; - case unread_pending: - /* XXX MAKE ME BLINK! */ + case unread_pending: filename = g_build_filename(DATADIR, "pixmaps", "gaim", "msgunread.png", NULL); break; case connecting: @@ -249,30 +254,27 @@ } static void docklet_embedded(GtkWidget *widget, void *data) { - debug_printf("Docklet: embedded\n"); - docklet_add(); + debug_printf("Docklet: embedded\n"); + docklet_add(); } static void docklet_destroyed(GtkWidget *widget, void *data) { - debug_printf("Docklet: destroyed\n"); - docklet_flush_queue(); - docklet_remove(); - docklet_create(); + debug_printf("Docklet: destroyed\n"); + docklet_flush_queue(); + docklet_remove(); + docklet_create(); } static void docklet_create() { GtkWidget *box; - if (docklet) { - /* if this is being called when a docklet exists, it's because that - docklet is in the process of being destroyed. all we need to do - is tell gobject we're not interested in it any more, and throw - the pointer away. Alan Cox said so. */ - - /* Ooooh, look at me! I'm Robot101! I know Alan Cox! I talk to him - all the time! I'm sooooo special! --Sean Egan */ - g_object_unref(G_OBJECT(docklet)); - docklet = NULL; + if (docklet) { + /* if this is being called when a docklet exists, it's because that + docklet is in the process of being destroyed. all we need to do + is tell gobject we're not interested in it any more, and throw + the pointer away. */ + g_object_unref(G_OBJECT(docklet)); + docklet = NULL; } docklet = egg_tray_icon_new("Gaim"); @@ -312,13 +314,13 @@ docklet_update_status(); } -static void gaim_im_recv(struct gaim_connection *gc, char **who, char **what, void *data) { +static void gaim_im_displayed_recv(struct gaim_connection *gc, char **who, char **what, void *data) { /* if message queuing while away is enabled, this event could be the first message so we need to see if the status (and hence icon) needs changing */ docklet_update_status(); } -static void gaim_buddy_signon(struct gaim_connection *gc, char *who, void *data) { +/* static void gaim_buddy_signon(struct gaim_connection *gc, char *who, void *data) { } static void gaim_buddy_signoff(struct gaim_connection *gc, char *who, void *data) { @@ -331,7 +333,7 @@ } static void gaim_new_conversation(char *who, void *data) { -} +} */ char *gaim_plugin_init(GModule *handle) { docklet_create(); @@ -340,74 +342,71 @@ gaim_signal_connect(handle, event_signoff, gaim_signoff, NULL); gaim_signal_connect(handle, event_connecting, gaim_connecting, NULL); gaim_signal_connect(handle, event_away, gaim_away, NULL); - gaim_signal_connect(handle, event_im_displayed_rcvd, gaim_im_recv, NULL); - gaim_signal_connect(handle, event_im_recv, gaim_im_recv, NULL); - gaim_signal_connect(handle, event_buddy_signon, gaim_buddy_signon, NULL); + gaim_signal_connect(handle, event_im_displayed_rcvd, gaim_im_displayed_recv, NULL); +/* gaim_signal_connect(handle, event_buddy_signon, gaim_buddy_signon, NULL); gaim_signal_connect(handle, event_buddy_signoff, gaim_buddy_signoff, NULL); gaim_signal_connect(handle, event_buddy_away, gaim_buddy_away, NULL); gaim_signal_connect(handle, event_buddy_back, gaim_buddy_back, NULL); - gaim_signal_connect(handle, event_new_conversation, gaim_new_conversation, NULL); + gaim_signal_connect(handle, event_new_conversation, gaim_new_conversation, NULL); */ return NULL; } void gaim_plugin_remove() { - if (GTK_WIDGET_VISIBLE(docklet)) { - docklet_remove(); - } + if (GTK_WIDGET_VISIBLE(docklet)) { + docklet_remove(); + } - docklet_flush_queue(); + docklet_flush_queue(); - g_object_unref(G_OBJECT(docklet)); - g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_destroyed), NULL); - gtk_widget_destroy(GTK_WIDGET(docklet)); + g_object_unref(G_OBJECT(docklet)); + g_signal_handlers_disconnect_by_func(G_OBJECT(docklet), G_CALLBACK(docklet_destroyed), NULL); + gtk_widget_destroy(GTK_WIDGET(docklet)); - debug_printf("Docklet: removed\n"); + debug_printf("Docklet: removed\n"); } -static void config_close() { - configwin = NULL; -} +GtkWidget *gaim_plugin_config_gtk() { + GtkWidget *frame; + GtkWidget *vbox, *hbox; + GtkWidget *toggle; -void gaim_plugin_config() { - /* This is the sorriest dialog ever written ever */ - /* It's a good thing I plan on rewriting it later tonight */ - GtkWidget *button; - GtkWidget *vbox; + frame = gtk_vbox_new(FALSE, 18); + gtk_container_set_border_width(GTK_CONTAINER(frame), 12); - if (configwin) - return; - GAIM_DIALOG(configwin); - g_signal_connect(G_OBJECT(configwin), "destroy", GTK_SIGNAL_FUNC(config_close), NULL); + vbox = make_frame(frame, _("Docklet Configuration")); + hbox = gtk_hbox_new(FALSE, 18); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - vbox = gtk_vbox_new(0, 6); - gtk_container_add(GTK_CONTAINER(configwin), vbox); - gtk_window_set_title(GTK_WINDOW(configwin), "Docklet Configuration"); - - button = gtk_check_button_new_with_mnemonic("_Hide new messages until docklet is clicked"); - gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), away_options & OPT_AWAY_QUEUE_UNREAD); - g_signal_connect(G_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(docklet_toggle_queue), NULL); - gtk_box_pack_end(GTK_BOX(vbox), button, 0, 0, 0); +/* toggle = gtk_check_button_new_with_mnemonic(_("_Automatically show buddy list on sign on")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), blist_options & OPT_BLIST_APP_BUDDY_SHOW); + g_signal_connect(G_OBJECT(toggle), "clicked", G_CALLBACK(docklet_toggle_blist_show), NULL); + gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0); */ - gtk_widget_show_all(configwin); + toggle = gtk_check_button_new_with_mnemonic(_("_Hide new messages until docklet is clicked")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle), away_options & OPT_AWAY_QUEUE_UNREAD); + g_signal_connect(G_OBJECT(toggle), "clicked", G_CALLBACK(docklet_toggle_queue), NULL); + gtk_box_pack_start(GTK_BOX(vbox), toggle, FALSE, FALSE, 0); + + gtk_widget_show_all(frame); + return frame; } - + struct gaim_plugin_description desc; struct gaim_plugin_description *gaim_plugin_desc() { desc.api_version = PLUGIN_API_VERSION; - desc.name = g_strdup("System Tray Docklet"); + desc.name = g_strdup(_("System Tray Docklet")); desc.version = g_strdup(VERSION); - desc.description = g_strdup("Interacts with a System Tray applet (in GNOME or KDE, for example) to display the current status of Gaim, allow fast access to commonly used functions, and to toggle display of the buddy list or login window."); - desc.authors = g_strdup("Robert McQueen <rob...@de...>"); + desc.description = g_strdup(_("Interacts with a System Tray applet (in GNOME or KDE, for example) to display the current status of Gaim, allow fast access to commonly used functions, and to toggle display of the buddy list or login window.")); + desc.authors = g_strdup(_("Robert McQueen <rob...@de...>")); desc.url = g_strdup(WEBSITE); return &desc; } - -const char *name() { +char *name() { return _("System Tray Docklet"); } -const char *description() { +char *description() { return _("Interacts with a System Tray applet (in GNOME or KDE, for example) to display the current status of Gaim, allow fast access to commonly used functions, and to toggle display of the buddy list or login window."); } |
From: Sean E. <sea...@us...> - 2002-09-29 04:48:42
|
Update of /cvsroot/gaim/gaim/plugins In directory usw-pr-cvs1:/tmp/cvs-serv16600/plugins Modified Files: SIGNALS Log Message: You win, McQueen. Index: SIGNALS =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/SIGNALS,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- SIGNALS 26 Sep 2002 15:23:30 -0000 1.32 +++ SIGNALS 29 Sep 2002 04:48:39 -0000 1.33 @@ -344,8 +344,8 @@ access any data related to the conversation without breaking anything. - 'c' is he conversation being closed. - + 'c' is the conversation being closed. + event_connecting: struct aim_user *u @@ -355,5 +355,5 @@ being called, depending upon whether the attempt was a sucess or a failure. In both cases, u->connecting is set to false and the counter decremented. - + 'u' is the account being connected. |
From: Luke S. <lsc...@us...> - 2002-09-29 04:26:53
|
Update of /cvsroot/gaim/gaim/src/protocols/irc In directory usw-pr-cvs1:/tmp/cvs-serv13400/src/protocols/irc Modified Files: irc.c Log Message: fix situation when you have no alias since we removed the url from the realname now defaults to "gaim" when there is no alias Index: irc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/irc/irc.c,v retrieving revision 1.85 retrieving revision 1.86 diff -u -d -r1.85 -r1.86 --- irc.c 28 Sep 2002 03:48:28 -0000 1.85 +++ irc.c 29 Sep 2002 04:26:50 -0000 1.86 @@ -1320,7 +1320,7 @@ g_snprintf(buf, sizeof(buf), "USER %s %s %s :%s\r\n", g_get_user_name(), hostname, gc->user->proto_opt[USEROPT_SERV], - gc->user->alias); + gc->user->alias ? gc->user->alias : "gaim"); if (irc_write(idata->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error"); signoff(gc); |
From: Luke S. <lsc...@us...> - 2002-09-29 04:23:48
|
Update of /cvsroot/gaim/gaim/src In directory usw-pr-cvs1:/tmp/cvs-serv12957/src Modified Files: buddy.c Log Message: yeah! a patch for the focus problems from paco-paco Index: buddy.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/buddy.c,v retrieving revision 1.338 retrieving revision 1.339 diff -u -d -r1.338 -r1.339 --- buddy.c 26 Sep 2002 21:46:53 -0000 1.338 +++ buddy.c 29 Sep 2002 04:23:45 -0000 1.339 @@ -601,6 +601,7 @@ set_convo_gc(c, b->connlist->data); if (im_options & OPT_IM_ONE_WINDOW) raise_convo_tab(c); + gtk_widget_grab_focus(c->entry); } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { static GtkWidget *menu = NULL; static GList *mo_top = NULL; |