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

Diff for /src/usr.bin/tmux/cmd-display-panes.c between version 1.12 and 1.13

version 1.12, 2016/01/19 15:59:12 version 1.13, 2016/06/16 10:55:47
Line 18 
Line 18 
   
 #include <sys/types.h>  #include <sys/types.h>
   
   #include <ctype.h>
   #include <stdlib.h>
   
 #include "tmux.h"  #include "tmux.h"
   
 /*  /*
  * Display panes on a client.   * Display panes on a client.
  */   */
   
 enum cmd_retval  cmd_display_panes_exec(struct cmd *, struct cmd_q *);  static enum cmd_retval   cmd_display_panes_exec(struct cmd *, struct cmd_q *);
   
   static void              cmd_display_panes_callback(struct client *,
                                struct window_pane *);
   
 const struct cmd_entry cmd_display_panes_entry = {  const struct cmd_entry cmd_display_panes_entry = {
         .name = "display-panes",          .name = "display-panes",
         .alias = "displayp",          .alias = "displayp",
   
         .args = { "t:", 0, 0 },          .args = { "t:", 0, 1 },
         .usage = CMD_TARGET_CLIENT_USAGE,          .usage = CMD_TARGET_CLIENT_USAGE,
   
         .tflag = CMD_CLIENT,          .tflag = CMD_CLIENT,
Line 39 
Line 45 
         .exec = cmd_display_panes_exec          .exec = cmd_display_panes_exec
 };  };
   
 enum cmd_retval  static enum cmd_retval
 cmd_display_panes_exec(__unused struct cmd *self, struct cmd_q *cmdq)  cmd_display_panes_exec(struct cmd *self, struct cmd_q *cmdq)
 {  {
         server_set_identify(cmdq->state.c);          struct args     *args = self->args;
           struct client   *c = cmdq->state.c;
   
           if (c->identify_callback != NULL)
                   return (CMD_RETURN_NORMAL);
   
           c->identify_callback = cmd_display_panes_callback;
           if (args->argc != 0)
                   c->identify_callback_data = xstrdup(args->argv[0]);
           else
                   c->identify_callback_data = xstrdup("select-pane -t '%%'");
   
           server_set_identify(c);
   
         return (CMD_RETURN_NORMAL);          return (CMD_RETURN_NORMAL);
   }
   
   static void
   cmd_display_panes_callback(struct client *c, struct window_pane *wp)
   {
           struct cmd_list *cmdlist;
           char            *template, *cmd, *expanded, *cause;
   
           template = c->identify_callback_data;
           if (wp != NULL) {
                   xasprintf(&expanded, "%%%u", wp->id);
                   cmd = cmd_template_replace(template, expanded, 1);
   
                   if (cmd_string_parse(cmd, &cmdlist, NULL, 0, &cause) != 0) {
                           if (cause != NULL) {
                                   *cause = toupper((u_char) *cause);
                                   status_message_set(c, "%s", cause);
                                   free(cause);
                           }
                   } else {
                           cmdq_run(c->cmdq, cmdlist, NULL);
                           cmd_list_free(cmdlist);
                   }
   
                   free(cmd);
                   free(expanded);
           }
   
           free(c->identify_callback_data);
           c->identify_callback_data = NULL;
           c->identify_callback = NULL;
 }  }

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13