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

Reply via email to