[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.271 and 1.272

version 1.271, 2021/01/29 09:48:43 version 1.272, 2021/02/05 12:23:49
Line 100 
Line 100 
 #define FORMAT_LENGTH 0x800  #define FORMAT_LENGTH 0x800
 #define FORMAT_WIDTH 0x1000  #define FORMAT_WIDTH 0x1000
 #define FORMAT_QUOTE_STYLE 0x2000  #define FORMAT_QUOTE_STYLE 0x2000
   #define FORMAT_WINDOW_NAME 0x4000
   #define FORMAT_SESSION_NAME 0x8000
   
 /* Limit on recursion. */  /* Limit on recursion. */
 #define FORMAT_LOOP_LIMIT 10  #define FORMAT_LOOP_LIMIT 10
Line 1733 
Line 1735 
                 }                  }
   
                 /* Now try single character with arguments. */                  /* Now try single character with arguments. */
                 if (strchr("mCst=peq", cp[0]) == NULL)                  if (strchr("mCNst=peq", cp[0]) == NULL)
                         break;                          break;
                 c = cp[0];                  c = cp[0];
   
Line 1857 
Line 1859 
         return (value);          return (value);
 }  }
   
   /* Does session name exist? */
   static char *
   format_session_name(struct format_expand_state *es, const char *fmt)
   {
           char            *name;
           struct session  *s;
   
           name = format_expand1(es, fmt);
           RB_FOREACH(s, sessions, &sessions) {
                   if (strcmp(s->name, name) == 0) {
                           free(name);
                           return (xstrdup("1"));
                   }
           }
           free(name);
           return (xstrdup("0"));
   }
   
 /* Loop over sessions. */  /* Loop over sessions. */
 static char *  static char *
 format_loop_sessions(struct format_expand_state *es, const char *fmt)  format_loop_sessions(struct format_expand_state *es, const char *fmt)
Line 1892 
Line 1912 
         return (value);          return (value);
 }  }
   
   /* Does window name exist? */
   static char *
   format_window_name(struct format_expand_state *es, const char *fmt)
   {
           struct format_tree      *ft = es->ft;
           char                    *name;
           struct winlink          *wl;
   
           if (ft->s == NULL) {
                   format_log(es, "window name but no session");
                   return (NULL);
           }
   
           name = format_expand1(es, fmt);
           RB_FOREACH(wl, winlinks, &ft->s->windows) {
                   if (strcmp(wl->window->name, name) == 0) {
                           free(name);
                           return (xstrdup("1"));
                   }
           }
           free(name);
           return (xstrdup("0"));
   }
   
 /* Loop over windows. */  /* Loop over windows. */
 static char *  static char *
 format_loop_windows(struct format_expand_state *es, const char *fmt)  format_loop_windows(struct format_expand_state *es, const char *fmt)
Line 2251 
Line 2295 
                         case 'T':                          case 'T':
                                 modifiers |= FORMAT_EXPANDTIME;                                  modifiers |= FORMAT_EXPANDTIME;
                                 break;                                  break;
                           case 'N':
                                   if (fm->argc < 1 ||
                                       strchr(fm->argv[0], 'w') != NULL)
                                           modifiers |= FORMAT_WINDOW_NAME;
                                   else if (strchr(fm->argv[0], 's') != NULL)
                                           modifiers |= FORMAT_SESSION_NAME;
                                   break;
                         case 'S':                          case 'S':
                                 modifiers |= FORMAT_SESSIONS;                                  modifiers |= FORMAT_SESSIONS;
                                 break;                                  break;
Line 2289 
Line 2340 
                         goto fail;                          goto fail;
         } else if (modifiers & FORMAT_PANES) {          } else if (modifiers & FORMAT_PANES) {
                 value = format_loop_panes(es, copy);                  value = format_loop_panes(es, copy);
                   if (value == NULL)
                           goto fail;
           } else if (modifiers & FORMAT_WINDOW_NAME) {
                   value = format_window_name(es, copy);
                   if (value == NULL)
                           goto fail;
           } else if (modifiers & FORMAT_SESSION_NAME) {
                   value = format_session_name(es, copy);
                 if (value == NULL)                  if (value == NULL)
                         goto fail;                          goto fail;
         } else if (search != NULL) {          } else if (search != NULL) {

Legend:
Removed from v.1.271  
changed lines
  Added in v.1.272