This patch changes the smart card debugging output in an attempt to make smart card problems easier to debug. rdesktop committers, please do NOT commit this patch as is: it is quite inefficient.
As rdesktop CVS HEAD stands, it puts out debugging messages that contain memory addresses and unique IDs. This is not bad, but if you have one environment in which something works and one in which it doesn't, it's very hard to find any meaningful differences in the debug output using a diff tool, because every unique ID is a difference.
This patch makes the debugging output more concise, and replaces unique IDs (such as smart card contexts) with three-letter serial numbers, so that the value of an ID as printed depends on the order in which it was obtained since rdesktop started.
The reason it is inefficient is that it builds a straight list of IDs and linearly searches through that list every time an ID needs to be printed - which is every time anything happens with the smartcard. In my test cases, some lists can grow at a rate of one entry per wall-clock second of rdesktop runtime.