Commit 3eb89ee4db

Andrew Kelley <superjoe30@gmail.com>
2018-09-03 01:23:30
fixups
* zig fmt * use canonical parameter order. memcpy has dest first and the base64 code follows the pattern. * pass correct radix to charToDigit
1 parent 0d8412d
Changed files (1)
std
std/fmt/index.zig
@@ -350,7 +350,7 @@ pub fn formatText(
             comptime var width = 0;
             if (fmt.len > 1) width = comptime (parseUnsigned(usize, fmt[1..], 10) catch unreachable);
             return formatBuf(bytes, width, context, Errors, output);
-        } else if ((fmt[0] == 'x') or (fmt[0] == 'X') ) {
+        } else if ((fmt[0] == 'x') or (fmt[0] == 'X')) {
             for (bytes) |c| {
                 try formatInt(c, 16, fmt[0] == 'X', 2, context, Errors, output);
             }
@@ -1332,22 +1332,21 @@ pub fn isWhiteSpace(byte: u8) bool {
     };
 }
 
-// depends on https://github.com/ziglang/zig/pull/1454
-pub fn hexToBytes(input: []const u8, out: []u8) !void {
-  if (out.len * 2 < input.len)
-    return error.InvalidLength;
+pub fn hexToBytes(out: []u8, input: []const u8) !void {
+    if (out.len * 2 < input.len)
+        return error.InvalidLength;
 
-  var i: usize = 0;
-  while (i < input.len) : (i += 2) {
-    out[i/2]  = (try charToDigit(input[i], 36)) << 4;
-    out[i/2] +=  try charToDigit(input[i+1], 36);
-  }
+    var in_i: usize = 0;
+    while (in_i != input.len) : (in_i += 2) {
+        const hi = try charToDigit(input[in_i], 16);
+        const lo = try charToDigit(input[in_i + 1], 16);
+        out[in_i / 2] = (hi << 4) | lo;
+    }
 }
 
 test "fmt.hexToBytes" {
-  const test_hex_str = "909A312BB12ED1F819B3521AC4C1E896F2160507FFC1C8381E3B07BB16BD1706";
-  var pb: [32]u8 = undefined;
-  try hexToBytes(test_hex_str, pb[0..]);
-  try testFmt(test_hex_str, "{X}", pb);
+    const test_hex_str = "909A312BB12ED1F819B3521AC4C1E896F2160507FFC1C8381E3B07BB16BD1706";
+    var pb: [32]u8 = undefined;
+    try hexToBytes(pb[0..], test_hex_str);
+    try testFmt(test_hex_str, "{X}", pb);
 }
-