[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.282 and 1.283

version 1.282, 2021/03/11 07:08:18 version 1.283, 2021/04/12 06:50:25
Line 100 
Line 100 
 #define FORMAT_QUOTE_STYLE 0x2000  #define FORMAT_QUOTE_STYLE 0x2000
 #define FORMAT_WINDOW_NAME 0x4000  #define FORMAT_WINDOW_NAME 0x4000
 #define FORMAT_SESSION_NAME 0x8000  #define FORMAT_SESSION_NAME 0x8000
   #define FORMAT_CHARACTER 0x10000
   
 /* Limit on recursion. */  /* Limit on recursion. */
 #define FORMAT_LOOP_LIMIT 10  #define FORMAT_LOOP_LIMIT 10
Line 3522 
Line 3523 
   
         /*          /*
          * Modifiers are a ; separated list of the forms:           * Modifiers are a ; separated list of the forms:
          *      l,m,C,b,d,n,t,w,q,E,T,S,W,P,<,>           *      l,m,C,a,b,d,n,t,w,q,E,T,S,W,P,<,>
          *      =a           *      =a
          *      =/a           *      =/a
          *      =/a/           *      =/a/
Line 3539 
Line 3540 
                         cp++;                          cp++;
   
                 /* Check single character modifiers with no arguments. */                  /* Check single character modifiers with no arguments. */
                 if (strchr("lbdnwETSWP<>", cp[0]) != NULL &&                  if (strchr("labdnwETSWP<>", cp[0]) != NULL &&
                     format_is_end(cp[1])) {                      format_is_end(cp[1])) {
                         format_add_modifier(&list, count, cp, 1, NULL, 0);                          format_add_modifier(&list, count, cp, 1, NULL, 0);
                         cp++;                          cp++;
Line 3956 
Line 3957 
                 mright = (long long)mright;                  mright = (long long)mright;
         }          }
         format_log(es, "expression left side is: %.*f", prec, mleft);          format_log(es, "expression left side is: %.*f", prec, mleft);
         format_log(es, "expression right side is:  %.*f", prec, mright);          format_log(es, "expression right side is: %.*f", prec, mright);
   
         switch (operator) {          switch (operator) {
         case ADD:          case ADD:
Line 4016 
Line 4017 
 {  {
         struct format_tree               *ft = es->ft;          struct format_tree               *ft = es->ft;
         struct window_pane               *wp = ft->wp;          struct window_pane               *wp = ft->wp;
         const char                       *errptr, *copy, *cp, *marker = NULL;          const char                       *errstr, *copy, *cp, *marker = NULL;
         const char                       *time_format = NULL;          const char                       *time_format = NULL;
         char                             *copy0, *condition, *found, *new;          char                             *copy0, *condition, *found, *new;
         char                             *value, *left, *right;          char                             *value, *left, *right, c;
         size_t                            valuelen;          size_t                            valuelen;
         int                               modifiers = 0, limit = 0, width = 0;          int                               modifiers = 0, limit = 0, width = 0;
         int                               j;          int                               j;
Line 4063 
Line 4064 
                                 if (fm->argc < 1)                                  if (fm->argc < 1)
                                         break;                                          break;
                                 limit = strtonum(fm->argv[0], INT_MIN, INT_MAX,                                  limit = strtonum(fm->argv[0], INT_MIN, INT_MAX,
                                     &errptr);                                      &errstr);
                                 if (errptr != NULL)                                  if (errstr != NULL)
                                         limit = 0;                                          limit = 0;
                                 if (fm->argc >= 2 && fm->argv[1] != NULL)                                  if (fm->argc >= 2 && fm->argv[1] != NULL)
                                         marker = fm->argv[1];                                          marker = fm->argv[1];
Line 4073 
Line 4074 
                                 if (fm->argc < 1)                                  if (fm->argc < 1)
                                         break;                                          break;
                                 width = strtonum(fm->argv[0], INT_MIN, INT_MAX,                                  width = strtonum(fm->argv[0], INT_MIN, INT_MAX,
                                     &errptr);                                      &errstr);
                                 if (errptr != NULL)                                  if (errstr != NULL)
                                         width = 0;                                          width = 0;
                                 break;                                  break;
                         case 'w':                          case 'w':
Line 4088 
Line 4089 
                         case 'l':                          case 'l':
                                 modifiers |= FORMAT_LITERAL;                                  modifiers |= FORMAT_LITERAL;
                                 break;                                  break;
                           case 'a':
                                   modifiers |= FORMAT_CHARACTER;
                                   break;
                         case 'b':                          case 'b':
                                 modifiers |= FORMAT_BASENAME;                                  modifiers |= FORMAT_BASENAME;
                                 break;                                  break;
Line 4151 
Line 4155 
         /* Is this a literal string? */          /* Is this a literal string? */
         if (modifiers & FORMAT_LITERAL) {          if (modifiers & FORMAT_LITERAL) {
                 value = xstrdup(copy);                  value = xstrdup(copy);
                   goto done;
           }
   
           /* Is this a character? */
           if (modifiers & FORMAT_CHARACTER) {
                   new = format_expand1(es, copy);
                   c = strtonum(new, 32, 126, &errstr);
                   if (errstr != NULL)
                           value = xstrdup("");
                   else
                           xasprintf(&value, "%c", c);
                   free (new);
                 goto done;                  goto done;
         }          }
   

Legend:
Removed from v.1.282  
changed lines
  Added in v.1.283