authorgravatar for liljaanton2001@gmail.comantlilja <liljaanton2001@gmail.com> 2020-12-07 18:04:24+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-12-07 16:38:52-05:00
log5c60558796715c109ddbe12472fe5692029736b2
treedd2891f5f6ff5c1157ff44f261a4ce8cd374fdc9
parent85dc039632f8b7fec2c7e87aed7271daccf46aee

Utilize std.fmt.parseUnsigned in main.zig.

* Remove function parseAnyBaseInt. * Replace calls to parseAnyBaseInt to calls to std.fmt.parseUnsigned with radix 0. * Replace calls to parseInt where the type is unsigned with calls to parseUnsigned. Note that the functionality of these arguments haven't changed, they still retain the original radix specified.

1 files changed, 14 insertions(+), 21 deletions(-)

src/main.zig+14-21
...@@ -688,11 +688,15 @@ fn buildOutputType(...@@ -688,11 +688,15 @@ fn buildOutputType(
688 } else if (mem.eql(u8, arg, "--stack")) {688 } else if (mem.eql(u8, arg, "--stack")) {
689 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});689 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});
690 i += 1;690 i += 1;
691 stack_size_override = parseAnyBaseInt(args[i]);691 stack_size_override = std.fmt.parseUnsigned(u64, args[i], 0) catch |err| {
692 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
693 };
692 } else if (mem.eql(u8, arg, "--image-base")) {694 } else if (mem.eql(u8, arg, "--image-base")) {
693 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});695 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});
694 i += 1;696 i += 1;
695 image_base_override = parseAnyBaseInt(args[i]);697 image_base_override = std.fmt.parseUnsigned(u64, args[i], 0) catch |err| {
698 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
699 };
696 } else if (mem.eql(u8, arg, "--name")) {700 } else if (mem.eql(u8, arg, "--name")) {
697 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});701 if (i + 1 >= args.len) fatal("expected parameter after {}", .{arg});
698 i += 1;702 i += 1;
...@@ -1225,7 +1229,7 @@ fn buildOutputType(...@@ -1225,7 +1229,7 @@ fn buildOutputType(
1225 if (i >= linker_args.items.len) {1229 if (i >= linker_args.items.len) {
1226 fatal("expected linker arg after '{}'", .{arg});1230 fatal("expected linker arg after '{}'", .{arg});
1227 }1231 }
1228 version.major = std.fmt.parseInt(u32, linker_args.items[i], 10) catch |err| {1232 version.major = std.fmt.parseUnsigned(u32, linker_args.items[i], 10) catch |err| {
1229 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });1233 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
1230 };1234 };
1231 have_version = true;1235 have_version = true;
...@@ -1234,7 +1238,7 @@ fn buildOutputType(...@@ -1234,7 +1238,7 @@ fn buildOutputType(
1234 if (i >= linker_args.items.len) {1238 if (i >= linker_args.items.len) {
1235 fatal("expected linker arg after '{}'", .{arg});1239 fatal("expected linker arg after '{}'", .{arg});
1236 }1240 }
1237 version.minor = std.fmt.parseInt(u32, linker_args.items[i], 10) catch |err| {1241 version.minor = std.fmt.parseUnsigned(u32, linker_args.items[i], 10) catch |err| {
1238 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });1242 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
1239 };1243 };
1240 have_version = true;1244 have_version = true;
...@@ -1243,13 +1247,17 @@ fn buildOutputType(...@@ -1243,13 +1247,17 @@ fn buildOutputType(
1243 if (i >= linker_args.items.len) {1247 if (i >= linker_args.items.len) {
1244 fatal("expected linker arg after '{}'", .{arg});1248 fatal("expected linker arg after '{}'", .{arg});
1245 }1249 }
1246 stack_size_override = parseAnyBaseInt(linker_args.items[i]);1250 stack_size_override = std.fmt.parseUnsigned(u64, linker_args.items[i], 0) catch |err| {
1251 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
1252 };
1247 } else if (mem.eql(u8, arg, "--image-base")) {1253 } else if (mem.eql(u8, arg, "--image-base")) {
1248 i += 1;1254 i += 1;
1249 if (i >= linker_args.items.len) {1255 if (i >= linker_args.items.len) {
1250 fatal("expected linker arg after '{}'", .{arg});1256 fatal("expected linker arg after '{}'", .{arg});
1251 }1257 }
1252 image_base_override = parseAnyBaseInt(linker_args.items[i]);1258 image_base_override = std.fmt.parseUnsigned(u64, linker_args.items[i], 0) catch |err| {
1259 fatal("unable to parse '{}': {}", .{ arg, @errorName(err) });
1260 };
1253 } else {1261 } else {
1254 warn("unsupported linker arg: {}", .{arg});1262 warn("unsupported linker arg: {}", .{arg});
1255 }1263 }
...@@ -3188,18 +3196,3 @@ pub fn cleanExit() void {...@@ -3188,18 +3196,3 @@ pub fn cleanExit() void {
3188 process.exit(0);3196 process.exit(0);
3189 }3197 }
3190}3198}
3191
3192fn parseAnyBaseInt(prefixed_bytes: []const u8) u64 {
3193 const base: u8 = if (mem.startsWith(u8, prefixed_bytes, "0x"))
3194 16
3195 else if (mem.startsWith(u8, prefixed_bytes, "0o"))
3196 8
3197 else if (mem.startsWith(u8, prefixed_bytes, "0b"))
3198 2
3199 else
3200 @as(u8, 10);
3201 const bytes = if (base == 10) prefixed_bytes else prefixed_bytes[2..];
3202 return std.fmt.parseInt(u64, bytes, base) catch |err| {
3203 fatal("unable to parse '{}': {}", .{ prefixed_bytes, @errorName(err) });
3204 };
3205}