diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-03-12 18:59:46 -0500 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-03-12 18:59:46 -0500 |
commit | 6ad9774189fbd64b2f2c9519f4513ab34b0c3809 (patch) | |
tree | d6c90700131d5b28e898881f13e2a05612e4703f | |
parent | be36352572ddb18218e1830e49316c259dea5e8c (diff) | |
download | ziglings-6ad9774189fbd64b2f2c9519f4513ab34b0c3809.tar.gz ziglings-6ad9774189fbd64b2f2c9519f4513ab34b0c3809.tar.bz2 ziglings-6ad9774189fbd64b2f2c9519f4513ab34b0c3809.tar.xz ziglings-6ad9774189fbd64b2f2c9519f4513ab34b0c3809.zip |
"999 is enough for anybody" triple-zero padding (#18)
When I hit 999 exercises, I will finally have reached the ultimate
state of soteriological release and no more exercises will be needed.
The cycle will be complete. All that will be left is perfect quietude,
freedom, and highest happiness.
-rw-r--r-- | build.zig | 132 | ||||
-rw-r--r-- | exercises/001_hello.zig (renamed from exercises/01_hello.zig) | 0 | ||||
-rw-r--r-- | exercises/002_std.zig (renamed from exercises/02_std.zig) | 0 | ||||
-rw-r--r-- | exercises/003_assignment.zig (renamed from exercises/03_assignment.zig) | 0 | ||||
-rw-r--r-- | exercises/004_arrays.zig (renamed from exercises/04_arrays.zig) | 0 | ||||
-rw-r--r-- | exercises/005_arrays2.zig (renamed from exercises/05_arrays2.zig) | 0 | ||||
-rw-r--r-- | exercises/006_strings.zig (renamed from exercises/06_strings.zig) | 0 | ||||
-rw-r--r-- | exercises/007_strings2.zig (renamed from exercises/07_strings2.zig) | 0 | ||||
-rw-r--r-- | exercises/008_quiz.zig (renamed from exercises/08_quiz.zig) | 0 | ||||
-rw-r--r-- | exercises/009_if.zig (renamed from exercises/09_if.zig) | 0 | ||||
-rw-r--r-- | exercises/010_if2.zig (renamed from exercises/10_if2.zig) | 0 | ||||
-rw-r--r-- | exercises/011_while.zig (renamed from exercises/11_while.zig) | 0 | ||||
-rw-r--r-- | exercises/012_while2.zig (renamed from exercises/12_while2.zig) | 0 | ||||
-rw-r--r-- | exercises/013_while3.zig (renamed from exercises/13_while3.zig) | 0 | ||||
-rw-r--r-- | exercises/014_while4.zig (renamed from exercises/14_while4.zig) | 0 | ||||
-rw-r--r-- | exercises/015_for.zig (renamed from exercises/15_for.zig) | 0 | ||||
-rw-r--r-- | exercises/016_for2.zig (renamed from exercises/16_for2.zig) | 0 | ||||
-rw-r--r-- | exercises/017_quiz2.zig (renamed from exercises/17_quiz2.zig) | 0 | ||||
-rw-r--r-- | exercises/018_functions.zig (renamed from exercises/18_functions.zig) | 0 | ||||
-rw-r--r-- | exercises/019_functions2.zig (renamed from exercises/19_functions2.zig) | 0 | ||||
-rw-r--r-- | exercises/020_quiz3.zig (renamed from exercises/20_quiz3.zig) | 0 | ||||
-rw-r--r-- | exercises/021_errors.zig (renamed from exercises/21_errors.zig) | 0 | ||||
-rw-r--r-- | exercises/022_errors2.zig (renamed from exercises/22_errors2.zig) | 0 | ||||
-rw-r--r-- | exercises/023_errors3.zig (renamed from exercises/23_errors3.zig) | 0 | ||||
-rw-r--r-- | exercises/024_errors4.zig (renamed from exercises/24_errors4.zig) | 0 | ||||
-rw-r--r-- | exercises/025_errors5.zig (renamed from exercises/25_errors5.zig) | 0 | ||||
-rw-r--r-- | exercises/026_hello2.zig (renamed from exercises/26_hello2.zig) | 0 | ||||
-rw-r--r-- | exercises/027_defer.zig (renamed from exercises/27_defer.zig) | 0 | ||||
-rw-r--r-- | exercises/028_defer2.zig (renamed from exercises/28_defer2.zig) | 0 | ||||
-rw-r--r-- | exercises/029_errdefer.zig (renamed from exercises/29_errdefer.zig) | 0 | ||||
-rw-r--r-- | exercises/030_switch.zig (renamed from exercises/30_switch.zig) | 0 | ||||
-rw-r--r-- | exercises/031_switch2.zig (renamed from exercises/31_switch2.zig) | 0 | ||||
-rw-r--r-- | exercises/032_unreachable.zig (renamed from exercises/32_unreachable.zig) | 0 | ||||
-rw-r--r-- | exercises/033_iferror.zig (renamed from exercises/33_iferror.zig) | 0 | ||||
-rw-r--r-- | exercises/034_quiz4.zig (renamed from exercises/34_quiz4.zig) | 0 | ||||
-rw-r--r-- | exercises/035_enums.zig (renamed from exercises/35_enums.zig) | 0 | ||||
-rw-r--r-- | exercises/036_enums2.zig (renamed from exercises/36_enums2.zig) | 0 | ||||
-rw-r--r-- | exercises/037_structs.zig (renamed from exercises/37_structs.zig) | 0 | ||||
-rw-r--r-- | exercises/038_structs2.zig (renamed from exercises/38_structs2.zig) | 0 | ||||
-rw-r--r-- | exercises/039_pointers.zig (renamed from exercises/39_pointers.zig) | 0 | ||||
-rw-r--r-- | exercises/040_pointers2.zig (renamed from exercises/40_pointers2.zig) | 0 | ||||
-rw-r--r-- | exercises/041_pointers3.zig (renamed from exercises/41_pointers3.zig) | 0 | ||||
-rw-r--r-- | exercises/042_pointers4.zig (renamed from exercises/42_pointers4.zig) | 0 | ||||
-rw-r--r-- | exercises/043_pointers5.zig (renamed from exercises/43_pointers5.zig) | 0 | ||||
-rw-r--r-- | exercises/044_quiz5.zig (renamed from exercises/44_quiz5.zig) | 0 | ||||
-rw-r--r-- | exercises/045_optionals.zig (renamed from exercises/45_optionals.zig) | 0 | ||||
-rw-r--r-- | exercises/046_optionals2.zig (renamed from exercises/46_optionals2.zig) | 0 | ||||
-rw-r--r-- | exercises/047_methods.zig (renamed from exercises/47_methods.zig) | 0 | ||||
-rw-r--r-- | exercises/048_methods2.zig (renamed from exercises/48_methods2.zig) | 0 | ||||
-rw-r--r-- | exercises/049_quiz6.zig (renamed from exercises/49_quiz6.zig) | 0 | ||||
-rw-r--r-- | exercises/050_no_value.zig (renamed from exercises/50_no_value.zig) | 0 | ||||
-rw-r--r-- | exercises/051_values.zig (renamed from exercises/51_values.zig) | 0 | ||||
-rw-r--r-- | exercises/052_slices.zig (renamed from exercises/52_slices.zig) | 0 | ||||
-rw-r--r-- | exercises/053_slices2.zig (renamed from exercises/53_slices2.zig) | 0 | ||||
-rw-r--r-- | exercises/054_manypointers.zig (renamed from exercises/54_manypointers.zig) | 0 | ||||
-rw-r--r-- | exercises/055_unions.zig (renamed from exercises/55_unions.zig) | 0 | ||||
-rw-r--r-- | exercises/056_unions2.zig (renamed from exercises/56_unions2.zig) | 0 | ||||
-rw-r--r-- | exercises/057_unions3.zig (renamed from exercises/57_unions3.zig) | 0 | ||||
-rw-r--r-- | patches/patches/001_hello.patch (renamed from patches/patches/01_hello.patch) | 0 | ||||
-rw-r--r-- | patches/patches/002_std.patch (renamed from patches/patches/02_std.patch) | 0 | ||||
-rw-r--r-- | patches/patches/003_assignment.patch (renamed from patches/patches/03_assignment.patch) | 0 | ||||
-rw-r--r-- | patches/patches/004_arrays.patch (renamed from patches/patches/04_arrays.patch) | 0 | ||||
-rw-r--r-- | patches/patches/005_arrays2.patch (renamed from patches/patches/05_arrays2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/006_strings.patch (renamed from patches/patches/06_strings.patch) | 0 | ||||
-rw-r--r-- | patches/patches/007_strings2.patch (renamed from patches/patches/07_strings2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/008_quiz.patch (renamed from patches/patches/08_quiz.patch) | 0 | ||||
-rw-r--r-- | patches/patches/009_if.patch (renamed from patches/patches/09_if.patch) | 0 | ||||
-rw-r--r-- | patches/patches/010_if2.patch (renamed from patches/patches/10_if2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/011_while.patch (renamed from patches/patches/11_while.patch) | 0 | ||||
-rw-r--r-- | patches/patches/012_while2.patch (renamed from patches/patches/12_while2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/013_while3.patch (renamed from patches/patches/13_while3.patch) | 0 | ||||
-rw-r--r-- | patches/patches/014_while4.patch (renamed from patches/patches/14_while4.patch) | 0 | ||||
-rw-r--r-- | patches/patches/015_for.patch (renamed from patches/patches/15_for.patch) | 0 | ||||
-rw-r--r-- | patches/patches/016_for2.patch (renamed from patches/patches/16_for2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/017_quiz2.patch (renamed from patches/patches/17_quiz2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/018_functions.patch (renamed from patches/patches/18_functions.patch) | 0 | ||||
-rw-r--r-- | patches/patches/019_functions2.patch (renamed from patches/patches/19_functions2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/020_quiz3.patch (renamed from patches/patches/20_quiz3.patch) | 0 | ||||
-rw-r--r-- | patches/patches/021_errors.patch (renamed from patches/patches/21_errors.patch) | 0 | ||||
-rw-r--r-- | patches/patches/022_errors2.patch (renamed from patches/patches/22_errors2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/023_errors3.patch (renamed from patches/patches/23_errors3.patch) | 0 | ||||
-rw-r--r-- | patches/patches/024_errors4.patch (renamed from patches/patches/24_errors4.patch) | 0 | ||||
-rw-r--r-- | patches/patches/025_errors5.patch (renamed from patches/patches/25_errors5.patch) | 0 | ||||
-rw-r--r-- | patches/patches/026_hello2.patch (renamed from patches/patches/26_hello2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/027_defer.patch (renamed from patches/patches/27_defer.patch) | 0 | ||||
-rw-r--r-- | patches/patches/028_defer2.patch (renamed from patches/patches/28_defer2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/029_errdefer.patch (renamed from patches/patches/29_errdefer.patch) | 0 | ||||
-rw-r--r-- | patches/patches/030_switch.patch (renamed from patches/patches/30_switch.patch) | 0 | ||||
-rw-r--r-- | patches/patches/031_switch2.patch (renamed from patches/patches/31_switch2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/032_unreachable.patch (renamed from patches/patches/32_unreachable.patch) | 0 | ||||
-rw-r--r-- | patches/patches/033_iferror.patch (renamed from patches/patches/33_iferror.patch) | 0 | ||||
-rw-r--r-- | patches/patches/034_quiz4.patch (renamed from patches/patches/34_quiz4.patch) | 0 | ||||
-rw-r--r-- | patches/patches/035_enums.patch (renamed from patches/patches/35_enums.patch) | 0 | ||||
-rw-r--r-- | patches/patches/036_enums2.patch (renamed from patches/patches/36_enums2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/037_structs.patch (renamed from patches/patches/37_structs.patch) | 0 | ||||
-rw-r--r-- | patches/patches/038_structs2.patch (renamed from patches/patches/38_structs2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/039_pointers.patch (renamed from patches/patches/39_pointers.patch) | 0 | ||||
-rw-r--r-- | patches/patches/040_pointers2.patch (renamed from patches/patches/40_pointers2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/041_pointers3.patch (renamed from patches/patches/41_pointers3.patch) | 0 | ||||
-rw-r--r-- | patches/patches/042_pointers4.patch (renamed from patches/patches/42_pointers4.patch) | 0 | ||||
-rw-r--r-- | patches/patches/043_pointers5.patch (renamed from patches/patches/43_pointers5.patch) | 0 | ||||
-rw-r--r-- | patches/patches/044_quiz5.patch (renamed from patches/patches/44_quiz5.patch) | 0 | ||||
-rw-r--r-- | patches/patches/045_optionals.patch (renamed from patches/patches/45_optionals.patch) | 0 | ||||
-rw-r--r-- | patches/patches/046_optionals2.patch (renamed from patches/patches/46_optionals2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/047_methods.patch (renamed from patches/patches/47_methods.patch) | 0 | ||||
-rw-r--r-- | patches/patches/048_methods2.patch (renamed from patches/patches/48_methods2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/049_quiz6.patch (renamed from patches/patches/49_quiz6.patch) | 0 | ||||
-rw-r--r-- | patches/patches/050_no_value.patch (renamed from patches/patches/50_no_value.patch) | 0 | ||||
-rw-r--r-- | patches/patches/051_values.patch (renamed from patches/patches/51_values.patch) | 0 | ||||
-rw-r--r-- | patches/patches/052_slices.patch (renamed from patches/patches/52_slices.patch) | 0 | ||||
-rw-r--r-- | patches/patches/053_slices2.patch (renamed from patches/patches/53_slices2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/054_manypointers.patch (renamed from patches/patches/54_manypointers.patch) | 0 | ||||
-rw-r--r-- | patches/patches/055_unions.patch (renamed from patches/patches/55_unions.patch) | 0 | ||||
-rw-r--r-- | patches/patches/056_unions2.patch (renamed from patches/patches/56_unions2.patch) | 0 | ||||
-rw-r--r-- | patches/patches/057_unions3.patch (renamed from patches/patches/57_unions3.patch) | 0 |
115 files changed, 70 insertions, 62 deletions
@@ -27,269 +27,278 @@ const Exercise = struct { return self.main_file[0 .. self.main_file.len - 4]; } - /// Returns the key of the main file, which is the text before the _. - /// For example, "01_hello.zig" has the key "01". + /// Returns the key of the main file, the string before the '_' with + /// "zero padding" removed. + /// For example, "001_hello.zig" has the key "1". pub fn key(self: Exercise) []const u8 { const end_index = std.mem.indexOfScalar(u8, self.main_file, '_'); assert(end_index != null); // main file must be key_description.zig - return self.main_file[0..end_index.?]; + + // remove zero padding by advancing index past '0's + var start_index: usize = 0; + while (self.main_file[start_index] == '0') start_index += 1; + return self.main_file[start_index..end_index.?]; } }; const exercises = [_]Exercise{ .{ - .main_file = "01_hello.zig", + .main_file = "001_hello.zig", .output = "Hello world", .hint = "DON'T PANIC!\nRead the error above.\nSee how it has something to do with 'main'?\nOpen up the source file as noted and read the comments.\nYou can do this!", }, .{ - .main_file = "02_std.zig", + .main_file = "002_std.zig", .output = "Standard Library", }, .{ - .main_file = "03_assignment.zig", + .main_file = "003_assignment.zig", .output = "55 314159 -11", .hint = "There are three mistakes in this one!", }, .{ - .main_file = "04_arrays.zig", + .main_file = "004_arrays.zig", .output = "Fourth: 7, Length: 8", .hint = "There are two things to complete here.", }, .{ - .main_file = "05_arrays2.zig", + .main_file = "005_arrays2.zig", .output = "LEET: 1337, Bits: 100110011001", .hint = "Fill in the two arrays.", }, .{ - .main_file = "06_strings.zig", + .main_file = "006_strings.zig", .output = "d=d ha ha ha Major Tom", .hint = "Each '???' needs something filled in.", }, .{ - .main_file = "07_strings2.zig", + .main_file = "007_strings2.zig", .output = "Ziggy", .hint = "Please fix the lyrics!", }, .{ - .main_file = "08_quiz.zig", + .main_file = "008_quiz.zig", .output = "Program in Zig", .hint = "See if you can fix the program!", }, .{ - .main_file = "09_if.zig", + .main_file = "009_if.zig", .output = "Foo is 1!", }, .{ - .main_file = "10_if2.zig", + .main_file = "010_if2.zig", .output = "price is $17", }, .{ - .main_file = "11_while.zig", + .main_file = "011_while.zig", .output = "n=1024", .hint = "You probably want a 'less than' condition.", }, .{ - .main_file = "12_while2.zig", + .main_file = "012_while2.zig", .output = "n=1024", .hint = "It might help to look back at the previous exercise.", }, .{ - .main_file = "13_while3.zig", + .main_file = "013_while3.zig", .output = "1 2 4 7 8 11 13 14 16 17 19", }, .{ - .main_file = "14_while4.zig", + .main_file = "014_while4.zig", .output = "n=4", }, .{ - .main_file = "15_for.zig", + .main_file = "015_for.zig", .output = "A Dramatic Story: :-) :-) :-( :-| :-) The End.", }, .{ - .main_file = "16_for2.zig", + .main_file = "016_for2.zig", .output = "13", }, .{ - .main_file = "17_quiz2.zig", + .main_file = "017_quiz2.zig", .output = "8, Fizz, Buzz, 11, Fizz, 13, 14, FizzBuzz, 16", .hint = "This is a famous game!", }, .{ - .main_file = "18_functions.zig", + .main_file = "018_functions.zig", .output = "Question: 42", .hint = "Can you help write the function?", }, .{ - .main_file = "19_functions2.zig", + .main_file = "019_functions2.zig", .output = "2 4 8 16", }, .{ - .main_file = "20_quiz3.zig", + .main_file = "020_quiz3.zig", .output = "32 64 128 256", .hint = "Unexpected pop quiz! Help!", }, .{ - .main_file = "21_errors.zig", + .main_file = "021_errors.zig", .output = "2<4. 3<4. 4=4. 5>4. 6>4.", .hint = "What's the deal with fours?", }, .{ - .main_file = "22_errors2.zig", + .main_file = "022_errors2.zig", .output = "I compiled", .hint = "Get the error union type right to allow this to compile.", }, .{ - .main_file = "23_errors3.zig", + .main_file = "023_errors3.zig", .output = "a=64, b=22", }, .{ - .main_file = "24_errors4.zig", + .main_file = "024_errors4.zig", .output = "a=20, b=14, c=10", }, .{ - .main_file = "25_errors5.zig", + .main_file = "025_errors5.zig", .output = "a=0, b=19, c=0", }, .{ - .main_file = "26_hello2.zig", + .main_file = "026_hello2.zig", .output = "Hello world", .hint = "Try using a try!", .check_stdout = true, }, .{ - .main_file = "27_defer.zig", + .main_file = "027_defer.zig", .output = "One Two", }, .{ - .main_file = "28_defer2.zig", + .main_file = "028_defer2.zig", .output = "(Goat) (Cat) (Dog) (Dog) (Goat) (Unknown) done.", }, .{ - .main_file = "29_errdefer.zig", + .main_file = "029_errdefer.zig", .output = "Getting number...got 5. Getting number...failed!", }, .{ - .main_file = "30_switch.zig", + .main_file = "030_switch.zig", .output = "ZIG?", }, .{ - .main_file = "31_switch2.zig", + .main_file = "031_switch2.zig", .output = "ZIG!", }, .{ - .main_file = "32_unreachable.zig", + .main_file = "032_unreachable.zig", .output = "1 2 3 9 8 7", }, .{ - .main_file = "33_iferror.zig", + .main_file = "033_iferror.zig", .output = "2<4. 3<4. 4=4. 5>4. 6>4.", .hint = "Seriously, what's the deal with fours?", }, .{ - .main_file = "34_quiz4.zig", + .main_file = "034_quiz4.zig", .output = "my_num=42", .hint = "Can you make this work?", .check_stdout = true, }, .{ - .main_file = "35_enums.zig", + .main_file = "035_enums.zig", .output = "1 2 3 9 8 7", .hint = "This problem seems familiar...", }, .{ - .main_file = "36_enums2.zig", + .main_file = "036_enums2.zig", .output = "#0000ff", .hint = "I'm feeling blue about this.", }, .{ - .main_file = "37_structs.zig", + .main_file = "037_structs.zig", .output = "Your wizard has 90 health and 25 gold.", }, .{ - .main_file = "38_structs2.zig", + .main_file = "038_structs2.zig", .output = "Character 2 - G:10 H:100 XP:20", }, .{ - .main_file = "39_pointers.zig", + .main_file = "039_pointers.zig", .output = "num1: 5, num2: 5", .hint = "Pointers aren't so bad.", }, .{ - .main_file = "40_pointers2.zig", + .main_file = "040_pointers2.zig", .output = "a: 12, b: 12", }, .{ - .main_file = "41_pointers3.zig", + .main_file = "041_pointers3.zig", .output = "foo=6, bar=11", }, .{ - .main_file = "42_pointers4.zig", + .main_file = "042_pointers4.zig", .output = "num: 5, more_nums: 1 1 5 1", }, .{ - .main_file = "43_pointers5.zig", + .main_file = "043_pointers5.zig", .output = "Wizard (G:10 H:100 XP:20)", }, .{ - .main_file = "44_quiz5.zig", + .main_file = "044_quiz5.zig", .output = "Elephant A. Elephant B. Elephant C.", .hint = "Oh no! We forgot Elephant B!", }, .{ - .main_file = "45_optionals.zig", + .main_file = "045_optionals.zig", .output = "The Ultimate Answer: 42.", }, .{ - .main_file = "46_optionals2.zig", + .main_file = "046_optionals2.zig", .output = "Elephant A. Elephant B. Elephant C.", .hint = "Elephants again!", }, .{ - .main_file = "47_methods.zig", + .main_file = "047_methods.zig", .output = "5 aliens. 4 aliens. 1 aliens. 0 aliens. Earth is saved!", .hint = "Use the heat ray. And the method!", }, .{ - .main_file = "48_methods2.zig", + .main_file = "048_methods2.zig", .output = "A B C", .hint = "This just needs one little fix.", }, .{ - .main_file = "49_quiz6.zig", + .main_file = "049_quiz6.zig", .output = "A B C Cv Bv Av", .hint = "Now you're writting Zig!", }, .{ - .main_file = "50_no_value.zig", + .main_file = "050_no_value.zig", .output = "That is not dead which can eternal lie / And with strange aeons even death may die.", }, .{ - .main_file = "51_values.zig", + .main_file = "051_values.zig", .output = "1:false!. 2:true!. 3:true!. XP before:0, after:200.", }, .{ - .main_file = "52_slices.zig", + .main_file = "052_slices.zig", .output = "Hand1: A 4 K 8 Hand2: 5 2 Q J", }, .{ - .main_file = "53_slices2.zig", + .main_file = "053_slices2.zig", .output = "'all your base are belong to us.' 'for great justice.'", }, .{ - .main_file = "54_manypointers.zig", + .main_file = "054_manypointers.zig", .output = "Memory is a resource.", }, .{ - .main_file = "55_unions.zig", + .main_file = "055_unions.zig", .output = "Insect report! Ant alive is: true. Bee visited 15 flowers.", }, .{ - .main_file = "56_unions2.zig", + .main_file = "056_unions2.zig", .output = "Insect report! Ant alive is: true. Bee visited 16 flowers.", }, .{ - .main_file = "57_unions3.zig", + .main_file = "057_unions3.zig", + .output = "Insect report! Ant alive is: true. Bee visited 17 flowers.", + }, + .{ + .main_file = "057_unions3.zig", .output = "Insect report! Ant alive is: true. Bee visited 17 flowers.", }, }; @@ -548,8 +557,7 @@ const ZiglingStep = struct { zig_args.append(@tagName(builder.color)) catch unreachable; } - const zig_file = std.fs.path.join(builder.allocator, &[_][]const u8{ - if (self.use_healed) "patches/healed" else "exercises", self.exercise.main_file }) catch unreachable; + const zig_file = std.fs.path.join(builder.allocator, &[_][]const u8{ if (self.use_healed) "patches/healed" else "exercises", self.exercise.main_file }) catch unreachable; zig_args.append(builder.pathFromRoot(zig_file)) catch unreachable; zig_args.append("--cache-dir") catch unreachable; diff --git a/exercises/01_hello.zig b/exercises/001_hello.zig index d2093c7..d2093c7 100644 --- a/exercises/01_hello.zig +++ b/exercises/001_hello.zig diff --git a/exercises/02_std.zig b/exercises/002_std.zig index 50059e1..50059e1 100644 --- a/exercises/02_std.zig +++ b/exercises/002_std.zig diff --git a/exercises/03_assignment.zig b/exercises/003_assignment.zig index 6a4364b..6a4364b 100644 --- a/exercises/03_assignment.zig +++ b/exercises/003_assignment.zig diff --git a/exercises/04_arrays.zig b/exercises/004_arrays.zig index 88fcc78..88fcc78 100644 --- a/exercises/04_arrays.zig +++ b/exercises/004_arrays.zig diff --git a/exercises/05_arrays2.zig b/exercises/005_arrays2.zig index 9282a31..9282a31 100644 --- a/exercises/05_arrays2.zig +++ b/exercises/005_arrays2.zig diff --git a/exercises/06_strings.zig b/exercises/006_strings.zig index 6258816..6258816 100644 --- a/exercises/06_strings.zig +++ b/exercises/006_strings.zig diff --git a/exercises/07_strings2.zig b/exercises/007_strings2.zig index 6350be1..6350be1 100644 --- a/exercises/07_strings2.zig +++ b/exercises/007_strings2.zig diff --git a/exercises/08_quiz.zig b/exercises/008_quiz.zig index eda66b8..eda66b8 100644 --- a/exercises/08_quiz.zig +++ b/exercises/008_quiz.zig diff --git a/exercises/09_if.zig b/exercises/009_if.zig index 284563d..284563d 100644 --- a/exercises/09_if.zig +++ b/exercises/009_if.zig diff --git a/exercises/10_if2.zig b/exercises/010_if2.zig index d0c8cac..d0c8cac 100644 --- a/exercises/10_if2.zig +++ b/exercises/010_if2.zig diff --git a/exercises/11_while.zig b/exercises/011_while.zig index 674d904..674d904 100644 --- a/exercises/11_while.zig +++ b/exercises/011_while.zig diff --git a/exercises/12_while2.zig b/exercises/012_while2.zig index ef53ea0..ef53ea0 100644 --- a/exercises/12_while2.zig +++ b/exercises/012_while2.zig diff --git a/exercises/13_while3.zig b/exercises/013_while3.zig index 4cccf62..4cccf62 100644 --- a/exercises/13_while3.zig +++ b/exercises/013_while3.zig diff --git a/exercises/14_while4.zig b/exercises/014_while4.zig index 7b2714e..7b2714e 100644 --- a/exercises/14_while4.zig +++ b/exercises/014_while4.zig diff --git a/exercises/15_for.zig b/exercises/015_for.zig index 2ce930e..2ce930e 100644 --- a/exercises/15_for.zig +++ b/exercises/015_for.zig diff --git a/exercises/16_for2.zig b/exercises/016_for2.zig index 0a62a1a..0a62a1a 100644 --- a/exercises/16_for2.zig +++ b/exercises/016_for2.zig diff --git a/exercises/17_quiz2.zig b/exercises/017_quiz2.zig index 7de7010..7de7010 100644 --- a/exercises/17_quiz2.zig +++ b/exercises/017_quiz2.zig diff --git a/exercises/18_functions.zig b/exercises/018_functions.zig index 51be2cd..51be2cd 100644 --- a/exercises/18_functions.zig +++ b/exercises/018_functions.zig diff --git a/exercises/19_functions2.zig b/exercises/019_functions2.zig index 00f33c5..00f33c5 100644 --- a/exercises/19_functions2.zig +++ b/exercises/019_functions2.zig diff --git a/exercises/20_quiz3.zig b/exercises/020_quiz3.zig index 651af8c..651af8c 100644 --- a/exercises/20_quiz3.zig +++ b/exercises/020_quiz3.zig diff --git a/exercises/21_errors.zig b/exercises/021_errors.zig index cbb5ac8..cbb5ac8 100644 --- a/exercises/21_errors.zig +++ b/exercises/021_errors.zig diff --git a/exercises/22_errors2.zig b/exercises/022_errors2.zig index fa0eafa..fa0eafa 100644 --- a/exercises/22_errors2.zig +++ b/exercises/022_errors2.zig diff --git a/exercises/23_errors3.zig b/exercises/023_errors3.zig index a465737..a465737 100644 --- a/exercises/23_errors3.zig +++ b/exercises/023_errors3.zig diff --git a/exercises/24_errors4.zig b/exercises/024_errors4.zig index 560b129..560b129 100644 --- a/exercises/24_errors4.zig +++ b/exercises/024_errors4.zig diff --git a/exercises/25_errors5.zig b/exercises/025_errors5.zig index 5119dcf..5119dcf 100644 --- a/exercises/25_errors5.zig +++ b/exercises/025_errors5.zig diff --git a/exercises/26_hello2.zig b/exercises/026_hello2.zig index 237d27c..237d27c 100644 --- a/exercises/26_hello2.zig +++ b/exercises/026_hello2.zig diff --git a/exercises/27_defer.zig b/exercises/027_defer.zig index b41e2af..b41e2af 100644 --- a/exercises/27_defer.zig +++ b/exercises/027_defer.zig diff --git a/exercises/28_defer2.zig b/exercises/028_defer2.zig index 6943012..6943012 100644 --- a/exercises/28_defer2.zig +++ b/exercises/028_defer2.zig diff --git a/exercises/29_errdefer.zig b/exercises/029_errdefer.zig index f43c738..f43c738 100644 --- a/exercises/29_errdefer.zig +++ b/exercises/029_errdefer.zig diff --git a/exercises/30_switch.zig b/exercises/030_switch.zig index cb983f5..cb983f5 100644 --- a/exercises/30_switch.zig +++ b/exercises/030_switch.zig diff --git a/exercises/31_switch2.zig b/exercises/031_switch2.zig index b7680b4..b7680b4 100644 --- a/exercises/31_switch2.zig +++ b/exercises/031_switch2.zig diff --git a/exercises/32_unreachable.zig b/exercises/032_unreachable.zig index ffc35a4..ffc35a4 100644 --- a/exercises/32_unreachable.zig +++ b/exercises/032_unreachable.zig diff --git a/exercises/33_iferror.zig b/exercises/033_iferror.zig index 67777a9..67777a9 100644 --- a/exercises/33_iferror.zig +++ b/exercises/033_iferror.zig diff --git a/exercises/34_quiz4.zig b/exercises/034_quiz4.zig index 6b0e3fc..6b0e3fc 100644 --- a/exercises/34_quiz4.zig +++ b/exercises/034_quiz4.zig diff --git a/exercises/35_enums.zig b/exercises/035_enums.zig index 1825f52..1825f52 100644 --- a/exercises/35_enums.zig +++ b/exercises/035_enums.zig diff --git a/exercises/36_enums2.zig b/exercises/036_enums2.zig index 0ddc4a5..0ddc4a5 100644 --- a/exercises/36_enums2.zig +++ b/exercises/036_enums2.zig diff --git a/exercises/37_structs.zig b/exercises/037_structs.zig index 8082248..8082248 100644 --- a/exercises/37_structs.zig +++ b/exercises/037_structs.zig diff --git a/exercises/38_structs2.zig b/exercises/038_structs2.zig index b0db022..b0db022 100644 --- a/exercises/38_structs2.zig +++ b/exercises/038_structs2.zig diff --git a/exercises/39_pointers.zig b/exercises/039_pointers.zig index d545525..d545525 100644 --- a/exercises/39_pointers.zig +++ b/exercises/039_pointers.zig diff --git a/exercises/40_pointers2.zig b/exercises/040_pointers2.zig index 43dd2c3..43dd2c3 100644 --- a/exercises/40_pointers2.zig +++ b/exercises/040_pointers2.zig diff --git a/exercises/41_pointers3.zig b/exercises/041_pointers3.zig index 9e2bcc6..9e2bcc6 100644 --- a/exercises/41_pointers3.zig +++ b/exercises/041_pointers3.zig diff --git a/exercises/42_pointers4.zig b/exercises/042_pointers4.zig index 261dbc1..261dbc1 100644 --- a/exercises/42_pointers4.zig +++ b/exercises/042_pointers4.zig diff --git a/exercises/43_pointers5.zig b/exercises/043_pointers5.zig index cb94189..cb94189 100644 --- a/exercises/43_pointers5.zig +++ b/exercises/043_pointers5.zig diff --git a/exercises/44_quiz5.zig b/exercises/044_quiz5.zig index 8a0d88c..8a0d88c 100644 --- a/exercises/44_quiz5.zig +++ b/exercises/044_quiz5.zig diff --git a/exercises/45_optionals.zig b/exercises/045_optionals.zig index 1327e4c..1327e4c 100644 --- a/exercises/45_optionals.zig +++ b/exercises/045_optionals.zig diff --git a/exercises/46_optionals2.zig b/exercises/046_optionals2.zig index d3f65bb..d3f65bb 100644 --- a/exercises/46_optionals2.zig +++ b/exercises/046_optionals2.zig diff --git a/exercises/47_methods.zig b/exercises/047_methods.zig index c8e5c17..c8e5c17 100644 --- a/exercises/47_methods.zig +++ b/exercises/047_methods.zig diff --git a/exercises/48_methods2.zig b/exercises/048_methods2.zig index f97710d..f97710d 100644 --- a/exercises/48_methods2.zig +++ b/exercises/048_methods2.zig diff --git a/exercises/49_quiz6.zig b/exercises/049_quiz6.zig index a1a1dec..a1a1dec 100644 --- a/exercises/49_quiz6.zig +++ b/exercises/049_quiz6.zig diff --git a/exercises/50_no_value.zig b/exercises/050_no_value.zig index 8708d2d..8708d2d 100644 --- a/exercises/50_no_value.zig +++ b/exercises/050_no_value.zig diff --git a/exercises/51_values.zig b/exercises/051_values.zig index dd68d3b..dd68d3b 100644 --- a/exercises/51_values.zig +++ b/exercises/051_values.zig diff --git a/exercises/52_slices.zig b/exercises/052_slices.zig index 98177cd..98177cd 100644 --- a/exercises/52_slices.zig +++ b/exercises/052_slices.zig diff --git a/exercises/53_slices2.zig b/exercises/053_slices2.zig index 2456d86..2456d86 100644 --- a/exercises/53_slices2.zig +++ b/exercises/053_slices2.zig diff --git a/exercises/54_manypointers.zig b/exercises/054_manypointers.zig index 23f2ae5..23f2ae5 100644 --- a/exercises/54_manypointers.zig +++ b/exercises/054_manypointers.zig diff --git a/exercises/55_unions.zig b/exercises/055_unions.zig index 5e08aa1..5e08aa1 100644 --- a/exercises/55_unions.zig +++ b/exercises/055_unions.zig diff --git a/exercises/56_unions2.zig b/exercises/056_unions2.zig index e4294db..e4294db 100644 --- a/exercises/56_unions2.zig +++ b/exercises/056_unions2.zig diff --git a/exercises/57_unions3.zig b/exercises/057_unions3.zig index 142180f..142180f 100644 --- a/exercises/57_unions3.zig +++ b/exercises/057_unions3.zig diff --git a/patches/patches/01_hello.patch b/patches/patches/001_hello.patch index fb360a7..fb360a7 100644 --- a/patches/patches/01_hello.patch +++ b/patches/patches/001_hello.patch diff --git a/patches/patches/02_std.patch b/patches/patches/002_std.patch index 6c97adb..6c97adb 100644 --- a/patches/patches/02_std.patch +++ b/patches/patches/002_std.patch diff --git a/patches/patches/03_assignment.patch b/patches/patches/003_assignment.patch index bef4b24..bef4b24 100644 --- a/patches/patches/03_assignment.patch +++ b/patches/patches/003_assignment.patch diff --git a/patches/patches/04_arrays.patch b/patches/patches/004_arrays.patch index c6f9de3..c6f9de3 100644 --- a/patches/patches/04_arrays.patch +++ b/patches/patches/004_arrays.patch diff --git a/patches/patches/05_arrays2.patch b/patches/patches/005_arrays2.patch index 1e7b6b1..1e7b6b1 100644 --- a/patches/patches/05_arrays2.patch +++ b/patches/patches/005_arrays2.patch diff --git a/patches/patches/06_strings.patch b/patches/patches/006_strings.patch index 040a73c..040a73c 100644 --- a/patches/patches/06_strings.patch +++ b/patches/patches/006_strings.patch diff --git a/patches/patches/07_strings2.patch b/patches/patches/007_strings2.patch index 34cd053..34cd053 100644 --- a/patches/patches/07_strings2.patch +++ b/patches/patches/007_strings2.patch diff --git a/patches/patches/08_quiz.patch b/patches/patches/008_quiz.patch index 3d35a5a..3d35a5a 100644 --- a/patches/patches/08_quiz.patch +++ b/patches/patches/008_quiz.patch diff --git a/patches/patches/09_if.patch b/patches/patches/009_if.patch index 46579ad..46579ad 100644 --- a/patches/patches/09_if.patch +++ b/patches/patches/009_if.patch diff --git a/patches/patches/10_if2.patch b/patches/patches/010_if2.patch index e78f644..e78f644 100644 --- a/patches/patches/10_if2.patch +++ b/patches/patches/010_if2.patch diff --git a/patches/patches/11_while.patch b/patches/patches/011_while.patch index a892191..a892191 100644 --- a/patches/patches/11_while.patch +++ b/patches/patches/011_while.patch diff --git a/patches/patches/12_while2.patch b/patches/patches/012_while2.patch index 29ae763..29ae763 100644 --- a/patches/patches/12_while2.patch +++ b/patches/patches/012_while2.patch diff --git a/patches/patches/13_while3.patch b/patches/patches/013_while3.patch index b0172da..b0172da 100644 --- a/patches/patches/13_while3.patch +++ b/patches/patches/013_while3.patch diff --git a/patches/patches/14_while4.patch b/patches/patches/014_while4.patch index fb67587..fb67587 100644 --- a/patches/patches/14_while4.patch +++ b/patches/patches/014_while4.patch diff --git a/patches/patches/15_for.patch b/patches/patches/015_for.patch index e937221..e937221 100644 --- a/patches/patches/15_for.patch +++ b/patches/patches/015_for.patch diff --git a/patches/patches/16_for2.patch b/patches/patches/016_for2.patch index 5aba37f..5aba37f 100644 --- a/patches/patches/16_for2.patch +++ b/patches/patches/016_for2.patch diff --git a/patches/patches/17_quiz2.patch b/patches/patches/017_quiz2.patch index b46dab6..b46dab6 100644 --- a/patches/patches/17_quiz2.patch +++ b/patches/patches/017_quiz2.patch diff --git a/patches/patches/18_functions.patch b/patches/patches/018_functions.patch index dd3f2f6..dd3f2f6 100644 --- a/patches/patches/18_functions.patch +++ b/patches/patches/018_functions.patch diff --git a/patches/patches/19_functions2.patch b/patches/patches/019_functions2.patch index 254889a..254889a 100644 --- a/patches/patches/19_functions2.patch +++ b/patches/patches/019_functions2.patch diff --git a/patches/patches/20_quiz3.patch b/patches/patches/020_quiz3.patch index 6a00d31..6a00d31 100644 --- a/patches/patches/20_quiz3.patch +++ b/patches/patches/020_quiz3.patch diff --git a/patches/patches/21_errors.patch b/patches/patches/021_errors.patch index b37b3c8..b37b3c8 100644 --- a/patches/patches/21_errors.patch +++ b/patches/patches/021_errors.patch diff --git a/patches/patches/22_errors2.patch b/patches/patches/022_errors2.patch index 0501159..0501159 100644 --- a/patches/patches/22_errors2.patch +++ b/patches/patches/022_errors2.patch diff --git a/patches/patches/23_errors3.patch b/patches/patches/023_errors3.patch index a850116..a850116 100644 --- a/patches/patches/23_errors3.patch +++ b/patches/patches/023_errors3.patch diff --git a/patches/patches/24_errors4.patch b/patches/patches/024_errors4.patch index bb3fc8f..bb3fc8f 100644 --- a/patches/patches/24_errors4.patch +++ b/patches/patches/024_errors4.patch diff --git a/patches/patches/25_errors5.patch b/patches/patches/025_errors5.patch index 8aa59d4..8aa59d4 100644 --- a/patches/patches/25_errors5.patch +++ b/patches/patches/025_errors5.patch diff --git a/patches/patches/26_hello2.patch b/patches/patches/026_hello2.patch index 0065da5..0065da5 100644 --- a/patches/patches/26_hello2.patch +++ b/patches/patches/026_hello2.patch diff --git a/patches/patches/27_defer.patch b/patches/patches/027_defer.patch index 6ff7f98..6ff7f98 100644 --- a/patches/patches/27_defer.patch +++ b/patches/patches/027_defer.patch diff --git a/patches/patches/28_defer2.patch b/patches/patches/028_defer2.patch index c042c45..c042c45 100644 --- a/patches/patches/28_defer2.patch +++ b/patches/patches/028_defer2.patch diff --git a/patches/patches/29_errdefer.patch b/patches/patches/029_errdefer.patch index f93c56f..f93c56f 100644 --- a/patches/patches/29_errdefer.patch +++ b/patches/patches/029_errdefer.patch diff --git a/patches/patches/30_switch.patch b/patches/patches/030_switch.patch index 05cbe1a..05cbe1a 100644 --- a/patches/patches/30_switch.patch +++ b/patches/patches/030_switch.patch diff --git a/patches/patches/31_switch2.patch b/patches/patches/031_switch2.patch index f786762..f786762 100644 --- a/patches/patches/31_switch2.patch +++ b/patches/patches/031_switch2.patch diff --git a/patches/patches/32_unreachable.patch b/patches/patches/032_unreachable.patch index 0883932..0883932 100644 --- a/patches/patches/32_unreachable.patch +++ b/patches/patches/032_unreachable.patch diff --git a/patches/patches/33_iferror.patch b/patches/patches/033_iferror.patch index 62904db..62904db 100644 --- a/patches/patches/33_iferror.patch +++ b/patches/patches/033_iferror.patch diff --git a/patches/patches/34_quiz4.patch b/patches/patches/034_quiz4.patch index b259352..b259352 100644 --- a/patches/patches/34_quiz4.patch +++ b/patches/patches/034_quiz4.patch diff --git a/patches/patches/35_enums.patch b/patches/patches/035_enums.patch index ed2344b..ed2344b 100644 --- a/patches/patches/35_enums.patch +++ b/patches/patches/035_enums.patch diff --git a/patches/patches/36_enums2.patch b/patches/patches/036_enums2.patch index 54a7094..54a7094 100644 --- a/patches/patches/36_enums2.patch +++ b/patches/patches/036_enums2.patch diff --git a/patches/patches/37_structs.patch b/patches/patches/037_structs.patch index c26510d..c26510d 100644 --- a/patches/patches/37_structs.patch +++ b/patches/patches/037_structs.patch diff --git a/patches/patches/38_structs2.patch b/patches/patches/038_structs2.patch index 5d0d188..5d0d188 100644 --- a/patches/patches/38_structs2.patch +++ b/patches/patches/038_structs2.patch diff --git a/patches/patches/39_pointers.patch b/patches/patches/039_pointers.patch index 57d67e5..57d67e5 100644 --- a/patches/patches/39_pointers.patch +++ b/patches/patches/039_pointers.patch diff --git a/patches/patches/40_pointers2.patch b/patches/patches/040_pointers2.patch index a69cb20..a69cb20 100644 --- a/patches/patches/40_pointers2.patch +++ b/patches/patches/040_pointers2.patch diff --git a/patches/patches/41_pointers3.patch b/patches/patches/041_pointers3.patch index 02f7744..02f7744 100644 --- a/patches/patches/41_pointers3.patch +++ b/patches/patches/041_pointers3.patch diff --git a/patches/patches/42_pointers4.patch b/patches/patches/042_pointers4.patch index 29ca2d0..29ca2d0 100644 --- a/patches/patches/42_pointers4.patch +++ b/patches/patches/042_pointers4.patch diff --git a/patches/patches/43_pointers5.patch b/patches/patches/043_pointers5.patch index 8a73551..8a73551 100644 --- a/patches/patches/43_pointers5.patch +++ b/patches/patches/043_pointers5.patch diff --git a/patches/patches/44_quiz5.patch b/patches/patches/044_quiz5.patch index 44d4451..44d4451 100644 --- a/patches/patches/44_quiz5.patch +++ b/patches/patches/044_quiz5.patch diff --git a/patches/patches/45_optionals.patch b/patches/patches/045_optionals.patch index c945b5a..c945b5a 100644 --- a/patches/patches/45_optionals.patch +++ b/patches/patches/045_optionals.patch diff --git a/patches/patches/46_optionals2.patch b/patches/patches/046_optionals2.patch index 10705d9..10705d9 100644 --- a/patches/patches/46_optionals2.patch +++ b/patches/patches/046_optionals2.patch diff --git a/patches/patches/47_methods.patch b/patches/patches/047_methods.patch index cde93af..cde93af 100644 --- a/patches/patches/47_methods.patch +++ b/patches/patches/047_methods.patch diff --git a/patches/patches/48_methods2.patch b/patches/patches/048_methods2.patch index 781a99e..781a99e 100644 --- a/patches/patches/48_methods2.patch +++ b/patches/patches/048_methods2.patch diff --git a/patches/patches/49_quiz6.patch b/patches/patches/049_quiz6.patch index 83f9faf..83f9faf 100644 --- a/patches/patches/49_quiz6.patch +++ b/patches/patches/049_quiz6.patch diff --git a/patches/patches/50_no_value.patch b/patches/patches/050_no_value.patch index 79db0a3..79db0a3 100644 --- a/patches/patches/50_no_value.patch +++ b/patches/patches/050_no_value.patch diff --git a/patches/patches/51_values.patch b/patches/patches/051_values.patch index 43d1f65..43d1f65 100644 --- a/patches/patches/51_values.patch +++ b/patches/patches/051_values.patch diff --git a/patches/patches/52_slices.patch b/patches/patches/052_slices.patch index 80f8d72..80f8d72 100644 --- a/patches/patches/52_slices.patch +++ b/patches/patches/052_slices.patch diff --git a/patches/patches/53_slices2.patch b/patches/patches/053_slices2.patch index f5403a2..f5403a2 100644 --- a/patches/patches/53_slices2.patch +++ b/patches/patches/053_slices2.patch diff --git a/patches/patches/54_manypointers.patch b/patches/patches/054_manypointers.patch index 82824e8..82824e8 100644 --- a/patches/patches/54_manypointers.patch +++ b/patches/patches/054_manypointers.patch diff --git a/patches/patches/55_unions.patch b/patches/patches/055_unions.patch index c362f20..c362f20 100644 --- a/patches/patches/55_unions.patch +++ b/patches/patches/055_unions.patch diff --git a/patches/patches/56_unions2.patch b/patches/patches/056_unions2.patch index 7341f7a..7341f7a 100644 --- a/patches/patches/56_unions2.patch +++ b/patches/patches/056_unions2.patch diff --git a/patches/patches/57_unions3.patch b/patches/patches/057_unions3.patch index 17e27a2..17e27a2 100644 --- a/patches/patches/57_unions3.patch +++ b/patches/patches/057_unions3.patch |