this adds two new macro subroutines for handling timeouts
timeoutid timer_add(string macro_subroutine_name, int timeout_in_msec);
void timer_remove(timeoutid id);
there can be a problem on LP64 architectures, the nedit macro language have only int support but the XtIntervalId is defined as unsigned long, so there can be domain error, I try to catch this error.
The code to call a macro subroutine is from the Patch Collection patch (see applyFileOpenHook())