diff options
author | Denis Vlasenko | 2007-04-19 19:55:54 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-04-19 19:55:54 +0000 |
commit | 9ace613406968c1f64b08f6869e51c321557f106 (patch) | |
tree | 7829db95da1dec4dfceed4d85b6c4082b0ad4c53 | |
parent | 05a6d9cbb202b8aa7379e39dfd09baccfbfc6c4b (diff) | |
download | busybox-9ace613406968c1f64b08f6869e51c321557f106.zip busybox-9ace613406968c1f64b08f6869e51c321557f106.tar.gz |
stty: fix option parsing bug (spotted by Sascha Hauer <s.hauer@pengutronix.de>)
-rw-r--r-- | coreutils/stty.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/coreutils/stty.c b/coreutils/stty.c index 8757f24..702cada 100644 --- a/coreutils/stty.c +++ b/coreutils/stty.c @@ -550,24 +550,25 @@ static const struct control_info *find_control(const char *name) enum { param_need_arg = 0x80, - param_line = 1 | 0x80, - param_rows = 2 | 0x80, - param_cols = 3 | 0x80, - param_size = 4, - param_speed = 5, - param_ispeed = 6 | 0x80, - param_ospeed = 7 | 0x80, + param_line = 1 | 0x80, + param_rows = 2 | 0x80, + param_cols = 3 | 0x80, + param_columns = 4 | 0x80, + param_size = 5, + param_speed = 6, + param_ispeed = 7 | 0x80, + param_ospeed = 8 | 0x80, }; static int find_param(const char * const name) { static const char * const params[] = { - "line", - "rows", - "cols", - "columns", - "size", /* 4 */ - "speed", /* 5 */ + "line", /* 1 */ + "rows", /* 2 */ + "cols", /* 3 */ + "columns", /* 4 */ + "size", /* 5 */ + "ispeed"+1, /* 6 */ "ispeed", "ospeed", NULL @@ -575,9 +576,8 @@ static int find_param(const char * const name) int i = index_in_str_array(params, name) + 1; if (i == 0) return 0; - if (!(i == 4 || i == 5)) + if (i != 5 && i != 6) i |= 0x80; - return i; } @@ -1014,6 +1014,7 @@ int stty_main(int argc, char **argv) #ifdef TIOCGWINSZ case param_rows: case param_cols: + case param_columns: xatoul_range_sfx(argnext, 1, INT_MAX, stty_suffixes); break; case param_size: |