UI_STRING
#define sk_UI_STRING_new(cmp) SKM_sk_new(UI_STRING, (cmp))
#define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING)
#define sk_UI_STRING_free(st) SKM_sk_free(UI_STRING, (st))
#define sk_UI_STRING_num(st) SKM_sk_num(UI_STRING, (st))
#define sk_UI_STRING_value(st, i) SKM_sk_value(UI_STRING, (st), (i))
#define sk_UI_STRING_set(st, i, val) SKM_sk_set(UI_STRING, (st), (i), (val))
#define sk_UI_STRING_zero(st) SKM_sk_zero(UI_STRING, (st))
#define sk_UI_STRING_push(st, val) SKM_sk_push(UI_STRING, (st), (val))
#define sk_UI_STRING_unshift(st, val) SKM_sk_unshift(UI_STRING, (st), (val))
#define sk_UI_STRING_find(st, val) SKM_sk_find(UI_STRING, (st), (val))
#define sk_UI_STRING_delete(st, i) SKM_sk_delete(UI_STRING, (st), (i))
#define sk_UI_STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(UI_STRING, (st), (ptr))
#define sk_UI_STRING_insert(st, val, i) SKM_sk_insert(UI_STRING, (st), (val), (i))
#define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp))
#define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st)
#define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func))
#define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st))
#define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st))
#define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st))
#define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st))
DECLARE_STACK_OF(UI_STRING)
int (*writer)(UI *ui, UI_STRING *uis));
int (*reader)(UI *ui, UI_STRING *uis));
int (*UI_method_get_writer(const UI_METHOD *method))(UI *, UI_STRING *);
int (*UI_method_get_reader(const UI_METHOD *method))(UI *, UI_STRING *);
enum UI_string_types UI_get_string_type(UI_STRING *uis);
int UI_get_input_flags(UI_STRING *uis);
const char *UI_get0_output_string(UI_STRING *uis);
const char *UI_get0_action_string(UI_STRING *uis);
const char *UI_get0_result_string(UI_STRING *uis);
const char *UI_get0_test_string(UI_STRING *uis);
int UI_get_result_minsize(UI_STRING *uis);
int UI_get_result_maxsize(UI_STRING *uis);
int UI_set_result(UI *ui, UI_STRING *uis, const char *result);
static UI_STRING *
UI_STRING *uis = NULL;
if ((uis = calloc(1, sizeof(UI_STRING))) == NULL) {
UI_STRING *s;
UI_STRING *s = NULL;
UI_STRING uis;
UI_method_set_writer(UI_METHOD *method, int (*writer)(UI *ui, UI_STRING *uis))
UI_method_set_reader(UI_METHOD *method, int (*reader)(UI *ui, UI_STRING *uis))
(*UI_method_get_writer(const UI_METHOD *method))(UI *, UI_STRING *)
(*UI_method_get_reader(const UI_METHOD *method))(UI *, UI_STRING *)
UI_get_string_type(UI_STRING *uis)
UI_get_input_flags(UI_STRING *uis)
UI_get0_output_string(UI_STRING *uis)
UI_get0_action_string(UI_STRING *uis)
UI_get0_result_string(UI_STRING *uis)
UI_get0_test_string(UI_STRING *uis)
UI_get_result_minsize(UI_STRING *uis)
UI_get_result_maxsize(UI_STRING *uis)
UI_set_result(UI *ui, UI_STRING *uis, const char *result)
free_string(UI_STRING *uis)
STACK_OF(UI_STRING) *strings; /* We might want to prompt for more
int (*ui_write_string)(UI *ui, UI_STRING *uis);
int (*ui_read_string)(UI *ui, UI_STRING *uis);
static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl);
static int read_string(UI *ui, UI_STRING *uis);
static int write_string(UI *ui, UI_STRING *uis);
write_string(UI *ui, UI_STRING *uis)
read_string(UI *ui, UI_STRING *uis)
read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
ui_read(UI *ui, UI_STRING *uis)
ui_write(UI *ui, UI_STRING *uis)
int ui_read(UI *ui, UI_STRING *uis);
int ui_write(UI *ui, UI_STRING *uis);