Annotation of embedaddon/confuse/tests/quote_before_print.c, revision 1.1
1.1 ! misho 1: /* Check that double quotes gets escaped when printing the config with
! 2: * cfg_print. Also backslashes needs to be escaped.
! 3: */
! 4:
! 5: #include <stdio.h>
! 6: #include <string.h>
! 7:
! 8: #include "check_confuse.h"
! 9:
! 10: cfg_opt_t opts[] =
! 11: {
! 12: CFG_STR("parameter", NULL, CFGF_NONE),
! 13: CFG_END()
! 14: };
! 15:
! 16: int
! 17: main(void)
! 18: {
! 19: cfg_t *cfg = cfg_init(opts, CFGF_NONE);
! 20: fail_unless(cfg);
! 21:
! 22: /* set a string parameter to a string including a quote character
! 23: */
! 24: cfg_setstr(cfg, "parameter", "text \" with quotes and \\");
! 25:
! 26: /* print the config to a temporary file
! 27: */
! 28: FILE *fp = tmpfile();
! 29: fail_unless(fp);
! 30: cfg_print(cfg, fp);
! 31: cfg_free(cfg);
! 32:
! 33: /* read it back, we expect 'parameter' to include a quote character
! 34: */
! 35: rewind(fp);
! 36: cfg = cfg_init(opts, CFGF_NONE);
! 37: fail_unless(cfg);
! 38: fail_unless(cfg_parse_fp(cfg, fp) == CFG_SUCCESS);
! 39: fail_unless(fclose(fp) == 0);
! 40:
! 41: char *param = cfg_getstr(cfg, "parameter");
! 42: fail_unless(param);
! 43:
! 44: fail_unless(strcmp(param, "text \" with quotes and \\") == 0);
! 45: cfg_free(cfg);
! 46:
! 47: return 0;
! 48: }
! 49:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>