Skip to content

Commit 2e984fc

Browse files
committed
stty/flags: List all missing flags that GNU version supports
List the remaining flags that GNU stty support, they cannot be be all listed yet since we have no nix support for them, but it's better to keep the lists in sync so that it's easier to enable what will be supported in future
1 parent a3408a7 commit 2e984fc

1 file changed

Lines changed: 49 additions & 4 deletions

File tree

src/uu/stty/src/flags.rs

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
// spell-checker:ignore lnext rprnt susp dsusp swtch vdiscard veof veol verase vintr vkill vlnext vquit vreprint vstart vstop vsusp vswtc vwerase werase VDSUSP
1111
// spell-checker:ignore sigquit sigtstp
1212
// spell-checker:ignore cbreak decctlq evenp litout oddp
13+
// spell-checker:ignore cdtrdsr CDTRDSR ofill OFILL dsusp VDSUSP VFLUSHO VSTATUS noncanonical VMIN deciseconds noncanonical VTIME
1314

1415
use crate::Flag;
1516

@@ -54,10 +55,14 @@ pub const CONTROL_FLAGS: &[Flag<C>] = &[
5455
Flag::new_grouped("cs7", C::CS7, C::CSIZE),
5556
Flag::new_grouped("cs8", C::CS8, C::CSIZE).sane(),
5657
Flag::new("hupcl", C::HUPCL),
58+
// Not supported by nix and libc.
59+
// Flag::new("hup", C::HUP).hidden(),
5760
Flag::new("cstopb", C::CSTOPB),
5861
Flag::new("cread", C::CREAD).sane(),
5962
Flag::new("clocal", C::CLOCAL),
6063
Flag::new("crtscts", C::CRTSCTS),
64+
// Not supported by nix and libc.
65+
// Flag::new("cdtrdsr", C::CDTRDSR),
6166
];
6267

6368
pub const INPUT_FLAGS: &[Flag<I>] = &[
@@ -73,8 +78,16 @@ pub const INPUT_FLAGS: &[Flag<I>] = &[
7378
Flag::new("ixon", I::IXON),
7479
Flag::new("ixoff", I::IXOFF),
7580
Flag::new("tandem", I::IXOFF).hidden(),
76-
// not supported by nix
77-
// Flag::new("iuclc", I::IUCLC),
81+
#[cfg(any(
82+
target_os = "aix",
83+
target_os = "android",
84+
target_os = "cygwin",
85+
target_os = "haiku",
86+
target_os = "hurd",
87+
target_os = "nto",
88+
target_os = "linux"
89+
))]
90+
Flag::new("iuclc", I::IUCLC),
7891
Flag::new("ixany", I::IXANY),
7992
Flag::new("imaxbel", I::IMAXBEL).sane(),
8093
#[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))]
@@ -101,6 +114,14 @@ pub const OUTPUT_FLAGS: &[Flag<O>] = &[
101114
target_os = "linux",
102115
target_os = "macos"
103116
))]
117+
Flag::new("ofill", O::OFILL),
118+
#[cfg(any(
119+
target_os = "android",
120+
target_os = "haiku",
121+
target_os = "ios",
122+
target_os = "linux",
123+
target_os = "macos"
124+
))]
104125
Flag::new("ofdel", O::OFDEL),
105126
#[cfg(any(
106127
target_os = "android",
@@ -242,8 +263,13 @@ pub const LOCAL_FLAGS: &[Flag<L>] = &[
242263
Flag::new("echok", L::ECHOK).sane(),
243264
Flag::new("echonl", L::ECHONL),
244265
Flag::new("noflsh", L::NOFLSH),
245-
// Not supported by nix
246-
// Flag::new("xcase", L::XCASE),
266+
#[cfg(any(
267+
target_os = "aix",
268+
target_os = "android",
269+
target_os = "haiku",
270+
target_os = "linux",
271+
))]
272+
Flag::new("xcase", L::XCASE),
247273
Flag::new("tostop", L::TOSTOP),
248274
#[cfg(not(target_os = "cygwin"))]
249275
Flag::new("echoprt", L::ECHOPRT),
@@ -362,6 +388,25 @@ pub const CONTROL_CHARS: &[(&str, S)] = &[
362388
("lnext", S::VLNEXT),
363389
// Discards the current line.
364390
("discard", S::VDISCARD),
391+
// deprecated compat option.
392+
// Not supported by nix and libc.
393+
// ("flush", S::VFLUSHO),
394+
#[cfg(any(
395+
target_os = "freebsd",
396+
target_os = "dragonfly",
397+
target_os = "ios",
398+
target_os = "macos",
399+
target_os = "netbsd",
400+
target_os = "openbsd",
401+
))]
402+
// Status character
403+
("status", S::VSTATUS),
404+
// Minimum number of characters for noncanonical read.
405+
// We handle this manually.
406+
// ("min", S::VMIN),
407+
// Timeout in deciseconds for noncanonical read.
408+
// We handle this manually.
409+
// ("time", S::VTIME),
365410
];
366411

367412
/// This constant lists all possible combination settings, using a bool to represent if the setting is negatable

0 commit comments

Comments
 (0)