Java does . . . undesirable thing to token IDs when there are only numbers, and no letters. (It treats it as a number, and strips off leading zeroes - those should all be the same length.)
The quick and dirty fix is to copy the token, and paste it back in, creating a copy, and delete the original. The forces a new id, which will usually be alpha-numeric.
If you have a bunch, and either don't have a lot of macros to fix or are still writing macros, you can try working with this:
Code: Select all
[h,if(isNumber(id)): switchToken(strformat("%032d", id));switchToken(id)]<BR>
swithToken is the function (you'd need to change that to selectTokens), the if statement forces any purely numeric id to be treated as a string, and pads the beginning with the right number of spaces.
I haven't tested this, but it should be close (assuming I didn't mistype anything):
Code: Select all
[h, if(matches(name, targetName) == 1): if(isNumber(id)): selectTokens(strformat("%032d", id));selectTokens(id)(id, 1)]