Hi, Enclosed is a patch to allow for arbitrary AND/OR operations in apropos(1). The syntax is very similar to the existing syntax, proposed by schwarze@, except that I made case-insensitivity into an operator. This will set the tone for further unary operators (such as -S for sections). It goes like this: apropos Nm~foo -a Nd~bar (AND) apropos Nm~foo Nd~bar (implied OR) apropos Nm~foo -o Nd~bar (OR) apropos Nm~foo -a Nd~bar -o baz Operators follow operator(7) syntax: AND is evaluated before OR and both are left-right. The implementation is straightforward. exprcomp() compiles a set of arguments into a series of expressions. When searching, exprexecpre() pre-filters keywords over the expressions; exprexecpost() actually evaluates the full expression over all records. Thoughts? The one thing this doesn't support is grouping with (expression), which would only require expanding the expression into nested lists. The other thing that will change is hiding away the tree and match structures now in apropos_db.h. Regarding -S and -s or whatever they are, these should be unary operators for further filtering: apropos Nm~foo -o Nm~bar -a -S i386 Thanks, Kristaps