> Thanks for your contribution! Please test my munging of both codes! It's basically all there, a few issues, though:
Checking for any sign is pointless in digitsright. Checking for the minus sign is wrong in digitsleft, because the format string we create won't ever print '+'; but since '-' might be printed, it needs to be accounted for. When finding the number of digits to the right, do not include digitsright(end). It's not a factor, since (start*k*step) will never have more right digits than MAX(right(start), right(step)). End isn't guaranteed to be printed. After some testing I realized that my regex was inaccurate--I forgot to encase it in '^$'. If everyone here's cool with REG_EXTENDED, I changed it to "^([^%]|%%)*%[ +-]?[0-9]*.?[0-9]*[fFgGeE]([^%]|%%)*$" Which seemed clearer, and survived more testing. At the end, and all those checks to make sure we count the right way are really ugly. Using multiplication, I clear this all up. For what it's worth, getopt is preventing us from dealing with negatives right now. I've attached a patch against tip with my changes.
seq-changes.diff
Description: Binary data