}
#define FUNC_BIND(NAME,FUNCTYPE,TYPE) \
-int bind_NAME(FUNCTYPE *func) { \
+int bind_##NAME(FUNCTYPE *func) { \
if(!is_bound(TYPE, func)) { \
- struct binding *bind = malloc(sizeof(*bind)); \
- if (!bind) { \
+ struct binding *cbind = malloc(sizeof(*cbind)); \
+ if (!cbind) { \
perror("malloc() failed"); \
return 0; \
} \
- bind->func = func; \
- bind->next = binds[TYPE]; \
- binds[TYPE] = bind; \
+ cbind->func = func; \
+ cbind->next = binds[TYPE]; \
+ binds[TYPE] = cbind; \
return 1; \
} \
}
#define FUNC_UNBIND(NAME,FUNCTYPE,TYPE) \
-void unbind_NAME(FUNCTYPE *func) { \
+void unbind_##NAME(FUNCTYPE *func) { \
struct binding *cbind, *last = NULL, *next; \
for(cbind = binds[TYPE]; cbind; cbind = next) { \
next = cbind->next; \
if(last) \
last->next = cbind->next; \
else \
- binds[TYPE] = cbind->next \
+ binds[TYPE] = cbind->next; \
free(cbind); \
} else \
last = cbind; \
}
#define FUNC_EVENT(NAME,FUNCTYPE,TYPE,PDECLARATION,PLIST) \
-int event_NAME(PDECLARATION) { \
+int event_##NAME(PDECLARATION) { \
struct binding *cbind; \
for(cbind = binds[TYPE]; cbind; cbind = next) { \
FUNCTYPE *func = cbind->func; \