mirror of
https://codeberg.org/ziglings/exercises.git
synced 2024-12-25 09:10:26 +00:00
build: restore compatibility support
Commit 0d56ba3 (build: restore the exercise chain) broke the compatibility support for old compilers, due to the use of the multi-object for loop syntax. Use the normal for loop syntax; the change still keep the code readable. Use the variable `n`, instead of `i`, when referring to the exercise number; this will improve the readability. Closes #227
This commit is contained in:
parent
647a24afae
commit
be782af7a3
1 changed files with 11 additions and 8 deletions
19
build.zig
19
build.zig
|
@ -559,13 +559,13 @@ pub fn build(b: *Build) !void {
|
|||
|
||||
const header_step = PrintStep.create(b, logo, std.io.getStdErr());
|
||||
|
||||
if (exno) |i| {
|
||||
if (i == 0 or i > exercises.len - 1) {
|
||||
print("unknown exercise number: {}\n", .{i});
|
||||
if (exno) |n| {
|
||||
if (n == 0 or n > exercises.len - 1) {
|
||||
print("unknown exercise number: {}\n", .{n});
|
||||
std.os.exit(1);
|
||||
}
|
||||
|
||||
const ex = exercises[i - 1];
|
||||
const ex = exercises[n - 1];
|
||||
const base_name = ex.baseName();
|
||||
const file_path = std.fs.path.join(b.allocator, &[_][]const u8{
|
||||
if (use_healed) "patches/healed" else "exercises", ex.main_file,
|
||||
|
@ -603,8 +603,8 @@ pub fn build(b: *Build) !void {
|
|||
|
||||
var prev_step = verify_step;
|
||||
for (exercises) |exn| {
|
||||
const n = exn.number();
|
||||
if (n > i) {
|
||||
const nth = exn.number();
|
||||
if (nth > n) {
|
||||
const verify_stepn = ZiglingStep.create(b, exn, use_healed);
|
||||
verify_stepn.step.dependOn(&prev_step.step);
|
||||
|
||||
|
@ -646,8 +646,11 @@ pub fn build(b: *Build) !void {
|
|||
ziglings_step.dependOn(&header_step.step);
|
||||
b.default_step = ziglings_step;
|
||||
|
||||
// Don't use the "multi-object for loop" syntax, in order to avoid a syntax
|
||||
// error with old Zig compilers.
|
||||
var prev_step: *Step = undefined;
|
||||
for (exercises, 0..) |ex, i| {
|
||||
for (exercises) |ex| {
|
||||
const n = ex.number();
|
||||
const base_name = ex.baseName();
|
||||
const file_path = std.fs.path.join(b.allocator, &[_][]const u8{
|
||||
"exercises", ex.main_file,
|
||||
|
@ -657,7 +660,7 @@ pub fn build(b: *Build) !void {
|
|||
build_step.install();
|
||||
|
||||
const verify_stepn = ZiglingStep.create(b, ex, use_healed);
|
||||
if (i == 0) {
|
||||
if (n == 1) {
|
||||
prev_step = &verify_stepn.step;
|
||||
} else {
|
||||
verify_stepn.step.dependOn(prev_step);
|
||||
|
|
Loading…
Reference in a new issue