Hi, I think there's a problem with ungetkey method in zile it calls curses ungetch method which guarantees correctness only for 1 call. I have encountered several times when trying to replay some macros with eg. C-u 100 prefix that Zile crashed or behaved strangely.
I've tested it with Zile 2.3.9. I send a changed getkey.c method which creates internal buffer for ungetkey'ed keys which, I think, fixes this problem. I haven't coded in C for a long time and haven't ever used gnulib, so there may be some silly mistakes.