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

Diff for /src/usr.bin/tmux/format.c between version 1.195 and 1.196

version 1.195, 2019/05/25 16:51:10 version 1.196, 2019/05/26 12:02:42
Line 755 
Line 755 
         }          }
 }  }
   
   /* Add item bits to tree. */
   static void
   format_create_add_item(struct format_tree *ft, struct cmdq_item *item)
   {
           if (item->cmd != NULL)
                   format_add(ft, "command", "%s", item->cmd->entry->name);
           if (item->shared != NULL && item->shared->formats != NULL)
                   format_merge(ft, item->shared->formats);
   }
   
 /* Create a new tree. */  /* Create a new tree. */
 struct format_tree *  struct format_tree *
 format_create(struct client *c, struct cmdq_item *item, int tag, int flags)  format_create(struct client *c, struct cmdq_item *item, int tag, int flags)
Line 800 
Line 810 
         format_add(ft, "window_menu", "%s", DEFAULT_WINDOW_MENU);          format_add(ft, "window_menu", "%s", DEFAULT_WINDOW_MENU);
         format_add(ft, "pane_menu", "%s", DEFAULT_PANE_MENU);          format_add(ft, "pane_menu", "%s", DEFAULT_PANE_MENU);
   
         if (item != NULL) {          if (item != NULL)
                 if (item->cmd != NULL)                  format_create_add_item(ft, item);
                         format_add(ft, "command", "%s", item->cmd->entry->name);  
                 if (item->shared != NULL && item->shared->formats != NULL)  
                         format_merge(ft, item->shared->formats);  
         }  
   
         return (ft);          return (ft);
 }  }
Line 1408 
Line 1414 
     char **buf, size_t *len, size_t *off)      char **buf, size_t *len, size_t *off)
 {  {
         struct window_pane      *wp = ft->wp;          struct window_pane      *wp = ft->wp;
         const char              *errptr, *copy, *cp;          const char              *errptr, *copy, *cp, *marker;
         char                    *copy0, *condition, *found, *new;          char                    *copy0, *condition, *found, *new;
         char                    *value, *left, *right;          char                    *value, *left, *right;
         size_t                   valuelen;          size_t                   valuelen;
Line 1448 
Line 1454 
                                 sub = fm;                                  sub = fm;
                                 break;                                  break;
                         case '=':                          case '=':
                                 if (fm->argc != 1)                                  if (fm->argc != 1 && fm->argc != 2)
                                         break;                                          break;
                                 limit = strtonum(fm->argv[0], INT_MIN, INT_MAX,                                  limit = strtonum(fm->argv[0], INT_MIN, INT_MAX,
                                     &errptr);                                      &errptr);
                                 if (errptr != NULL)                                  if (errptr != NULL)
                                         limit = 0;                                          limit = 0;
                                   if (fm->argc == 2 && fm->argv[1] != NULL)
                                           marker = fm->argv[1];
                                   else
                                           marker = NULL;
                                 break;                                  break;
                         case 'l':                          case 'l':
                                 modifiers |= FORMAT_LITERAL;                                  modifiers |= FORMAT_LITERAL;
Line 1668 
Line 1678 
         /* Truncate the value if needed. */          /* Truncate the value if needed. */
         if (limit > 0) {          if (limit > 0) {
                 new = format_trim_left(value, limit);                  new = format_trim_left(value, limit);
                 format_log(ft, "applied length limit %d: %s", limit, new);                  if (marker != NULL && strcmp(new, value) != 0) {
                 free(value);                          free(value);
                 value = new;                          xasprintf(&value, "%s%s", new, marker);
                   } else {
                           free(value);
                           value = new;
                   }
                   format_log(ft, "applied length limit %d: %s", limit, value);
         } else if (limit < 0) {          } else if (limit < 0) {
                 new = format_trim_right(value, -limit);                  new = format_trim_right(value, -limit);
                 format_log(ft, "applied length limit %d: %s", limit, new);                  if (marker != NULL && strcmp(new, value) != 0) {
                 free(value);                          free(value);
                 value = new;                          xasprintf(&value, "%s%s", marker, new);
                   } else {
                           free(value);
                           value = new;
                   }
                   format_log(ft, "applied length limit %d: %s", limit, value);
         }          }
   
         /* Expand the buffer and copy in the value. */          /* Expand the buffer and copy in the value. */

Legend:
Removed from v.1.195  
changed lines
  Added in v.1.196