-#define TR_FUNC(value) ((const char*) (value))
-#define NonNull(s) ((s) != 0 ? s : "<null>")
-#define NonEmpty(s) ((s) != 0 && *(s) != '\0')
+#define TR_FUNC_BFR(max) char tr_func_data[max][(sizeof(void *) + sizeof(void (*)(void))) * 2 + 4]
+#define TR_FUNC_ARG(num,func) _nc_fmt_funcptr(&tr_func_data[num][0], (const char *)&(func), sizeof((func)))