static void cmd_show_options_print(struct cmd *self, struct cmdq_item *item, struct options_entry *o, int idx) { struct options_array_item *a; const char *name = options_name(o); char *value, *tmp = NULL, *escaped; if (idx != -1) { xasprintf(&tmp, "%s[%d]", name, idx); name = tmp; } else { if (options_isarray(o)) { a = options_array_first(o); if (a == NULL) { if (!args_has(self->args, 'v')) cmdq_print(item, "%s", name); return; } while (a != NULL) { idx = options_array_item_index(a); cmd_show_options_print(self, item, o, idx); a = options_array_next(a); } return; } } value = options_tostring(o, idx, 0); if (args_has(self->args, 'v')) cmdq_print(item, "%s", value); else if (options_isstring(o)) { utf8_stravis(&escaped, value, VIS_OCTAL|VIS_TAB|VIS_NL|VIS_DQ); cmdq_print(item, "%s \"%s\"", name, escaped); free(escaped); } else cmdq_print(item, "%s %s", name, value); free(value); free(tmp); }
/* Set screen title. */ void screen_set_title(struct screen *s, const char *title) { free(s->title); utf8_stravis(&s->title, title, VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL); }