diff options
author | Thomas Adam <thomas@xteddy.org> | 2014-10-29 12:50:05 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2014-10-29 12:51:21 +0000 |
commit | 35ffd093d724053046ae49984af0beb0530e5560 (patch) | |
tree | d5b89a213621dc56b852fc7eb8a1daba12046830 /cfg.c | |
parent | 201036ad80f2e51f7238db2adf05914a4a4f5819 (diff) | |
parent | 10a9440055ccdda5788965bcb048207eab2a0548 (diff) | |
download | rtmux-35ffd093d724053046ae49984af0beb0530e5560.tar.gz rtmux-35ffd093d724053046ae49984af0beb0530e5560.tar.bz2 rtmux-35ffd093d724053046ae49984af0beb0530e5560.zip |
Merge branch 'obsd-master'
Conflicts:
Makefile
cmd-link-window.c
cmd-unlink-window.c
Diffstat (limited to 'cfg.c')
-rw-r--r-- | cfg.c | 34 |
1 files changed, 30 insertions, 4 deletions
@@ -29,7 +29,7 @@ struct cmd_q *cfg_cmd_q; int cfg_finished; int cfg_references; -struct causelist cfg_causes; +ARRAY_DECL (, char *) cfg_causes = ARRAY_INITIALIZER; struct client *cfg_client; int @@ -39,7 +39,7 @@ load_cfg(const char *path, struct cmd_q *cmdq, char **cause) char delim[3] = { '\\', '\\', '\0' }; u_int found; size_t line = 0; - char *buf, *cause1, *msg, *p; + char *buf, *cause1, *p; struct cmd_list *cmdlist; log_debug("loading %s", path); @@ -66,8 +66,7 @@ load_cfg(const char *path, struct cmd_q *cmdq, char **cause) free(buf); if (cause1 == NULL) continue; - xasprintf(&msg, "%s:%zu: %s", path, line, cause1); - ARRAY_ADD(&cfg_causes, msg); + cfg_add_cause("%s:%zu: %s", path, line, cause1); free(cause1); continue; } @@ -113,6 +112,33 @@ cfg_default_done(unused struct cmd_q *cmdq) } void +cfg_add_cause(const char* fmt, ...) +{ + va_list ap; + char* msg; + + va_start(ap, fmt); + xvasprintf(&msg, fmt, ap); + va_end (ap); + + ARRAY_ADD(&cfg_causes, msg); +} + +void +cfg_print_causes(struct cmd_q *cmdq) +{ + char *cause; + u_int i; + + for (i = 0; i < ARRAY_LENGTH(&cfg_causes); i++) { + cause = ARRAY_ITEM(&cfg_causes, i); + cmdq_print(cmdq, "%s", cause); + free(cause); + } + ARRAY_FREE(&cfg_causes); +} + +void cfg_show_causes(struct session *s) { struct window_pane *wp; |