I suck: a mapm bug

With release 3.1.1 of the mapm library has come a critical fix to how filtering works. Before, the command would fail with >1 filter; it would only care about the first. Here’s the commit that fixes this: the bug was so stupid that I can’t even begin to cringe hard enough at it.

As a matter of analogy let’s say you have an array of true/falses and want to determine whether every value is true. What I did was essentially (and this example code is written in C, though it is so basic I would be shocked if it didn’t work in C++ and maybe even Rust) the following:

void allTrue(bool bools[], int size) {
  for (int i = 0; i < size; i++) {
    return bool[i];
  }
}

and obviously this isn’t what you want to do, you want

void allTrue(bool bools[], int size) {
  for (int i = 0; i < size; i++) {
    if (!bool[i]) {
      return false;
    }
  }
  return true;
}

It’s so obvious an error that there’s no way this should’ve slipped past me, but it did. And this is the price I pay for getting lax on doctests. (So reminder to future self tomorrow, write the goddamn test for this function. Ya?)