The branch, master has been updated via 2a9a75a569f6932afeb00d7506f370c4044d5eea (commit) via 5f8138faf551c3678de3c92c5764e2e7edfc4602 (commit) via 160e3e2be3543377925551146403933a7c631f51 (commit) via d88c381ce912dfc48fc2d53ed020bf2016f4b509 (commit) via 7a0c94b28ab96d32dcbd98cfad54662f67875332 (commit) from f495b150fa06cf0556159fe15e0dd2e0a09bb445 (commit)
- Log ----------------------------------------------------------------- commit 2a9a75a569f6932afeb00d7506f370c4044d5eea Merge: 5f8138f f495b15 Author: Thomas Adam <tho...@xteddy.org> Commit: Thomas Adam <tho...@xteddy.org> Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code compat/asprintf.c | 2 + configure.ac | 88 ++++++++++++++++++++++++++-------------------------- 2 files changed, 46 insertions(+), 44 deletions(-) commit 5f8138faf551c3678de3c92c5764e2e7edfc4602 Merge: ccbe254 160e3e2 Author: Thomas Adam <tho...@xteddy.org> Commit: Thomas Adam <tho...@xteddy.org> Merge branch 'obsd-master' Conflicts: format.c format.c | 8 +++++++- server.c | 1 + tmux.1 | 1 + tmux.h | 1 + window-copy.c | 23 +++++++++++++++++++++-- window.c | 2 ++ 6 files changed, 33 insertions(+), 3 deletions(-) diff --cc format.c index fff9a69,c5ede2b..80bcc46 --- a/format.c +++ b/format.c @@@ -17,7 -17,7 +17,8 @@@ */ #include <sys/types.h> +#include <sys/param.h> + #include <sys/wait.h> #include <ctype.h> #include <errno.h> @@@ -581,7 -581,8 +582,8 @@@ format_window_pane(struct format_tree * struct grid_line *gl; unsigned long long size; u_int i, idx; - char *cmd; + char *cmd, *cwd; + int status; if (ft->w == NULL) ft->w = wp->window; diff --cc tmux.1 index 726f23a,5154adb..1346076 --- a/tmux.1 +++ b/tmux.1 @@@ -3120,8 -3116,8 +3120,9 @@@ The following variables are available, .It Li "pane_active" Ta "" Ta "1 if active pane" .It Li "pane_bottom" Ta "" Ta "Bottom of pane" .It Li "pane_current_command" Ta "" Ta "Current command if available" +.It Li "pane_current_path" Ta "" Ta "Current path if available" .It Li "pane_dead" Ta "" Ta "1 if pane is dead" + .It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane" .It Li "pane_height" Ta "" Ta "Height of pane" .It Li "pane_id" Ta "#D" Ta "Unique pane ID" .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode" commit 160e3e2be3543377925551146403933a7c631f51 Author: nicm <nicm> Commit: nicm <nicm> Notify on zoom/unzoom, from George Nachmann. --- window.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/window.c b/window.c index 0144cdc..0206c6c 100644 --- a/window.c +++ b/window.c @@ -491,6 +491,7 @@ window_zoom(struct window_pane *wp) w->saved_layout_root = w->layout_root; layout_init(w, wp); w->flags |= WINDOW_ZOOMED; + notify_window_layout_changed(w); return (0); } @@ -512,6 +513,7 @@ window_unzoom(struct window *w) wp->saved_layout_cell = NULL; } layout_fix_panes(w, w->sx, w->sy); + notify_window_layout_changed(w); return (0); } commit d88c381ce912dfc48fc2d53ed020bf2016f4b509 Author: nicm <nicm> Commit: nicm <nicm> Only redraw affected lines when selection changes with mouse. From Michael Graczyk. --- window-copy.c | 23 +++++++++++++++++++++-- 1 files changed, 21 insertions(+), 2 deletions(-) diff --git a/window-copy.c b/window-copy.c index f597332..8aae09b 100644 --- a/window-copy.c +++ b/window-copy.c @@ -33,6 +33,7 @@ int window_copy_key_numeric_prefix(struct window_pane *, int); void window_copy_mouse(struct window_pane *, struct session *, struct mouse_event *); +void window_copy_redraw_selection(struct window_pane *, u_int); void window_copy_redraw_lines(struct window_pane *, u_int, u_int); void window_copy_redraw_screen(struct window_pane *); void window_copy_write_line(struct window_pane *, struct screen_write_ctx *, @@ -874,7 +875,7 @@ window_copy_mouse(struct window_pane *wp, struct session *sess, { struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; - u_int i; + u_int i, old_cy; if (m->x >= screen_size_x(s)) return; @@ -907,9 +908,10 @@ window_copy_mouse(struct window_pane *wp, struct session *sess, */ if (s->mode & MODE_MOUSE_BUTTON) { if (~m->event & MOUSE_EVENT_UP) { + old_cy = data->cy; window_copy_update_cursor(wp, m->x, m->y); if (window_copy_update_selection(wp, 1)) - window_copy_redraw_screen(wp); + window_copy_redraw_selection(wp, old_cy); return; } goto reset_mode; @@ -1246,6 +1248,23 @@ window_copy_write_lines(struct window_pane *wp, struct screen_write_ctx *ctx, } void +window_copy_redraw_selection(struct window_pane *wp, u_int old_y) +{ + struct window_copy_mode_data *data = wp->modedata; + u_int new_y, start, end; + + new_y = data->cy; + if (old_y <= new_y) { + start = old_y; + end = new_y; + } else { + start = new_y; + end = old_y; + } + window_copy_redraw_lines(wp, start, end - start + 1); +} + +void window_copy_redraw_lines(struct window_pane *wp, u_int py, u_int ny) { struct window_copy_mode_data *data = wp->modedata; commit 7a0c94b28ab96d32dcbd98cfad54662f67875332 Author: nicm <nicm> Commit: nicm <nicm> Add pane_dead_status for exit status of dead panes. --- format.c | 8 +++++++- server.c | 1 + tmux.1 | 1 + tmux.h | 1 + 4 files changed, 10 insertions(+), 1 deletions(-) diff --git a/format.c b/format.c index 87d6cd4..c5ede2b 100644 --- a/format.c +++ b/format.c @@ -17,6 +17,7 @@ */ #include <sys/types.h> +#include <sys/wait.h> #include <ctype.h> #include <errno.h> @@ -581,6 +582,7 @@ format_window_pane(struct format_tree *ft, struct window_pane *wp) unsigned long long size; u_int i, idx; char *cmd; + int status; if (ft->w == NULL) ft->w = wp->window; @@ -604,9 +606,13 @@ format_window_pane(struct format_tree *ft, struct window_pane *wp) format_add(ft, "pane_title", "%s", wp->base.title); format_add(ft, "pane_id", "%%%u", wp->id); format_add(ft, "pane_active", "%d", wp == wp->window->active); - format_add(ft, "pane_dead", "%d", wp->fd == -1); format_add(ft, "pane_input_off", "%d", !!(wp->flags & PANE_INPUTOFF)); + status = wp->status; + if (wp->fd == -1 && WIFEXITED(status)) + format_add(ft, "pane_dead_status", "%d", WEXITSTATUS(status)); + format_add(ft, "pane_dead", "%d", wp->fd == -1); + if (window_pane_visible(wp)) { format_add(ft, "pane_left", "%u", wp->xoff); format_add(ft, "pane_top", "%u", wp->yoff); diff --git a/server.c b/server.c index db26130..26bfddf 100644 --- a/server.c +++ b/server.c @@ -441,6 +441,7 @@ server_child_exited(pid_t pid, int status) continue; TAILQ_FOREACH(wp, &w->panes, entry) { if (wp->pid == pid) { + wp->status = status; server_destroy_pane(wp); break; } diff --git a/tmux.1 b/tmux.1 index 63ab82b..5154adb 100644 --- a/tmux.1 +++ b/tmux.1 @@ -3117,6 +3117,7 @@ The following variables are available, where appropriate: .It Li "pane_bottom" Ta "" Ta "Bottom of pane" .It Li "pane_current_command" Ta "" Ta "Current command if available" .It Li "pane_dead" Ta "" Ta "1 if pane is dead" +.It Li "pane_dead_status" Ta "" Ta "Exit status of process in dead pane" .It Li "pane_height" Ta "" Ta "Height of pane" .It Li "pane_id" Ta "#D" Ta "Unique pane ID" .It Li "pane_in_mode" Ta "" Ta "If pane is in a mode" diff --git a/tmux.h b/tmux.h index d8cb5da..aff664c 100644 --- a/tmux.h +++ b/tmux.h @@ -890,6 +890,7 @@ struct window_pane { pid_t pid; char tty[TTY_NAME_MAX]; + int status; u_int changes; struct event changes_timer; ----------------------------------------------------------------------- Summary of changes: format.c | 8 +++++++- server.c | 1 + tmux.1 | 1 + tmux.h | 1 + window-copy.c | 23 +++++++++++++++++++++-- window.c | 2 ++ 6 files changed, 33 insertions(+), 3 deletions(-) hooks/post-receive -- tmux ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk _______________________________________________ tmux-cvs mailing list tmux-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-cvs