File tree 2 files changed +32
-0
lines changed
library/std/src/sys/pal/windows
2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -649,3 +649,19 @@ compat_fn_with_fallback! {
649
649
TRUE
650
650
}
651
651
}
652
+
653
+ #[ cfg( target_vendor = "rust9x" ) ]
654
+ compat_fn_with_fallback ! {
655
+ pub static KERNEL32 : & CStr = c"kernel32" => { load: false , unicows: false } ;
656
+ // >= Vista / Server 2008
657
+ // https://learn.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-comparestringordinal
658
+ pub fn CompareStringOrdinal (
659
+ lpstring1: PCWSTR ,
660
+ cchcount1: i32 ,
661
+ lpstring2: PCWSTR ,
662
+ cchcount2: i32 ,
663
+ bignorecase: BOOL ,
664
+ ) -> COMPARESTRING_RESULT {
665
+ unimplemented!( )
666
+ }
667
+ }
Original file line number Diff line number Diff line change @@ -69,6 +69,13 @@ impl EnvKey {
69
69
// [4] https://docs.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-comparestringordinal
70
70
impl Ord for EnvKey {
71
71
fn cmp ( & self , other : & Self ) -> cmp:: Ordering {
72
+ #[ cfg( target_vendor = "rust9x" ) ]
73
+ {
74
+ if c:: CompareStringOrdinal :: available ( ) . is_none ( ) {
75
+ return self . os_string . cmp ( & other. os_string ) ;
76
+ }
77
+ }
78
+
72
79
unsafe {
73
80
let result = c:: CompareStringOrdinal (
74
81
self . utf16 . as_ptr ( ) ,
@@ -120,6 +127,15 @@ impl PartialEq<str> for EnvKey {
120
127
// they are compared using a caseless string mapping.
121
128
impl From < OsString > for EnvKey {
122
129
fn from ( k : OsString ) -> Self {
130
+ #[ cfg( target_vendor = "rust9x" ) ]
131
+ {
132
+ if c:: CompareStringOrdinal :: available ( ) . is_none ( ) {
133
+ let mut k = k;
134
+ k. make_ascii_uppercase ( ) ;
135
+ return EnvKey { utf16 : Vec :: new ( ) , os_string : k } ;
136
+ }
137
+ }
138
+
123
139
EnvKey { utf16 : k. encode_wide ( ) . collect ( ) , os_string : k }
124
140
}
125
141
}
You can’t perform that action at this time.
0 commit comments