Esempio n. 1
0
/* 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);
}
Esempio n. 2
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);
}