| 48 | } |
| 49 | |
| 50 | void pushident(ident &id, char *val, int context = execcontext) |
| 51 | { |
| 52 | if(id.type != ID_ALIAS) { delete[] val; return; } |
| 53 | int d = 0; |
| 54 | for(identstack *s = id.stack; s; s = s->next, d++) { if(d > CSLIMIT_PUSHLEVEL) { cslimiterr("push level"); delete[] val; return; } } |
| 55 | identstack *stack = new identstack; |
| 56 | stack->action = id.executing==id.action ? newstring(id.action) : id.action; |
| 57 | stack->context = id.context; |
| 58 | stack->next = id.stack; |
| 59 | id.stack = stack; |
| 60 | id.action = val; |
| 61 | id.context = context; |
| 62 | } |
| 63 | |
| 64 | void popident(ident &id) |
| 65 | { |
no test coverage detected