Patches on the 1.4 milestone
Moses Lei
bugs at moseslei.net
Tue Sep 21 01:38:52 UTC 2010
Hi Evan (and everyone else),
Thanks for the info. This is the result of my further research on this bug
(this is also posted on the ticket: <
http://trac.adium.im/ticket/14026#comment:19>).
Okay. I added some debug statements and this is what I found:
updateUser is called from adiumPurpleConvUpdateUser, and the alias that's
passed to updateUser is cb->alias, which is from the PurpleConvChatBuddy.
This is the behavior I saw:
* For XMPP, this alias is your group chat nick
* For IRC, it's the alias from your buddy list.
I don't understand why though. It seems like the thing that should be
returned for IRC is the preferred capitalization of their nick. As it
stands, there doesn't seem to be a way to access the preferred
capitalization of their chat nick if you have an alias in the buddy list,
because the one that's in the PurpleConvChatBuddy will be the buddy list
alias. (If you don't have an alias set and they are not on your buddy
list, the alias is their preferred capitalization of the nick.)
I'm not sure I can fix this bug in any clean way if the behavior between
protocols is not the same.
Any ideas?
Moses
On Sun, Aug 15, 2010 at 5:09 PM, Evan Schoenberg, M.D. <evan at adium.im>wrote:
>
> On Jun 11, 2010, at 1:07 PM, Moses Lei wrote:
>
> Sorry for the long delay; this has languished near the bottom of my inbox
> for some time.
>
> For #14026 I'm having trouble figuring out what exactly sets the value
> returned by aliasForContact for IRC. Specifically I'm trying to figure out
> how to make sure that aliasForContact (which should probably be renamed
> "nickForContact" to reduce confusion with contact aliases) always returns
> the nick of the IRC contact, not the contact's alias.
>
>
> Libpurple provides us with updates on users via
> static void adiumPurpleConvUpdateUser(PurpleConversation *conv, const char*user)
>
> in adiumPurpleConvUpdateUser(), based on information provided by the
> server.
>
> That calls to AiAccount's
> - (void)updateUser:(NSString *)user
> forChat:(AIChat *)chat
> flags:(AIGroupChatFlags)flags
> alias:(NSString *)alias
> attributes:(NSDictionary *)attributes
>
> Which then calls -[AIChat setAlias:forContact:].
>
> If an update for a given user is never received, then the contact's own
> alias (as known by Adium through other means, such as something the user set
> or something that was pulled from the address book) is used.
>
> Does that help?
>
> Cheers,
> Evan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20100920/61ba3f13/attachment-0002.html>
More information about the devel
mailing list