swab(1): changes disparate error handling functions to one function
This commit is contained in:
		
							parent
							
								
									5eb71e90a3
								
							
						
					
					
						commit
						ff4ff825bd
					
				
							
								
								
									
										18
									
								
								src/swab.rs
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/swab.rs
									
									
									
									
									
								
							| @ -35,15 +35,9 @@ use strerror::StrError; | ||||
| #[cfg(target_os="openbsd")] extern crate openbsd; | ||||
| #[cfg(target_os="openbsd")] use openbsd::{ Promises, pledge }; | ||||
| 
 | ||||
| 
 | ||||
| fn oserr(argv0: &str, e: Error) -> ExitCode { | ||||
| fn err(argv0: &str, e: Error, code: u8) -> ExitCode { | ||||
| 	eprintln!("{}: {}", argv0, e.strerror()); | ||||
| 	ExitCode::from(EX_OSERR) | ||||
| } | ||||
| 
 | ||||
| fn ioerr(argv0: &str, e: Error) -> ExitCode { | ||||
| 	eprintln!("{}: {}", argv0, e.strerror()); | ||||
| 	ExitCode::from(EX_IOERR) | ||||
| 	ExitCode::from(code) | ||||
| } | ||||
| 
 | ||||
| fn usage(s: &str) -> ExitCode { | ||||
| @ -57,7 +51,7 @@ fn main() -> ExitCode { | ||||
| 	#[cfg(target_os="openbsd")] { | ||||
| 		let promises = Promises::new("stdio"); | ||||
| 		if let Err(e) = pledge(Some(promises), None) { | ||||
| 			return oserr(&argv[0], e); | ||||
| 			return err(&argv[0], e, EX_OSERR); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| @ -94,16 +88,16 @@ fn main() -> ExitCode { | ||||
| 
 | ||||
| 				if let Err(e) = output.write(&right) | ||||
| 						.and_then(|_| output.write(&left)) { | ||||
| 					break ioerr(&argv[0], e); | ||||
| 					break err(&argv[0], e, EX_IOERR); | ||||
| 				} | ||||
| 
 | ||||
| 			}, | ||||
| 			Ok(v) => { // partial read; partially write
 | ||||
| 				if let Err(e) = output.write(&buf[..v]) { | ||||
| 					break ioerr(&argv[0], e); | ||||
| 					break err(&argv[0], e, EX_IOERR); | ||||
| 				} | ||||
| 			}, | ||||
| 			Err(e) => break oserr(&argv[0], e) | ||||
| 			Err(e) => break err(&argv[0], e, EX_OSERR) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user