static void test_filter_printf(void) { assert(filter_result_len("meno %u", "doof", NULL) == 10); assert(filter_result_len("meno %u %u", "doof", NULL) == 15); assert(filter_result_len("%u meno %u", "doof", NULL) == 15); assert(filter_result_len("%u me %u no %u", "doof", NULL) == 21); assert(filter_result_len("meno %w %%u", "doof", NULL) == 14); assert(filter_result_len("meno %w %%u meno", "doof", NULL) == 19); assert(filter_result_len("meno ", "doof", NULL) == 6); assert(!strcmp(filter_printf("meno %u", "doof"), "meno doof")); assert(!strcmp(filter_printf("meno %u %u", "doof"), "meno doof doof")); assert(!strcmp(filter_printf("%u meno %u", "doof"), "doof meno doof")); assert(!strcmp(filter_printf("%u me %u no %u", "doof"), "doof me doof no doof")); assert(!strcmp(filter_printf("meno %w %%u", "doof"), "meno %w %doof")); assert(!strcmp(filter_printf("meno %w %%u meno", "doof"), "meno %w %doof meno")); assert(!strcmp(filter_printf("meno ", "doof"), "meno ")); printf("test_filter_printf OK\n"); }
char *filter_printf(YubiMem *ym, const char *filter, const char *user) { char *result = y_alloc(ym, filter_result_len(filter, user, NULL) + 1); filter_result_len(filter, user, result); return result; }
char *filter_printf(const char *filter, const char *user) { char *result = malloc(filter_result_len(filter, user, NULL)); filter_result_len(filter, user, result); return result; }