diff options
| author | bors <bors@rust-lang.org> | 2013-09-24 23:40:54 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-09-24 23:40:54 -0700 |
| commit | dad32f703d3df22f4d6b021c23cf2c08ae0f3d66 (patch) | |
| tree | 90481a078ea52746f03c4487485e6bd05e6eadbf /src/librustdoc/rustdoc.rs | |
| parent | 6ed338caa7fd4017d57254cdc13a77e38505dd02 (diff) | |
| parent | 6d03897376f8737e28a93693f90bd651e9d08e92 (diff) | |
| download | rust-dad32f703d3df22f4d6b021c23cf2c08ae0f3d66.tar.gz rust-dad32f703d3df22f4d6b021c23cf2c08ae0f3d66.zip | |
auto merge of #9480 : brson/rust/noexit, r=thestinger
This can cause unexpected errors in the runtime when done while scheduler threads are still initializing. Required some restructuring of the main_args functions in our libraries.
Diffstat (limited to 'src/librustdoc/rustdoc.rs')
| -rw-r--r-- | src/librustdoc/rustdoc.rs | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/librustdoc/rustdoc.rs b/src/librustdoc/rustdoc.rs index bc7e6c8926d..c3d8cdf028e 100644 --- a/src/librustdoc/rustdoc.rs +++ b/src/librustdoc/rustdoc.rs @@ -52,7 +52,7 @@ enum OutputFormat { } pub fn main() { - main_args(std::os::args()); + std::os::set_exit_status(main_args(std::os::args())); } pub fn opts() -> ~[groups::OptGroup] { @@ -76,14 +76,14 @@ pub fn usage(argv0: &str) { argv0), opts())); } -pub fn main_args(args: &[~str]) { +pub fn main_args(args: &[~str]) -> int { //use extra::getopts::groups::*; let matches = groups::getopts(args.tail(), opts()).unwrap(); if matches.opt_present("h") || matches.opt_present("help") { usage(args[0]); - return; + return 0; } let (format, cratefile) = match matches.free.clone() { @@ -92,17 +92,17 @@ pub fn main_args(args: &[~str]) { [s, _] => { println!("Unknown output format: `{}`", s); usage(args[0]); - exit(1); + return 1; } [_, .._] => { println!("Expected exactly one crate to process"); usage(args[0]); - exit(1); + return 1; } _ => { println!("Expected an output format and then one crate"); usage(args[0]); - exit(1); + return 1; } }; @@ -179,6 +179,8 @@ pub fn main_args(args: &[~str]) { } let ended = time::precise_time_ns(); info2!("Took {:.03f}s", (ended as f64 - started as f64) / 1000000000f64); + + return 0; } fn jsonify(crate: clean::Crate, res: ~[plugins::PluginJson], dst: Path) { @@ -208,9 +210,3 @@ fn jsonify(crate: clean::Crate, res: ~[plugins::PluginJson], dst: Path) { let output = extra::json::Object(json).to_str(); file.write(output.as_bytes()); } - -fn exit(status: int) -> ! { - #[fixed_stack_segment]; #[inline(never)]; - use std::libc; - unsafe { libc::exit(status as libc::c_int) } -} |
