- fprintf(stream, "\toption '%s'", uci_escape(ctx, opt->e.name));
- fprintf(stream, " '%s'\n", uci_escape(ctx, opt->value));
+ switch(opt->type) {
+ case UCI_TYPE_STRING:
+ fprintf(stream, "\toption '%s'", uci_escape(ctx, opt->e.name));
+ fprintf(stream, " '%s'\n", uci_escape(ctx, opt->v.string));
+ break;
+ case UCI_TYPE_LIST:
+ uci_foreach_element(&opt->v.list, i) {
+ fprintf(stream, "\tlist '%s'", uci_escape(ctx, opt->e.name));
+ fprintf(stream, " '%s'\n", uci_escape(ctx, i->name));
+ }
+ break;
+ default:
+ fprintf(stream, "\t# unknown type for option '%s'\n", uci_escape(ctx, opt->e.name));
+ break;
+ }