Merge branch 'linux-fix' (closes #158)
This commit is contained in:
		
						commit
						fbacfecce8
					
				| @ -39,7 +39,7 @@ fn main() { | ||||
| 	let mut d = '\u{1E}'.to_string(); /* ASCII record separator */ | ||||
| 	let mut optind = 1; | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio proc exec"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			eprintln!("{}: {}", argv[0], e.strerror()); | ||||
|  | ||||
| @ -86,7 +86,7 @@ fn main() -> ExitCode { | ||||
| 		return ExitCode::from(EX_USAGE as u8); | ||||
| 	} | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			eprintln!("{}: {}", argv[0], e.strerror()); | ||||
|  | ||||
| @ -42,7 +42,7 @@ fn usage(s: &str) -> ExitCode { | ||||
| fn main() -> ExitCode { | ||||
| 	let argv = args().collect::<Vec<String>>(); | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			eprintln!("{}: {}", argv[0], e.strerror()); | ||||
|  | ||||
| @ -51,7 +51,7 @@ fn main() -> ExitCode { | ||||
| 	let argv = args().collect::<Vec<_>>(); | ||||
| 	let usage = format!("Usage: {} [-aetu] [-i input] [-o output]", argv[0]); | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("cpath rpath stdio unveil wpath"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			eprintln!("{}: {}", argv[0], e.strerror()); | ||||
| @ -80,7 +80,7 @@ fn main() -> ExitCode { | ||||
| 				mode = Some(In); /* latest argument == -i */ | ||||
| 			}, | ||||
| 			Ok("o") => { /* add output */ | ||||
| 				let output = opt.arg().unwrap(); 
 | ||||
| 				let output = opt.arg().unwrap(); | ||||
| 				outs.push(output); | ||||
| 				mode = Some(Out); /* latest argument == -o */ | ||||
| 			}, | ||||
| @ -106,8 +106,7 @@ fn main() -> ExitCode { | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 
 | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		for input in &ins { | ||||
| 			let perms = UnveilPerms::new(vec!['r']); | ||||
| 
 | ||||
|  | ||||
| @ -198,7 +198,7 @@ fn round_precise(value: &f64, precision: usize) -> f64 { | ||||
| fn main() -> ExitCode { | ||||
| 	let argv = args().collect::<Vec<String>>(); | ||||
| 
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			eprintln!("{}: {}", argv[0], e.strerror()); | ||||
|  | ||||
| @ -54,7 +54,7 @@ fn usage(s: &str) -> ExitCode { | ||||
| fn main() -> ExitCode { | ||||
| 	let argv = args().collect::<Vec<String>>(); | ||||
| 	
 | ||||
| 	if cfg!(target_os="openbsd") { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			return oserr(&argv[0], e); | ||||
|  | ||||
| @ -19,7 +19,7 @@ dj_tests: dj_help dj_full dj_null # dj_skip_stdin | ||||
| dj_full: $(BIN)/dj /dev/full | ||||
| 	case "$$(uname)" in \
 | ||||
| 	Linux) \
 | ||||
| 		$(BIN)/dj -Hi /dev/zero -o /dev/full 2>&1 \
 | ||||
| 		! $(BIN)/dj -Hi /dev/zero -o /dev/full 2>&1 \
 | ||||
| 			| tee /dev/stderr \
 | ||||
| 			| xargs -I out test '1+0 > 0+0; 1024 > 0' = out \
 | ||||
| 		;; \
 | ||||
|  | ||||
| @ -32,11 +32,29 @@ npc_ascii: npc_ascii_controls npc_ascii_symbols npc_ascii_uppers # \ | ||||
| .PHONY: npc_ascii_controls | ||||
| # (control characters)
 | ||||
| npc_ascii_controls: | ||||
| 	# The following test prints the bytes 0x00 (inclusive) through 0x20 | ||||
| 	# (exclusive) and pipes them through npc(1). npc(1) should then replace all | ||||
| 	# non-printing, non-space (in the isspace(3p) sense) characters with their | ||||
| 	# graphical carat-char counterparts (see the npc(1) man page). The head(1p) | ||||
| 	# invocation then strips off everything past the first line (or past the | ||||
| 	# first newline byte, 0x0A) and xargs(1p) is used to test(1p) the output | ||||
| 	# against the known good answer. | ||||
| 
 | ||||
| 	# Immediately before that newline, 0x09 is printed - in ASCII, the | ||||
| 	# horizontal tab. If xargs' -I option is used, tr(1p) should used to delete | ||||
| 	# that tab. If the tab is left as part of input, OpenBSD's xargs(1) | ||||
| 	# implementation has been observed to strip it along with the other | ||||
| 	# trailing whitespace (the newline), but Busybox's and GNU's xargs(1) | ||||
| 	# implementations have been observed to leave the tab in. All three | ||||
| 	# implementations strip off the trailing tab if `-I` is not used. The POSIX | ||||
| 	# specification for `-I` is ambiguous as to which behavior is correct. | ||||
| 	# This comment is the result of much bewilderment and debugging. | ||||
| 
 | ||||
| 	# ASCII 0x00 to 0x0a (before the newline, due to xargs(1p) issues) | ||||
| 	awk 'BEGIN{ for (i = 0; i < 32; ++i) printf("%c", i); }' \
 | ||||
| 		| $(BIN)/npc \
 | ||||
| 		| head -n 1 \
 | ||||
| 		| xargs -I out test "^@^A^B^C^D^E^F^G^H" = out | ||||
| 		| xargs test "^@^A^B^C^D^E^F^G^H" = | ||||
| 
 | ||||
| 	# ASCII 0x0a (otherwise the head|tail sequence won't work) to 0x1f | ||||
| 	awk 'BEGIN{ for (i = 0; i < 32; ++i) printf("%c", i); print }' \
 | ||||
|  | ||||
| @ -30,7 +30,7 @@ rpn_mul: $(BIN)/rpn | ||||
| .PHONY: rpn_div | ||||
| rpn_div: $(BIN)/rpn | ||||
| 	test "$$($(BIN)/rpn 12 5 /)" = 2.4 | ||||
| 	test "$$($(BIN)/rpn 3 0 /)" -eq inf | ||||
| 	test "$$($(BIN)/rpn 3 0 /)" = inf | ||||
| 
 | ||||
| .PHONY: rpn_mod | ||||
| rpn_mod: $(BIN)/rpn | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user