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

Diff for /src/usr.bin/tmux/cmd-find.c between version 1.39 and 1.40

version 1.39, 2016/10/18 12:51:26 version 1.40, 2016/11/16 00:24:03
Line 658 
Line 658 
         /* Check for pane ids starting with %. */          /* Check for pane ids starting with %. */
         if (*pane == '%') {          if (*pane == '%') {
                 fs->wp = window_pane_find_by_id_str(pane);                  fs->wp = window_pane_find_by_id_str(pane);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 fs->w = fs->wp->window;                  fs->w = fs->wp->window;
                 return (cmd_find_best_session_with_window(fs));                  return (cmd_find_best_session_with_window(fs));
Line 695 
Line 695 
         /* Check for pane ids starting with %. */          /* Check for pane ids starting with %. */
         if (*pane == '%') {          if (*pane == '%') {
                 fs->wp = window_pane_find_by_id_str(pane);                  fs->wp = window_pane_find_by_id_str(pane);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 fs->w = fs->wp->window;                  fs->w = fs->wp->window;
                 return (cmd_find_best_winlink_with_window(fs));                  return (cmd_find_best_winlink_with_window(fs));
Line 727 
Line 727 
         /* Check for pane ids starting with %. */          /* Check for pane ids starting with %. */
         if (*pane == '%') {          if (*pane == '%') {
                 fs->wp = window_pane_find_by_id_str(pane);                  fs->wp = window_pane_find_by_id_str(pane);
                 if (fs->wp == NULL || fs->wp->window != fs->w)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                   if (fs->wp->window != fs->w)
                           return (-1);
                 return (0);                  return (0);
         }          }
   
Line 737 
Line 739 
                 if (fs->w->last == NULL)                  if (fs->w->last == NULL)
                         return (-1);                          return (-1);
                 fs->wp = fs->w->last;                  fs->wp = fs->w->last;
                   if (fs->wp == NULL || window_pane_outside(fs->wp))
                           return (-1);
                 return (0);                  return (0);
         } else if (strcmp(pane, "{up-of}") == 0) {          } else if (strcmp(pane, "{up-of}") == 0) {
                 fs->wp = window_pane_find_up(fs->w->active);                  fs->wp = window_pane_find_up(fs->w->active);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 return (0);                  return (0);
         } else if (strcmp(pane, "{down-of}") == 0) {          } else if (strcmp(pane, "{down-of}") == 0) {
                 fs->wp = window_pane_find_down(fs->w->active);                  fs->wp = window_pane_find_down(fs->w->active);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 return (0);                  return (0);
         } else if (strcmp(pane, "{left-of}") == 0) {          } else if (strcmp(pane, "{left-of}") == 0) {
                 fs->wp = window_pane_find_left(fs->w->active);                  fs->wp = window_pane_find_left(fs->w->active);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 return (0);                  return (0);
         } else if (strcmp(pane, "{right-of}") == 0) {          } else if (strcmp(pane, "{right-of}") == 0) {
                 fs->wp = window_pane_find_right(fs->w->active);                  fs->wp = window_pane_find_right(fs->w->active);
                 if (fs->wp == NULL)                  if (fs->wp == NULL || window_pane_outside(fs->wp))
                         return (-1);                          return (-1);
                 return (0);                  return (0);
         }          }
Line 771 
Line 775 
                         fs->wp = window_pane_next_by_number(fs->w, wp, n);                          fs->wp = window_pane_next_by_number(fs->w, wp, n);
                 else                  else
                         fs->wp = window_pane_previous_by_number(fs->w, wp, n);                          fs->wp = window_pane_previous_by_number(fs->w, wp, n);
                 if (fs->wp != NULL)                  if (fs->wp != NULL && !window_pane_outside(fs->wp))
                         return (0);                          return (0);
         }          }
   
Line 779 
Line 783 
         idx = strtonum(pane, 0, INT_MAX, &errstr);          idx = strtonum(pane, 0, INT_MAX, &errstr);
         if (errstr == NULL) {          if (errstr == NULL) {
                 fs->wp = window_pane_at_index(fs->w, idx);                  fs->wp = window_pane_at_index(fs->w, idx);
                 if (fs->wp != NULL)                  if (fs->wp != NULL && !window_pane_outside(fs->wp))
                         return (0);                          return (0);
         }          }
   
         /* Try as a description. */          /* Try as a description. */
         fs->wp = window_find_string(fs->w, pane);          fs->wp = window_find_string(fs->w, pane);
         if (fs->wp != NULL)          if (fs->wp != NULL && !window_pane_outside(fs->wp))
                 return (0);                  return (0);
   
         return (-1);          return (-1);
Line 837 
Line 841 
   
         if (!window_has_pane(fs->w, fs->wp))          if (!window_has_pane(fs->w, fs->wp))
                 return (0);                  return (0);
         return (window_pane_visible(fs->wp));          return (!window_pane_outside(fs->wp));
 }  }
   
 /* Copy a state. */  /* Copy a state. */
Line 945 
Line 949 
 {  {
         if (cmd_find_from_window(fs, wp->window) != 0)          if (cmd_find_from_window(fs, wp->window) != 0)
                 return (-1);                  return (-1);
           if (window_pane_outside(wp))
                   return (-1);
         fs->wp = wp;          fs->wp = wp;
   
         cmd_find_log_state(__func__, fs);          cmd_find_log_state(__func__, fs);
Line 1012 
Line 1018 
                 switch (type) {                  switch (type) {
                 case CMD_FIND_PANE:                  case CMD_FIND_PANE:
                         fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl);                          fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl);
                         if (fs->wp != NULL)                          if (fs->wp != NULL && !window_pane_outside(fs->wp))
                                 fs->w = fs->wl->window;                                  fs->w = fs->wl->window;
                         break;                          break;
                 case CMD_FIND_WINDOW:                  case CMD_FIND_WINDOW:

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40