diff --git a/selfhost/cmd/ww/main.combined.ww b/selfhost/cmd/ww/main.combined.ww index 9dc35370..72c0c519 100644 --- a/selfhost/cmd/ww/main.combined.ww +++ b/selfhost/cmd/ww/main.combined.ww @@ -1205,13 +1205,23 @@ fn dirfilekeep(name: *u8, nlen: u64) bool = { }; }; if (nlen >= 12u64) { - // ".combined.ww" + // ".combined.ww" — full 12-char match mirrors cstage + // cmd/ww/main.c enumerate_dir_ww strcmp (rule 10); the + // trailing .ww is pre-guaranteed by the early-out above. if (name[nlen - 12u64] == 46u8) { // '.' if (name[nlen - 11u64] == 99u8) { // 'c' if (name[nlen - 10u64] == 111u8) { // 'o' if (name[nlen - 9u64] == 109u8) { // 'm' if (name[nlen - 8u64] == 98u8) { // 'b' - return false; + if (name[nlen - 7u64] == 105u8) { // 'i' + if (name[nlen - 6u64] == 110u8) { // 'n' + if (name[nlen - 5u64] == 101u8) { // 'e' + if (name[nlen - 4u64] == 100u8) { // 'd' + return false; + }; + }; + }; + }; }; }; }; diff --git a/selfhost/cmd/ww/main.ww b/selfhost/cmd/ww/main.ww index 4e60d32f..c8b763b7 100644 --- a/selfhost/cmd/ww/main.ww +++ b/selfhost/cmd/ww/main.ww @@ -345,13 +345,23 @@ fn dirfilekeep(name: *u8, nlen: u64) bool = { }; }; if (nlen >= 12u64) { - // ".combined.ww" + // ".combined.ww" — full 12-char match mirrors cstage + // cmd/ww/main.c enumerate_dir_ww strcmp (rule 10); the + // trailing .ww is pre-guaranteed by the early-out above. if (name[nlen - 12u64] == 46u8) { // '.' if (name[nlen - 11u64] == 99u8) { // 'c' if (name[nlen - 10u64] == 111u8) { // 'o' if (name[nlen - 9u64] == 109u8) { // 'm' if (name[nlen - 8u64] == 98u8) { // 'b' - return false; + if (name[nlen - 7u64] == 105u8) { // 'i' + if (name[nlen - 6u64] == 110u8) { // 'n' + if (name[nlen - 5u64] == 101u8) { // 'e' + if (name[nlen - 4u64] == 100u8) { // 'd' + return false; + }; + }; + }; + }; }; }; };