Quellcode durchsuchen

Do not require prefix for hex

Jeremy Soller vor 6 Jahren
Ursprung
Commit
3c2121d4e0
3 geänderte Dateien mit 3 neuen und 1 gelöschten Zeilen
  1. 1 1
      src/header/stdlib/mod.rs
  2. 1 0
      tests/expected/stdlib/strtol.stdout
  3. 1 0
      tests/stdlib/strtol.c

+ 1 - 1
src/header/stdlib/mod.rs

@@ -756,7 +756,7 @@ pub unsafe fn convert_hex(s: *const c_char) -> Option<(c_ulong, isize, bool)> {
     {
         convert_integer(s.offset(2), 16).map(|(val, idx, overflow)| (val, idx + 2, overflow))
     } else {
-        None
+        convert_integer(s, 16).map(|(val, idx, overflow)| (val, idx, overflow))
     }
 }
 

+ 1 - 0
tests/expected/stdlib/strtol.stdout

@@ -6,6 +6,7 @@
 1234567890
 38acf
 abcdef12
+cafebeef
 731
 731
 0

+ 1 - 0
tests/stdlib/strtol.c

@@ -13,6 +13,7 @@ int main(int argc, char* argv[]) {
 
     printf("%lx\n", strtol("  0x38Acfg", NULL, 0));
     printf("%lx\n", strtol("0Xabcdef12", NULL, 16));
+    printf("%lx\n", strtol("cafebeef", NULL, 16));
 
     printf("%lo\n", strtol("  073189", NULL, 0));
     printf("%lo\n", strtol("     073189", NULL, 8));