44// file that was distributed with this source code.
55
66// spell-checker:ignore (ToDO) tempdir dyld dylib optgrps libstdbuf
7+ #[ cfg( not( unix) ) ]
8+ compile_error ! ( "stdbuf is not supported on the target" ) ;
79
810use clap:: { Arg , ArgAction , ArgMatches , Command } ;
911use std:: ffi:: OsString ;
@@ -31,14 +33,9 @@ mod options {
3133
3234#[ cfg( all(
3335 not( feature = "feat_external_libstdbuf" ) ,
34- any(
35- target_os = "linux" ,
36- target_os = "android" ,
37- target_os = "freebsd" ,
38- target_os = "netbsd" ,
39- target_os = "openbsd" ,
40- target_os = "dragonfly"
41- )
36+ unix,
37+ not( target_vendor = "apple" ) ,
38+ not( target_os = "cygwin" )
4239) ) ]
4340const STDBUF_INJECT : & [ u8 ] = include_bytes ! ( concat!( env!( "OUT_DIR" ) , "/libstdbuf.so" ) ) ;
4441
@@ -82,14 +79,7 @@ enum ProgramOptionsError {
8279 ValueTooLarge ( String ) ,
8380}
8481
85- #[ cfg( any(
86- target_os = "linux" ,
87- target_os = "android" ,
88- target_os = "freebsd" ,
89- target_os = "netbsd" ,
90- target_os = "openbsd" ,
91- target_os = "dragonfly"
92- ) ) ]
82+ #[ cfg( all( unix, not( target_vendor = "apple" ) , not( target_os = "cygwin" ) ) ) ]
9383#[ expect(
9484 clippy:: unnecessary_wraps,
9585 reason = "fn sig must match on all platforms"
@@ -107,20 +97,13 @@ fn preload_strings() -> UResult<(&'static str, &'static str)> {
10797 Ok ( ( "DYLD_LIBRARY_PATH" , "dylib" ) )
10898}
10999
110- #[ cfg( not( any(
111- target_os = "linux" ,
112- target_os = "android" ,
113- target_os = "freebsd" ,
114- target_os = "netbsd" ,
115- target_os = "openbsd" ,
116- target_os = "dragonfly" ,
117- target_vendor = "apple"
118- ) ) ) ]
100+ #[ cfg( target_os = "cygwin" ) ]
101+ #[ expect(
102+ clippy:: unnecessary_wraps,
103+ reason = "fn sig must match on all platforms"
104+ ) ]
119105fn preload_strings ( ) -> UResult < ( & ' static str , & ' static str ) > {
120- Err ( USimpleError :: new (
121- 1 ,
122- translate ! ( "stdbuf-error-command-not-supported" ) ,
123- ) )
106+ Ok ( ( "LD_PRELOAD" , "dll" ) )
124107}
125108
126109fn check_option ( matches : & ArgMatches , name : & str ) -> Result < BufferType , ProgramOptionsError > {
0 commit comments