/* ARGSUSED */ int cmd_list_buffers_exec(unused struct cmd *self, struct cmd_ctx *ctx) { struct paste_buffer *pb; u_int idx; char *tmp; idx = 0; while ((pb = paste_walk_stack(&global_buffers, &idx)) != NULL) { tmp = paste_print(pb, 50); ctx->print(ctx, "%u: %zu bytes: \"%s\"", idx - 1, pb->size, tmp); xfree(tmp); } return (0); }
int cmd_list_buffers_exec(struct cmd *self, struct cmd_ctx *ctx) { struct cmd_target_data *data = self->data; struct session *s; struct paste_buffer *pb; u_int idx; char *tmp; if ((s = cmd_find_session(ctx, data->target)) == NULL) return (-1); idx = 0; while ((pb = paste_walk_stack(&s->buffers, &idx)) != NULL) { tmp = paste_print(pb, 50); ctx->print(ctx, "%u: %zu bytes: \"%s\"", idx - 1, pb->size, tmp); xfree(tmp); } return (0); }
int cmd_list_buffers_exec(struct cmd *self, struct cmd_ctx *ctx) { struct cmd_target_data *data = self->data; struct session *s; struct paste_buffer *pb; u_int idx; char tmp[51 * 4 + 1]; size_t size, len; if ((s = cmd_find_session(ctx, data->target)) == NULL) return (-1); idx = 0; while ((pb = paste_walk_stack(&s->buffers, &idx)) != NULL) { size = pb->size; /* Translate the first 50 characters. */ len = size; if (len > 50) len = 50; strvisx(tmp, pb->data, len, VIS_OCTAL|VIS_TAB|VIS_NL); /* * If the first 50 characters were encoded as a longer string, * or there is definitely more data, add "...". */ if (size > 50 || strlen(tmp) > 50) { tmp[50 - 3] = '\0'; strlcat(tmp, "...", sizeof tmp); } ctx->print(ctx, "%u: %zu bytes: \"%s\"", idx - 1, size, tmp); } return (0); }