mirror of
https://github.com/tmux/tmux.git
synced 2024-12-04 19:58:48 +00:00
Use strtonum instead of atoi.
This commit is contained in:
parent
31b6c9356c
commit
2d1e93447e
14
colour.c
14
colour.c
@ -942,13 +942,17 @@ colour_byname(const char *name)
|
||||
{ "yellow3", 0xcdcd00 },
|
||||
{ "yellow4", 0x8b8b00 }
|
||||
};
|
||||
u_int i;
|
||||
int c;
|
||||
u_int i;
|
||||
int c;
|
||||
const char *errstr;
|
||||
|
||||
if (strncmp(name, "grey", 4) == 0 || strncmp(name, "gray", 4) == 0) {
|
||||
if (!isdigit((u_char)name[4]))
|
||||
return (0xbebebe|COLOUR_FLAG_RGB);
|
||||
c = round(2.55 * atoi(name + 4));
|
||||
if (name[4] == '\0')
|
||||
return (-1);
|
||||
c = strtonum(name + 4, 0, 100, &errstr);
|
||||
if (errstr != NULL)
|
||||
return (-1);
|
||||
c = round(2.55 * c);
|
||||
if (c < 0 || c > 255)
|
||||
return (-1);
|
||||
return (colour_join_rgb(c, c, c));
|
||||
|
30
style.c
30
style.c
@ -58,10 +58,11 @@ int
|
||||
style_parse(struct style *sy, const struct grid_cell *base, const char *in)
|
||||
{
|
||||
struct style saved;
|
||||
const char delimiters[] = " ,\n", *cp;
|
||||
const char delimiters[] = " ,\n", *errstr;
|
||||
char tmp[256], *found;
|
||||
int value;
|
||||
size_t end;
|
||||
u_int n;
|
||||
|
||||
if (*in == '\0')
|
||||
return (0);
|
||||
@ -137,34 +138,31 @@ style_parse(struct style *sy, const struct grid_cell *base, const char *in)
|
||||
goto error;
|
||||
if (*found != '%' || found[1] == '\0')
|
||||
goto error;
|
||||
for (cp = found + 1; *cp != '\0'; cp++) {
|
||||
if (!isdigit((u_char)*cp))
|
||||
goto error;
|
||||
}
|
||||
n = strtonum(found + 1, 0, UINT_MAX, &errstr);
|
||||
if (errstr != NULL)
|
||||
goto error;
|
||||
sy->range_type = STYLE_RANGE_PANE;
|
||||
sy->range_argument = atoi(found + 1);
|
||||
sy->range_argument = n;
|
||||
style_set_range_string(sy, "");
|
||||
} else if (strcasecmp(tmp + 6, "window") == 0) {
|
||||
if (found == NULL)
|
||||
goto error;
|
||||
for (cp = found; *cp != '\0'; cp++) {
|
||||
if (!isdigit((u_char)*cp))
|
||||
goto error;
|
||||
}
|
||||
n = strtonum(found, 0, UINT_MAX, &errstr);
|
||||
if (errstr != NULL)
|
||||
goto error;
|
||||
sy->range_type = STYLE_RANGE_WINDOW;
|
||||
sy->range_argument = atoi(found);
|
||||
sy->range_argument = n;
|
||||
style_set_range_string(sy, "");
|
||||
} else if (strcasecmp(tmp + 6, "session") == 0) {
|
||||
if (found == NULL)
|
||||
goto error;
|
||||
if (*found != '$' || found[1] == '\0')
|
||||
goto error;
|
||||
for (cp = found + 1; *cp != '\0'; cp++) {
|
||||
if (!isdigit((u_char)*cp))
|
||||
goto error;
|
||||
}
|
||||
n = strtonum(found + 1, 0, UINT_MAX, &errstr);
|
||||
if (errstr != NULL)
|
||||
goto error;
|
||||
sy->range_type = STYLE_RANGE_SESSION;
|
||||
sy->range_argument = atoi(found + 1);
|
||||
sy->range_argument = n;
|
||||
style_set_range_string(sy, "");
|
||||
} else if (strcasecmp(tmp + 6, "user") == 0) {
|
||||
if (found == NULL)
|
||||
|
12
tty-term.c
12
tty-term.c
@ -528,9 +528,10 @@ tty_term_create(struct tty *tty, char *name, char **caps, u_int ncaps,
|
||||
struct options_array_item *a;
|
||||
union options_value *ov;
|
||||
u_int i, j;
|
||||
const char *s, *value;
|
||||
const char *s, *value, *errstr;
|
||||
size_t offset, namelen;
|
||||
char *first;
|
||||
int n;
|
||||
|
||||
log_debug("adding term %s", name);
|
||||
|
||||
@ -564,8 +565,13 @@ tty_term_create(struct tty *tty, char *name, char **caps, u_int ncaps,
|
||||
code->value.string = tty_term_strip(value);
|
||||
break;
|
||||
case TTYCODE_NUMBER:
|
||||
code->type = TTYCODE_NUMBER;
|
||||
code->value.number = atoi(value);
|
||||
n = strtonum(value, 0, INT_MAX, &errstr);
|
||||
if (errstr != NULL)
|
||||
log_debug("%s: %s", ent->name, errstr);
|
||||
else {
|
||||
code->type = TTYCODE_NUMBER;
|
||||
code->value.number = n;
|
||||
}
|
||||
break;
|
||||
case TTYCODE_FLAG:
|
||||
code->type = TTYCODE_FLAG;
|
||||
|
Loading…
Reference in New Issue
Block a user