=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/arguments.c,v retrieving revision 1.30 retrieving revision 1.31 diff -c -r1.30 -r1.31 *** src/usr.bin/tmux/arguments.c 2020/04/12 20:54:28 1.30 --- src/usr.bin/tmux/arguments.c 2020/04/22 06:57:13 1.31 *************** *** 1,4 **** ! /* $OpenBSD: arguments.c,v 1.30 2020/04/12 20:54:28 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: arguments.c,v 1.31 2020/04/22 06:57:13 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott *************** *** 352,373 **** args_percentage(struct args *args, u_char ch, long long minval, long long maxval, long long curval, char **cause) { ! const char *errstr; ! long long ll; struct args_entry *entry; - struct args_value *value; - size_t valuelen; - char *copy; if ((entry = args_find(args, ch)) == NULL) { *cause = xstrdup("missing"); return (0); } ! value = TAILQ_LAST(&entry->values, args_values); ! valuelen = strlen(value->value); ! if (value->value[valuelen - 1] == '%') { ! copy = xstrdup(value->value); copy[valuelen - 1] = '\0'; ll = strtonum(copy, 0, 100, &errstr); --- 352,380 ---- args_percentage(struct args *args, u_char ch, long long minval, long long maxval, long long curval, char **cause) { ! const char *value; struct args_entry *entry; if ((entry = args_find(args, ch)) == NULL) { *cause = xstrdup("missing"); return (0); } ! value = TAILQ_LAST(&entry->values, args_values)->value; ! return (args_string_percentage(value, minval, maxval, curval, cause)); ! } ! /* Convert a string to a number which may be a percentage. */ ! long long ! args_string_percentage(const char *value, long long minval, long long maxval, ! long long curval, char **cause) ! { ! const char *errstr; ! long long ll; ! size_t valuelen = strlen(value); ! char *copy; ! ! if (value[valuelen - 1] == '%') { ! copy = xstrdup(value); copy[valuelen - 1] = '\0'; ll = strtonum(copy, 0, 100, &errstr); *************** *** 386,392 **** return (0); } } else { ! ll = strtonum(value->value, minval, maxval, &errstr); if (errstr != NULL) { *cause = xstrdup(errstr); return (0); --- 393,399 ---- return (0); } } else { ! ll = strtonum(value, minval, maxval, &errstr); if (errstr != NULL) { *cause = xstrdup(errstr); return (0);