diff --git a/lib/compiler/Maker/Step/ConfigHeader.zig b/lib/compiler/Maker/Step/ConfigHeader.zig index 5096c8e0e3340fc5d841b5ae1677297bfb40417f..9444d3a6171c2157d042ef3ca2d1dd4b16ee5517 100644 --- a/lib/compiler/Maker/Step/ConfigHeader.zig +++ b/lib/compiler/Maker/Step/ConfigHeader.zig @@ -177,16 +177,18 @@ fn renderAutoConfUndef( var line_index: u32 = 0; var line_it = std.mem.splitScalar(u8, contents, '\n'); while (line_it.next()) |line| : (line_index += 1) { + const last_line = line_it.index == line_it.buffer.len; + if (!std.mem.startsWith(u8, line, "#")) { try w.writeAll(line); - try w.writeByte('\n'); + if (!last_line) try w.writeByte('\n'); continue; } var it = std.mem.tokenizeAny(u8, line[1..], " \t\r"); const undef = it.next().?; if (!std.mem.eql(u8, undef, "undef")) { try w.writeAll(line); - try w.writeByte('\n'); + if (!last_line) try w.writeByte('\n'); continue; } const name = it.next().?; diff --git a/test/standalone/config_header/autoconf_undef/config.h b/test/standalone/config_header/autoconf_undef/config.h index 3a649b0aca5576d75099906310d28ef049d50f4a..854cbfc9f7fe9e1ed1de0dbea6f25ea687ec4264 100644 --- a/test/standalone/config_header/autoconf_undef/config.h +++ b/test/standalone/config_header/autoconf_undef/config.h @@ -30,5 +30,3 @@ int foo(); // non-#undef # lines pass through unchanged #define KEPT_DEFINE value #include -// TODO: unexpected newline is being added here - diff --git a/test/standalone/config_header/autoconf_undef/config.h.in b/test/standalone/config_header/autoconf_undef/config.h.in index 1a13ccf319a85432ff04916ac0145b23bf78a7d3..39b0ec734ede142c24327af6038c288cd4fe161a 100644 --- a/test/standalone/config_header/autoconf_undef/config.h.in +++ b/test/standalone/config_header/autoconf_undef/config.h.in @@ -29,4 +29,3 @@ int foo(); // non-#undef # lines pass through unchanged #define KEPT_DEFINE value #include -// TODO: unexpected newline is being added here