Skip to content

Commit

Permalink
Merge pull request #91 from pcwalton/remove-start
Browse files Browse the repository at this point in the history
Remove start.
  • Loading branch information
AngryLawyer committed Sep 4, 2013
2 parents b8f6278 + 4bf3413 commit b5c0c39
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 34 deletions.
7 changes: 4 additions & 3 deletions src/sdl.rc
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,11 @@

pub use sdl::*;

pub use start = start::start;

pub mod audio;
pub mod cd;
pub mod event;
pub mod joy;
pub mod mouse;
pub mod start;
pub mod video;
pub mod gl;
pub mod wm;
Expand All @@ -29,3 +26,7 @@ pub mod mixer;

pub mod sdl;

#[link_args="-lSDLmain -framework Foundation -framework AppKit"]
extern {
}

32 changes: 1 addition & 31 deletions src/start.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ use std::task;
pub type MainFunction = ~fn();

pub fn start(main: MainFunction) {
platform_specific::run_main(Cell::new(main));
}

#[cfg(target_os="win32")]
Expand All @@ -22,36 +21,7 @@ mod platform_specific {

#[cfg(target_os="macos")]
pub mod platform_specific {
use std::cell::Cell;
use super::MainFunction;
use std::cast::transmute;
use std::libc::{c_int, c_char};
use std::local_data::Key;
use std::local_data;
use std::os;

static KEY: Key<MainFunction> = &Key;

pub fn run_main(cell: Cell<MainFunction>) {
let args = os::args();
unsafe {
local_data::set(KEY, cell.take());

// XXX: Use return value to set program return code.
// XXX: This isn't really safe... args might not be null-
// terminated.
let c_args = args.map(|s| -> *c_char { transmute(&s[0]) });
let _ = SDLX_main(args.len() as c_int, &c_args[0]);
}
}

#[no_mangle]
pub extern fn SDL_main(_: c_int, _: **c_char) {
local_data::get(KEY, |f| (*f.get())())
}

#[link_args="-L. -lSDLXmain -framework AppKit -framework Foundation"]
#[link_args="-L. -lSDLmain -framework AppKit -framework Foundation"]
extern {
fn SDLX_main(argc: c_int, argv: **c_char) -> c_int;
}
}

0 comments on commit b5c0c39

Please sign in to comment.