From 8478895eeb014a4219c4d61edd598c05b073db68 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 22 Mar 2013 15:51:54 +0000 Subject: [PATCH] Add -e flag to capture-pane to include embedded ANSI SGR escape sequences, from George Nachman. --- tmux.1 | 9 +++++---- tmux.h | 14 +++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/tmux.1 b/tmux.1 index 674b6506..9f48c78f 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1036,9 +1036,9 @@ By default, it uses the format but a different format may be specified with .Fl F . .It Xo Ic capture-pane +.Op Fl e .Op Fl p .Op Fl b Ar buffer-index -.Op Fl c Ar target-client .Op Fl E Ar end-line .Op Fl S Ar start-line .Op Fl t Ar target-pane @@ -1047,11 +1047,12 @@ but a different format may be specified with Capture the contents of a pane. If .Fl p -is given, the output goes to -.Ar target-client -stdout, otherwise to the buffer specified with +is given, the output goes to stdout, otherwise to the buffer specified with .Fl b or a new buffer if omitted. +If +.Fl e +is given, the output includes escape sequences for text and background attributes. .Pp .Fl S and diff --git a/tmux.h b/tmux.h index 849ee827..deb52da1 100644 --- a/tmux.h +++ b/tmux.h @@ -1366,8 +1366,10 @@ struct cmd_ctx { * cmdclient and curclient may both be NULL if the command is in the * configuration file. */ - struct client *curclient; - struct client *cmdclient; + struct client *curclient; + struct client *cmdclient; + + int references; struct msg_command_data *msgdata; @@ -1714,13 +1716,14 @@ long long args_strtonum( struct args *, u_char, long long, long long, char **); /* cmd.c */ +struct cmd_ctx *cmd_get_ctx(void); +void cmd_free_ctx(struct cmd_ctx *); +void cmd_ref_ctx(struct cmd_ctx *); int cmd_pack_argv(int, char **, char *, size_t); int cmd_unpack_argv(char *, size_t, int, char ***); char **cmd_copy_argv(int, char *const *); void cmd_free_argv(int, char **); struct cmd *cmd_parse(int, char **, char **); -enum cmd_retval cmd_exec(struct cmd *, struct cmd_ctx *); -void cmd_free(struct cmd *); size_t cmd_print(struct cmd *, char *, size_t); struct session *cmd_current_session(struct cmd_ctx *, int); struct client *cmd_current_client(struct cmd_ctx *); @@ -1974,7 +1977,8 @@ void grid_clear(struct grid *, u_int, u_int, u_int, u_int); void grid_clear_lines(struct grid *, u_int, u_int); void grid_move_lines(struct grid *, u_int, u_int, u_int); void grid_move_cells(struct grid *, u_int, u_int, u_int, u_int); -char *grid_string_cells(struct grid *, u_int, u_int, u_int); +char *grid_string_cells(struct grid *, u_int, u_int, u_int, + struct grid_cell **, int); void grid_duplicate_lines( struct grid *, u_int, struct grid *, u_int, u_int); u_int grid_reflow(struct grid *, struct grid *, u_int);