Annotation of embedaddon/confuse/tests/quote_before_print.c, revision 1.1.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>