File tree Expand file tree Collapse file tree 2 files changed +34
-2
lines changed
branches/incoming/src/libcore Expand file tree Collapse file tree 2 files changed +34
-2
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ refs/heads/try: d324a424d8f84b1eb049b12cf34182bda91b0024
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: d0c6ce338884ee21843f4b40bf6bf18d222ce5df
9
- refs/heads/incoming: a4a7df0cccc36ed00b46462050ec522eadc2a0fc
9
+ refs/heads/incoming: 9fe40e8a7b86a530371f086effd1a427064b8a6d
10
10
refs/heads/dist-snap: 2f32a1581f522e524009138b33b1c7049ced668d
11
11
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
12
12
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
Original file line number Diff line number Diff line change @@ -738,7 +738,7 @@ pub fn set_exit_status(code: int) {
738
738
* Returns a list of the command line arguments.
739
739
*/
740
740
#[ cfg( target_os = "macos" ) ]
741
- pub fn args ( ) -> ~[ ~str ] {
741
+ fn real_args ( ) -> ~[ ~str ] {
742
742
unsafe {
743
743
let ( argc, argv) = ( * _NSGetArgc ( ) as uint , * _NSGetArgv ( ) ) ;
744
744
let mut args = ~[ ] ;
@@ -749,6 +749,38 @@ pub fn args() -> ~[~str] {
749
749
}
750
750
}
751
751
752
+ #[ cfg( target_os = "linux" ) ]
753
+ fn real_args ( ) -> ~[ ~str ] {
754
+ fail // TODO
755
+ }
756
+
757
+ #[ cfg( windows) ]
758
+ fn real_args ( ) -> ~[ ~str ] {
759
+ fail // TODO
760
+ }
761
+
762
+ struct OverriddenArgs {
763
+ val : ~[ ~str ]
764
+ }
765
+
766
+ fn overridden_arg_key ( +v : @OverriddenArgs ) { }
767
+
768
+ pub fn args ( ) -> ~[ ~str ] {
769
+ unsafe {
770
+ match task:: local_data:: local_data_get ( overridden_arg_key) {
771
+ None => real_args ( ) ,
772
+ Some ( args) => copy args. val
773
+ }
774
+ }
775
+ }
776
+
777
+ pub fn set_args ( +new_args : ~[ ~str ] ) {
778
+ unsafe {
779
+ let overridden_args = @OverriddenArgs { val : copy new_args } ;
780
+ task:: local_data:: local_data_set ( overridden_arg_key, overridden_args) ;
781
+ }
782
+ }
783
+
752
784
#[ cfg( target_os = "macos" ) ]
753
785
extern {
754
786
// These functions are in crt_externs.h.
You can’t perform that action at this time.
0 commit comments