1

Re: Macro Recording Self Reference Infinite Loop Bug

Macro recording can cause an infinite loop that freezes VS.  Reproduce steps:
Start recording a macro via "qa".  Do something and then type "@a" while the macro is still being recorded.  End the recording via "q".  Play back the macro via "@a".  Now ViEmu goes into an infinite loop and freezes VS.  Circular reasoning may be fun in a debate but not in a program.

2

Re: Macro Recording Self Reference Infinite Loop Bug

I've started looking into this. There is already a protection so that the @a while recording doesn't act (it beeps), to avoid the recursion, but there isn't such a protection when playing it back. I have to look into it in detail, as the way it's done the fix is not obvious: I don't do explicit recursion, I push keypresses in a queue, which is necessary for some of the other required behavior, but this makes it more difficult to detect the case you describe.

I'll post back here as soon as I have a solution.

Thanks,

  - Jon