File tree Expand file tree Collapse file tree 2 files changed +34
-2
lines changed
branches/snap-stage3/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 1
1
---
2
2
refs/heads/master: e430a699f2c60890d9b86069fd0c68a70ece7120
3
3
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4
- refs/heads/snap-stage3: a4a7df0cccc36ed00b46462050ec522eadc2a0fc
4
+ refs/heads/snap-stage3: 9fe40e8a7b86a530371f086effd1a427064b8a6d
5
5
refs/heads/try: ffbe0e0e00374358b789b0037bcb3a577cd218be
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
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