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

Diff for /src/usr.bin/tmux/cmd.c between version 1.14 and 1.15

version 1.14, 2009/08/23 16:45:00 version 1.15, 2009/08/25 12:18:51
Line 31 
Line 31 
         &cmd_attach_session_entry,          &cmd_attach_session_entry,
         &cmd_bind_key_entry,          &cmd_bind_key_entry,
         &cmd_break_pane_entry,          &cmd_break_pane_entry,
           &cmd_choose_client_entry,
         &cmd_choose_session_entry,          &cmd_choose_session_entry,
         &cmd_choose_window_entry,          &cmd_choose_window_entry,
         &cmd_clear_history_entry,          &cmd_clear_history_entry,
Line 857 
Line 858 
 error:  error:
         xfree(winptr);          xfree(winptr);
         return (NULL);          return (NULL);
   }
   
   /* Replace the first %% or %idx in template by s. */
   char *
   cmd_template_replace(char *template, const char *s, int idx)
   {
           char     ch;
           char    *buf, *ptr;
           int      replaced;
           size_t   len;
   
           if (strstr(template, "%") == NULL)
                   return (xstrdup(template));
   
           buf = xmalloc(1);
           *buf = '\0';
           len = 0;
           replaced = 0;
   
           ptr = template;
           while (*ptr != '\0') {
                   switch (ch = *ptr++) {
                   case '%':
                           if (*ptr < '1' || *ptr > '9' || *ptr - '0' != idx) {
                                   if (*ptr != '%' || replaced)
                                           break;
                                   replaced = 1;
                           }
                           ptr++;
   
                           len += strlen(s);
                           buf = xrealloc(buf, 1, len + 1);
                           strlcat(buf, s, len + 1);
                           continue;
                   }
                   buf = xrealloc(buf, 1, len + 2);
                   buf[len++] = ch;
                   buf[len] = '\0';
           }
   
           return (buf);
 }  }

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15