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

Diff for /src/usr.bin/tmux/arguments.c between version 1.31 and 1.32

version 1.31, 2020/04/22 06:57:13 version 1.32, 2020/05/16 15:40:04
Line 56 
Line 56 
   
 /* Find a flag in the arguments tree. */  /* Find a flag in the arguments tree. */
 static struct args_entry *  static struct args_entry *
 args_find(struct args *args, u_char ch)  args_find(struct args *args, u_char flag)
 {  {
         struct args_entry       entry;          struct args_entry       entry;
   
         entry.flag = ch;          entry.flag = flag;
         return (RB_FIND(args_tree, &args->tree, &entry));          return (RB_FIND(args_tree, &args->tree, &entry));
 }  }
   
Line 249 
Line 249 
   
 /* Return if an argument is present. */  /* Return if an argument is present. */
 int  int
 args_has(struct args *args, u_char ch)  args_has(struct args *args, u_char flag)
 {  {
         struct args_entry       *entry;          struct args_entry       *entry;
   
         entry = args_find(args, ch);          entry = args_find(args, flag);
         if (entry == NULL)          if (entry == NULL)
                 return (0);                  return (0);
         return (entry->count);          return (entry->count);
Line 261 
Line 261 
   
 /* Set argument value in the arguments tree. */  /* Set argument value in the arguments tree. */
 void  void
 args_set(struct args *args, u_char ch, const char *s)  args_set(struct args *args, u_char flag, const char *s)
 {  {
         struct args_entry       *entry;          struct args_entry       *entry;
         struct args_value       *value;          struct args_value       *value;
   
         entry = args_find(args, ch);          entry = args_find(args, flag);
         if (entry == NULL) {          if (entry == NULL) {
                 entry = xcalloc(1, sizeof *entry);                  entry = xcalloc(1, sizeof *entry);
                 entry->flag = ch;                  entry->flag = flag;
                 entry->count = 1;                  entry->count = 1;
                 TAILQ_INIT(&entry->values);                  TAILQ_INIT(&entry->values);
                 RB_INSERT(args_tree, &args->tree, entry);                  RB_INSERT(args_tree, &args->tree, entry);
Line 285 
Line 285 
   
 /* Get argument value. Will be NULL if it isn't present. */  /* Get argument value. Will be NULL if it isn't present. */
 const char *  const char *
 args_get(struct args *args, u_char ch)  args_get(struct args *args, u_char flag)
 {  {
         struct args_entry       *entry;          struct args_entry       *entry;
   
         if ((entry = args_find(args, ch)) == NULL)          if ((entry = args_find(args, flag)) == NULL)
                 return (NULL);                  return (NULL);
           if (TAILQ_EMPTY(&entry->values))
                   return (NULL);
         return (TAILQ_LAST(&entry->values, args_values)->value);          return (TAILQ_LAST(&entry->values, args_values)->value);
 }  }
   
   /* Get first argument. */
   u_char
   args_first(struct args *args, struct args_entry **entry)
   {
           *entry = RB_MIN(args_tree, &args->tree);
           if (*entry == NULL)
                   return (0);
           return ((*entry)->flag);
   }
   
   /* Get next argument. */
   u_char
   args_next(struct args_entry **entry)
   {
           *entry = RB_NEXT(args_tree, &args->tree, *entry);
           if (*entry == NULL)
                   return (0);
           return ((*entry)->flag);
   }
   
 /* Get first value in argument. */  /* Get first value in argument. */
 const char *  const char *
 args_first_value(struct args *args, u_char ch, struct args_value **value)  args_first_value(struct args *args, u_char flag, struct args_value **value)
 {  {
         struct args_entry       *entry;          struct args_entry       *entry;
   
         if ((entry = args_find(args, ch)) == NULL)          if ((entry = args_find(args, flag)) == NULL)
                 return (NULL);                  return (NULL);
   
         *value = TAILQ_FIRST(&entry->values);          *value = TAILQ_FIRST(&entry->values);
Line 323 
Line 345 
   
 /* Convert an argument value to a number. */  /* Convert an argument value to a number. */
 long long  long long
 args_strtonum(struct args *args, u_char ch, long long minval, long long maxval,  args_strtonum(struct args *args, u_char flag, long long minval,
     char **cause)      long long maxval, char **cause)
 {  {
         const char              *errstr;          const char              *errstr;
         long long                ll;          long long                ll;
         struct args_entry       *entry;          struct args_entry       *entry;
         struct args_value       *value;          struct args_value       *value;
   
         if ((entry = args_find(args, ch)) == NULL) {          if ((entry = args_find(args, flag)) == NULL) {
                 *cause = xstrdup("missing");                  *cause = xstrdup("missing");
                 return (0);                  return (0);
         }          }
Line 349 
Line 371 
   
 /* Convert an argument to a number which may be a percentage. */  /* Convert an argument to a number which may be a percentage. */
 long long  long long
 args_percentage(struct args *args, u_char ch, long long minval,  args_percentage(struct args *args, u_char flag, long long minval,
     long long maxval, long long curval, char **cause)      long long maxval, long long curval, char **cause)
 {  {
         const char              *value;          const char              *value;
         struct args_entry       *entry;          struct args_entry       *entry;
   
         if ((entry = args_find(args, ch)) == NULL) {          if ((entry = args_find(args, flag)) == NULL) {
                 *cause = xstrdup("missing");                  *cause = xstrdup("missing");
                 return (0);                  return (0);
         }          }

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32