From 2db5f9c21528e9a604af6e5d82689af93028d28b Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 1 Aug 2019 08:42:34 +0000 Subject: [PATCH] Add -N to capture-pane to preserve trailing spaces, from Leon Winter. --- cmd-capture-pane.c | 9 +++++---- tmux.1 | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/cmd-capture-pane.c b/cmd-capture-pane.c index a3ec066c..fc6c26e4 100644 --- a/cmd-capture-pane.c +++ b/cmd-capture-pane.c @@ -39,8 +39,8 @@ const struct cmd_entry cmd_capture_pane_entry = { .name = "capture-pane", .alias = "capturep", - .args = { "ab:CeE:JpPqS:t:", 0, 0 }, - .usage = "[-aCeJpPq] " CMD_BUFFER_USAGE " [-E end-line] " + .args = { "ab:CeE:JNpPqS:t:", 0, 0 }, + .usage = "[-aCeJNpPq] " CMD_BUFFER_USAGE " [-E end-line] " "[-S start-line] " CMD_TARGET_PANE_USAGE, .target = { 't', CMD_FIND_PANE, 0 }, @@ -110,7 +110,7 @@ cmd_capture_pane_history(struct args *args, struct cmdq_item *item, struct grid *gd; const struct grid_line *gl; struct grid_cell *gc = NULL; - int n, with_codes, escape_c0, join_lines; + int n, with_codes, escape_c0, join_lines, no_trim; u_int i, sx, top, bottom, tmp; char *cause, *buf, *line; const char *Sflag, *Eflag; @@ -170,11 +170,12 @@ cmd_capture_pane_history(struct args *args, struct cmdq_item *item, with_codes = args_has(args, 'e'); escape_c0 = args_has(args, 'C'); join_lines = args_has(args, 'J'); + no_trim = args_has(args, 'N'); buf = NULL; for (i = top; i <= bottom; i++) { line = grid_string_cells(gd, 0, i, sx, &gc, with_codes, - escape_c0, !join_lines); + escape_c0, !join_lines && !no_trim); linelen = strlen(line); buf = cmd_capture_pane_append(buf, len, line, linelen); diff --git a/tmux.1 b/tmux.1 index 9f219ffe..20863dfa 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1642,7 +1642,7 @@ By default, it uses the format but a different format may be specified with .Fl F . .It Xo Ic capture-pane -.Op Fl aepPqCJ +.Op Fl aepPqCJN .Op Fl b Ar buffer-name .Op Fl E Ar end-line .Op Fl S Ar start-line @@ -1667,8 +1667,10 @@ is given, the output includes escape sequences for text and background attributes. .Fl C also escapes non-printable characters as octal \exxx. +.Fl N +preserves trailing spaces at each line's end and .Fl J -joins wrapped lines and preserves trailing spaces at each line's end. +preserves trailing spaces and joins any wrapped lines. .Fl P captures only any output that the pane has received that is the beginning of an as-yet incomplete escape sequence.