[BACK]Return to cmd-list-panes.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-list-panes.c between version 1.8 and 1.9

version 1.8, 2011/03/27 20:27:26 version 1.9, 2011/03/28 23:13:00
Line 28 
Line 28 
   
 int     cmd_list_panes_exec(struct cmd *, struct cmd_ctx *);  int     cmd_list_panes_exec(struct cmd *, struct cmd_ctx *);
   
   void    cmd_list_panes_server(struct cmd_ctx *);
   void    cmd_list_panes_session(struct session *, struct cmd_ctx *);
   void    cmd_list_panes_window(struct winlink *, struct cmd_ctx *);
   
 const struct cmd_entry cmd_list_panes_entry = {  const struct cmd_entry cmd_list_panes_entry = {
         "list-panes", "lsp",          "list-panes", "lsp",
         "t:", 0, 0,          "ast:", 0, 0,
         CMD_TARGET_WINDOW_USAGE,          "[-as] [-t target]",
         0,          0,
         NULL,          NULL,
         NULL,          NULL,
Line 41 
Line 45 
 int  int
 cmd_list_panes_exec(struct cmd *self, struct cmd_ctx *ctx)  cmd_list_panes_exec(struct cmd *self, struct cmd_ctx *ctx)
 {  {
         struct args             *args = self->args;          struct args     *args = self->args;
         struct winlink          *wl;          struct session  *s;
           struct winlink  *wl;
   
           if (args_has(args, 'a'))
                   cmd_list_panes_server(ctx);
           else if (args_has(args, 's')) {
                   s = cmd_find_session(ctx, args_get(args, 't'));
                   if (s == NULL)
                           return (-1);
                   cmd_list_panes_session(s, ctx);
           } else {
                   wl = cmd_find_window(ctx, args_get(args, 't'), NULL);
                   if (wl == NULL)
                           return (-1);
                   cmd_list_panes_window(wl, ctx);
           }
   
           return (0);
   }
   
   void
   cmd_list_panes_server(struct cmd_ctx *ctx)
   {
           struct session  *s;
   
           RB_FOREACH(s, sessions, &sessions)
                   cmd_list_panes_session(s, ctx);
   }
   
   void
   cmd_list_panes_session(struct session *s, struct cmd_ctx *ctx)
   {
           struct winlink  *wl;
   
           RB_FOREACH(wl, winlinks, &s->windows)
                   cmd_list_panes_window(wl, ctx);
   }
   
   void
   cmd_list_panes_window(struct winlink *wl, struct cmd_ctx *ctx)
   {
         struct window_pane      *wp;          struct window_pane      *wp;
         struct grid             *gd;          struct grid             *gd;
         struct grid_line        *gl;          struct grid_line        *gl;
         u_int                    i, n;          u_int                    i, n;
         unsigned long long       size;          unsigned long long       size;
   
         if ((wl = cmd_find_window(ctx, args_get(args, 't'), NULL)) == NULL)  
                 return (-1);  
   
         n = 0;          n = 0;
         TAILQ_FOREACH(wp, &wl->window->panes, entry) {          TAILQ_FOREACH(wp, &wl->window->panes, entry) {
                 gd = wp->base.grid;                  gd = wp->base.grid;
Line 64 
Line 105 
                 }                  }
                 size += gd->hsize * sizeof *gd->linedata;                  size += gd->hsize * sizeof *gd->linedata;
   
                 ctx->print(ctx, "%u: [%ux%u] [history %u/%u, %llu bytes] %%%u%s%s",                  ctx->print(ctx,
                       "%u: [%ux%u] [history %u/%u, %llu bytes] %%%u%s%s",
                     n, wp->sx, wp->sy, gd->hsize, gd->hlimit, size, wp->id,                      n, wp->sx, wp->sy, gd->hsize, gd->hlimit, size, wp->id,
                     wp == wp->window->active ? " (active)" : "",                      wp == wp->window->active ? " (active)" : "",
                     wp->fd == -1 ? " (dead)" : "");                      wp->fd == -1 ? " (dead)" : "");
                 n++;                  n++;
         }          }
   
         return (0);  
 }  }

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9