Stick a local in front of your declaration of the C variable so that your macro doesn't collide with any other poorly named leaked globals also named C in any addons you use.
Code:
/run local C={GetCursorInfo()}if C and (C[1]=="merchant")then BuyMerchantItem(C[2],20)PickupMerchantItem(C[2])end