(1) sounds strange, I did take a look at our client, and it was just a few lines of code for the above mentioned contortion ;-)
I think you end up doing a bit more contortion if you want to show your self-presence actually allowing for other resources, though. Then you have to compare your local presence and priority with the presence/priority of all your other resources... and even still, you do not necessarily /guarantee/ an accurate result if the server modifies your presence in any way (changing priority due to some service, for instance).
My present solution, for instance, is just that I always add my own local-presence to my self-contact as if I were getting the presence incoming, but I had someone log a bug the other day because a service on their system which alters their outgoing priority/status in certain situations was not reflected in their local contact. But, not getting presence for my own resource, I could only really work with on what I was sending out.
My issue is not that the code /difficult/ to implement, just that you end up having to write special-case code which is not guaranteed to actually solve the special case. I cannot envision a situation where a client /breaks/ by expecting this behavior on an older server, other than simply not necessarily displaying the proper presence for yourself if you are in your own roster. :)
-- Rachel Blackman <[EMAIL PROTECTED]> Trillian Messenger - http://www.trillianastra.com/
