version 1.75, 2019/09/10 07:50:33 |
version 1.76, 2019/12/12 11:39:56 |
|
|
cmdq_guard(struct cmdq_item *item, const char *guard, int flags) |
cmdq_guard(struct cmdq_item *item, const char *guard, int flags) |
{ |
{ |
struct client *c = item->client; |
struct client *c = item->client; |
|
long t = item->time; |
|
u_int number = item->number; |
|
|
if (c == NULL || !(c->flags & CLIENT_CONTROL)) |
if (c != NULL && (c->flags & CLIENT_CONTROL)) |
return; |
file_print(c, "%%%s %ld %u %d\n", guard, t, number, flags); |
|
|
evbuffer_add_printf(c->stdout_data, "%%%s %ld %u %d\n", guard, |
|
(long)item->time, item->number, flags); |
|
server_client_push_stdout(c); |
|
} |
} |
|
|
/* Show message from command. */ |
/* Show message from command. */ |
|
|
char *tmp, *msg; |
char *tmp, *msg; |
|
|
va_start(ap, fmt); |
va_start(ap, fmt); |
|
xvasprintf(&msg, fmt, ap); |
|
va_end(ap); |
|
|
|
log_debug("%s: %s", __func__, msg); |
|
|
if (c == NULL) |
if (c == NULL) |
/* nothing */; |
/* nothing */; |
else if (c->session == NULL || (c->flags & CLIENT_CONTROL)) { |
else if (c->session == NULL || (c->flags & CLIENT_CONTROL)) { |
if (~c->flags & CLIENT_UTF8) { |
if (~c->flags & CLIENT_UTF8) { |
xvasprintf(&tmp, fmt, ap); |
tmp = msg; |
msg = utf8_sanitize(tmp); |
msg = utf8_sanitize(tmp); |
free(tmp); |
free(tmp); |
evbuffer_add(c->stdout_data, msg, strlen(msg)); |
} |
free(msg); |
file_print(c, "%s\n", msg); |
} else |
|
evbuffer_add_vprintf(c->stdout_data, fmt, ap); |
|
evbuffer_add(c->stdout_data, "\n", 1); |
|
server_client_push_stdout(c); |
|
} else { |
} else { |
wp = c->session->curw->window->active; |
wp = c->session->curw->window->active; |
wme = TAILQ_FIRST(&wp->modes); |
wme = TAILQ_FIRST(&wp->modes); |
|
|
window_copy_vadd(wp, fmt, ap); |
window_copy_vadd(wp, fmt, ap); |
} |
} |
|
|
va_end(ap); |
free(msg); |
} |
} |
|
|
/* Show error from command. */ |
/* Show error from command. */ |
|
|
struct cmd *cmd = item->cmd; |
struct cmd *cmd = item->cmd; |
va_list ap; |
va_list ap; |
char *msg; |
char *msg; |
size_t msglen; |
|
char *tmp; |
char *tmp; |
|
|
va_start(ap, fmt); |
va_start(ap, fmt); |
msglen = xvasprintf(&msg, fmt, ap); |
xvasprintf(&msg, fmt, ap); |
va_end(ap); |
va_end(ap); |
|
|
log_debug("%s: %s", __func__, msg); |
log_debug("%s: %s", __func__, msg); |
|
|
tmp = msg; |
tmp = msg; |
msg = utf8_sanitize(tmp); |
msg = utf8_sanitize(tmp); |
free(tmp); |
free(tmp); |
msglen = strlen(msg); |
|
} |
} |
evbuffer_add(c->stderr_data, msg, msglen); |
file_error(c, "%s\n", msg); |
evbuffer_add(c->stderr_data, "\n", 1); |
|
server_client_push_stderr(c); |
|
c->retval = 1; |
c->retval = 1; |
} else { |
} else { |
*msg = toupper((u_char) *msg); |
*msg = toupper((u_char) *msg); |